👨‍💻 영웅문4 OpenAPI + C# 완전 정복 - 1단계: 설치 및 연동 시작하기

반응형

OpenAPI + C# 완전 정복 - 1단계: 설치 및 연동 시작하기

✅ 왜 C#으로 영웅문 OpenAPI를 연동해야 할까?

영웅문4 OpenAPI는 ActiveX 기반의 COM 컴포넌트입니다.
C#과 가장 높은 호환성을 가지며 공식 샘플도 C# 기반입니다.

C#으로 시작하면 실시간 데이터 처리, 조건검색 연동, 자동매매 구현까지 쉽게 확장할 수 있습니다.


🛠️ STEP 1. 준비사항 체크리스트

항목설명
🧑‍💼 키움증권 계좌 키움증권 홈페이지에서 비대면 개설 가능
💻 영웅문4 설치 HTS: 홈트레이딩 시스템 설치 필요
🔧 키움 OpenAPI+ 설치 영웅문 설치 시 자동 포함 또는 수동 설치
🧠 Visual Studio 설치 최소 버전: Visual Studio 2019 이상
📚 .NET Framework 반드시 4.5 이상, 32bit로 설정 권장

📷 준비사항 체크리스트 설치항목 링크 참고 하세요.

https://infoportalhub.tistory.com/entry/OpenAPIHowToConnect2025Guide


🧩 STEP 2. Visual Studio 프로젝트 생성

  1. Visual Studio 실행
  2. Windows Forms App (.NET Framework) 프로젝트 생성
  3. 프로젝트 이름: KiwoomOpenAPI_CS

📷 Visual Studio 프로젝트 생성 예시

Visual Studio 실행
Visual Studio 실행
Windows Forms App (.NET Framework) 프로젝트 생성
Windows Forms App (.NET Framework) 프로젝트 생성
프로젝트 이름: KiwoomOpenAPI_CS
프로젝트 이름: KiwoomOpenAPI_CS
OpenAPI , Button 추가 화면
OpenAPI , Button 추가 화면


🔌 STEP 3. OpenAPI ActiveX 컨트롤 추가

  1. 툴박스 우클릭 → Choose Items…
  2. COM Components 탭 선택
  3. KHOpenAPI Control 체크
  4. 폼에 드래그해서 추가

📷 OpenAPI 컨트롤 추가 화면 링크 참조 하세요.

https://infoportalhub.com/entry/OpenAPIOCXvbnetWinForm


🔐 STEP 4. 로그인 함수 구현

📄 로그인 함수 예시

C#

private void btnLogin_Click(object sender, EventArgs e)
{
    axKHOpenAPI1.CommConnect();
}
  • axKHOpenAPI1은 폼에 추가한 OpenAPI 컨트롤
  • 로그인 성공 여부는 OnEventConnect 이벤트에서 확인 가능

📄 로그인 상태 확인

C#

private void axKHOpenAPI1_OnEventConnect(object sender, _DKHOpenAPIEvents_OnEventConnectEvent e)
{
    if (e.nErrCode == 0)
        MessageBox.Show("✅ 로그인 성공!");
    else
        MessageBox.Show("❌ 로그인 실패: 코드 " + e.nErrCode);
}

🧪 STEP 5. 현재가 조회 예제 (opt10001)

C#

private void btnGetPrice_Click(object sender, EventArgs e)
{
    axKHOpenAPI1.SetInputValue("종목코드", "005930");  // 삼성전자
    axKHOpenAPI1.CommRqData("주식기본정보요청", "opt10001", 0, "1000");
}

📄 응답 처리 이벤트:

C#

private void axKHOpenAPI1_OnReceiveTrData(
    object sender,
    _DKHOpenAPIEvents_OnReceiveTrDataEvent e)
{
    string price = axKHOpenAPI1.GetCommData(e.sTrCode, e.sRQName, 0, "현재가").Trim();
    MessageBox.Show("현재가: " + price);
}

📷 현재가 조회 결과 예시:

[현재가] 삼성전자: 78,900원
반응형