반응형
✅ 4단계 개요: 실시간 시세 수신 & 자동매매 연결
이전 단계까지는 종목을 필터링했다면,
이제는 "실시간 주가 흐름"에 따라 자동으로 매수/매도를 실행합니다.
🔁 STEP 1. 실시간 시세 등록 (SetRealReg)
🔹 기본 구조
python
kiwoom.SetRealReg("1000", "005930", "10;11;12", "0")
인자 | 설명 |
"1000" | 화면번호 (임의 문자열) |
"005930" | 종목코드 |
"10;11;12" | 실시간 필드 코드 (10:현재가, 11:전일대비, 12:등락률) |
"0" | 기존 실시간 등록 해제 여부 (0:추가, 1:갱신) |
📡 STEP 2. 실시간 시세 수신 이벤트 구현 (OnReceiveRealData)
python
def OnReceiveRealData(self, code, real_type, real_data):
if real_type == "주식체결":
price = kiwoom.GetCommRealData(code, 10) # 현재가
volume = kiwoom.GetCommRealData(code, 15) # 체결량
print(f"[실시간] 종목: {code}, 현재가: {price}, 체결량: {volume}")
# 예: 매수 조건
if int(price.replace("-", "").replace("+", "").replace(",", "")) < 80000:
print("🔔 매수 조건 충족 - 주문 전송 시뮬레이션")
# 실제 매수 실행 함수 호출 가능
📷 실시간 출력 예시
text
[실시간] 종목: 005930, 현재가: 79,400, 체결량: 1500
🔔 매수 조건 충족 - 주문 전송 시뮬레이션
💸 STEP 3. 매수/매도 주문 실행
키움 API는 SendOrder 함수로 주문을 실행합니다.
python
kiwoom.SendOrder(
"자동매수", # 주문 요청 이름
"2000", # 화면 번호
"8123456789", # 계좌번호
1, # 주문유형 (1:매수, 2:매도)
"005930", # 종목코드
10, # 주문수량
0, # 주문가격 (시장가일 경우 0)
"03", # 주문구분 (03:시장가)
"" # 원주문번호 (정정/취소 시)
)
주문유형 | 의미 |
1 | 매수 |
2 | 매도 |
3~6 | 정정/취소 등 |
주문구분 | 코드의미 |
00 | 지정가 |
03 | 시장가 |
05 | 조건부지정가 |
✅ 매수 실행 예시 코드
python
def send_buy_order(code, qty=10):
account = kiwoom.GetLoginInfo("ACCNO").split(";")[0] # 첫 계좌
kiwoom.SendOrder("매수주문", "2001", account, 1, code, qty, 0, "03", "")
print(f"🛒 매수 주문 전송 완료: {code}, 수량: {qty}")
⚠️ 안전장치: 실거래 테스트 전 체크사항
- 모의투자 계좌로 실행하세요!
→ 실전 매매는 엄청난 손실로 이어질 수 있습니다 - 잔고 확인 필수! → GetChejanData() 또는 잔고조회 API 사용
- 시장가 주문 주의 → 03 (시장가)는 즉시 체결됩니다
반응형