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_eventlast_segment 제외): 빈도/verdict 변화 미미. 250종목 4년 시계열에서 신저점·신고점 단봉 사례 자체가 희박. 단일 종목 추적·자동매매 시 자기참조 미발화 케이스 방지로 의미. - OF 신호: BUY +15.16% / SELL 단독 실패 — 수정 전후 동일. retrace/Wyckoff와 무관한 분봉 BVC/CVD 기반이라 영향 없음. PM 6번 교정 ("차트만으론 불가") 직접 재확인.
- MDD worst -60%대 유지: 시총 51~250위 종목의 단일 종목 큰 낙폭 위험은 trigger 변경으로 해결 불가. 시장+재료 결합 필요.
결론¶
- 결함 #1+#2+#3 수정은 정합성 확보가 본질, alpha 폭증은 없음. retrace 분모 일관화는 표준 Fibonacci 정의 위반을 바로잡아 표시 수치의 신뢰성을 회복. Wyckoff Spring/UT는 자기참조 버그 차단이 본질.
- S307big+OF의 strong 신호는 수정 후에도 유효 (BUY_STRONG sortino 2.71, OF BUY sortino 2.16). 다만 OF SELL은 단독 실패 확정 — 시장+재료 결합 필요.
- 차트 단독 한계 재확인: 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 결과)- 본 문서