백테스팅 과적합 방지와 파이썬 파이프라인

백테스팅 과적합 방지와 파이썬 파이프라인

과거 데이터로 전략을 검증하는 백테스팅(Backtesting) 과정에서 가장 흔히 범하는 실수는 '과거 데이터에 완벽히 맞춘 허구의 수익률'을 만드는 것입니다.


1. 백테스팅의 4대 치명적 함정

  1. 과적합 (Overfitting / Curve-Fitting) * 과거 특정 기간의 노이즈에 맞춰 파라미터(예: 이평선 기간 17.8일, RSI 31.4 등)를 최적화하여 백테스트 수익률을 억지로 부풀리는 행위.
  2. 슬리피지(Slippage) 미반영 * 대량 주문이 호가창을 갉아먹으며 발생하는 체결 가격 왜곡을 무시하는 오류.
  3. 거래 수수료(Fees) 과소평가 * 하루 수십 번 매매하는 단타 봇의 경우 거래소 수수료(0.05%~0.1%)가 누적되면 복리 수익이 전부 수수료로 증발합니다.
  4. 생존자 편향 (Survivorship Bias) * 과거에 상장폐지되거나 망한 코인은 제외하고 현재 살아남은 상위 코인들로만 과거 백테스트를 돌려 수익률을 왜곡하는 오류.

2. 워크 포워드 분석 (Walk-Forward Analysis)

과적합을 방지하기 위해 데이터를 인샘플(In-Sample, 학습용)아웃오브샘플(Out-of-Sample, 검증용)로 엄격히 분리해야 합니다.

 [2021 데이터: 전략 최적화 (In-Sample)] ---> [2022 미공개 데이터로 검증 (Out-of-Sample)]
                                                              |
                                                              v
 [2022 데이터: 전략 재최적화 (In-Sample)] ---> [2023 미공개 데이터로 검증 (Out-of-Sample)]
  • 아웃오브샘플 구간에서도 인샘플 대비 70% 이상의 기대 성능이 유지되어야 실전 배포가 가능한 신뢰할 수 있는 전략입니다.