🧠 키움증권 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 초보자도 쉽게 자동화 시스템을 구축할 수 있습니다.

반응형