You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

181 lines
4.3 KiB
Markdown

# Implementation Plan
이 문서는 AI 코딩 에이전트가 Phase 4를 실제로 구현할 때의 권장 작업 순서와 완료 기준을 정의합니다.
## 1. 작업 목표
아래 6개를 끝까지 구현합니다.
1. manifest-driven backtest runner
2. snapshot reader
3. candidate selection / portfolio allocation
4. entry/exit simulation
5. metrics / artifact writer
6. experiment replay / walk-forward support
## 2. 작업 분할
### Task 1. core domain models
구현 대상:
- Candidate
- PlannedOrder
- FilledTrade
- OpenPosition
- DailyPortfolioState
- ExperimentResult
- MetricsBundle
완료 기준:
- domain model 타입이 고정되고 직렬화 가능하다.
- blotter / equity curve / position timeline에 필요한 필드가 모두 있다.
### Task 2. market calendar and date alignment
구현 대상:
- trading calendar wrapper
- next trading day lookup
- reaction day / execution day resolver
- timezone utilities
완료 기준:
- 장전/장중/장후 event timestamp를 정확히 trading session으로 매핑한다.
- 휴장일/조기폐장을 안전하게 처리한다.
### Task 3. snapshot store
구현 대상:
- feature snapshot loader
- market bar loader
- regime loader
- instrument master loader
완료 기준:
- 특정 run이 같은 snapshot id로 동일 입력을 재현할 수 있다.
- future rows가 로드되지 않는다.
### Task 4. candidate selector
구현 대상:
- score threshold filter
- universe filters
- duplicate issuer/event cluster filter
- deterministic sort and tie-break
완료 기준:
- 날짜별 후보 종목이 재현 가능하게 생성된다.
- skip reason이 모두 기록된다.
### Task 5. portfolio allocator
구현 대상:
- per-trade risk sizing
- max positions gate
- sector gate
- daily risk budget gate
- cash/exposure updates
완료 기준:
- 같은 입력에서 항상 같은 주문 계획이 나온다.
- 거절 사유가 구조화되어 남는다.
### Task 6. execution simulator
구현 대상:
- next-open entry
- stop / target / trailing / time exit
- slippage / commission
- same-bar conservative priority rule
완료 기준:
- 기본 전략 1D/3D/5D 실험이 끝까지 실행된다.
- 체결 규칙이 config 기반으로 바뀔 수 있다.
### Task 7. metrics and artifacts
구현 대상:
- trade blotter writer
- daily equity curve writer
- attribution reports
- metrics summary
- plot generation optional
완료 기준:
- run directory가 표준 구조로 생성된다.
- metrics summary JSON이 schema를 만족한다.
### Task 8. manifest runner and replay
구현 대상:
- manifest parser
- config merge
- schema validation
- run metadata writer
- replay mode
완료 기준:
- 동일 manifest 재실행 시 동일 결과가 나온다.
## 3. 권장 구현 순서
1. domain models
2. calendar/date alignment
3. snapshot store
4. candidate selector
5. portfolio allocator
6. execution simulator
7. metrics writer
8. manifest runner
9. walk-forward and split helpers
10. optional plots
## 4. 구현 규칙
- 순수 함수 중심으로 작성
- hidden global state 금지
- timezone naive datetime 금지
- tie-break 랜덤화 금지
- silent coercion 금지
- future data fallback 금지
## 5. 최소 디렉터리 제안
```text
apps/backtester/
run.py
replay.py
libs/backtest/
domain.py
calendar.py
snapshot_store.py
selector.py
allocator.py
execution.py
metrics.py
artifacts.py
manifests.py
splits.py
tests/
unit/backtest/
integration/backtest/
replay/
```
## 6. 금지사항
- 결과를 좋게 보이게 하기 위한 parameter auto-tuning 루프를 기본 구현에 넣지 말 것
- 평가 지표 계산 전에 손실 거래를 필터링하지 말 것
- missing data를 0으로 임의 대체하지 말 것
- event timestamp가 없는데 filing date로 임의 대체한 뒤 경고를 남기지 않는 것 금지
- 같은 바에서 stop/target 순서를 유리하게 처리하는 것 금지
## 7. 완료 정의
다음이 모두 충족되면 Phase 4 구현 완료로 봅니다.
- baseline experiment manifest를 한 번 실행할 수 있다.
- 결과 디렉터리에 metrics, blotter, equity curve가 생성된다.
- regression snapshot으로 결과가 고정된다.
- year split, regime split, ablation run을 각각 최소 1개씩 실행할 수 있다.
- testing checklist의 P0 항목이 모두 통과한다.