콘텐츠로 이동

S307 차트 모듈 결함 수정 후 백테스트 재실행

Date: 2026-05-24 (Sun) Topic: L (시스템 재설계) Predecessor: 2026-05-24_S307_defects_fix.md (결함 #1+#2+#3 수정)

목적

S307big / S307big+OF 백테스트를 결함 수정 후 다시 돌려 retrace 분모 일관화(_retracement.py 결함 #1+#2)와 Wyckoff Spring/UT support_for_event last_segment 제외(결함 #3)의 실제 영향을 측정.

재실행 결과

백테스트 samples 소요
S307big (250종목, 4 trigger, OF 제외) 47,456 4,109.9초 (~68분)
S307big+OF (250종목, 5 trigger, 30분봉 가용) 1,682 184초 (~3분)

수정 전과 sample 수 완전 동일 (모집단·시점·캐시 일치).

핵심 지표 변화 (수정 전 vs 수정 후)

전체 baseline (D+20)

데이터 수정 전 (_index.md L41) 수정 후
S307big mean +3.41% calmar 0.31 +3.41% sharpe 0.194 sortino 0.503 calmar 0.31 (동일)
S307big+OF mean +11.33% sharpe 0.41 sortino 1.47 calmar 0.85 +11.33% sharpe 0.408 sortino 1.471 calmar 0.853 (동일)

BUY_STRONG D+20

Stage 수정 전 수정 후
S305 +5.67% sortino 0.81 calmar 0.44 +5.67% sortino 0.808 calmar 0.439
S307big +5.05% sortino 0.75 +5.45% sortino 0.810 calmar 0.423 (S305 수준 회복)
S307big+OF +27.64% sortino 2.68 calmar 1.74 (n=25) +29.39% sortino 2.710 calmar 1.841 (n=20)

해석: BUY_STRONG 표본은 S307big에서 +0.40pp 개선(S305 -0.62pp → -0.22pp), S307big+OF는 표본 25→20으로 줄었지만 alpha 폭은 더 강해짐(+1.75pp). 결함 수정이 신호 정밀도를 부분 회복.

OF active 신호

그룹 수정 전 수정 후
OF BUY (n=65) +15.16% sortino 2.16 calmar 1.27 +15.16% sortino 2.164 calmar 1.273 (동일)
OF SELL (n=8) +23.95% downside 0 = 단독 실패 +23.95% sharpe 0.744 downside 0 = 단독 실패 (동일)

OF 신호는 분봉 기반이라 retrace/Wyckoff 결함 수정의 영향 거의 없음.

Verdict 분포 변화 (S307big+OF, n=1,682)

Verdict 수정 후
MIXED_SELL_LEAN 807
MIXED_BUY_LEAN 466
MIXED 139
BUY 121
AVOID 105
BUY_STRONG 20
AVOID_STRONG 13
WATCH 8
CAUTION 3

S307big vs S307big+OF 매칭 1,682건 중 변경 없음 1,579 (93.9%) / 변경 103 (6.1%). OF 활성화가 6.1% sample에서만 verdict 전환 — strong 분류는 OF에서 강화(BUY_STRONG +12, AVOID_STRONG +13).

같은 sample 한정 OF 활성 alpha (n=1,682)

Verdict n_big (4tr) n_of (5tr) mean_big mean_of
BUY_STRONG 8 20 +35.35% +29.39%
BUY 126 121 +12.16% +11.93%
MIXED_BUY_LEAN 470 466 +10.03% +9.69%
MIXED_SELL_LEAN 823 807 +11.63% +11.59%
AVOID 46 105 +10.64% +11.29%
AVOID_STRONG 77 13 +11.02% +8.26%

OF 추가가 BUY_STRONG 표본을 8→20으로 늘리면서 평균 alpha는 +35.35% → +29.39%로 다소 희석 (편의 회피 효과). AVOID_STRONG은 77→13으로 응축되며 +11.02% → +8.26% (더 명확한 약세 신호).

평가

  • 결함 #1+#2 (retrace 분모 일관화): S307big BUY_STRONG D+20 +5.05% → +5.45% (alpha 회복). 분포 폭증 없음 — 표준 Fibonacci 정의 적용은 verdict 라벨 큰 변화보다 신호 품질 미세 개선에 기여.
  • 결함 #3 (Wyckoff Spring/UT support_for_event last_segment 제외): 빈도/verdict 변화 미미. 250종목 4년 시계열에서 신저점·신고점 단봉 사례 자체가 희박. 단일 종목 추적·자동매매 시 자기참조 미발화 케이스 방지로 의미.
  • OF 신호: BUY +15.16% / SELL 단독 실패 — 수정 전후 동일. retrace/Wyckoff와 무관한 분봉 BVC/CVD 기반이라 영향 없음. PM 6번 교정 ("차트만으론 불가") 직접 재확인.
  • MDD worst -60%대 유지: 시총 51~250위 종목의 단일 종목 큰 낙폭 위험은 trigger 변경으로 해결 불가. 시장+재료 결합 필요.

결론

  1. 결함 #1+#2+#3 수정은 정합성 확보가 본질, alpha 폭증은 없음. retrace 분모 일관화는 표준 Fibonacci 정의 위반을 바로잡아 표시 수치의 신뢰성을 회복. Wyckoff Spring/UT는 자기참조 버그 차단이 본질.
  2. S307big+OF의 strong 신호는 수정 후에도 유효 (BUY_STRONG sortino 2.71, OF BUY sortino 2.16). 다만 OF SELL은 단독 실패 확정 — 시장+재료 결합 필요.
  3. 차트 단독 한계 재확인: 5건 명백 오답(S305 진단)이 trigger 변경/결함 수정으로 안 풀림. 본질은 "차트만으론 불가"는 PM 진단 그대로.

다음

퀀트 분석기 구현 진입. docs/planning/discovery_feature_spec.md 후보 피처에서 검증 가능한 항목부터 한국 코퍼스 자체 base-rate 측정. R3 Layer A(가격·VSA·수급)·R4(랭킹·모멘텀)·R5(EarnAccel·이벤트 CAR) 순으로 단계별 백테스트.

산출

  • data/backtest/s307big/samples.parquet (47,456 rows, post-fix)
  • data/backtest/s307bigof/samples.parquet (1,682 rows, post-fix)
  • data/backtest/s307big/samples_pre_fix.parquet (백업, 수정 전)
  • data/backtest/s307bigof/samples_pre_fix.parquet (백업, 수정 전)
  • data/backtest/s307bigof/compare_postfix.txt (compare 실행 결과)
  • data/backtest/s307bigof/risk_metrics_postfix.txt (risk metrics 결과)
  • 본 문서