📘 영웅문4 OpenAPI + C# 완전 정복 - 4단계: 실시간 체결가 수신 → 자동 매수/매도 주문 구조 구현

반응형

OpenAPI + C# 완전 정복 - 4단계: 실시간 체결가 수신 → 자동 매수/매도 주문 구조 구현

✅ 왜 실시간 체결가 기반 주문이 중요한가요?

  • 실시간 체결가는 시장 움직임을 가장 빠르게 반영하는 지표입니다.
  • 조건검색/전략 판단 후 실시간 체결 가격을 받아 정확한 타이밍에 주문을 넣는 것이 필수입니다.

🧩 STEP 1. 실시간 체결가 수신 등록

C#

axKHOpenAPI1.SetRealReg("1000", "005930", "10;15", "0");
필드 설명
   10   현재가
   15   체결량

🔔 STEP 2. 실시간 체결 데이터 수신 이벤트

C#

private void axKHOpenAPI1_OnReceiveRealData(object sender, _DKHOpenAPIEvents_OnReceiveRealDataEvent e)
{
    if (e.sRealType == "주식체결")
    {
        string currentPrice = axKHOpenAPI1.GetCommRealData(e.sRealKey, 10).Trim();
        string volume = axKHOpenAPI1.GetCommRealData(e.sRealKey, 15).Trim();

        listBox1.Items.Add($"[체결 수신] 현재가: {currentPrice}, 체결량: {volume}");

        // 조건에 따라 자동 매수 실행
        if (int.Parse(volume.Replace("+", "").Replace("-", "")) > 1000)
        {
            SendBuyOrder(e.sRealKey, currentPrice);
        }
    }
}

📷 실시간 체결 수신 UI 예시

[체결 수신] 현재가: 78,500, 체결량: 1,200
→ 조건 충족 → 자동 매수 실행

💸 STEP 3. 자동 매수 주문 함수 (SendOrder)

C#

private void SendBuyOrder(string code, string price)
{
    int order = axKHOpenAPI1.SendOrder(
        "자동매수",       // 화면번호
        "1001",          // 주문 고유 ID
        "계좌번호",       // 실제 계좌번호
        1,               // 주문유형: 1=매수, 2=매도
        code,            // 종목코드
        10,              // 수량
        0,               // 가격 (시장가일 경우 0)
        "03",            // 시장가 주문
        ""
    );

    if (order == 0)
        listBox1.Items.Add($"✅ 매수주문 성공: {code}");
    else
        listBox1.Items.Add($"❌ 매수주문 실패: 코드 {order}");
}

주문 유형 코드표

코드 설명
    00   지정가
    03   시장가
    05   조건부지정가
    10   지정가IOC
    20   시장가IOC

🔁 STEP 4. 자동 매도 주문 예시

C#

private void SendSellOrder(string code, int quantity)
{
    axKHOpenAPI1.SendOrder(
        "자동매도", "1002", "계좌번호", 2,
        code, quantity, 0, "03", ""
    );
}

🧠 주문 흐름 요약

📷 자동매매 구조 다이어그램

[실시간 체결 수신]
      ↓
[조건 판단]
      ↓
[자동 주문 실행 (SendOrder)]
      ↓
[실행 결과 알림 or 기록]

🔗 실전에서는 매수 후 → 일정 수익률 도달 시 자동 매도 구조도 함께 구성합니다.


✅ 실전 팁: 필수 보완 기능

기능 설명
✅ 주문 로그 기록 CSV 또는 텍스트로 실행 로그 저장
✅ 잔고 조회 후 주문 매수 가능 여부 확인 필수
✅ 실계좌 분리 테스트 모의 계좌와 실계좌 구분 (계좌번호 조건 처리)
반응형