반응형
✅ 왜 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 프로젝트 생성
- Visual Studio 실행
- Windows Forms App (.NET Framework) 프로젝트 생성
- 프로젝트 이름: KiwoomOpenAPI_CS
📷 Visual Studio 프로젝트 생성 예시
🔌 STEP 3. OpenAPI ActiveX 컨트롤 추가
- 툴박스 우클릭 → Choose Items…
- COM Components 탭 선택
- KHOpenAPI Control 체크
- 폼에 드래그해서 추가
📷 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원
반응형