S320 — 4도구 결합 매매 시뮬레이션 백테스트 v1¶
일자: 2026-05-26 (Tue)
기간: 2026-04-22 ~ 2026-05-21 (20거래일)
universe: 일별 외인+기관 순매수 상위 5종 = 100 case
판정 에이전트: general-purpose 4 batch 병렬 (각 25 case)
산출: data/backtest/sim_v1/{daily_universe, material_panel, case_index, case_context, verdicts/batch1-4, results, metrics, nav}
1. 방법론¶
1.1 도구별 점수 모델 (4도구 합의)¶
| 도구 | +1 조건 | -1 조건 |
|---|---|---|
| 재료 | matched_issues ≥ 1 AND hot 테마(전력/원전/반도체/AI/로봇/배터리/방산) | — |
| 차트 일봉 | state=IMBALANCE_UP AND phase=MARKUP AND resolution ≥ 0 | IMBALANCE_DOWN OR late_DIST |
| OF 30분봉 | ofm_bvc_5bar ≥ 0.6 AND ofm_cvd_z > 0 | ofm_cvd_z < -1 |
| 퀀트 | ea_z_cs > +0.5 | ea_z_cs < -0.5 |
1.2 verdict¶
- GO: 합 ≥ +2 AND 음수 도구 0
- WAIT: 합 = +1 또는 일부 결손+양호
- PASS: 합 ≤ 0 또는 음수 ≥ 1
2. 결과 — verdict 분포 + alpha¶
2.1 verdict 분포 (100 case)¶
| verdict | n | 비율 |
|---|---|---|
| GO | 23 | 23% |
| WAIT | 35 | 35% |
| PASS | 42 | 42% |
2.2 verdict × forward (KOSPI-adjusted alpha)¶
| verdict | n | alpha_d5 mean | alpha_d10 mean | win rate d5 | win rate d10 |
|---|---|---|---|---|---|
| GO | 23 (forward valid 12) | -2.84% | -8.90% | 47.4% | 41.7% |
| WAIT | 35 (valid 12) | -3.50% | -13.27% | 27.8% | 33.3% |
| PASS | 42 (valid 14) | +0.33% | +3.84% ★ | 44.4% | 42.9% |
2.3 raw ret (KOSPI 차감 전, 종목 절대수익률)¶
| verdict | ret_d5 mean | ret_d10 mean |
|---|---|---|
| GO | (소표본) | +7.16% |
| WAIT | (소표본) | -3.61% |
| PASS | (소표본) | +14.63% |
2.4 포트폴리오 NAV (GO 종목 진입, hold 5d, 11 진입일)¶
- 최종 NAV: 1.3653 (수익률 +36.53%)
- 진입당 평균: +3.47%
- Sharpe (연환산): 2.167
- MDD: -23.33%
3. 핵심 발견¶
3.1 KOSPI alpha 기준에서 GO/PASS 부호 역전 (충격적)¶
- PASS가 +3.84% / GO가 -8.90%
- raw ret에서는 PASS +14.63% > GO +7.16% (PASS가 절대 수익률도 더 강함)
- 시장(KOSPI) 자체가 같은 기간 강세였음 → KOSPI 차감 시 PASS 종목들이 시장 대비 outperform, GO 종목들은 underperform
3.2 PASS 강세 원인¶
- PASS 336260 (D+10 +78.86%), PASS 001440 (D+10 +56.83%) 등 단일 outlier 종목들
- 이들은 4도구 점수에서 충돌(차트 데이터 결손 OR ea_z_cs < -0.5)이라 PASS 처리됐으나 시장이 따라감
- → 점수 모델이 실제 강세 종목을 PASS로 잘못 분류
3.3 GO 부진 원인 (case별)¶
- 005930 삼성전자 GO 3건은 D+5 +6.7~18.8% 강세 → GO 옳음
- 한전기술(034020), 리노공업(058470) 등은 IMBALANCE_UP + MARKUP late 단계 발화 후 차익실현 → GO 신호 후 단기 조정
3.4 portfolio NAV +36.53%는 misleading¶
- 진입일 11개 × 평균 +3.47% × 누적
- D+5 ret 기반 단순 누적 → 동일가중 + 짧은 hold
- 실제 KOSPI 같은 기간 강세 감안하면 alpha는 음수일 가능성 (NAV 1.36 vs KOSPI ~+18%)
3.5 데이터 결손 심각¶
- alpha_d5: 55/100 (45% 결손, OHLCV 파일 없음)
- alpha_d10: 38/100
- alpha_d20: 2/100 (forward window 기간 끝)
→ alpha_d20 통계(WAIT -44%, PASS +81%)는 n=2~3으로 비신뢰.
4. 모델 진단¶
4.1 점수 가중치 문제¶
- 4도구 동등 가중 (1 point each) — 차트/OF가 단기에 강함에도 재료/퀀트와 같은 가중
- hot 테마 매칭이 너무 광범위 (전력/원전/반도체/AI 등 5+ 분야) → 차별성 약화
4.2 IMBALANCE_UP + MARKUP late 조합 문제¶
- 차트가 markup late = 이미 늦은 진입. GO에 포함되면 단기 조정 위험
- cycle_position을 점수에 반영 필요 (early > mid > late)
4.3 OF 30분봉 t0 시점 정확성¶
- ofm_cvd_zscore가 t0 직전 30분봉 누적 — t0 다음 거래일 진입이라면 1일 lag
- 즉시 진입(당일 종가) 가정인지 다음날 갭 가정인지 모호
4.4 단순 4도구 점수가 매매를 못 잡음¶
- PASS에 강세 종목 다수 (단일 outlier 영향 큼)
- GO에 markup late 종목 → 단기 underperform
- PM 명세 "글로벌 에이전트 도구 사용" 의도 = 도구별 점수 합산 아닌 종합 해석 필요
5. v2 권고 — 개선 방향¶
| 개선 | 내용 |
|---|---|
| A. cycle_position 가중 | early_MARKUP > mid > late_MARKUP. late_DIST는 음수 |
| B. 재료 등급 부여 | matched_issues 수가 아닌 NC-3 S/A/B 등급 + 신선도(48시간 이내) 가중 |
| C. OF lead-lag 반영 | 이전 lead-lag 검토 결과 적용 — pcr_vol_z HIGH, basis_z HIGH 등 단기 lead 3-5일 신호를 가중 |
| D. universe 재정의 | 외인+기관 net이 아닌 거래대금 가속도 + 신규 부상 |
| E. forward 측정 신뢰성 | 기간을 2026-04-01 ~ 2026-05-15로 당겨 D+20까지 측정 |
| F. KOSPI 대신 sector index 차감 | 종목 alpha는 섹터 대비로 측정 (시장 강세 효과 제거) |
6. 산출물¶
코드¶
scripts/backtest/sim_b1_b2_universe_material.py(B1+B2)scripts/backtest/sim_b3_assemble_context.py(B3)scripts/backtest/sim_b5_metrics.py(B5)
데이터¶
data/backtest/sim_v1/daily_universe.parquet(100 행)data/backtest/sim_v1/material_panel.parquet(25 재료)data/backtest/sim_v1/case_index.parquet(100 case)data/backtest/sim_v1/case_context.{parquet, json}(40 cols × 100)data/backtest/sim_v1/verdicts/batch1-4.jsonl(총 100 verdict)data/backtest/sim_v1/results.parquet(15 cols × 100)data/backtest/sim_v1/metrics.jsondata/backtest/sim_v1/nav.parquet(11 진입일)
7. 결론¶
v1 백테스트 종합 판정: - 4도구 단순 점수 합산 모델은 매매 alpha를 못 잡음 - PASS가 KOSPI alpha 기준 GO/WAIT 능가 (점수 모델이 잘못 분류) - portfolio NAV +36.53%는 KOSPI 자체 강세 영향이 큼 - 데이터 결손 + forward 기간 부족으로 신뢰도 낮음
채택 안 함.
다음 단계 (PM 결정 대기): 1. v2 — 점수 가중치 재정의 + cycle_position 반영 + 재료 NC-3 등급 2. 또는 lead-lag 검증된 매크로/파생 단기 신호(WALCL/SPY chg/pcr_vol 등) 단독 활용 매매 시뮬 3. universe를 거래대금 가속도 + 신규 부상 종목으로 재정의