🧠 키움증권 Open API 연동 방법 (OCX 사용, VB.NET WinForm 기준)

반응형

초보자도 따라할 수 있는 완벽 가이드
키움 Open API+ OCX를 VB.NET 윈도우폼(WinForm) 애플리케이션에서 사용하는 방법을 단계별로 설명합니다.

🔍 목차

  1. 키움증권 Open API+ 개요
  2. 사전 준비 사항
  3. OCX 컨트롤 등록 방법
  4. VB.NET WinForm 프로젝트 생성 및 설정
  5. 주요 이벤트 및 함수 설명
  6. 로그인 처리 구현 예제
  7. 실시간 데이터 수신 구현 예제
  8. 에러 처리 및 팁
  9. 자주 묻는 질문 (FAQ)

🧩 1. 키움 Open API+란?

**키움증권 Open API+**는 개인 투자자나 개발자가 직접 자동매매 프로그램, 주식 정보 수집기 등을 만들 수 있도록 키움에서 제공하는 OCX 기반 ActiveX 컨트롤입니다.

✅ 주요 기능: 로그인, 주식 시세 조회, 주문 실행, 실시간 체결 데이터 수신 등


🧰 2. 사전 준비 사항


🧱 3. OCX 컨트롤 등록 방법

  1. 관리자 권한으로 CMD 실행
  2. 아래 명령어로 등록:
cmd

regsvr32 "C:\OpenAPI\KOAStudio.ocx"
regsvr32 "C:\OpenAPI\kiwoomOpenAPI.ocx"

🔔 64비트 OS라도 Visual Studio는 x86(32bit) 모드로 설정해야 합니다.


🛠 4. VB.NET WinForm 프로젝트 설정

  1. Visual Studio > 새 프로젝트 > VB.NET WinForms App 선택
  2. 프로젝트 속성 > 컴파일 대상: x86 으로 설정

도구 상자에 OCX 컨트롤 수동 등록:

  • 도구 상자 우클릭 > 구성 요소 선택
  • COM 구성 요소 탭에서 "KHOpenAPI Control" 체크

메뉴->도구->도구 상자 항목 선택
Visual Studio 2019 메인메뉴->도구->도구 상자 항목 선택
도구 상자 항목 선택 COM 구성 요소
도구 상자 항목 선택 -> COM 구성 요소
C:\OpenAPI\KHOpenApi.ocx 파일선택
OpenAPI 디렉토리에서 KHOpenAPI.ocx 찾아서 선택하고 열기 버튼을 클릭
KHOpenAPI.ocx 불러오기 완료
KHOpenAPI.ocx 불러오기 완료 화면


🧪 5. 주요 이벤트 및 메서드 요약

메서드 / 이벤트설명
CommConnect() 로그인 요청
OnEventConnect 로그인 결과 이벤트
GetCodeListByMarket() 종목 코드 목록
SetInputValue() TR 입력값 설정
CommRqData() TR 데이터 요청
OnReceiveTrData() TR 결과 수신 이벤트
OnReceiveRealData() 실시간 데이터 수신 이벤트

🔐 6. 로그인 처리 예제

[폼 디자인]

  • axKHOpenAPI 컨트롤 추가
  • 버튼(Button1): "로그인"

도구상자 구성요서 KHOpenApi Control 선택
Visual Studio 2019에서 디자인 구성 화면

[코드 예제]

vb.net

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        AddHandler axKHOpenAPI.OnEventConnect, AddressOf OnEventConnect
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        axKHOpenAPI.CommConnect()
    End Sub

    Private Sub OnEventConnect(nErrCode As Integer)
        If nErrCode = 0 Then
            MessageBox.Show("로그인 성공")
        Else
            MessageBox.Show("로그인 실패. 오류코드: " & nErrCode)
        End If
    End Sub
End Class

📡 7. 실시간 시세 수신 예제

실시간 시세 등록

vb.net

axKHOpenAPI.SetRealReg("1000", "005930", "10;11;12", "0")
  • "005930": 삼성전자 종목 코드
  • "10;11;12": 체결가, 거래량, 시가 등 실시간 항목
  • "0": 기존 실시간 연결 유지

이벤트 처리

vb.net

Private Sub axKHOpenAPI_OnReceiveRealData(sender As Object, e As AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveRealDataEvent) Handles axKHOpenAPI.OnReceiveRealData
    If e.sRealType = "주식체결" Then
        Dim 체결가 = axKHOpenAPI.GetCommRealData(e.sCode, 10).Trim()
        Dim 거래량 = axKHOpenAPI.GetCommRealData(e.sCode, 15).Trim()
        Debug.WriteLine("체결가: " & 체결가 & ", 거래량: " & 거래량)
    End If
End Sub

🧯 8. 오류 처리 및 주의사항

  • x64 빌드 금지 – 반드시 x86으로 설정
  • 실시간 데이터는 5초 요청 제한 존재
  • 로그인 후에만 TR 요청 가능
  • 응답 지연 및 한글 깨짐 주의 (UTF-8 ↔ EUC-KR 문제)

💡 9. 자주 묻는 질문 (FAQ)

❓ Q. 로그인 후 계좌 정보는 어떻게 얻나요?

vb.net

Dim 계좌 = axKHOpenAPI.GetLoginInfo("ACCNO")

❓ Q. 종목코드는 어떻게 얻나요?

vb.net 

Dim kospiList = axKHOpenAPI.GetCodeListByMarket("0").Split(";")

🏷️ 주요 키워드 (SEO 최적화용)

  • 키움 OpenAPI VB.NET
  • VB.NET 키움 API OCX
  • 키움 Open API 로그인 예제
  • 키움증권 자동매매 VB.NET
  • KHOpenAPI WinForm
  • 키움증권 주식 데이터 실시간 수신
  • Visual Basic 키움 연동 방법
  • 키움 Open API+ 종목 조회 VB

📌 결론

VB.NET 기반 윈도우폼에서 키움증권 Open API+를 OCX 방식으로 연동하면 실시간 시세 수신, 자동매매, 주식 데이터 수집이 가능합니다. 본 가이드를 통해 VB 초보자도 쉽게 자동화 시스템을 구축할 수 있습니다.

반응형