🚀 영웅문4 OpenAPI & VB.NET 자동매매 – 3단계: 실시간 체결 + 주문 자동화

반응형

3단계: 실시간 체결 + 주문 자동화

✅ STEP 3-1: 실시간 체결 데이터 수신하기

📌 실시간 종목 등록

vb.net

axKH.SetRealReg("1001", "005930", "10;20;21", "0")
  • "10" = 현재가, "20" = 체결량, "21" = 체결강도

📌 실시간 이벤트 수신 처리

vb.net

Private Sub axKH_OnReceiveRealData(sender As Object, e As _DKHOpenAPIEvents_OnReceiveRealDataEvent) Handles axKH.OnReceiveRealData
    If e.sRealType = "주식체결" Then
        Dim price = axKH.GetCommRealData(e.sRealKey, 10) ' 현재가
        Dim volume = axKH.GetCommRealData(e.sRealKey, 15) ' 거래량
        lstLog.Items.Add($"체결 ▶ {e.sRealKey} / 가격: {price} / 수량: {volume}")
    End If
End Sub

✅ STEP 3-2: 매수 / 매도 주문 실행하기

📌 기본 주문 함수

vb.net

axKH.SendOrder("주문1", "1002", "계좌번호", 1, "005930", 10, 0, "03", "")

 

    • "1" = 신규 매수, "2" = 신규 매도
    • "03" = 시장가, "00" = 지정가
    • 마지막 ""은 조건주문용이지만 빈칸으로 둠

✅ STEP 3-3: 잔고 및 주문체결 내역 조회

📌 잔고 요청

vb.net

axKH.SetInputValue("계좌번호", "12345678")
axKH.SetInputValue("비밀번호", "0000")
axKH.CommRqData("잔고요청", "opw00018", 0, "2000")

📌 주문체결 결과 받기

vb.net

Private Sub axKH_OnReceiveChejanData(...) Handles axKH.OnReceiveChejanData
    Dim stock = axKH.GetChejanData(9001) ' 종목코드
    Dim price = axKH.GetChejanData(910)  ' 체결단가
    Dim qty = axKH.GetChejanData(911)    ' 체결수량
    lstLog.Items.Add($"체결 완료 ▶ {stock} / 단가: {price} / 수량: {qty}")
End Sub

✅ STEP 3-4: 조건식 트리거로 자동매수 연결하기

📌 조건식 연동 이벤트

vb.net

Private Sub axKH_OnReceiveRealCondition(...) Handles axKH.OnReceiveRealCondition
    If e.strType = "I" Then ' 종목 진입
        axKH.SendOrder("자동매수", "3000", "12345678", 1, e.sTrCode, 1, 0, "03", "")
        lstLog.Items.Add($"조건 충족 ▶ {e.sTrCode} 매수 주문")
    End If
End Sub

🧠 단계 요약: 실전 자동화 로직 구성

기능핵심 메서드설명
실시간 체결 수신 SetRealReg, OnReceiveRealData 종목 실시간 모니터링
주문 실행 SendOrder 시장가, 지정가 주문 가능
주문 체결 수신 OnReceiveChejanData 체결된 주문 콜백 수신
잔고 조회 CommRqData("opw00018") 현재 보유 종목 및 수익 확인
조건식 자동매매 OnReceiveRealCondition, SendOrder 조건식 충족 시 자동 주문 실행
반응형