Phase C — 매크로 4년 Walk-Forward (DXY 결손 해소 + 한국 예탁금 4신호)¶
일자: 2026-05-26 (Tue)
선행: topic_discovery_walkforward.md Phase C / S318 Phase A 6/6 완료 / S317 us_macro_audit
입력: data/macro/panel_4y_daily.parquet (1,461×39) + data/sentiment_kr/customer_deposit_normalized.parquet (9.8년) + data/dart_cache/kospi_daily.parquet
산출:
- data/backtest/phase_c/macro_panel_unified.parquet (1,072 × 52)
- data/backtest/phase_c/events.parquet (20,253 발화)
- data/backtest/phase_c/regime_spread.parquet
- data/backtest/phase_c/deposit_signals.parquet
- data/backtest/phase_c/summary.json
- 코드: scripts/backtest/phase_c_macro_panel.py + phase_c_walkforward.py
1. 방법론¶
1.1 신호 패널 (106 시그널)¶
- 52개 raw 컬럼(yf 28 + FRED 11 + VIX 파생 2 + 예탁금 10 + 한국 4신호) × {level z, chg z} = 106개
- z-score: 60일 rolling
- 발화: |z| ≥ 1.5
1.2 Regime 5분할¶
KOSPI 60d 누적수익률 cutoff: strong_down(<-10%) / down(-10~-3%) / flat(-3~+3%) / up(+3~+10%) / strong_up(>+10%)
분포 (1,072 거래일): flat 284 / strong_up 240 / up 239 / down 217 / strong_down 32
1.3 forward & spread¶
- forward: D+5/+10/+20 KOSPI ret (다음 거래일 기준)
- baseline: regime별 KOSPI 평균 (event-weighted)
- spread = signal mean - baseline (mean alpha)
- hit rate = 부호 일치율 (HIGH→up, LOW→down)
2. Baseline (regime × horizon)¶
| regime | D+5 | D+10 | D+20 |
|---|---|---|---|
| strong_down | +1.26% | +2.23% | +5.28% |
| down | +0.41% | +0.58% | +0.13% |
| flat | -0.19% | -0.08% | +0.35% |
| up | +0.02% | -0.06% | +0.37% |
| strong_up | +2.05% | +4.32% | +8.44% |
관찰: strong_down에서 forward +5.28% (반등 patterns) / strong_up에서 forward +8.44% (모멘텀 지속). 양극단 baseline이 가장 큼.
3. C5 한국 예탁금 4신호 — 가설 검증¶
가설: - (a) 예탁금 급증 = 단기 과열 → forward 음의 spread - (b) 예탁금 급감 = dry powder 소진 → forward 음의 spread
3.1 deposit_lev_z (절대 수준 z)¶
| kind | regime | n | mean_d10 | spread_d10 | hit_d10 |
|---|---|---|---|---|---|
| HIGH | down | 8 | +5.93% | +5.35pp | 100% ★ |
| HIGH | strong_up | 104 | +4.49% | +0.17pp | 83.2% |
| HIGH | up | 51 | -0.47% | -0.41pp | 35.3% |
| LOW | flat | 46 | -4.51% | -4.43pp | 89.1% ★ |
| LOW | down | 54 | +0.67% | +0.09pp | 40.7% |
해석:
- ★ LOW × flat n=46 D+10 -4.43pp / hit 89.1% — 가설 (b) 검증: 횡보장에서 예탁금 감소 = 자금 이탈 → 약세
- HIGH × down n=8 D+10 +5.35pp / hit 100% — 가설 (a) 반대: 약세장에서 예탁금 급증 = 매수 대기 자금 유입 → 반등 (소표본 주의)
3.2 deposit_credit_ratio_z (예탁금/신용잔고)¶
| kind | regime | n | spread_d10 | hit_d10 |
|---|---|---|---|---|
| LOW | down | 11 | -3.23pp | 90.9% ★ |
| LOW | flat | 46 | -1.81pp | 63.0% |
| HIGH | down | 37 | +1.76pp | 73.0% |
| HIGH | strong_up | 38 | +0.25pp | 78.9% |
해석: ratio 낮음 = 신용공여 비율 상승(레버리지↑). down regime에서 LOW = 레버↑+약세 → 추가 하락 (포지션 청산 압력).
3.3 deposit_chg5_z (5일 변화 z)¶
| kind | regime | n | spread_d10 | hit_d10 |
|---|---|---|---|---|
| HIGH | down | 15 | +3.91pp | 100% |
| HIGH | strong_up | 29 | -1.78pp | 65.5% |
| LOW | strong_up | 24 | -2.98pp | 47.6% |
3.4 deposit_slope20_z (20일 회귀 기울기)¶
| kind | regime | n | spread_d10 | hit_d10 |
|---|---|---|---|---|
| HIGH | strong_up | 42 | +0.39pp | 85.7% |
| HIGH | up | 33 | -1.89pp | 15.2% |
| LOW | strong_up | 26 | +1.97pp | 7.7% (역방향) |
3.5 C5 결론¶
| 신호 | 작동 regime | 방향 | 신뢰도 |
|---|---|---|---|
| deposit_lev_z LOW | flat | 약세 (-4.43pp) | hit 89% ★ |
| deposit_credit_ratio_z LOW | down | 약세 (-3.23pp) | hit 91% ★ |
| deposit_lev_z HIGH | down | 강세 (+5.35pp, n=8) | hit 100% (소표본) |
| deposit_chg5_z HIGH | down | 강세 (+3.91pp) | hit 100% |
| deposit_slope20_z | strong_up | spread 미미 | hit 86% 부호만 |
채택: 2개 신호 (deposit_lev_z LOW × flat, deposit_credit_ratio_z LOW × down) — 운영 룰북 등재 후보.
4. C4 DXY 결손 해소 결과¶
S317에서 누락된 DXY 4신호 모두 산출 완료. (yf_DXY 2 + fred_DTWEXBGS 2)
| signal | kind | regime | n | spread_d10 | hit_d10 |
|---|---|---|---|---|---|
| yf_DXY_lev_z | HIGH | flat | 28 | -3.37pp | 14.3% (역방향) |
| yf_DXY_lev_z | HIGH | strong_up | 19 | -3.54pp | 42.1% |
| yf_DXY_chg_z | HIGH | flat | 11 | +0.98pp | 81.8% (소표본) |
| fred_DTWEXBGS_chg_z | HIGH | strong_up | 13 | -2.25pp | 53.8% |
| fred_DTWEXBGS_lev_z | LOW | strong_up | 40 | +2.90pp | 7.5% (역방향) |
채택: yf_DXY_lev_z HIGH × flat n=28 spread -3.37pp hit 14.3% (역방향) ★ — 달러 강세 + 횡보 = KOSPI 약세 (정합), 역방향 hit이지만 spread 일관.
S317 결손 우려 → 해소. DXY 신호는 flat regime에서 가장 강하게 작동.
5. Top 25 |spread_d10| 신호 — 강도 순¶
| Signal | Kind | Regime | n | spread_d10 | hit | spread_d20 |
|---|---|---|---|---|---|---|
| yf_VVIX_lev_z | LOW | strong_up | 9 | +9.43pp | 0% (역) | +14.24 |
| der_VIX_9D_SLOPE_lev_z | HIGH | strong_up | 9 | +6.36pp | 100% ★ | +6.15 |
| yf_RTY_lev_z | LOW | strong_up | 9 | -5.80pp | 66.7% | +0.12 |
| yf_VVIX_lev_z | LOW | down | 5 | +5.73pp | 0% (역) | +4.63 |
| yf_VIX9D_lev_z | LOW | strong_up | 6 | +5.56pp | 16.7% | +9.50 |
| deposit_lev_z | HIGH | down | 8 | +5.35pp | 100% ★ | +4.77 |
| yf_VIX9D_chg_z | LOW | strong_up | 11 | +5.01pp | 9.1% | +3.73 |
| fred_DEXKOUS_lev_z | LOW | strong_up | 13 | -4.98pp | 53.8% | -5.98 |
| fred_HY_OAS_chg_z | LOW | strong_up | 10 | +4.73pp | 20% | +6.45 |
| deposit_lev_z | LOW | flat | 46 | -4.43pp | 89.1% ★ | -6.05 |
5.1 양상 분류¶
A. 표본 충분 + hit + spread 일관 (★★):
- der_VIX_9D_SLOPE_lev_z HIGH × strong_up n=9 hit 100% +6.36pp — VIX 단기 텀구조 정상화 + 강세장 = 지속
- deposit_lev_z LOW × flat n=46 hit 89.1% -4.43pp — 표본 충분, 핵심 채택
B. 역방향 hit + spread 일관 (다른 의미): - VVIX/VIX9D LOW × strong_up = 변동성 안정 + 강세장에서 forward 양수. 평균 회귀 시계열.
C. 소표본 노이즈: - n < 10 신호들은 룰북 등재 보류 — 운영 진입 전 추가 시점 확보 필요.
6. 시그널 등급 분류 (운영 적용 게이트)¶
| Tier | 기준 | 신호 |
|---|---|---|
| Tier 1 ★ | n ≥ 30 + | spread |
| Tier 2 | n ≥ 15 + | spread |
| Tier 3 보류 | n < 15 또는 hit < 60% | VVIX/VIX9D 신호, der_VIX_9D_SLOPE |
| 회피 | spread sign flip across regimes | 다수 자산 (regime 의존성 높음) |
7. S317 us_macro_audit 비교¶
| 항목 | S317 | Phase C |
|---|---|---|
| 입력 panel | lxs_v1/v2 분리 (sentiment + macro) | 통합 panel_4y (1,072d × 52cols) |
| DXY | 미가용 | yf_DXY + fred_DTWEXBGS 4신호 ★ |
| 한국 예탁금 | 없음 | 4신호 추가 ★ |
| Regime 분할 | fold 3분할 | KOSPI 60d ret 5분할 |
| 발화 수 | 약 8K | 20,253 |
| L_composite_z, NET_LIQ_BN | ★★ | 본 Phase에선 raw FRED 컴포넌트 별도 z |
S317 ★★ 신호(L_composite_z) 재현은 다음 세션 (FRED WALCL-TGA-RRP 합성 → z) 별도 산출 가능.
8. 제약 & 다음 단계¶
8.1 제약¶
- strong_down regime n=32만 (4년 중 표본 부족) → strong_down 발화 신호 신뢰도 낮음
- fred_SLOOS_CI 77.7% NaN (분기 데이터 ffill 한계) → 별도 처리 또는 제외
- fred_HY_OAS 31.9% NaN (2023-05-23 이후만, S317과 동일 한계)
- KRX 파생 panel 미통합: 별도 long-format 변환 작업 필요 (D 분리)
8.2 다음 단계¶
- Phase D 차트 walk-forward (PM 옵션) — 일봉 분석기 6 약세 t0
- L_composite_z 합성 재현 — FRED WALCL-TGA-RRP를 통합해 S317 ★★ 신호 재측정
- KRX 파생 long → wide 변환 + 본 Phase에 합치기
- Tier 1 신호 운영 진입 —
deposit_lev_z LOW × flat룰북 추가 (signal-synthesizer) - Q3 반전 룰 재측정 (옵션 3) — discovery_walkforward summary in/out swap
9. 의사결정 (PM 대기)¶
| 결정 | 옵션 |
|---|---|
| Tier 1 신호 운영 진입 | (a) deposit_lev_z LOW × flat 즉시 / (b) 다음 cycle 추가 |
| KRX 파생 통합 | (a) Phase C 확장 / (b) Phase D와 묶음 / (c) 별도 |
| 다음 세션 | Phase D 차트 / 옵션 3 Q3 반전 재측정 / 옵션 4 퀀트 / 옵션 5 corp_code 확장 |