콘텐츠로 이동

LxS v2a 백테스트 — S축 확장 + 한국 외인 net 통합

Date: 2026-05-24 (Sun) Topic: L Predecessor: 2026-05-24_S308_lxs_v1_backtest.md

v1 대비 변경

L축 (3 → 4 components): - 추가: 외인 KOSPI net 20일 누적 z-score (weight 0.30, 한국 자본흐름 transmission)

S축 (2 → 7 components): - 추가: VIX 텀 slope (VIX9D/VIX3M, weight 0.25) ★ - 추가: VRP (VIX - HV20) - 추가: VVIX z60 (역부호) - 추가: SKEW z60 (역부호) - 추가: AUDJPY z60 (RORO FX proxy)

데이터 백필: - lxs_backfill_series.py: yfinance VIX/VIX9D/VIX3M/VVIX/SKEW/AUDJPY/^GSPC/^KS11 (1,081 days) - lxs_backfill_korea.py: Naver investorDealTrendDay sweep, KOSPI+KOSDAQ 1,054 days

결과

Regime 분포 변화 (v1 → v2a)

Regime v1 n v2a n 변화
L↑S↑ Bull 6,130 12,688 +107%
L↑S↓ Contrarian 8,003 1,621 -80% (희귀화)
L↓S↑ Top Warning 7,729 11,484 +49%
L↓S↓ Bear 7,688 4,653 -40%
UNKNOWN 3,355 2,459 -27%

S축에 VIX 텀·VVIX·SKEW·AUDJPY 추가하면서 Contrarian 분면이 1/5로 희귀화 — 실제 운영자 직감과 부합 (Contrarian = 드문 환경). Bull이 폭증한 것은 백테스트 기간(2023-05~2026-04)이 미장 강세장과 한국 외인 매수 회복기였기 때문.

Regime별 D+20 alpha

Regime n mean alpha win% sharpe
L↑S↓ Contrarian 1,621 +6.47% +1.95pp 60.5 0.294
L↑S↑ Bull 12,688 +6.20% +1.69pp 58.1 0.311
L↓S↑ Top Warning 11,484 +3.41% -1.11pp 51.2 0.190
L↓S↓ Bear 4,653 +3.08% -1.43pp 51.7 0.174
UNKNOWN 2,459 +2.41% -2.11pp 44.9 0.126

격차 3.38pp (Contrarian +1.95 vs Bear -1.43). L↑ vs L↓ 평균 격차 +3.09pp (+1.82 vs -1.27).

BUY_STRONG D+20 by regime

Regime n D+20 mean win%
UNKNOWN 18 +15.36% 61.1%
L↑S↓ Contrarian 6 +11.53% 66.7%
L↑S↑ Bull 115 +9.88% 61.7%
L↓S↑ Top Warning 102 +5.55% 52.9%
L↓S↓ Bear 27 +3.80% 59.3%

v1 → v2a 핵심 변화

Metric v1 v2a Δ 해석
L↑S↑ Bull alpha +2.46pp +1.69pp -0.77 표본 폭증으로 평균 희석되었으나 sharpe 0.311 ★
L↑S↓ Contrarian alpha +0.74pp +1.95pp +1.22 R7 CF7 가설 검증 — 최고 보상
L↓S↑ Top Warning alpha -1.37pp -1.11pp +0.27 비슷한 underperform
L↓S↓ Bear alpha -0.18pp -1.43pp -1.25 S축 추가로 정밀도 향상

핵심 결론 (v2a)

  1. R7 CF7 가설 한국 검증 — "L↑S↓ Contrarian = historical 최고 보상" 가설이 한국 코퍼스에서 +1.95pp alpha로 검증됨. S축에 VIX 텀구조·VVIX·SKEW·AUD/JPY 통합 후 신호 정밀도 향상이 결정적. 미국 헤지펀드 운영자(Druckenmiller·BofA·Bridgewater) 결론과 한국 데이터 일치.

  2. L↑S↑ Bull은 anchor 분면 — sharpe 0.311 최고, 표본 n=12,688로 안정. 운영자 표준 "추세 추종 환경" 정량 검증.

  3. L축이 1차 결정 요인 — L↑ vs L↓ 격차 +3.09pp / S↑ vs S↓ 격차 +0.05~+1pp. Druckenmiller "유동성이 시장을 움직인다" 명제 v1보다 더 명확히 검증.

  4. 표본 재분포 = 신호 정밀도 향상의 증거 — S축이 엄격해지며 Contrarian이 1/5로 줄었지만 alpha는 2.6배 증가. 정밀한 분류가 더 강한 신호 추출.

  5. 분면 격차 3.38pp = 운영자 행동 분기에 충분.

한계 (v2b/v2c 보완 필요)

  1. VKOSPI 미통합 — KRX MDCSTAT 별도 백필 필요. 한국 직접 변동성 sentiment 누락.
  2. DSR / PBO / Combinatorial Purged CV 미실행 — 단순 그룹 평균 통계만. 다중검정 보정 미적용.
  3. 단순 0 임계 — |L_z|, |S_z| 분위(0.5σ, 1σ, 1.5σ, 2σ) 미세분화. sharper signal 가능성.
  4. Δ-기반 layer 미적용 — Druckenmiller "change of pace" 미반영. L_z_delta_20d > 0 vs < 0 추가 차원 필요.
  5. 종목 단위 미적용 — sample-pooled, stock-conditional alpha 미추정.
  6. Contrarian 표본 BUY_STRONG n=6 — 통계 신뢰구간 큼. 표본 누적 필요.

v2b 다음 (단기)

  1. |L|/|S| 임계 세분화 — 0/+0.5/+1.0/+1.5 → 4×4 = 16 cell + sample n≥30 cell만 운영
  2. Δ-기반 layer — L_z_delta_20d 추가 신호. "L↑ 가속 + S↓" 등 R7 Druckenmiller 정렬
  3. VKOSPI 백필 — KRX MDCSTAT 별도 스크립트로

v2c (검증)

  1. Deflated Sharpe Ratio (López de Prado·Bailey 2014) — 다중검정 보정
  2. Probability of Backtest Overfitting (PBO) — 4분면별 OOS 안정성
  3. Combinatorial Purged Cross-Validation — block-based time series CV
  4. 표본 외 regime label 일치율 — expanding window CV 70%+ 요구

산출

  • scripts/backtest/lxs_backfill_series.py (yfinance 백필)
  • scripts/backtest/lxs_backfill_korea.py (Naver 외인 net 백필)
  • scripts/backtest/lxs_v2_run.py (v2a 백테스트)
  • data/backtest/lxs_v2/historical_sentiment.parquet
  • data/backtest/lxs_v2/historical_korea_flow.parquet
  • data/backtest/lxs_v2/samples_labeled_v2.parquet
  • data/backtest/lxs_v2/regime_matrix_v2.json
  • 본 문서