backte.st

백테스트 과최적화: 훌륭한 결과가 실전에서 자주 실패하는 이유

많은 변형을 시험하면 잡음이 우위처럼 보이는 이유, 리포트의 경고 신호, 과최적화를 줄이는 간단한 습관.

과최적화(오버피팅, 커브 피팅)는 규칙이 반복되는 패턴이 아니라 특정 과거 표본의 잡음을 묘사하고 있다는 뜻입니다. 백테스트에서는 훌륭해 보였던 전략이 실제 돈으로는 실망스러운 가장 흔한 이유입니다.

어떻게 일어나는가

다른 RSI 기준값, 다른 이동평균, 필터 하나 더 등 변형을 시험하고 가장 좋아 보이는 것을 남길 때마다 당신은 탐색을 하고 있습니다. 충분히 탐색하면 순전히 우연으로 좋아 보이는 것이 나옵니다. 많은 사람이 동전을 던지면 누군가는 앞면을 열 번 연속으로 내는 것과 같습니다.

문제는 한 번의 테스트가 아닙니다. 실행하고 잊어버린 테스트의 수입니다. David Bailey와 Marcos López de Prado 같은 연구자들이 이 주제에 대해 많이 썼으며, 그 뒤에 있는 시도 횟수만큼 결과를 보정하는 디플레이티드 샤프 비율 같은 방법도 있습니다.

리포트의 경고 신호

최고 거래 제외 점검

Backte.st의 최고 거래 제외 점검은 가장 수익이 큰 5건을 뺀 청산 거래들의 복리 수익률을 다시 계산합니다. 그래도 수익이 난다면 결과가 많은 거래에 고르게 퍼져 있다는 뜻입니다. 손실로 바뀐다면 수익 대부분이 몇 개의 극단값에서 나왔고, 그것은 반복하기 가장 어려운 부분입니다.

과최적화를 줄이는 습관

  1. 테스트 전에 규칙을 적으세요. 무엇을 기대하고 왜 그런지 정한 다음 한 번만 테스트합니다.
  2. 단순한 규칙을 고르세요. 조건이 적을수록 잡음에 맞출 여지도 줄어듭니다.
  3. 기간 하나를 남겨 두고 한 번만 쓰세요. 표본 외 테스트 참고.
  4. 인접한 파라미터를 확인하세요. 진짜 효과가 하나의 정확한 숫자에만 의존하는 경우는 드뭅니다. 파라미터 견고성 참고.
  5. 여러 시장에서 테스트하세요. 한 종목에서만 통하는 규칙은 의심스럽습니다. Backte.st에서는 같은 규칙으로 최대 10개 시장을 실행할 수 있습니다.
  6. 시도 횟수를 세세요. 스무 가지를 시험했다면, 한 가지만 시험했을 때보다 승자를 더 엄격하게 판단하세요.

실제로는 어떻게 보이는가

랩 에서 RSI 반전 같은 전략을 만들어 몇몇 주식에 실행하고, 한 시장이 훌륭해 보일 때까지 기준값을 조정해 보세요. 그다음 점검을 보면 미사용 기간이나 인접 파라미터가 약점으로 바뀌어 있는 경우가 많습니다. 그것이 눈에 보이는 과최적화입니다.

랩에서 해보기

코드 없이 지표로 전략을 만들고 여러 시장에서 실행해 이 검사를 내 규칙으로 확인해 보세요. 무료이며 브라우저에서 실행됩니다.

랩 열기