feat: implement timezone-based global market auto-selection #5

Closed
opened 2026-02-04 08:48:18 +09:00 by agentson · 0 comments
Collaborator

개요

시간대 기반으로 열려 있는 글로벌 시장을 자동 감지하고, KIS 해외주식 API 브로커를 추가하여 메인 루프에서 활성 시장에 맞게 동작하도록 확장

주요 기능

  1. 시장 스케줄 모듈 - 10개 시장의 개장/폐장 시간, 시간대 정보 관리
  2. 해외주식 브로커 - KIS API 해외 시세/잔고/주문 기능
  3. 자동 시장 선택 - 현재 시각 기준 열린 시장 자동 감지
  4. 다음 개장 대기 - 모든 시장 폐장 시 다음 개장 시각까지 대기

새로 생성하는 파일

  • src/markets/__init__.py
  • src/markets/schedule.py (MarketInfo, is_market_open, get_open_markets, get_next_market_open)
  • src/broker/overseas.py (OverseasBroker)
  • tests/test_market_schedule.py (~15 tests)

수정하는 파일

  • src/config.py (ENABLED_MARKETS 설정 추가)
  • src/main.py (메인 루프 리팩토링: 시장별 워치리스트, 재시도 로직)
  • src/db.py (trades 테이블에 market, exchange_code 컬럼 추가)
  • src/brain/gemini_client.py (시장 컨텍스트 프롬프트 반영)
  • tests/conftest.py (ENABLED_MARKETS 기본값)

구현 순서

  1. 시장 스케줄 모듈 + 테스트
  2. 해외주식 브로커
  3. 설정 확장
  4. DB 스키마 마이그레이션
  5. 메인 루프 리팩토링
  6. Brain 시장 컨텍스트
  7. 통합 테스트

제약사항

  • core/risk_manager.py는 READ-ONLY (변경 없음)
  • 테스트 커버리지 >= 80% 유지
  • 워치리스트는 현재 하드코딩 방식 유지 (추후 별도 변경)

참고

상세 구현 계획: /home/agentson/repos/The-Ouroboros/.claude/projects/-home-agentson-repos-The-Ouroboros/428d0286-6c91-496f-9fd7-58400028f68c.jsonl

## 개요 시간대 기반으로 열려 있는 글로벌 시장을 자동 감지하고, KIS 해외주식 API 브로커를 추가하여 메인 루프에서 활성 시장에 맞게 동작하도록 확장 ## 주요 기능 1. **시장 스케줄 모듈** - 10개 시장의 개장/폐장 시간, 시간대 정보 관리 2. **해외주식 브로커** - KIS API 해외 시세/잔고/주문 기능 3. **자동 시장 선택** - 현재 시각 기준 열린 시장 자동 감지 4. **다음 개장 대기** - 모든 시장 폐장 시 다음 개장 시각까지 대기 ## 새로 생성하는 파일 - `src/markets/__init__.py` - `src/markets/schedule.py` (MarketInfo, is_market_open, get_open_markets, get_next_market_open) - `src/broker/overseas.py` (OverseasBroker) - `tests/test_market_schedule.py` (~15 tests) ## 수정하는 파일 - `src/config.py` (ENABLED_MARKETS 설정 추가) - `src/main.py` (메인 루프 리팩토링: 시장별 워치리스트, 재시도 로직) - `src/db.py` (trades 테이블에 market, exchange_code 컬럼 추가) - `src/brain/gemini_client.py` (시장 컨텍스트 프롬프트 반영) - `tests/conftest.py` (ENABLED_MARKETS 기본값) ## 구현 순서 1. 시장 스케줄 모듈 + 테스트 2. 해외주식 브로커 3. 설정 확장 4. DB 스키마 마이그레이션 5. 메인 루프 리팩토링 6. Brain 시장 컨텍스트 7. 통합 테스트 ## 제약사항 - core/risk_manager.py는 READ-ONLY (변경 없음) - 테스트 커버리지 >= 80% 유지 - 워치리스트는 현재 하드코딩 방식 유지 (추후 별도 변경) ## 참고 상세 구현 계획: /home/agentson/repos/The-Ouroboros/.claude/projects/-home-agentson-repos-The-Ouroboros/428d0286-6c91-496f-9fd7-58400028f68c.jsonl
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jihoson/The-Ouroboros#5