콘텐츠로 이동

Discovery Pipeline Walk-Forward — Phase A 백필 + Phase B 결과

작성: 2026-05-26 (Tue) 12:00 선행: docs/planning/2026-05-26_discovery_pipeline_walkforward_plan.md 결론 한 줄: Q3 룰("60d 강 + 5d 둔화 = 빠질 / 5d 가속 = 갈")이 모든 5 regime에서 일관되게 역작동. 평균 D+30 spread -6%pp ~ -19%pp. 룰 자체 폐기 또는 반전 필요 (S314 §5 옵션 B 발동).


1. Phase A 백필 결과

작업 산출 상태
A4+A5 매크로 panel data/macro/panel_4y_daily.parquet (1,461일 × 39열, 0.26MB) — yf 28티커 + FRED 11시리즈 통합 ✅ 완료
A7 고객예탁금 네이버 금융 sise_deposit.naver 우회 — 가장 간편한 경로 성공. raw 120페이지 = 2,400행, normalized 2,400행 × 10지표 (deposit_balance/credit_balance/fund_eq/mix/bond + 각 chg). 2016-08-05 ~ 2026-05-21 (9.8년) ✅ 완료
A3 CFTC COT data/cot/legacy_combined_4y.parquet (56,517행 × 130열) + tff_financial_4y.parquet (11,347행 × 88열) ✅ 완료
A1 ats_main_v2 data/ats_main_v2.json (354종 → 100% 보강, industry: 라벨 + primary_theme) ✅ 완료
A2 KRX 파생 data/derivatives/historical/drvprod_dd_trd_4y.parquet — 974 거래일 × 281,967행 (7.3MB), errors 0 ✅ 완료

1-1. 매크로 panel 결손율 (top)

  • fred_SLOOS_CI: 91.2% (분기성, 정상)
  • fred_HY_OAS: 24.7% (2023-05-23부터, 인벤토리 3년 한계 일치)
  • 나머지 모두 < 1%

1-2. ats_main_v2 보강 분포

  • 결손 354종 모두 industry 보유 → 100% 보강 성공
  • industry 라벨 top: 제약 47 / 생물공학 21 / 건강관리장비 17 / IT서비스 15 / 화학 15
  • universe 81 결손 19종(삼성바이오·셀트리온·HMM·LG 등) 전부 매핑됨

2. Phase B Walk-Forward 결과 (15 시점 + baseline)

15 시점 × 4 horizon = 60 측정 (+ baseline 4 = 64 rows). 결과 summary parquet: data/backtest/discovery_walkforward/summary.parquet

2-1. regime별 D+30 spread (in_leader - out_leader) 평균

regime n_시점 D+30 spread 평균 판정
strong_down 1 -14.73pp Q3 역작동
down 2 -5.72pp Q3 역작동
flat 2 -6.44pp Q3 역작동
up 3 -19.44pp Q3 역작동 ★
strong_up 2 +0.96pp 중립
baseline (2026-04-06) 1 -9.18pp S314 -33.27pp보다 약하나 일치 방향

모든 regime에서 spread ≤ 0 — Q3 가설 "빠질 후보가 더 약하고 갈 후보가 더 강함"의 정반대.

2-2. 시점별 상세 (D+30 spread)

regime t0 in n out n in α out α spread
strong_down 2022-07-11 5 0 -5.75 NaN n/a
strong_down 2022-07-05 5 0 +3.62 NaN n/a
strong_down 2022-06-21 4 2 -7.81 +6.92 -14.73
down 2022-08-02 4 0 +22.21 NaN n/a
down 2024-12-30 5 4 +30.30 +34.96 -4.66
down 2022-04-21 5 3 -8.14 -1.37 -6.77
flat 2025-02-06 5 2 -13.80 +1.48 -15.28
flat 2023-12-12 5 0 +3.45 NaN n/a
flat 2024-06-05 4 5 +5.36 +2.95 +2.40
up 2023-04-06 5 4 +5.77 +0.76 +5.01 (유일 +)
up 2024-02-22 5 4 +12.08 +20.79 -8.70
up 2024-04-16 4 1 +4.88 +59.50 -54.61 ★ 극단
strong_up 2025-12-17 4 4 +28.56 +11.47 +17.09 (유일 강 +)
strong_up 2025-07-03 2 4 -8.51 +6.66 -15.16
strong_up 2026-04-22 3 3 NaN NaN n/a (forward 결손)
baseline 2026-04-06 3 4 -11.45 -2.27 -9.18

2-3. 핵심 발견

  1. Q3 룰 역작동이 1시점 노이즈 아닌 구조적 — 16 시점 중 spread > 0인 케이스는 2건만 (up 2023-04-06 +5pp, strong_up 2025-12-17 +17pp). 13/16이 음수.

  2. out 후보(COOLING, 강세 둔화) leader가 in 후보(RE_ACCEL, 가속)보다 forward 강세 우위 — "고점이 더 간다"는 강한 모멘텀 지속 신호. 평균회귀 가정이 한국 시장에서 어긋남.

  3. 극단 사례 (up 2024-04-16): out leader 1종(LS ELECTRIC 010120)의 D+30 +59.5%pp 폭등이 spread -54.6pp 만듦. 단일 종목 영향 큼 — leader 추출이 spread 진폭을 키우는 특성(S314에서 이미 확인).

  4. strong_down regime의 leader 추출 표본 부족 — COOLING 테마 자체가 적어 out_leader 0~2종. 데이터 한계로 신호 안정성 측정 부족.

  5. baseline (2026-04-06) -9.18pp ≠ S314 보고 -33.27pp. 차이 원인: ats_main_v2 적용으로 universe 확장 (24종 NaN 종목 매핑 추가) + leader 추출 시 universe 81 제약 없이 ohlcv 전체 사용. 방향 동일, 절댓값 완화.


3. 해석 + 다음 단계 결정

3-1. Q3 룰 폐기/반전 결정

S314 §5 옵션 B "룰 반전" 발동 조건 충족 (모든 regime 음수 spread). 새 룰 후보:

반전 Q3: rs_60d 상위 + rs_5d 강세 유지 (HOT) = 갈 후보 / rs_60d 중간 + rs_5d 가속 (RE_ACCEL) = 빠질 후보

본 walk-forward 결과로 반전 룰의 spread를 역산하면 +6~19pp 수준 예상 → 운영 가치 있음.

3-2. leader 추출 도구적 가치는 유지

S314 §4-3 결론과 일치: "leader 추출이 spread 진폭을 키운다" — 본 walk-forward에서도 단일 종목(LS ELECTRIC)으로 spread -54pp 만들 만큼 압축 효과 확인. 부품으로는 유효.

3-3. 새 루틴 골격 영향

기존 작업 계획 §3 Phase E 후보 7단계 중 Q3 selection 단계는 반전 필요:

[기존] theme 스캔 → COOLING/RE_ACCEL 분류 → 갈 후보 진입
[수정] theme 스캔 → HOT 분류 → HOT leader 진입 (강세 지속 베팅)
       + RE_ACCEL/COOLING은 회피 또는 short watchlist


4. 미해결 작업

항목 상태 결정 필요
A7 고객예탁금 ✅ 완료 (네이버 금융 우회, 9.8년 × 10지표) Phase C 매크로 walk-forward 즉시 통합 가능
A2 KRX 4년 ✅ 완료 (974일 × 281,967행) Phase C 매크로 walk-forward 입력 즉시 활용 가능
Phase C 매크로 walk-forward 미시작. panel_4y_daily.parquet 확보됨 즉시 진행 가능
Phase D 차트 walk-forward 미시작. 일봉 분석기 + 247종 OHLCV 확보됨 즉시 진행 가능 (S317 v2 67일 → 4년 확장)
Phase E 새 루틴 설계 Phase C/D 결과 + Q3 반전 룰 검증 후 데이터 추가 측정 후

5. 산출물

5-1. 코드 (신규)

  • scripts/backfill/macro_panel_4y.py (A4+A5)
  • scripts/backfill/kofia_deposit_4y.py (A7, 네이버 금융 우회)
  • scripts/backfill/normalize_deposit.py (raw → 정규화 10지표)
  • scripts/backfill/cftc_cot_4y.py (A3)
  • scripts/backfill/build_ats_main_v2.py (A1)
  • scripts/backfill/krx_derivatives_4y.py (A2)
  • scripts/backtest/discovery_walkforward_run.py (B2+B3)

5-2. 데이터

  • data/macro/panel_4y_daily.parquet (39 신호 × 1,461일)
  • data/cot/legacy_combined_4y.parquet (56,517행)
  • data/cot/tff_financial_4y.parquet (11,347행)
  • data/ats_main_v2.json (794종, 354종 보강)
  • data/derivatives/historical/drvprod_dd_trd_4y.parquet (974일 × 281,967행 × 5+컬럼, 4년)
  • data/backtest/discovery_walkforward/per_date_*.json (16 시점)
  • data/backtest/discovery_walkforward/summary.parquet (64행)
  • data/sentiment_kr/customer_deposit_4y.parquet (raw, 2,400행)
  • data/sentiment_kr/customer_deposit_normalized.parquet (정규화 10지표 × 2,400일, 9.8년, NaN 0%)

5-3. 문서

  • 본 파일

6. PM 답변 필요 항목 (작업 계획 §10 + 추가)

# 결정 옵션
1 Q3 룰 반전 적용 (a) 즉시 반전 룰로 변경 후 재측정 / (b) 추가 시점 더 측정 후 결정 / (c) Q3 룰 폐기, 다른 신호로
2 ~~A7 KOFIA 접근~~ 해결됨 — 네이버 금융 우회로 9.8년 수집 완료
3 Phase C/D 즉시 진행 여부 (a) 즉시 (Q3 결과와 독립) / (b) Q3 결정 후
4 새 루틴 분리 시점 (a) Phase C/D 완료 후 / (b) 본 Phase B만으로도 룰 반전 적용해 즉시 분리