🏠 홈 🔍 오늘의 스캔 📰 데일리 리포트 📈 적중률 📊 기저율 증명 ❓ 방법론 📚 학습 🪙 코인 스캐너 📋 전체 도구 보기 🧾 세금 계산 ⚡ 레버리지 ⚖️ 리밸런싱 💹 DCA 📉 물타기 손익분기 💰 배당 일정
← 학습 허브로 돌아가기
📉 백테스트 · 검증

백테스트 과최적화
— 과거엔 완벽한 전략이 왜 무너지나

“지난 3년 수익률 400%” 같은 백테스트 결과를 봅니다. 그런데 실제로 돌려보면 성적이 전혀 다릅니다. 과거를 잘 설명하는 것미래를 맞히는 것은 다른 일이기 때문입니다.

💡 핵심 한 줄 — 규칙을 데이터에 맞춰 계속 다듬으면, 결국 그 데이터의 우연한 잡음까지 외워버립니다. 새 데이터에서는 그 잡음이 없으므로 무너집니다.

과최적화(overfitting)란

과거 데이터에 대해 지나치게 잘 맞도록 규칙을 다듬은 상태입니다.

시험 공부에 비유하면, 기출문제의 답을 통째로 외운 것과 같습니다. 그 시험지에서는 만점이지만, 새 문제를 받으면 풀지 못합니다. 데이터에는 진짜 규칙성그때만의 우연이 섞여 있는데, 너무 세밀하게 맞추면 우연까지 학습해버립니다.

어떻게 만들어지나 — 흔한 경로

  1. 전략을 짜고 과거 데이터로 돌려봅니다. 결과가 그저 그렇습니다.
  2. 파라미터를 조금 바꿉니다. RSI 30 → 28. 수익률이 오릅니다.
  3. 조건을 추가합니다. “거래량 2배 이상일 때만”. 더 오릅니다.
  4. 손절 폭을 조정합니다. 또 오릅니다.
  5. 완성된 전략의 과거 수익률이 매우 훌륭합니다.

문제는 2~4단계입니다. 결과를 보고 규칙을 고쳤습니다. 그 순간부터 백테스트는 검증이 아니라 맞춤 작업이 됩니다. 시도 횟수가 늘수록 우연히 좋아 보일 기회도 늘어납니다(다중검정 참고).

⚠️ 위험 신호파라미터가 많을수록 · 조건이 정교할수록 · 수익 곡선이 지나치게 매끄러울수록 과최적화를 의심해야 합니다. “RSI 27.5에서 3일 이상 유지되고 거래량이 2.3배일 때” 같은 규칙은 대개 특정 구간에 맞춰 깎아낸 결과입니다.

인샘플과 아웃오브샘플

  • 인샘플(in-sample) — 규칙을 만들 때 데이터입니다. 여기 성적은 언제든 좋게 만들 수 있으므로 증거가 아닙니다.
  • 아웃오브샘플(out-of-sample) — 규칙을 확정한 뒤 처음 보는 데이터입니다. 여기 성적이 진짜입니다.

그런데 아웃오브샘플도 여러 번 보면 오염됩니다. “안 맞네, 규칙을 조금 고쳐서 다시”를 반복하면 그 구간도 결국 인샘플이 됩니다. 한 번만 써야 의미가 있습니다.

가장 확실한 검증 — 포워드 테스트

규칙을 먼저 공개적으로 확정하고, 그 뒤에 새로 들어오는 데이터로 확인하는 것입니다. 아직 존재하지 않는 데이터에는 맞출 방법이 없으므로 자기기만이 불가능합니다.

DawnScan이 신규 신호를 가중치 0으로 기록만 하다가 표본이 쌓인 뒤에 반영 여부를 판정하는 이유가 이것입니다. 측정 기준을 먼저 정해두고, 데이터가 그 기준을 통과하는지 나중에 봅니다.

  • 판정 기준(표본 최소치·신뢰구간·보정)을 사전에 고정합니다.
  • 기준 미달이면 기준을 낮추지 않고 보류합니다.
  • 보류한 신호와 그 이유도 함께 공개합니다.

백테스트 결과를 볼 때 물어볼 것

  1. 파라미터를 몇 번 조정했나? — 횟수가 많으면 그만큼 우연이 섞입니다.
  2. 규칙 확정 시점 이후의 성적이 있나? — 없다면 아직 검증된 게 아닙니다.
  3. 거래 비용과 슬리피지를 반영했나? — 소형주 전략은 이것만으로도 결과가 뒤집힙니다.
  4. 상장폐지 종목을 포함했나? — 빼면 수익률이 부풀려집니다.
📌 정리 — 과거 수익률은 가설이지 증거가 아닙니다. 증거는 규칙을 정한 뒤에 벌어진 일에서만 나옵니다. 그래서 “얼마나 벌었나”보다 “언제 규칙을 확정했나”가 더 중요한 질문입니다.

자주 묻는 질문

과최적화가 뭔가요?

과거 데이터에 지나치게 잘 맞도록 규칙을 다듬어, 그 데이터의 우연한 잡음까지 학습해버린 상태입니다. 기출문제 답을 외운 것과 같아서 과거 성적은 훌륭하지만 새 데이터에서는 성능이 무너집니다.

파라미터를 조정하면 안 되나요?

조정 자체가 문제가 아니라, 결과를 보고 조정한 뒤 그 결과를 성과로 발표하는 것이 문제입니다. 조정할 때마다 새로운 검정을 하는 셈이라 우연히 좋아 보일 기회가 늘어납니다. 조정했다면 확정 이후의 새 데이터로 다시 확인해야 합니다.

인샘플과 아웃오브샘플의 차이는?

인샘플은 규칙을 만들 때 본 데이터로, 여기 성적은 얼마든지 좋게 만들 수 있어 증거가 되지 않습니다. 아웃오브샘플은 규칙 확정 후 처음 보는 데이터입니다. 다만 아웃오브샘플도 반복해서 보며 규칙을 고치면 결국 인샘플이 되므로 한 번만 사용해야 합니다.

가장 신뢰할 수 있는 검증 방법은 뭔가요?

포워드 테스트입니다. 규칙과 판정 기준을 먼저 확정하고, 그 이후에 새로 들어오는 데이터로 확인하는 방식입니다. 아직 존재하지 않는 데이터에는 규칙을 맞출 수 없으므로 자기기만이 원천적으로 불가능합니다.

함께 읽으면 좋은 글