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


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

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

[TOC]

---

## 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% 이상의 기대 성능이 유지되어야 실전 배포가 가능한 신뢰할 수 있는 전략입니다.