KR 주식 주문 거절 시 rt_cd 미체크로 오알림·오기록 발생 #398

Closed
opened 2026-03-03 09:31:48 +09:00 by agentson · 0 comments
Collaborator

버그 설명

국내(KR) 주식 주문 후 KIS API가 에러를 반환해도 order_succeededTrue로 유지되어,
텔레그램 BUY 알림 발송 및 DB 기록이 이루어지는 버그.

재현 경위

2026-03-03 08:00 KST (UTC 23:00), 장 시작 전에 000157, 000240 BUY 주문이 발생.

KIS API 응답: 장운영시간이 아닙니다 (rt_cd != '0')

결과:

  • 텔레그램 BUY 알림 오발송
  • DB(trade_logs_live.db)에 BUY 기록 남음
  • already holding open position 포지션 오기록으로 이후 매수 억제

근본 원인

src/main.py에서 해외 주식은 rt_cd 체크(라인 2136-2138)가 있으나,
국내 주식은 send_order 호출 후 rt_cd 체크가 없음.

# 라인 2081-2086: KR 주식 주문
result = await broker.send_order(...)
# ← 여기에 rt_cd 체크 없음!

# 라인 2136-2138: 해외 주식만 체크
if result.get('rt_cd', '') != '0':
    order_succeeded = False

영향

  • 장운영시간 외 주문 시 항상 재현
  • 텔레그램 오알림으로 사용자 혼동
  • DB 가짜 BUY 기록으로 포지션 오추적 (매수 억제 오작동)

수정 방향

국내 주식 send_order 직후 해외 주식과 동일하게 rt_cd 체크 추가:

result = await broker.send_order(...)
if result.get('rt_cd', '') != '0':
    order_succeeded = False
    logger.warning('KR order not accepted for %s: rt_cd=%s msg=%s', ...)
## 버그 설명 국내(KR) 주식 주문 후 KIS API가 에러를 반환해도 `order_succeeded`가 `True`로 유지되어, 텔레그램 BUY 알림 발송 및 DB 기록이 이루어지는 버그. ## 재현 경위 2026-03-03 08:00 KST (UTC 23:00), 장 시작 전에 000157, 000240 BUY 주문이 발생. KIS API 응답: **`장운영시간이 아닙니다`** (rt_cd != '0') 결과: - 텔레그램 BUY 알림 오발송 - DB(`trade_logs_live.db`)에 BUY 기록 남음 - `already holding open position` 포지션 오기록으로 이후 매수 억제 ## 근본 원인 `src/main.py`에서 해외 주식은 `rt_cd` 체크(라인 2136-2138)가 있으나, **국내 주식은 `send_order` 호출 후 rt_cd 체크가 없음**. ```python # 라인 2081-2086: KR 주식 주문 result = await broker.send_order(...) # ← 여기에 rt_cd 체크 없음! # 라인 2136-2138: 해외 주식만 체크 if result.get('rt_cd', '') != '0': order_succeeded = False ``` ## 영향 - 장운영시간 외 주문 시 항상 재현 - 텔레그램 오알림으로 사용자 혼동 - DB 가짜 BUY 기록으로 포지션 오추적 (매수 억제 오작동) ## 수정 방향 국내 주식 `send_order` 직후 해외 주식과 동일하게 `rt_cd` 체크 추가: ```python result = await broker.send_order(...) if result.get('rt_cd', '') != '0': order_succeeded = False logger.warning('KR order not accepted for %s: rt_cd=%s msg=%s', ...) ```
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jihoson/The-Ouroboros#398