반응형
✅ 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() | 종목 진입/이탈 이벤트 수신 |
반응형