백테스트 과최적화란?
퀀트 트레이딩에서 백테스트(backtest)는 전략의 과거 성과를 검증하는 핵심 단계입니다. 하지만 백테스트 결과가 아무리 좋아도, 실전에서 수익이 나지 않는 경우가 매우 흔합니다. 그 원인 대부분이 바로 과최적화(overfitting)입니다.
과최적화란 전략의 파라미터를 과거 데이터에 지나치게 맞춘 나머지, 과거에만 통하는 전략을 만들어버리는 현상입니다. 마치 시험 답안지를 외워서 만점을 받지만, 새로운 문제에서는 0점을 받는 것과 같습니다.
과최적화가 위험한 이유
과최적화된 전략은 다음과 같은 특징을 보입니다:
- 백테스트 수익률은 놀라울 정도로 높음 — 연 100% 이상의 수익률도 쉽게 나옴
- 실전 투입 시 즉시 손실 — 라이브 트레이딩에서 첫 달부터 마이너스
- 시장 환경 변화에 취약 — 특정 구간에서만 작동하고 나머지에서는 무용
- 파라미터 수가 지나치게 많음 — 조건이 10개 이상인 전략은 의심해야 함
실제로 퀀트 펀드 업계에서도 과최적화는 가장 경계하는 문제입니다. 수많은 PhD 출신 퀀트 트레이더들도 이 함정에 빠집니다.
과최적화를 감지하는 5가지 방법
1. 인샘플/아웃오브샘플 분리
전체 데이터를 학습용(in-sample)과 검증용(out-of-sample)으로 나누는 것은 가장 기본적인 방법입니다. 보통 70:30 또는 60:40 비율로 나눕니다. 학습 구간에서 최적화한 전략이 검증 구간에서도 비슷한 성과를 보이는지 확인합니다.
검증 구간 성과가 학습 구간의 50% 이하로 떨어진다면, 과최적화를 강하게 의심해야 합니다.
2. Walk-Forward 분석
Walk-Forward Analysis(WFA)는 인샘플/아웃오브샘플 테스트를 시간순으로 반복하는 방법입니다. 예를 들어:
- 2020년 데이터로 최적화 → 2021년 1분기 검증
- 2020~2021Q1 데이터로 재최적화 → 2021년 2분기 검증
- 이 과정을 반복하여 전체 검증 기간의 성과를 합산
WFA는 실전과 가장 유사한 조건을 시뮬레이션하므로, 과최적화 여부를 판단하는 데 매우 효과적입니다.
3. 파라미터 민감도 분석
최적 파라미터 주변 값을 약간씩 변경했을 때 성과가 급격히 변한다면, 해당 전략은 과최적화 상태일 가능성이 높습니다. 건강한 전략은 파라미터를 ±10~20% 변경해도 성과가 크게 흔들리지 않습니다.
이를 파라미터 안정성(parameter stability) 또는 로버스트니스(robustness) 검사라고 합니다.
4. 몬테카를로 시뮬레이션
거래 순서를 무작위로 섞어 수천 번 시뮬레이션하면, 전략 성과의 통계적 분포를 얻을 수 있습니다. 최악의 시나리오에서도 수익이 나는지, 최대 낙폭(MDD)이 감당 가능한 수준인지 확인합니다.
몬테카를로 시뮬레이션의 5% 하위 구간에서도 계좌가 생존한다면, 비교적 안전한 전략입니다.
5. 다중 자산/다중 시장 테스트
하나의 종목에서만 잘 작동하는 전략은 위험합니다. 동일한 전략 로직을 다른 종목, 다른 시장, 다른 시간대에 적용해보세요. 비트코인에서 만든 전략이 이더리움이나 S&P 500에서도 어느 정도 작동한다면, 범용성이 높은 전략입니다.
과최적화를 방지하는 실전 원칙
파라미터는 최소화하라
전략의 파라미터 수는 5개 이하를 권장합니다. 파라미터가 많을수록 과거 데이터에 완벽히 맞추기 쉬워지지만, 그만큼 미래 적응력은 떨어집니다. 단순한 전략이 복잡한 전략보다 오래 살아남는 이유입니다.
거래 횟수를 확보하라
백테스트에서 최소 100회 이상의 거래가 있어야 통계적 유의미성을 확보할 수 있습니다. 30회 미만의 거래로 “연 200% 수익률” 같은 결과를 얻었다면, 그것은 전략의 우수함이 아니라 운일 가능성이 높습니다.
수수료와 슬리피지를 반영하라
실전에서는 수수료, 슬리피지(체결 가격 차이), 스프레드가 존재합니다. 특히 고빈도 전략에서는 이 비용이 수익을 완전히 잠식할 수 있습니다. 백테스트 시 보수적인 거래 비용을 반드시 반영하세요.
예를 들어 코인 선물 기준으로 편도 수수료 0.04%를 적용하면, 하루 10번 거래 시 왕복 비용만 연간 수백 퍼센트에 달합니다.
전략의 논리적 근거를 점검하라
백테스트 결과가 좋더라도, “왜 이 전략이 작동하는가?”에 대한 논리적 설명이 없다면 과최적화를 의심해야 합니다. “이동평균 크로스가 왜 효과적인가?”에 대한 시장 메커니즘 차원의 설명이 가능해야 합니다.
실전 체크리스트
백테스트 후 아래 항목을 점검하세요:
- ✅ 아웃오브샘플 성과가 인샘플의 60% 이상인가?
- ✅ 파라미터를 ±15% 변경해도 성과가 유지되는가?
- ✅ 거래 횟수가 100회 이상인가?
- ✅ 수수료·슬리피지를 보수적으로 반영했는가?
- ✅ 다른 종목/시장에서도 작동하는가?
- ✅ 전략의 논리적 근거를 설명할 수 있는가?
- ✅ Walk-Forward 분석을 수행했는가?
이 체크리스트에서 5개 이상 통과해야 실전 투입을 고려할 만합니다.
관련 글 더 보기
퀀트 전략을 실전에 적용하기 전에, 계좌 관리의 기본도 함께 점검하세요:
마무리
백테스트 과최적화는 퀀트 트레이딩에서 가장 흔하면서도 가장 치명적인 실수입니다. 화려한 백테스트 결과에 현혹되지 마세요. 진짜 좋은 전략은 단순하고, 논리적이며, 다양한 환경에서 일관된 성과를 보입니다.
과최적화를 경계하는 것만으로도, 퀀트 트레이딩의 성공 확률은 크게 올라갑니다. 백테스트의 적은 시장이 아니라, 자기 자신이라는 것을 기억하세요.