과최적화: 고원과 운 좋은 봉우리를 구분하는 법
글쓴이 chwoo · 코인 매매 7년. 2026년 봄부터 자동매매 봇 운용. · · 수정
불편한 사실 하나로 시작하자. 파라미터 조합을 충분히 많이 시도하면 반드시 눈부신 백테스트 하나를 찾게 된다. 숨은 보석이 존재해서가 아니라, 무작위성이 그것을 보장하기 때문이다. 기간·임계값·청산의 조합이 수백 개면 그중 어떤 설정 하나는 과거 데이터의 모든 폭락을 피하고 모든 랠리를 잡는다. 순전히 우연으로.
그것이 과최적화(커브피팅)다. 과거 노이즈 속 패턴을 시장의 성질로 착각하는 것. 문제는 그 설정이 화면에서 다른 설정과 똑같이 생겼다는 점이다. 수익률 +400%는 진짜 엣지일 때도 우연일 때도 똑같이 +400%로 표시된다. 둘을 구분하는 방법은 하나뿐이다. 주변을 보는 것이다.
첨점과 고원
좋아 보이는 설정을 찾았다면 그 값을 한 칸씩 흔들어 다시 돌려본다. RSI 기간이 14였다면 12와 16을, 임계값이 30이었다면 25와 35를 확인한다. 결과는 둘 중 하나다.
- 인접 설정들도 비슷하게 나오면 고원(plateau)이다. 시장의 실제 성질을 잡았을 개연성이 있다. 진짜 효과는 면도날처럼 얇지 않기 때문이다.
- 한 칸만 옆으로 가도 성과가 무너지거나 부호가 뒤집히면 첨점(peak)이다. 우연을 찾은 것이다. 시장은 당신의 RSI 기간이 정확히 13이었다는 사실에 관심이 없다.
말로 하지 말고 실제로 돌려보자
이 사이트의 엔진으로 직접 스윕을 돌렸다. 대상은 초보자가 가장 먼저 배우는 규칙, RSI가 30을 상향 돌파하면 롱이다. BTC 1시간봉, 익절 3% / 손절 2%, 편도 수수료 0.06%와 슬리피지 0.02% 반영, 레버리지 1배, 진입 비중 90%. 데이터는 2026년 8월 31일까지의 바이낸스 캔들이다. 먼저 RSI 기간만 바꿔봤다.
| RSI 기간 | ROI | MDD | 거래수 | 샤프 |
|---|---|---|---|---|
| 8 | -80.9% | 87.6% | 1,246 | -0.64 |
| 10 | -86.6% | 91.0% | 1,031 | -0.92 |
| 12 | -85.9% | 90.4% | 849 | -1.01 |
| 14 | -80.9% | 85.2% | 695 | -0.94 |
| 16 | -83.6% | 85.2% | 569 | -1.16 |
| 18 | -75.8% | 78.5% | 472 | -0.99 |
| 20 | -68.0% | 70.5% | 400 | -0.86 |
여기서 얻을 교훈은 "기간 20이 제일 낫다"가 아니다. 고원도 첨점도 아니라 지형 자체가 물속에 있다는 것이다. 어떤 값을 골라도 자본의 3분의 2 이상을 잃는다. 이 표에서 하나만 골라 "RSI 20이 최적"이라고 발표했다면, 그건 최적화가 아니라 덜 나쁜 손실을 고른 것이다.
임계값을 바꿔도 마찬가지인지 확인했다. 이번엔 기간을 14로 고정하고 임계값만 움직였다.
| 임계값 | ROI | MDD | 거래수 | 샤프 |
|---|---|---|---|---|
| 20 | -59.3% | 60.7% | 157 | -1.13 |
| 25 | -69.9% | 72.3% | 394 | -0.92 |
| 30 | -80.9% | 85.2% | 695 | -0.94 |
| 35 | -76.6% | 84.9% | 1,014 | -0.64 |
| 40 | -80.1% | 85.8% | 1,246 | -0.62 |
| 45 | -64.6% | 73.4% | 1,339 | -0.32 |
두 표를 합쳐 13개 설정을 돌렸는데 수익이 난 것은 하나도 없다. 여기까지 왔을 때 흔한 반응은 값을 더 잘게 쪼개보는 것이다. 기간 13, 15, 17을 넣고 임계값 28, 32를 넣는다. 그렇게 하면 결국 하나는 플러스로 나올 수도 있다. 그리고 그것이 정확히 과최적화가 일어나는 순간이다.
다중비교의 함정
무작위 동전 1,000개를 각각 10번 던지면 그중 몇 개는 8번 이상 앞면이 나온다. 그 동전을 골라 "이 동전은 앞면이 잘 나온다"고 말하면 틀린 것이다. 특별한 동전을 찾은 게 아니라 동전이 많았을 뿐이다.
파라미터 탐색이 정확히 그 일이다. 설정 하나를 검증하는 게 아니라 수백 개를 동시에 검증하고 그중 최고를 고른다. 최고 설정의 성과는 정의상 실력이 아니라 실력 더하기 운이고, 시도 횟수가 많을수록 운의 비중이 커진다. 그래서 무엇을 몇 번 시도했는지 기록하는 것이 중요하다. 40번 돌려 찾은 +50%와 한 번에 나온 +50%는 같은 숫자가 아니다.
파라미터가 아니라 구조를 바꿔라
위 표들에서 배울 것은 숫자를 더 잘 고르는 법이 아니다. 이 규칙이 왜 지는지를 봐야 한다. RSI 30 상향 돌파는 하락 추세에서도 계속 발생하고, 그때마다 떨어지는 칼을 잡는다. 그러면 파라미터를 흔드는 대신 조건을 하나 더해보는 게 맞다. 200 EMA 위에서만 매수하도록 추세 필터를 붙였다.
| 설정 | ROI | MDD | 거래수 | 승률 |
|---|---|---|---|---|
| 필터 없음 | -80.9% | 85.2% | 695 | 38.0% |
| 200EMA 위 | -17.3% | 22.0% | 79 | 38.0% |
같은 지표, 같은 값인데 결과가 완전히 다르다. 그리고 눈여겨볼 것이 있다. 승률은 38.0%로 똑같다.필터는 이기는 확률을 높인 게 아니라 질 게 뻔한 거래를 아예 하지 않게 만들었다. 거래가 695건에서 79건으로 줄었고 손실도 그만큼 줄었다. 파라미터 최적화로는 이런 변화가 나오지 않는다.
여기서 멈추면 안 된다. 필터를 붙인 버전도 첨점일 수 있으므로 같은 방식으로 주변을 확인해야 한다.
| RSI 기간 | ROI | MDD | 거래수 |
|---|---|---|---|
| 10 | -26.4% | 34.5% | 198 |
| 12 | -21.2% | 25.9% | 123 |
| 14 | -17.3% | 22.0% | 79 |
| 16 | -23.7% | 24.9% | 37 |
| 18 | -5.4% | 10.0% | 19 |
이제 지형이 완만하다. -5%에서 -26% 사이에 모여 있고, 한 칸 옆으로 갔을 때 부호가 뒤집히거나 무너지지 않는다.여전히 전부 손실이지만, 손실이 일관되다는 것은 그 자체로 정보다. 이 규칙이 우연히 나쁜 게 아니라 구조적으로 비용을 못 넘는다는 뜻이다.
표본이 사라지는 것을 경계하라
마지막 표에서 가장 좋아 보이는 값은 기간 18의 -5.4%다. 그런데 그 칸의 거래수는 19건이다. 19번의 거래로 계산된 수익률은 통계가 아니라 이야기다. 앞뒤로 몇 건만 달랐어도 부호가 바뀔 수 있다.
조건을 더할 때마다 진입 기회는 줄어든다. 695건이 79건이 되고, 기간을 늘리면 19건이 된다. 그래서 필터는 공짜가 아니다. 손실을 줄이는 대신 표본을 태우고, 표본이 얇아지면 남은 숫자가 우연에 가까워진다. 조건이 네 개를 넘어가면 이 도구의 결과 화면이 그 사실을 경고하는 이유다.
황금 기간 하나로는 부족하다
2021년만 놓고 최적화한 전략은 한 가지 교훈만 배운다. "떨어지면 사라." 그 교훈은 다음 하락장에서 죽는다. 견고함이란 레짐을 가로질러 생존하는 것이다. 오르는 해, 내리는 해, 옆으로 기는 해 전부. 이 사이트가 총합만 보여주지 않고 7년·5년·3년·2년·1년·6개월 구간으로 쪼개 보여주는 이유다.
위 필터 버전도 커버된 8개 기간 중 수익이 난 것은 1개뿐이었다. 총 손실이 -17%로 줄었다고 해서 엣지가 생긴 것은 아니다.
손잡이가 적을수록 신뢰는 커진다
파라미터가 두 개인 전략은 파라미터가 여섯 개인 전략보다 과최적화하기 어렵다. 탐색 공간이 작기 때문이다. 같은 성과라면 손잡이가 적은 쪽을 고르는 편이 낫다. 그리고 왜 그 엣지가 존재해야 하는지에 대한 설명이 필요하다. 그 거래의 반대편에 누가 있고 왜 그들이 계속 돈을 내주는지. 설명이 없다면 남은 것은 곡선 하나뿐이다.
실전 체크리스트
- 파라미터 이웃 확인: 첨점이 아니라 고원.
- 총합만이 아니라 모든 기간 구간 확인. 크기보다 일관성.
- 거래수 확인. 표본 30건 미만이면 승률과 손익비는 추정값으로도 쓰기 어렵다.
- 수수료와 슬리피지를 켠 상태로 확인. 비용 0에서만 되는 전략은 전략이 아니다.
- 파라미터를 흔들기 전에 구조를 의심해라. 필터 하나가 값 스무 개보다 크게 바꾼다.
- 테스트한 것들을 기록으로 남기기. 미래의 당신은 실패한 40개를 기억하지 못한다.
참고 자료
- Overfitting — The general statistical problem, of which curve-fitting a strategy is one case.
- Sample size determination