Бэктест и переобучение: почему красивый результат на истории часто не повторяется
Бэктест — это проверка торговой стратегии на исторических данных. Это необходимый шаг, но и самый частый источник иллюзий: на истории можно подобрать правила, которые выглядят идеально, а в реальной торговле не работают. Разбираем типичные ошибки и способы честной проверки.
Что такое бэктест и зачем он нужен
Бэктест прогоняет правила стратегии по историческим котировкам и показывает, как она сработала бы раньше: число сделок, итог, просадку, другие метрики. Он помогает отсеять заведомо слабые идеи и оценить масштаб риска. Но результат бэктеста — это не прогноз, а описание прошлого.
Переобучение (overfitting)
Если подбирать параметры стратегии (периоды индикаторов, уровни стопа, фильтры) до тех пор, пока результат на истории не станет красивым, велик шанс подогнать их под случайные особенности конкретного периода. Чем больше параметров и перебранных вариантов, тем выше вероятность, что «лучший» результат — просто удачная случайность. На новых данных такая стратегия обычно заметно слабее.
Типичные ошибки бэктеста
- Заглядывание в будущее (look-ahead bias). Правило использует данные, которых в момент решения ещё не было, например закрытие бара для входа внутри этого же бара.
- Смещение выжившего. Тест проводится только на инструментах, которые дожили до сегодняшнего дня, и не учитывает исчезнувшие.
- Игнорирование издержек. Не учтены комиссии, спред, проскальзывание, налоги и стоимость переноса позиций, а для высокочастотных стратегий они решают всё.
- Нереалистичное исполнение. Предполагается, что заявка всегда исполняется по желаемой цене и в полном объёме.
- Малая выборка. Выводы по небольшому числу сделок статистически слабы.
- Подбор под один период. Стратегия протестирована только на одном рыночном режиме, например в тренде.
Как проверять честно
- Разделять данные. Настраивать на одной части истории и проверять на другой, которую система не видела.
- Использовать Walk-Forward. Настройка на скользящем окне и проверка на следующем за ним участке, много раз подряд.
- Оценивать устойчивость. Смотреть, как меняется результат при небольших изменениях параметров. Хорошая стратегия не должна ломаться от сдвига периода индикатора на единицу.
- Симулировать неопределённость. Метод Monte Carlo показывает разброс исходов, а не одну траекторию.
- Тестировать вперёд на малых объёмах. Торговля на демо-счёте или с минимальным риском перед масштабированием.
Как это учтено в AlmoreTrade
Параметры алгоритма в AlmoreTrade не принимаются по результату одного прогона на истории. Для каждой пары используются Walk-Forward проверка и симуляции Monte Carlo, а их результаты (число фолдов, доля прибыльных вне выборки, profit factor) отображаются в личном кабинете. Подробнее об устройстве — в разделе «Как работает AlmoreTrade».