fix: US 시장 세션 전환 미처리 (US_DAY 활성 처리, 정규장 오픈 이벤트 누락) #400
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
문제 요약
미국 정규장(US_REG, KST 23:30) 오픈 시 마켓 오픈 알림 미발송, 플레이북 미생성, 거래 미발생.
근본 원인
버그 1:
_market_states가 세션을 구분하지 않음 (main.py:4047)_market_states: dict[str, bool]은 마켓 코드만 추적하고, 세션(US_PRE → US_REG)을 구분하지 않음._market_states["US_NASDAQ"] = True로 설정notify_market_open()미발동버그 2: 스캐너 인터벌이 세션 전환을 무시 (
main.py:4266)RESCAN_INTERVAL_SECONDS기준으로만 재스캔 판단. 세션 전환 시 강제 재스캔 없음.버그 3: US_DAY를 실질적 OFF인데 활성으로 처리 (
order_policy.py:49,schedule.py:210)US_DAY(KST 10:00-18:00 = EST 01:00-09:00)는 미국 시장이 심야/새벽이라 실질적으로 OFF.
get_open_markets(include_extended_sessions=True)가 활성으로 반환기대 동작
수정 방향
_market_states를dict[str, str](session_id 추적)으로 변경 → 세션 전환 감지US_REG진입 시 강제 재스캔 + 플레이북 재생성 + 마켓 오픈 알림US_DAY는US_OFF처럼 처리하거나 최소한 플레이북 생성/거래를 하지 않도록 분리관련 파일
src/main.py(L4047, L4231, L4266, L4312)src/core/order_policy.py(L48-57)src/markets/schedule.py(L202-211)US_DAY도 거래는 가능할텐데, 동작은 해야 하는거 아닐까? 수수료가 비싸다거나 하면 정책에 반영이 필요한거지 동작 안하는건 좀 이상해.