반응형
초보자도 따라할 수 있는 완벽 가이드
키움 Open API+ OCX를 VB.NET 윈도우폼(WinForm) 애플리케이션에서 사용하는 방법을 단계별로 설명합니다.
🔍 목차
- 키움증권 Open API+ 개요
- 사전 준비 사항
- OCX 컨트롤 등록 방법
- VB.NET WinForm 프로젝트 생성 및 설정
- 주요 이벤트 및 함수 설명
- 로그인 처리 구현 예제
- 실시간 데이터 수신 구현 예제
- 에러 처리 및 팁
- 자주 묻는 질문 (FAQ)
🧩 1. 키움 Open API+란?
**키움증권 Open API+**는 개인 투자자나 개발자가 직접 자동매매 프로그램, 주식 정보 수집기 등을 만들 수 있도록 키움에서 제공하는 OCX 기반 ActiveX 컨트롤입니다.
✅ 주요 기능: 로그인, 주식 시세 조회, 주문 실행, 실시간 체결 데이터 수신 등
🧰 2. 사전 준비 사항
- 키움증권 계좌 개설 및 HTS 설치 (영웅문4)
- 키움증권 Open API+ 설치 다운로드 페이지
- Visual Studio 2019 이상 (VB.NET) 다운로드 페이지
- 32비트 설정 필수!
🧱 3. OCX 컨트롤 등록 방법
- 관리자 권한으로 CMD 실행
- 아래 명령어로 등록:
cmd
regsvr32 "C:\OpenAPI\KOAStudio.ocx"
regsvr32 "C:\OpenAPI\kiwoomOpenAPI.ocx"
🔔 64비트 OS라도 Visual Studio는 x86(32bit) 모드로 설정해야 합니다.
🛠 4. VB.NET WinForm 프로젝트 설정
- Visual Studio > 새 프로젝트 > VB.NET WinForms App 선택
- 프로젝트 속성 > 컴파일 대상: x86 으로 설정
도구 상자에 OCX 컨트롤 수동 등록:
- 도구 상자 우클릭 > 구성 요소 선택
- COM 구성 요소 탭에서 "KHOpenAPI Control" 체크
🧪 5. 주요 이벤트 및 메서드 요약
메서드 / 이벤트설명
CommConnect() | 로그인 요청 |
OnEventConnect | 로그인 결과 이벤트 |
GetCodeListByMarket() | 종목 코드 목록 |
SetInputValue() | TR 입력값 설정 |
CommRqData() | TR 데이터 요청 |
OnReceiveTrData() | TR 결과 수신 이벤트 |
OnReceiveRealData() | 실시간 데이터 수신 이벤트 |
🔐 6. 로그인 처리 예제
[폼 디자인]
- axKHOpenAPI 컨트롤 추가
- 버튼(Button1): "로그인"
[코드 예제]
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 초보자도 쉽게 자동화 시스템을 구축할 수 있습니다.
반응형