🎯 영웅문4 OpenAPI + Python 완전 정복 - 3단계: 조건검색식 연동 & 자동 종목 수신

반응형

OpenAPI + Python 완전 정복 - 3단계: 조건검색식 연동 & 자동 종목 수신

✅ 3단계 개요: 조건 검색이란?

조건 검색 = 키움증권에서 직접 만든 자동 종목 필터링 기능

예) 아래와 같은 조건을 만들어 둘 수 있습니다:

  • 일목균형표(9,26,52) 1붕이내 기준선 선행스팬 1 상향
  • 주가벙위:0일전 종가가 10000 이상 1000000이하
  • [일]거래량:200000이상 999999999이하
  •  

키움 조건식 설정 화면


🛠️ STEP 1. 조건식 리스트 불러오기

🔹 전체 조건식 불러오기 (OnReceiveConditionVer)

python

class KiwoomEventHandler:
    def OnReceiveConditionVer(self, ret, msg):
        print("✅ 조건식 목록 불러오기 완료")
        condition_list = kiwoom.GetConditionNameList()
        print("조건식 목록:", condition_list)
        # 예시: "0^단기급등주;1^돌파종목;2^급등주출현"

        for item in condition_list.split(";"):
            if item:
                index, name = item.split("^")
                print(f"Index: {index}, Name: {name}")
                kiwoom.SendCondition("0150", name, int(index), 0)  # 실시간 off (0)
python

kiwoom = win32com.client.DispatchWithEvents("KHOPENAPI.KHOpenAPICtrl.1", KiwoomEventHandler)
kiwoom.CommConnect()

# 이벤트 루프
while kiwoom.GetConnectState() == 0:
    pythoncom.PumpWaitingMessages()

# 조건식 요청
kiwoom.GetConditionLoad()  # → 완료되면 OnReceiveConditionVer 호출됨

while True:
    pythoncom.PumpWaitingMessages()

🔄 STEP 2. 조건식 결과 수신 (OnReceiveTrCondition)

python

def OnReceiveTrCondition(self, screenNo, code_list, condition_name, index, next):
    print(f"📥 조건식 '{condition_name}' 결과 수신")
    codes = code_list.split(";")
    for code in codes:
        if code:
            print("▶ 종목코드:", code)

📷 실행 결과 예시

text

✅ 조건식 목록 불러오기 완료
조건식 목록: 0^단기급등주;1^돌파종목;
Index: 0, Name: 단기급등주
📥 조건식 '단기급등주' 결과 수신
▶ 종목코드: 005930
▶ 종목코드: 035420

📈 STEP 3. 조건식 + 실시간 감시 (옵션)

🔹 실시간 조건 검색 활성화 (SendCondition의 마지막 인자 → 1)

python

kiwoom.SendCondition("0150", "단기급등주", 0, 1)

이렇게 설정하면 새로운 종목이 조건에 들어오거나 빠질 때마다
OnReceiveRealCondition 이벤트가 호출됩니다.

python

def OnReceiveRealCondition(self, code, event_type, condition_name, index):
    print(f"🔄 조건 이벤트 - 종목:{code}, 상태:{event_type}, 조건:{condition_name}")

 

  • event_type == "I": 조건에 진입
  • event_type == "D": 조건에서 이탈

📌 조건 검색 핵심 요약

기능 함수 설명
조건 목록 불러오기 GetConditionLoad() 사용자가 설정한 조건 전체 로드
조건식 이름 가져오기 GetConditionNameList() "0^급등주;1^단타전략" 형식
조건식 실행 SendCondition(...) 조건 검색 실행 및 종목 반환
TR 응답 수신 OnReceiveTrCondition() 결과 종목 리스트 반환
실시간 감지 OnReceiveRealCondition() 종목 진입/이탈 이벤트 수신

 

 

반응형