백테스트 과적합이란?
퀀트 투자에서 백테스트(Backtest)는 전략의 성능을 과거 데이터로 검증하는 핵심 단계입니다. 그런데 많은 초보 퀀트 트레이더가 빠지는 치명적인 함정이 있습니다. 바로 과적합(Overfitting)입니다.
과적합이란 전략이 과거 데이터에 지나치게 맞춰져서, 실전에서는 전혀 통하지 않는 상태를 말합니다. 백테스트 수익률이 연 200%가 나와도, 실전에서 마이너스가 나는 이유가 대부분 여기에 있습니다.
과적합이 발생하는 5가지 원인
1. 파라미터를 너무 많이 최적화한다
이동평균 기간, RSI 임계값, 볼린저 밴드 배수 등 파라미터를 하나씩 바꿔가며 최고 수익률 조합을 찾는 행위는 과적합의 가장 흔한 원인입니다. 파라미터가 5개 이상이면 이미 위험 신호입니다.
# 과적합 위험이 높은 전략 예시
def strategy(data, ma_short=7, ma_long=23, rsi_period=11,
rsi_upper=73, rsi_lower=28, bb_mult=1.87):
# 파라미터 6개 → 과적합 가능성 매우 높음
pass
2. 테스트 기간이 너무 짧다
6개월~1년 데이터로 백테스트하면, 그 기간의 특수한 시장 상황에만 맞는 전략이 됩니다. 최소 3년 이상, 가능하면 상승장과 하락장을 모두 포함하는 기간을 사용해야 합니다.
3. 거래 비용을 무시한다
슬리피지(Slippage), 수수료, 스프레드를 반영하지 않으면 실전과 완전히 다른 결과가 나옵니다. 특히 고빈도 전략일수록 이 차이는 극적으로 벌어집니다.
4. 생존자 편향(Survivorship Bias)
상장폐지된 종목이나 사라진 코인을 데이터에서 제외하면, 살아남은 종목만 대상으로 테스트하게 됩니다. 실전에서는 이런 종목을 미리 알 수 없으므로 결과가 왜곡됩니다.
5. 데이터 스누핑(Data Snooping)
같은 데이터셋으로 수십 가지 전략을 테스트하면, 우연히 좋은 결과가 나오는 전략이 반드시 존재합니다. 이것은 전략의 우수성이 아니라 확률의 장난입니다.
과적합을 방지하는 실전 기법 4가지
기법 1: Walk-Forward 분석
데이터를 여러 구간으로 나눠서, 앞 구간에서 최적화하고 뒤 구간에서 검증하는 방식입니다. In-Sample과 Out-of-Sample을 반복하면 과적합 여부를 객관적으로 판단할 수 있습니다.
# Walk-Forward 분석 구조
periods = [
{"train": "2020-01 ~ 2021-06", "test": "2021-07 ~ 2021-12"},
{"train": "2021-01 ~ 2022-06", "test": "2022-07 ~ 2022-12"},
{"train": "2022-01 ~ 2023-06", "test": "2023-07 ~ 2023-12"},
{"train": "2023-01 ~ 2024-06", "test": "2024-07 ~ 2024-12"},
]
# 각 test 구간 수익률이 일관되면 → 과적합 아님
# test 구간마다 결과가 들쭉날쭉 → 과적합 의심
기법 2: 파라미터 안정성 테스트
최적 파라미터 주변 값에서도 비슷한 성능이 나오는지 확인합니다. 이동평균 20일이 최적인데, 18일이나 22일로 바꾸면 성능이 급락한다면 그 전략은 과적합된 것입니다.
| 이동평균 기간 | 연간 수익률 | 판정 |
|---|---|---|
| 18일 | 12% | 양호 |
| 19일 | 14% | 양호 |
| 20일 | 15% | 최적 |
| 21일 | 13% | 양호 |
| 22일 | 11% | 양호 |
위처럼 주변 값에서도 안정적인 수익률이 나와야 신뢰할 수 있는 전략입니다.
기법 3: 몬테카를로 시뮬레이션
거래 순서를 무작위로 섞어서 수천 번 시뮬레이션합니다. 최대 낙폭(MDD)의 분포를 확인하면, 운이 좋았던 것인지 전략이 좋았던 것인지 구분할 수 있습니다.
기법 4: 단순한 전략을 고수한다
파라미터가 적을수록, 로직이 단순할수록 과적합 위험은 줄어듭니다. 실전에서 꾸준히 수익을 내는 전략은 대부분 놀라울 정도로 단순합니다.
- 파라미터는 3개 이하로 제한
- 진입·청산 조건은 명확하고 간결하게
- “이 전략을 한 문장으로 설명할 수 있는가?”를 자문
실전 체크리스트: 내 전략이 과적합인가?
아래 항목 중 3개 이상 해당되면 과적합을 강하게 의심해야 합니다.
- ☑️ 백테스트 수익률이 비현실적으로 높다 (연 100% 이상)
- ☑️ 파라미터를 조금만 바꿔도 성능이 급변한다
- ☑️ 특정 기간에서만 좋은 성능이 나온다
- ☑️ 파라미터가 5개 이상이다
- ☑️ Out-of-Sample 테스트를 한 번도 하지 않았다
- ☑️ 거래 비용을 반영하지 않았다
- ☑️ 같은 데이터로 10회 이상 전략을 수정했다
과적합을 넘어서: 실전에서 살아남는 전략 만들기
백테스트는 전략 개발의 시작이지 끝이 아닙니다. 과적합을 방지하는 핵심 원칙을 정리하면 다음과 같습니다.
- 단순함을 추구하라 — 복잡한 전략은 시장 변화에 취약합니다
- Out-of-Sample 검증은 필수 — 학습 데이터와 검증 데이터를 반드시 분리하세요
- 거래 비용을 현실적으로 반영하라 — 슬리피지는 생각보다 큽니다
- 다양한 시장 환경에서 테스트하라 — 상승장에서만 잘 되는 전략은 전략이 아닙니다
과적합의 유혹을 이기는 것, 그것이 퀀트 투자에서 진짜 실력입니다. 완벽한 백테스트보다 견고한 전략이 실전에서 당신의 계좌를 지켜줍니다.
관련 글도 함께 읽어보세요: