97 lines
2.7 KiB
Markdown
97 lines
2.7 KiB
Markdown
# The Ouroboros — 자가 진화형 AI 투자 시스템
|
|
|
|
KIS API 기반 자동매매 + Gemini 기반 장전 전략 생성 + 장중 로컬 시나리오 실행 + 장후 리뷰/진화 루프를 결합한 시스템입니다.
|
|
|
|
## 현재 상태 (2026-02-16)
|
|
|
|
- V2 계획 기준 완료: **18/20**
|
|
- 부분 완료: **1/20** (`1-7` 일부 항목)
|
|
- 미완료: **1/20** (`4-1` Telegram 확장 명령어)
|
|
|
|
핵심 전환은 이미 반영되었습니다.
|
|
|
|
- 기존: 장중 `brain.decide()` 실시간 의존
|
|
- 현재: 장전 `DayPlaybook` 생성 + 장중 `ScenarioEngine` 로컬 매칭
|
|
|
|
## 핵심 구성
|
|
|
|
- `src/main.py`: 시장 루프, 플레이북 생성/적용, EOD 집계, 리뷰/진화 연결
|
|
- `src/strategy/`: `models`, `pre_market_planner`, `scenario_engine`, `playbook_store`
|
|
- `src/context/`: `store`, `aggregator`, `scheduler` (L1~L7)
|
|
- `src/evolution/daily_review.py`: 시장별 scorecard/lessons 생성
|
|
- `src/dashboard/app.py`: FastAPI 관측 API
|
|
- `src/notifications/telegram_client.py`: 알림 및 명령 핸들러
|
|
|
|
## 실행
|
|
|
|
### 기본 실행
|
|
|
|
```bash
|
|
python -m src.main --mode=paper
|
|
```
|
|
|
|
### 대시보드 포함 실행
|
|
|
|
```bash
|
|
python -m src.main --mode=paper --dashboard
|
|
```
|
|
|
|
또는 환경변수:
|
|
|
|
```bash
|
|
DASHBOARD_ENABLED=true
|
|
DASHBOARD_HOST=127.0.0.1
|
|
DASHBOARD_PORT=8080
|
|
```
|
|
|
|
## 주요 API/기능
|
|
|
|
- 플레이북 저장: `playbooks` 테이블 (`date + market` UNIQUE)
|
|
- 의사결정/결과 연결: `trades.decision_id` + `DecisionLogger.update_outcome()`
|
|
- 시장별 scorecard 컨텍스트: `scorecard_KR`, `scorecard_US`
|
|
- 컨텍스트 스케줄러: weekly/monthly/quarterly/annual/legacy + cleanup
|
|
- 대시보드 API:
|
|
- `/api/status`
|
|
- `/api/playbook/{date}?market=KR`
|
|
- `/api/scorecard/{date}?market=KR`
|
|
- `/api/performance?market=all`
|
|
- `/api/context/{layer}`
|
|
- `/api/decisions?market=KR`
|
|
- `/api/scenarios/active?market=US`
|
|
|
|
## 현재 갭 (코드 기준)
|
|
|
|
- `Issue 4-1` 미구현: `/report`, `/scenarios`, `/review`, `/dashboard` Telegram 명령 미등록
|
|
- `Issue 1-7` 일부 미완:
|
|
- `price_change_pct` 정규화 어댑터 명시 구현 없음
|
|
- HOLD 시 별도 손절 모니터링 플래그 처리 분리 미흡
|
|
- 시장 코드 정합성 이슈:
|
|
- 설정 기본값은 `ENABLED_MARKETS="KR,US"`
|
|
- 스케줄 정의는 `US_NASDAQ`, `US_NYSE` 중심
|
|
- 완전 통합 전 추가 정리 필요
|
|
|
|
## 테스트
|
|
|
|
로컬 수집 기준:
|
|
|
|
```bash
|
|
pytest --collect-only -q
|
|
# 538 tests collected
|
|
```
|
|
|
|
권장 검증:
|
|
|
|
```bash
|
|
pytest -v --cov=src
|
|
ruff check src/ tests/
|
|
mypy src/ --strict
|
|
```
|
|
|
|
## 문서
|
|
|
|
- 아키텍처: `docs/architecture.md`
|
|
- 컨텍스트 트리: `docs/context-tree.md`
|
|
- 워크플로우: `docs/workflow.md`
|
|
- 요구사항 로그: `docs/requirements-log.md`
|
|
- 명령 레퍼런스: `docs/commands.md`
|