feat: 다중 시장 병렬 처리 (현재 순차 처리로 시장 간 지연 발생) #401

Closed
opened 2026-03-04 01:18:16 +09:00 by agentson · 1 comment
Collaborator

문제 요약

한국 시장(KRX)과 미국 시장이 동시에 활성일 때(KST 10:00-15:30) 시장 간 처리가 순차적으로 이루어져 각 시장의 실시간성이 저하됨.

현재 구조

# main.py:4210
for market in open_markets:      # 시장 순차 처리
    for stock_code in stock_codes:  # 종목 순차 처리
        await trading_cycle(...)

KR + US_NASDAQ + US_NYSE + US_AMEX가 동시에 활성이면 4개 시장을 한 루프에서 순차 처리.
한국 종목 처리 중에는 미국 종목이 대기 상태가 됨.

시간대 중복 현황

KST 한국 미국 세션 동시 활성 시장
10:00-15:30 KRX 정규장 US_DAY KR + US 3개 = 4개 시장
23:30-06:00 없음 US_REG US 3개 시장

기대 동작

각 시장을 **독립 태스크(asyncio.gather 또는 asyncio.create_task)**로 병렬 실행.

# 목표 구조 (예시)
await asyncio.gather(*[
    process_market(market, ...) for market in open_markets
])

고려사항

  • 시장별 공유 상태(_market_states, playbooks, active_stocks, last_scan_time) 동시 접근 시 race condition 방지 필요
  • 브로커 API rate limit — KIS API 동시 호출 제한 확인 필요
  • 회로 차단기(CircuitBreakerTripped) 처리: 어느 시장에서 트립되어도 전체 shutdown

관련 파일

  • src/main.py (L4153-4500, realtime 루프 전체)

연관 이슈

  • #400 (US 시장 세션 전환 미처리) — 함께 수정 시 시너지
## 문제 요약 한국 시장(KRX)과 미국 시장이 동시에 활성일 때(KST 10:00-15:30) 시장 간 처리가 순차적으로 이루어져 각 시장의 실시간성이 저하됨. ## 현재 구조 ```python # main.py:4210 for market in open_markets: # 시장 순차 처리 for stock_code in stock_codes: # 종목 순차 처리 await trading_cycle(...) ``` KR + US_NASDAQ + US_NYSE + US_AMEX가 동시에 활성이면 4개 시장을 **한 루프에서 순차 처리**. 한국 종목 처리 중에는 미국 종목이 대기 상태가 됨. ## 시간대 중복 현황 | KST | 한국 | 미국 세션 | 동시 활성 시장 | |-----|------|----------|--------------| | 10:00-15:30 | KRX 정규장 | US_DAY | KR + US 3개 = 4개 시장 | | 23:30-06:00 | 없음 | US_REG | US 3개 시장 | ## 기대 동작 각 시장을 **독립 태스크(asyncio.gather 또는 asyncio.create_task)**로 병렬 실행. ```python # 목표 구조 (예시) await asyncio.gather(*[ process_market(market, ...) for market in open_markets ]) ``` ## 고려사항 - 시장별 공유 상태(`_market_states`, `playbooks`, `active_stocks`, `last_scan_time`) 동시 접근 시 race condition 방지 필요 - 브로커 API rate limit — KIS API 동시 호출 제한 확인 필요 - 회로 차단기(CircuitBreakerTripped) 처리: 어느 시장에서 트립되어도 전체 shutdown ## 관련 파일 - `src/main.py` (L4153-4500, realtime 루프 전체) ## 연관 이슈 - #400 (US 시장 세션 전환 미처리) — 함께 수정 시 시너지
Owner

회로 차단기가 어떤건지 어떨때 동작하는지는 모르겠지만, 시장마다 별개여야 하지 않을까?

회로 차단기가 어떤건지 어떨때 동작하는지는 모르겠지만, 시장마다 별개여야 하지 않을까?
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jihoson/The-Ouroboros#401