Phase C/dry-run·미사용 모듈·재생성 HTML을 제거하고, 운영 체결을 sim_causal_hybrid와 동일한 hybrid 로직으로 통합한다. Co-authored-by: Cursor <cursoragent@cursor.com>
38 lines
1.4 KiB
Markdown
38 lines
1.4 KiB
Markdown
# Matching — Simulation 축
|
|
|
|
03b GT 스냅샷에서 규칙 후보 → 전 구간 인과 스캔 → EV·holdout → `matched_rules.json`.
|
|
설계: [docs/reference/ARCHITECTURE.md](../../docs/reference/ARCHITECTURE.md)
|
|
|
|
## PDCA
|
|
|
|
| 단계 | 스크립트 모듈 | 산출물 |
|
|
|------|---------------|--------|
|
|
| 4-1 Plan/Do | `profile_rules.py` | `rule_candidates.json` (기본: 복합·대조만) |
|
|
| 4-2 Do | `rule_eval.scan` | `rule_fires.csv` |
|
|
| 4-3 Check | `label_outcomes.py` | `fire_outcomes.csv` (기본: `leg_gt` 청산) |
|
|
| 4-4 Act | `select_rules.py` | `matched_rules.json`, `backtest_summary.html` |
|
|
|
|
## 실행
|
|
|
|
```bash
|
|
# 전체 (enrich+스캔 약 2~3분)
|
|
python scripts/04_match_rules.py
|
|
|
|
# 단계별
|
|
python scripts/04_match_rules.py --phase profile
|
|
python scripts/04_match_rules.py --phase scan
|
|
python scripts/04_match_rules.py --phase label
|
|
python scripts/04_match_rules.py --phase select
|
|
```
|
|
|
|
선행: `python scripts/03_analyze_trades.py`
|
|
|
|
## 설정 (`.env` / `config.py`)
|
|
|
|
- `MATCH_LABEL_MODE` — `leg_gt`(다음 GT 매도/직전 매수) 또는 `forward`
|
|
- `MATCH_MAX_HOLD_DAYS` — leg_gt 최대 보유 일수 (기본 45)
|
|
- `MATCH_INCLUDE_ATOMIC` — 0이면 atomic 규칙 제외
|
|
- `MATCH_FORWARD_BARS` — leg_gt 불가 시 폴백 봉 수 (기본 60)
|
|
- `MATCH_TRAIN_RATIO` — train/valid 분할 (기본 0.7)
|
|
- `MATCH_MIN_FIRES`, `MATCH_MIN_EV_VALID`, `MATCH_MIN_PROFIT_FACTOR`
|