Simulation (시뮬레이션)
설계: ARCHITECTURE.md. Ground Truth 이후, Operations 이전 단계입니다.
목적
monitor_rules가 holdout·walk-forward·수수료 스트레스를 통과하는지 검증한다.
- 운영에 쓸 배분 경로(primary) 를 정한다. (실전 = hybrid, GT oracle 아님)
실행
산출물
| 파일 |
내용 |
docs/04_matching/simulation_report.json |
Go/No-Go, portfolio_compare, walk-forward |
docs/04_matching/simulation_report.html |
GT·시뮬 경로별 카드·차트 |
배포 모델 (primary)
| 경로 |
portfolio_compare 키 |
전기간 PnL (최근 실행) |
운영 |
| GT oracle (사후 ZigZag) |
ground_truth_chrono |
+4,291% |
미사용 (미래 허용 벤치마크) |
| 권장 primary |
sim_primary = sim_causal_hybrid |
(리포트 참고) |
Operations 배분 |
| causal tier only |
sim_sized |
+75% |
미사용 |
| 인과 GT leg 엔진 |
sim_causal_gt |
+15% |
미사용 |
| conviction tier |
sim_tier_enhanced |
-51% |
금지 |
| 고정 금액 baseline |
sim_fixed_order |
-94% |
비교용 |
primary_sizing: hybrid (go_no_go_hybrid.primary_sizing)
- hybrid: monitor 발화 + DD tier + past-leg tier,
enhanced=False
- 코드:
deepcoin/ground_truth/causal_gt_hybrid.py, deepcoin/matching/simulation.py
Go/No-Go (최근 실행 요약)
규칙 (go_no_go)
| rule_id |
holdout EV |
WF+ 비율 |
fee 2× EV |
결과 |
buy_compound_tight |
5.66 |
0.75 |
4.99 |
PASS |
sell_mtf_cross_all_tf |
7.13 |
1.00 |
7.12 |
PASS |
→ GO
hybrid primary (go_no_go_hybrid)
| 검사 |
값 |
결과 |
| monitor_rules_go |
- |
PASS |
| hybrid_holdout_pnl |
+62.35% |
PASS |
| hybrid_max_mdd |
19.22% |
PASS |
| hybrid_fee_stress_pnl |
+975.74% |
PASS |
| option_c_target_300pct (optional) |
+1,147% |
PASS |
→ GO · primary_sizing=hybrid
Option C 2차 (go_no_go_option_c_phase2)
- 전기간 +1,000% 목표, GT capture ≥23%, WF 양수 월 비율, 슬리피지 스트레스 등 → GO
재실행 후 수치는 simulation_report.json을 기준으로 한다.
포트폴리오 비교 (portfolio_compare) — 읽는 법
| 키 |
설명 |
ground_truth_chrono |
GT 타점·amount_krw 시각순 체결 (상한 벤치마크) |
sim_primary / sim_causal_hybrid |
운영 배분과 동일 (monitor + hybrid tier) |
sim_sized |
EV/WF·leg 가중 복리 (구 경로) |
sim_hybrid_holdout |
hybrid 전기간 복리 후 holdout 구간 자산 증감 |
sim_hybrid_fee_stress |
수수료 스트레스 hybrid |
hybrid_dd_params |
dd_large_pct, dd_medium_pct (캘리브 JSON과 동기) |
검증 항목
| 항목 |
설명 |
| Holdout |
규칙별 EV≥0, PF≥1 |
| Walk-forward |
월별 EV·SIM_GO_WF_POSITIVE_RATIO |
| 수수료 스트레스 |
SIM_FEE_STRESS_MULT (기본 2×) |
| hybrid |
holdout PnL, MDD, fee stress, (선택) +300% |
| 슬리피지 |
Option C 2차 — 체결가 불리 가정 후 흑자 여부 |
시뮬 vs 실운영 (기대 갭)
시뮬 hybrid는 일한도 없이 복리·전액 배분을 가정한다. 실거래는 LIVE_DAILY_KRW_MAX 등으로 체결이 잘리므로 수익률이 sim_primary와 같지 않을 수 있다. (배포 체크리스트 D6: 실현=sim 미달)
환경 변수
| 변수 |
용도 |
SIM_GO_*, SIM_FEE_STRESS_MULT, SIM_WALK_FORWARD_MIN_MONTHS |
규칙 Go/No-Go |
SIM_PRIMARY_SIZING |
auto | hybrid | causal_tier (권장: auto → hybrid) |
GT_SIGNAL_CAUSAL |
1 — hybrid live sizing 활성 |
CAUSAL_GT_DD_LARGE_PCT, CAUSAL_GT_DD_MEDIUM_PCT |
hybrid tier (캘리브와 동기) |
GT_BUY_PCT_*, GT_LARGE_LEG_TOP_PCT |
tier 비중 |
NO-GO 시
04_match_rules.py 재실행 (프로필·선별)
04_simulation_report.py 재실행
go_no_go / go_no_go_hybrid checks 확인
다음 단계