과최적화(오버피팅, 커브 피팅)는 규칙이 반복되는 패턴이 아니라 특정 과거 표본의 잡음을 묘사하고 있다는 뜻입니다. 백테스트에서는 훌륭해 보였던 전략이 실제 돈으로는 실망스러운 가장 흔한 이유입니다.
어떻게 일어나는가
다른 RSI 기준값, 다른 이동평균, 필터 하나 더 등 변형을 시험하고 가장 좋아 보이는 것을 남길 때마다 당신은 탐색을 하고 있습니다. 충분히 탐색하면 순전히 우연으로 좋아 보이는 것이 나옵니다. 많은 사람이 동전을 던지면 누군가는 앞면을 열 번 연속으로 내는 것과 같습니다.
문제는 한 번의 테스트가 아닙니다. 실행하고 잊어버린 테스트의 수입니다. David Bailey와 Marcos López de Prado 같은 연구자들이 이 주제에 대해 많이 썼으며, 그 뒤에 있는 시도 횟수만큼 결과를 보정하는 디플레이티드 샤프 비율 같은 방법도 있습니다.
리포트의 경고 신호
- 거래가 매우 적다. 데이터가 적으면 몇 번의 운 좋은 거래로 거의 어떤 곡선이든 만들 수 있습니다.
- 몇 번의 큰 수익에 기댄 결과. 몇 건만 빼도 수익이 사라진다면 그 우위는 진짜가 아닐 수 있습니다.
- 이상할 정도로 구체적인 파라미터. 37캔들 평균은 통하는데 30이나 45는 통하지 않는다면 경고 신호입니다.
- 표본 내에서는 강하고 표본 외에서는 약한 결과.
- 거래 수에 비해 너무 많은 규칙이나 조건.
최고 거래 제외 점검
Backte.st의 최고 거래 제외 점검은 가장 수익이 큰 5건을 뺀 청산 거래들의 복리 수익률을 다시 계산합니다. 그래도 수익이 난다면 결과가 많은 거래에 고르게 퍼져 있다는 뜻입니다. 손실로 바뀐다면 수익 대부분이 몇 개의 극단값에서 나왔고, 그것은 반복하기 가장 어려운 부분입니다.
과최적화를 줄이는 습관
- 테스트 전에 규칙을 적으세요. 무엇을 기대하고 왜 그런지 정한 다음 한 번만 테스트합니다.
- 단순한 규칙을 고르세요. 조건이 적을수록 잡음에 맞출 여지도 줄어듭니다.
- 기간 하나를 남겨 두고 한 번만 쓰세요. 표본 외 테스트 참고.
- 인접한 파라미터를 확인하세요. 진짜 효과가 하나의 정확한 숫자에만 의존하는 경우는 드뭅니다. 파라미터 견고성 참고.
- 여러 시장에서 테스트하세요. 한 종목에서만 통하는 규칙은 의심스럽습니다. Backte.st에서는 같은 규칙으로 최대 10개 시장을 실행할 수 있습니다.
- 시도 횟수를 세세요. 스무 가지를 시험했다면, 한 가지만 시험했을 때보다 승자를 더 엄격하게 판단하세요.
실제로는 어떻게 보이는가
랩 에서 RSI 반전 같은 전략을 만들어 몇몇 주식에 실행하고, 한 시장이 훌륭해 보일 때까지 기준값을 조정해 보세요. 그다음 점검을 보면 미사용 기간이나 인접 파라미터가 약점으로 바뀌어 있는 경우가 많습니다. 그것이 눈에 보이는 과최적화입니다.