콘텐츠로 이동

S307 백테스트 — S305 baseline 대비 변경 효과 측정

Date: 2026-05-24 (Sun) Topic: L (시스템 재설계) Predecessor: S305 (retrace 게이트 백테스트), S307 trigger 변경

1. 설계

  • S303/S305와 동일 universe (KOSPI 50 + KOSDAQ 30 = 80종목), 동일 기간(2022-01 ~ 2026-04-15), 매 5 영업일
  • OHLCV 캐시 재사용 (s303/ohlcv)
  • 차이: S307 trigger 변경 = cp 동적 임계(252봉) + AMT POC 정체 동적화 + OF 자동 제외(4 trigger)
  • 총 samples: 16,172 (S305와 동일)
  • 소요: 약 21분

2. Verdict 분포 비교

Verdict S305 S307 delta delta %
MIXED_BUY_LEAN 6,233 6,310 +77 +1.2%
MIXED_SELL_LEAN 3,247 3,353 +106 +3.3%
BUY 2,625 2,556 -69 -2.6%
MIXED 1,552 1,608 +56 +3.6%
AVOID_STRONG 289 902 +613 +212.1%
AVOID 1,473 763 -710 -48.2%
CAUTION 242 251 +9 +3.7%
WATCH 231 244 +13 +5.6%
BUY_STRONG 241 144 -97 -40.2%
NEUTRAL 39 41 +2 +5.1%

핵심 흐름

  1. AVOID 절반(710개) → AVOID_STRONGstrong_threshold = max(3, n_total - 1) 공식. OF 제외로 4 trigger 모드 → threshold 4 → 3. sell_votes 3개면 STRONG 자동 충족.
  2. BUY_STRONG 40% 감소 — 동일 원리: BUY 4표 강조건이 사라지면서 BUY로 강등.
  3. 변경 매트릭스: 90.9% (14,700 sample) 동일, 9.1% (1,472 sample) 변경.

3. 변화 매트릭스 (S305 → S307, 주요 흐름)

S305 AVOID         (1473): → AVOID 741 + AVOID_STRONG 683 + MIXED_SELL_LEAN 36 + ...
S305 AVOID_STRONG  ( 289): → AVOID_STRONG 199 + MIXED_SELL_LEAN 90
S305 BUY           (2625): → BUY 2469 + WATCH 14 + ...
S305 BUY_STRONG    ( 241): → BUY 36 + ...
S305 MIXED         (1552): → MIXED_SELL_LEAN 57 + WATCH 7 + ...
S305 MIXED_SELL_LEAN (3247): → MIXED_SELL_LEAN 3161 + AVOID 16 + AVOID_STRONG 20

4. Verdict별 D+20 alpha 변화

Verdict n305 n307 mean305 mean307 delta win305 win307
AVOID 1473 763 +3.44% +3.45% +0.01pp 57.1% 55.8%
AVOID_STRONG 289 902 +2.70% +3.42% +0.72pp 56.4% 58.0%
BUY 2625 2556 +4.77% +4.75% -0.02pp 54.6% 54.5%
BUY_STRONG 241 144 +5.67% +4.62% -1.05pp 56.9% 50.7%
CAUTION 242 251 +1.29% +1.30% +0.01pp 45.9% 46.6%
MIXED 1552 1608 +3.03% +3.33% +0.30pp 53.3% 53.7%
MIXED_BUY_LEAN 6233 6310 +4.57% +4.55% -0.02pp 53.1% 53.2%
MIXED_SELL_LEAN 3247 3353 +4.08% +4.00% -0.08pp 57.2% 57.2%
NEUTRAL 39 41 +1.86% +2.85% +0.99pp 59.0% 63.4%
WATCH 231 244 +1.76% +2.02% +0.26pp 55.0% 55.3%

핵심

  1. AVOID_STRONG 표본 3.1배 증가에도 D+20 alpha 유지·증가 (+0.72pp) — 새 AVOID_STRONG도 진짜 신호. SELL 강도 결정에 의미.
  2. BUY_STRONG 표본 40% 감소 + D+20 alpha -1.05pp — S305 BUY_STRONG 일부가 평범한 BUY로 강등됨. D+60도 -2.42pp. 강한 BUY 신호의 정밀도 약화.
  3. MIXED 약간 개선 — D+60 +0.87pp. 미세하지만 일관 방향.

5. 핵심 verdict 호라이즌별 (S307 - S305)

BUY_STRONG (n: 241 → 144, -40%)

호라이즌 S305 S307 delta
D+5 +1.71% +1.32% -0.39pp
D+10 +3.56% +4.03% +0.47pp
D+20 +5.67% +4.62% -1.05pp
D+60 +18.57% +16.15% -2.42pp

STRONG 분류의 정밀도 약화. OF 제외로 trigger 수 감소 시 "강한 합의 4표"가 더 쉽게 충족되는 반작용.

AVOID_STRONG (n: 289 → 902, +212%)

호라이즌 S305 S307 delta
D+5 +0.69% +1.22% +0.53pp
D+10 +1.49% +2.04% +0.55pp
D+20 +2.70% +3.42% +0.72pp
D+60 +9.35% +9.69% +0.34pp

표본 ×3.1 증가에도 alpha 유지 = SELL 강도 신호의 일관성 유지.

BUY / MIXED_BUY_LEAN / MIXED_SELL_LEAN

거의 동일 (±0.13pp). 단순 BUY/LEAN 분류는 S307 변경 영향 최소.

6. 5건 명백 오답 케이스

목표 시점 ±10일 인접 sample 매칭 결과 (백테스트 SAMPLE_INTERVAL=5 영업일):

Case 시점 (인접) S305 verdict S307 verdict 실제 D+60
A3 한화에어로 2025-09-26 MIXED_BUY_LEAN MIXED_BUY_LEAN -9.10%
A3 한화에어로 2025-10-10 MIXED_BUY_LEAN MIXED_BUY_LEAN -3.07%
B1 삼전 2022-09-27 MIXED_SELL_LEAN MIXED_SELL_LEAN +9.04%
B1 삼전 2022-10-05 BUY BUY -1.25%
B3 LGES 2023-10-30 AVOID_STRONG AVOID_STRONG -9.14%
B3 LGES 2023-11-06 MIXED_BUY_LEAN MIXED_BUY_LEAN -22.70%
D1 KT&G 2025-03-06 AVOID MIXED_SELL_LEAN +25.40%
D1 KT&G 2025-03-13 MIXED_SELL_LEAN MIXED_SELL_LEAN +27.16%
E1 카카오 2022-10-13 MIXED_SELL_LEAN MIXED_SELL_LEAN +20.93%
E1 카카오 2022-10-20 MIXED_SELL_LEAN MIXED_SELL_LEAN +29.84%

변경

D1 KT&G 2025-03-06만 AVOID → MIXED_SELL_LEAN (1건). 실제 +25.40%였으므로 SELL 강도 약화는 정답 방향. cp 동적 임계 또는 AMT POC 정체 동적화의 효과.

나머지 9개 시점은 동일. 5건 명백 오답 자체는 차트 신호 미검출 (SC/BC=0)이라 trigger 변경으로 해결 불가 — S306 결함 분석 그대로 유효. PM "차트만으로 해결 불가, 시장+재료 결합 필요" 재확인.

7. Baseline

ALL D+60 mean: S305 +12.75% / S307 +12.75% (n=15,626 동일). 모집단 일치 확인.

8. 결론

변경 효과

  1. OF 제외(4 trigger 운영) — strong_threshold 자동 조정으로 AVOID/BUY ↔ AVOID_STRONG/BUY로 재분포. AVOID_STRONG alpha 유지(긍정), BUY_STRONG alpha 약화(주의).
  2. cp 동적 임계 + AMT POC 정체 동적화 — verdict 분포에 직접 영향은 적음 (대부분 9% 미만 변경). VSA SC/BC count 변화는 있으나 판정부 다른 조건이 결정 안정.
  3. 5건 명백 오답 — D1 1건만 SELL 강도 약화. 나머지 동일. 시스템 한계 인정.

평가

  • S307 변경은 트리거 자체의 원전 정합성 개선 + 임의 가드 제거 + OF 30분봉 정책 수립이 목적. 큰 verdict alpha 개선이 목표가 아님.
  • 백테스트는 동일 모집단/기간에서 시스템이 안정 + 분포 재조정만 발생 확인.
  • 다음 단계 (PM 결정 대기): 차트 + 시장 상황 + 재료 결합 시스템.

9. 산출물

  • scripts/backtest/s307_run_backtest.py — S307 백테스트 스크립트
  • scripts/backtest/s307_compare.py — S305 vs S307 비교
  • scripts/backtest/s307_cases_check.py — 5건 명백 오답 인접 시점 확인
  • data/backtest/s307/samples.parquet — 16,172 samples
  • data/backtest/s307/run_log.txt — 백테스트 실행 로그