표본 외 구간을 재사용하기
떼어 둔 구간의 결과가 또 한 번의 조정을 이끌 때마다, 그 구간은 학습 데이터의 일부가 된다. 몇 번 돌고 나면 표본 외는 남지 않고, 절차는 더 엄격하게 느껴지면서 증명하는 것은 더 적어진다.
다른 표현: overfitting, 곡선 적합, 데이터 마이닝 편향
과최적화는 EA 파라미터를 과거 데이터에 지나치게 정밀하게 맞추어, 백테스트에서는 뛰어나지만 처음 보는 데이터에서는 부진한 전략을 만드는 일이다. 실제 시장 패턴이 아니라 잡음을 이용하기 때문이다.
규칙을 과거에 너무 바싹 들어맞을 때까지 조정하면, 결국 패턴이 아니라 그 시기의 우연을 학습한다. 백테스트는 좋아지는데 전략은 나빠지고, 보고서 안에는 그 둘을 구분해 줄 것이 없다.
과최적화는 아름다운 증거를 만들어 내는 실패 방식이며, 그래서 나쁜 전략이라면 통과하지 못할 검토를 살아남는다. 최적화를 한 번 더 돌릴 때마다 전략이 좋아지든 아니든 보고된 결과는 좋아지므로, 보고된 결과만 보는 절차로는 그 차이를 알 수 없다.
옵티마이저가 전략의 상위 열 개 파라미터 조합을 보고한다. 공개되는 것은 맨 윗줄이지만, 우위가 진짜인지 실제로 말해 주는 것은 그 주변 표의 모양이다.
진짜 우위는 파라미터가 최적점에서 멀어질수록 완만하게 약해진다. 맞춰진 우위는 절벽에서 떨어지며, 그 절벽은 표본 외 데이터를 한 조각도 쓰기 전에 이미 보인다.
계산 표본 내 2.41 → 표본 외 0.88, 이웃들은 본전 근처
결과 2.41은 규칙이 아니라 그 구간의 성질이었다
과최적화는 결과가 아니라 그 결과를 만든 절차에서 진단한다. 무엇을, 무엇 위에서 조정했고, 무엇을 남겨 두었는지 물어라.
| 구간 | 의미 |
|---|---|
| 한 구간, 모든 파라미터 최적화, 남겨 둔 것 없음 | 그 보고서는 미래에 대한 증거 가치가 없다. 규칙을 표본에 얼마나 잘 구부릴 수 있는지를 설명할 뿐이다. |
| 표본 외 구간을 보고하되 조정할 때마다 다시 사용 | 예비분은 소진되었다. 그 결과가 조정에 되먹여지는 순간 그것도 표본 내가 된다. |
| 손대지 않은 표본 외 구간 하나를 한 번만 확인 | 최소 기준이다. 수준이 아니라 격차를 해석하라. |
| 넓은 파라미터 고원과 종목 간 교차 확인을 갖춘 워크포워드 | 실전 투입 전에 얻을 수 있는 가장 강한 증거다. 재적합 자체가 검증되었기 때문이다. |
AIStrategyMiner 등록 정보는 데이터 구간, 테스터 모델, 거래 수를 명시하므로, 독자는 곡선을 믿는 대신 위의 질문들을 던질 수 있다.
떼어 둔 구간의 결과가 또 한 번의 조정을 이끌 때마다, 그 구간은 학습 데이터의 일부가 된다. 몇 번 돌고 나면 표본 외는 남지 않고, 절차는 더 엄격하게 느껴지면서 증명하는 것은 더 적어진다.
그 수치들이야말로 적합이 부풀리는 값이다. 리테일 EA에서 표본 내 샤프가 3을 넘는다면 안심할 근거라기보다 증상일 가능성이 크다.
파라미터 수는 하나의 경로이고, 전략 선택은 또 다른 경로다. 같은 구간에서 단순한 전략 이백 개 중 최고를 고르는 일은, 복잡한 전략 하나를 조정하는 것과 똑같이 효과적으로 표본에 적합한다.
백테스트를 되살리고 실패를 반복한다. 새 적합이 이전 적합을 만든 바로 그 절차에서 나오기 때문이다. 먼저 답해야 할 질문은 원래의 우위가 한 번이라도 표본 외였는지다.
| 여기 공개된 14개 EA 기준 | 값 |
|---|---|
| 표본 내 손익비 | 1.27–1.52 |
| 손익비가 1.00 미만인 등록 | 0 |
| 표본 외 구간을 보고한 수 | 11 |
| 표본 외 수익률 | −0.57 % ~ +3.01 % |
| 손실이 난 표본 외 구간 | 2 |
| 실제 자금 계좌에서 검증된 실행 | 0 |
첫 줄보다 마지막 줄을 먼저 읽어라. 롤링 백테스트도 결국 누군가 들여다볼 수 있었던 과거 위에서 돌아간다. 그러므로 위의 어느 것도 무언가를 결정하는 의미의 표본 외가 아니다. 게다가 세 EA는 예비 구간의 시작일을 알려 놓고 그 뒤로 아무 결과도 공개하지 않았다. 보고 편향을 안에서 보면 정확히 이런 모습이다.
약점은 부호가 아니라 크기다. 여기 표본 내 기록의 중앙값은 종료된 거래 362건이고, 떼어 둔 구간의 중앙값은 21건이다. 그렇게 짧은 실행으로는 우위와 조용한 한 분기를 가를 수 없다. 작은 마이너스(−0.57 %, −0.47 %)가 플러스보다 더 큰 판정을 담지 못하는 이유가 그것이다.
전략 테스터의 Forward 드롭다운(No, 1/2, 1/3, 1/4, Custom)은 구간을 대신 갈라 준다. 그러나 최적화를 한 번 돌릴 때마다 앞쪽 절반을 다시 들여다보는 것까지는 막지 못하며, 그 다시 보기가 바로 예비분을 소모한다. Forward를 Custom으로 두고 당신이 보기를 멈춘 날짜를 넣어라 — 위 구간 중 열 개는 2026-04-01이다 — 그러면 예비분의 가치는 그 안에 들어온 것만큼이다. Cairn은 142건, 그다음으로 큰 것이 40건, 두 개는 한 자릿수다.