추세추종 백테스터 · 가이드 · 개념

개념

최적화와 과적합 — 백테스트 수익률이 실전에서 사라지는 이유

“최적 파라미터를 찾았더니 연 100% 수익률이 나왔다”는 문장은 대체로 사실입니다. 그리고 대체로 쓸모없습니다. 그 값은 이미 지나간 과거에 맞춰 고른 것이기 때문입니다.

최적화란 무엇인가

전략에는 숫자로 된 설정값이 있습니다. 이동평균 며칠짜리를 쓸지, 밴드를 표준편차 몇 배로 잡을지 같은 것들입니다. 이 값을 바꾸면 성과가 달라지므로, 과거 데이터에서 가장 성과가 좋았던 조합을 찾는 것이 파라미터 최적화입니다.

문제는 여기서 시작됩니다. “가장 좋았던”은 이미 일어난 일에 대한 서술입니다. 그 값이 앞으로도 가장 좋다는 보장은 어디에도 없습니다.

격차를 실제로 재보면

추측 대신 측정했습니다. 비트코인 전체 데이터를 시간 순으로 둘로 자릅니다. 앞부분(인샘플)에서만 최적 파라미터를 찾고, 그 값을 한 번도 보지 않은 뒷부분(아웃오브샘플)에 그대로 적용합니다. 실전과 같은 조건입니다.

구간CAGR샤프지수
인샘플
파라미터를 고른 구간 · ~2023-12-05
111.9%1.92
아웃오브샘플
처음 보는 구간 · 2023-12-05~
33.9%1.26
같은 기간 매수후보유
비교 기준
17.2%0.59

볼린저 밴드 돌파 기준으로 CAGR이 111.9%에서 33.9%로 떨어졌습니다. 대략 3.3분의 1입니다. 사라진 부분이 곧 과적합의 크기입니다.

다만 여기서 성급하게 결론 내리면 안 됩니다. 같은 기간 그냥 보유했을 때는 17.2%였습니다. 즉 전략은 처음 보는 구간에서도 매수후보유를 이겼습니다 — 다만 백테스트가 약속한 만큼은 아니었을 뿐입니다.

실무적 결론 — 백테스트 수익률은 달성 목표가 아니라 상한선으로 읽어야 합니다. 실제로는 그보다 낮게 나오는 것이 정상이고, 얼마나 낮아지는지가 그 전략의 견고함입니다.

과적합을 줄이는 방법

그래서 이 사이트의 숫자는 어떻게 읽어야 하나

이 사이트의 종목별 페이지는 전 구간 인샘플 최적화 결과를 싣습니다. 위에서 본 대로 실제 운용 성과보다 높습니다. 그럼에도 그 값을 싣는 이유는, 파라미터가 2~3개뿐이라 왜곡 폭이 제한적이고 전략 사이의 상대 비교에는 여전히 쓸모가 있기 때문입니다.

절대 수익률을 목표로 삼지 마시고, “어떤 전략이 이 자산의 성격과 맞는가”를 보는 용도로 쓰시길 권합니다.

직접 최적화해보기비트코인 전략 비교 보기

같이 읽기