1단계 — 시뮬레이션
목적
monitor_rules가 과적합이 아닌지 검증하고, Ground Truth와 동일한 자본 배분 원칙으로 holdout 체결 수익을 비교합니다.
실행
산출물
| 파일 |
내용 |
docs/04_matching/simulation_report.json |
Go/No-Go, portfolio_compare, gt_model |
docs/04_matching/simulation_report.html |
카드 3줄: GT · 시뮬(총자산%) · 시뮬(고정₩/회) |
포트폴리오 비교 (portfolio_compare)
| 키 |
설명 |
ground_truth_chrono |
GT 타점 + amount_krw 시각순 체결 |
sim_sized |
holdout 발화 + 총자산×비중×EV/WF·leg상위 (position_sizing) |
sim_fixed_order |
동일 발화 + 고정 LIVE_ORDER_KRW/회 (baseline) |
시뮬 매수 배분 (GT와 동일 원칙)
- 통과 규칙만 대형: holdout EV·PF, walk-forward, 수수료 2× 스트레스 (
load_ev_wf_approved_rule_ids)
- leg 상위
GT_LARGE_LEG_TOP_PCT + 근접 GT leg 매칭 → LIVE_BUY_PCT_LARGE
- 그 외 →
LIVE_BUY_PCT_SMALL
- 일한도·일최대거래:
select_capped_fires (동적 planned 원화로 LIVE_DAILY_KRW_MAX 적용)
검증 항목
| 항목 |
설명 |
| Holdout |
EV≥0, PF≥1 |
| Walk-forward |
양수 월 비율 ≥ SIM_GO_WF_POSITIVE_RATIO |
| 수수료 스트레스 |
수수료 2× 후 EV≥0 |
| 실거래 한도 |
동적 매수액 기준 일한도 시뮬 |
Go/No-Go
- GO: monitor_rules 전 규칙 checks 통과
- NO-GO: 04 재선별 후 재실행
환경 변수
SIM_GO_*, SIM_WALK_FORWARD_MIN_MONTHS, SIM_FEE_STRESS_MULT
LIVE_ORDER_KRW, LIVE_DAILY_KRW_MAX (고정 baseline·한도)
LIVE_BUY_PCT_LARGE, LIVE_BUY_PCT_SMALL (시뮬·실거래 비율 매수)