콘텐츠로 이동

S317 — 모듈 단독 점검: 방향 일치율 + 선행/후행 (k-fold)

작성: 2026-05-26 (Tue) 02:00 대상: 차트 8개 + OF 일봉/30분봉 + 3-Laws + 매크로 7개 universe: 거래대금 상위 100종 (30분봉 + 일봉 가용) 기간: 2026-02-13 ~ 2026-04-24 (30분봉 가용 + D+20 forward 측정 가능) 샘플: 5일 간격 9시점 × 100종 = 891 (skip 0) k-fold: 시간 5분할 (fold 0~3 = 99씩, fold 4 = 마지막 5시점 495)

측정 지표: 1. 방향 일치율 (sign hit rate): 모듈이 bullish/bearish 발화 시, 해당 종목의 forward D+5/10/20 종가 부호가 신호 방향과 일치한 비율 2. 선행성 (median first swing days): 신호 발화 → 첫 ±3% swing까지 거래일 수 (작을수록 즉시 효과) 3. fold별 D+10 hit rate: 시간 안정성 (4개 fold 사이 편차 큼 = 시기 의존)

baseline: - 종목 sample 전체 UP비율: D+5 0.535 / D+10 0.577 / D+20 0.617 - KOSPI 발화일 UP비율: D+5 0.600 / D+10 0.725 / D+20 0.725 (강세장)


1. 차트 모듈 (종목 단위 forward, n=891)

모듈 n_b n_s bull_d5 bull_d10 bull_d20 bear_d5 bear_d10 bear_d20 sw_b sw_s
VSA last_signal_kind 57 108 0.561 0.614 0.696 0.486 0.374 0.370 2 2
VSA strong (strength≥3) 1 63 n/a n/a n/a 0.548 0.323 0.279 1 2
VSA 20d net bias 322 261 0.517 0.583 0.593 0.477 0.427 0.347 2 2
Wyckoff phase 384 445 0.543 0.588 0.643 0.474 0.444 0.424 2 2
Wyckoff event_bias >0.3/<-0.3 15 145 0.600 0.667 0.571 0.382 0.319 0.286 2 2
Wyckoff event SC/Spring/SOS vs BC/UT/SOW 0 640 0.465 0.409 0.378 2
VolumeProfile va_position -1/+1 44 482 0.524 0.442 0.513 0.496 0.442 0.410 3 2
VolumeProfile asym_20d >0.3/<-0.3 246 28 0.514 0.539 0.542 0.393 0.370 0.160 2 2
OF daily cvd_z+div 4 82 0.250 0.250 0.500 0.256 0.247 0.247 1 3
OF daily cvd_z >1/<-1 347 81 0.477 0.526 0.528 0.247 0.237 0.250 2 3
OF daily buy-sell pres 115 206 0.504 0.478 0.482 0.448 0.379 0.355 2 2
OF 30min cvd_z >1/<-1 105 151 0.485 0.462 0.474 0.520 0.351 0.250 2 2
OF 30min buy-sell pres 46 342 0.587 0.467 0.615 0.491 0.375 0.329 1 2
3-Laws SD ratio >1.2/<0.8 0 891 0.465 0.423 0.383 2

핵심 (baseline D+20 UP 0.617 대비):

  • VSA last_signal_kind: bull hit D+20 0.696 (+7.9pp vs baseline) ★, bear hit D+20 0.370 (= 1 - 0.630, 즉 bearish 발화 후 실제로 하락한 비율 37%). bull 신호가 bear 신호보다 강함.
  • Wyckoff event_bias: bull n=15 표본 적지만 D+5/10 0.6/0.667 → swing 2일 (빠른 효과). bear는 D+20 0.286으로 baseline UP대비 underperform (= 회피 가치)
  • OF daily cvd_z+div (받침): n=4 너무 적음
  • OF daily cvd_z >+1 단독: bull D+20 0.528 (≈ baseline), bear D+20 0.250 — 강한 SELL 신호 (n=81)
  • OF 30min cvd_z: bull D+10 0.462 (baseline 0.577 미달), bear D+10 0.351 — bull은 약하나 bear는 적당 (n=151)
  • OF 30min buy-sell pres: bull D+20 0.615 (= baseline), bear D+20 0.329 ★ — bear가 좋음
  • VolumeProfile asym_20d <-0.3: n=28 작지만 bear D+20 0.16084% 실제 하락 ★★ (강한 회피)
  • 3-Laws SD<0.8: 거의 모든 sample이 <0.8 (n=891 = 거의 전부) → 의미 없음 (임계 잘못)
  • 공통: 선행성 = 첫 ±3% swing 2~3일 (모듈 거의 동일, 차이 없음)

차트 모듈 fold별 D+10 안정성 (편차)

모듈 bull fold 편차 bear fold 편차 안정성
VSA last_signal_kind f0 0.667 / f3 0.167 / f4 0.743 f0 0.647 / f4 0.234 불안정 (fold 0~3 vs fold 4 역전)
Wyckoff phase f3 0.163 / f4 0.759 f3 0.717 / f4 0.301 불안정
OF daily cvd_z >1 f0 0.226 / f4 0.681 f1 0.0 / f2 0.667 매우 불안정
OF 30min buy-sell pres f0 0.2 / f4 0.786 f0 0.593 / f4 0.265 불안정

해석: fold 4(마지막 5시점, 2026-04-02~04-23, KOSPI 상승 구간)에 표본이 몰리면서 fold 4 bull hit가 부풀고 bear hit가 떨어진다. 모든 차트 모듈이 시장 방향에 강하게 흔들림 → 모듈 자체의 absolute predictive power는 약하고, 시장 환경에 종속된다는 증거.


2. 매크로 모듈 (KOSPI 단위 forward, n=126 발화)

KOSPI baseline UP비율: D+5 0.600 / D+10 0.725 / D+20 0.725

신호 n_HIGH (bull) n_LOW (bear) bull_d5 bull_d10 bull_d20 bear_d5 bear_d10 bear_d20 sw_b sw_s
basis_z 19 21 0.684 0.789 0.842 0.476 0.333 0.381 3 2
fut_oi_chg_z 11 25 0.727 0.545 0.909 0.360 0.240 0.120 5 5
kr_10y_chg_z 14 23 0.786 0.786 0.786 0.304 0.174 0.174 3 4
max_pain_dist_z 11 0 0.727 0.636 0.909 3
vkospi_fut_z 0 2 0.000 0.000 0.500 3
pcr_oi_z 0 0
vkospi_proxy_z 0 0

핵심 (baseline D+20 UP 0.725 대비):

  • basis_z: bull D+20 0.842 (+11.7pp ★), bear D+20 0.381 (= 61.9% 하락, +9.4pp 하방 우위) — 양방향 모두 검증 ★★
  • fut_oi_chg_z: bull D+20 0.909 (n=11), bear D+20 0.120 ★★ (88% 실제 하락, 최강 SELL 신호) — 양방향 강함
  • kr_10y_chg_z: bull D+20 0.786 (= baseline 수준), bear D+20 0.174 ★★ (83% 실제 하락) — bear 강함, bull은 baseline
  • max_pain: bull n=11 D+20 0.909 (n 적음 주의), bear n=0
  • vkospi_fut_z, pcr_oi_z, vkospi_proxy_z: 발화 자체 ≤2건 — 운영 불가

선행성 (first swing days): - basis_z bull 3일 / bear 2일 — 가장 빠름 - fut_oi_chg_z bull 5일 / bear 5일 — 느림 - kr_10y_chg_z bull 3일 / bear 4일

매크로 fold별 D+10 안정성

  • basis_z bull: f0~f3 모두 0.75~1.0, f4만 0.5 → fold 0~3 안정 ★, fold 4만 약화 (검증 기간 마지막)
  • basis_z bear: f0/f1 0.5, f2 0.75, f3/f4 0.0 → 불안정 (특히 후반 fold에서 KOSPI 안 떨어짐)
  • fut_oi_chg_z bull: f0/f3 1.0, f1 0.333, f2 0.0 → 들쭉날쭉
  • fut_oi_chg_z bear: f0 0.167, f1 0.1, f2 1.0(n=1), f3 0.6 → 일관 약함 (대부분 fold에서 baseline 미달)

매크로 신호는 종목 차트보다 일관성↑ (특히 basis_z bull) 하지만 fold 4(검증 기간 후반) 약화는 양쪽 공통.


3. 모듈 종합 순위

3-1. bull 신호 정확도 (D+20 hit rate, 표본 ≥10)

순위 모듈 bull D+20 baseline 대비 표본
1 fut_oi_chg_z (HIGH) 0.909 +18.4pp 11
1 max_pain_dist_z (HIGH) 0.909 +18.4pp 11
3 basis_z (HIGH) 0.842 +11.7pp 19
4 kr_10y_chg_z (HIGH) 0.786 +6.1pp 14
5 VSA last_signal_kind (bullish) 0.696 +7.9pp 57
6 Wyckoff phase ≥1 0.643 +2.6pp 384
7 OF 30min buy-sell pres >0.3 0.615 -0.2pp 46
8 Wyckoff event_bias >0.3 0.571 -4.6pp 15
9 OF daily cvd_z >+1 0.528 -8.9pp 347
10 VolumeProfile asym >0.3 0.542 -7.5pp 246

3-2. bear 신호 정확도 (D+20 hit rate = 실제 하락 비율, 표본 ≥10)

순위 모듈 bear D+20 baseline 대비 표본
1 fut_oi_chg_z (LOW) 0.120 -50.5pp (= 88% 하락) 25
2 VolumeProfile asym <-0.3 0.160 -45.7pp (= 84% 하락) 28
3 kr_10y_chg_z (LOW) 0.174 -55.1pp (= 83% 하락) 23
4 OF daily cvd_z+div 0.247 -37.0pp 82
5 OF daily cvd_z <-1 0.250 -36.7pp 81
5 OF 30min cvd_z <-1 0.250 -36.7pp 151
7 VSA strong bearish 0.279 -33.8pp 63
8 Wyckoff event_bias <-0.3 0.286 -33.1pp 145
9 OF 30min buy-sell <-0.3 0.329 -28.8pp 342
10 OF daily buy-sell <-0.3 0.355 -26.2pp 206
11 VSA last_signal_kind 0.370 -24.7pp 108
12 Wyckoff SC/Spring vs BC/UT 0.378 -23.9pp 640
13 3-Laws SD <0.8 0.383 -23.4pp 891 (전부)

bear 쪽이 bull보다 신호력 강함 — baseline이 양수(D+20 baseline UP 0.617)이기 때문에 신호 없을 때 평균 ~62% 상승. 따라서 bear 발화 후 하락 비율 50% 이상이면 "역방향" 통과. bear 신호는 회피 룰로 모두 활용 가치 있음.

3-3. 선행성 (median first ±3% swing days, bull/bear 평균)

모듈 일수
종목 차트 (전 모듈) 2~3일
basis_z, kr_10y 2~3일
fut_oi_chg_z 5일
max_pain 3일
vkospi 3일

모듈 간 선행성 차이 거의 없음. 점검 기간이 짧고(67거래일) 변동성이 커서 swing 도달이 모두 빠름. 선행성을 모듈 선택 기준으로 쓰기 어려움.


4. 검증 기간 한계 (편향 점검)

  • 기간 짧음 (67거래일): fold 4에 5시점(전체 9시점 중 56%)이 몰림 → fold 4가 결과를 좌우
  • 시장 환경: 2026-02-13 KOSPI 5,580 → 04-24 5,950 (≈ +6.6% 상승 구간) + 03-09 swing low + 03-18 high
  • fold 0~3 (02-25 ~ 03-26): KOSPI 변동성 큰 구간 (3월 swing 3건 모두 포함)
  • fold 4 (04-02 ~ 04-23): 추세 상승 후반
  • 결과: bull 신호가 fold 4에서 부풀고, bear 신호가 fold 4에서 약화 — 시장 방향 일치 효과
  • 암시: 이 점검은 강세장 6주 + swing 3건만 본 것. 하락장/횡보장에서 같은 모듈이 같은 성과를 낼지는 별도 검증 필요.

5. PM 운영 권고

진입 신호 (bull, 표본 + hit rate 종합)

  • ★★ 매크로 basis_z HIGH (D+20 0.842, n=19, fold 0~3 안정) — 최우선
  • ★ Wyckoff phase ≥1 + VSA last_signal_kind bullish 조합 (개별 D+20 0.64~0.70, 표본 380+/57)
  • 회피: OF daily cvd_z 단독 bull (D+20 0.528, baseline 미달)

회피 신호 (bear)

  • ★★ fut_oi_chg_z LOW (D+20 0.120, 88% 하락, n=25)
  • ★★ VolumeProfile vol_asym <-0.3 (D+20 0.160, 84% 하락, n=28)
  • ★★ kr_10y_chg_z LOW (D+20 0.174, n=23)
  • ★ OF daily cvd_z <-1 (D+20 0.250, n=81)
  • 차트 bear 신호는 baseline(0.617) 대비 모두 회피 가치 있음 — 0.37~0.42 (33~38% UP) = 모두 underperform

사용 보류

  • pcr_oi_z, vkospi_proxy_z — 발화 0건 (데이터/임계 문제)
  • vkospi_fut_z — 발화 2건
  • 3-Laws SD ratio — 임계 잘못 (891 전부 < 0.8)
  • VSA strong bull — 표본 1건

선행성 결론

  • 종목 단위 모듈 모두 2~3일 내 ±3% swing 도달 (강세장+변동성 큰 구간이라 빠름)
  • 모듈별 선행성 우위 판단 보류 — 더 긴 기간(약세장 포함)에서 재측정 필요

6. 한계 + 다음 단계

  1. 표본 규모: 차트 891 sample, 매크로 126 발화 — fold당 표본이 모듈별로 ≤30. 통계 유의성 검증(DSR/PBO) 미실행.
  2. fold 4 편중: 시간 5분할이 시점 9개에서 균등 분할 안 됨. 다음에는 fold size 균등 분할(시점 9 = 3 fold × 3 시점) 또는 시점 더 늘림.
  3. 하락장 미포함: 검증 기간 전체가 강상승장(YTD +35%). 2024/2025 약상승/조정 구간 walk-forward 필요.
  4. 첫 swing 정의: ±3% 기준은 변동성 큰 종목에선 1~2일에 자주 닿음. ±5%/±7% 분리 측정 권장.
  5. 모듈 조합: 단독 점검만. bull+bear 합의 시 정확도 향상 가능성(S307big의 5-trigger BUY_STRONG 사례) 미측정.

7. 산출물

  • 코드: scripts/backtest/s317_module_audit.py (raw 수집)
  • 코드: scripts/backtest/s317_macro_audit.py (매크로 raw 수집)
  • 코드: scripts/backtest/s317_module_aggregate.py (집계)
  • 데이터: data/backtest/s317_audit/samples.parquet (891 × 28 cols)
  • 데이터: data/backtest/s317_audit/macro_events.parquet (126 발화)
  • 데이터: data/backtest/s317_audit/audit_report.json (집계 결과)