Переоптимизация стратегии – как не попасть в ловушку самообмана

·

·

3

мин.

Optimization-Strategy-Trading

У вас есть стратегия. Может вы ее придумали сами, подобрав комбинации индикаторов. Может нашли в интернете, купили – не принципиально. Как узнать, работает она или нет? Тестировать на демо-счете – хорошая идея, но сколько на этой уйдет времени? Достаточно вам будет 10 сделок, чтобы убедиться в ее работоспособности? Или нужно все-таки несколько месяцев терпения, чтобы получить общую картину?

Чтобы понять, сколько в потенциале может принести стратегия и может ли она что-то принести вообще, нужен тестер стратегий. Встроенный тестер в МТ4 или МТ5, ПО Forex Simulator – любой другой, который найдете в интернете. Тестеры отличаются функционалом. Например, в МТ4 нет форвардного тестирования, которое есть в МТ5. В МТ4 нет модели тестирования Out-of-Sample, которая будет разобрана ниже. Чем более профессиональный тестер, тем больше вероятность получения более точного результата.

Правила переоптимизации стратегии

Переоптимизация – ситуация, когда стратегия подгоняется под исторические данные. Алгоритм «затачивается» под уже произошедшие события, которые в будущем могут повторяться очень редко. Параметры индикаторов подбираются под «ценовой шум», а не под закономерности. Такая стратегия на реальном счете может показывать кардинально отличающийся от тестового периода результат.

Цель любой оптимизации в тестере – получить устойчивую стратегию. Неустойчивые могут быть эффективны в краткосрочном периоде, где нужен быстрый результат, но на длинном интервале статистически они убыточные.

Ошибки оптимизации:

  • Подгонка под ценовой шум. Попытка подгонки параметров под исторические данные так, чтобы кривая доходности была восходящей. Даже если у стратегии есть логика, результат имеет статус случайного. И вопрос – повторится ли он на реальном рынке.
  • Игнорирование ключевых случайных событий. Например, на интервале 2010-2020 было интересное событие – отвязка CHF от USD. Стратегия по этой валютной паре в конечном счете окажется прибыльной. Но если тестировать стратегию с 2016 года, она покажет посредственный результат. Вывод: нужно не только подстраиваться под статистику, но и учитывать влияние «черных лебедей».

Оптимизация/Переоптимизация должны давать устойчивый результат на любом временном участке.

Как снизить риск подгонки параметров и получить устойчивую модель:

  • Максимально упростить алгоритм. Чем более сложный код алгоритмической стратегии, чем больше инструментов в ручной стратегии, тем выше вероятность ошибки. Нужно максимально снизить количество параметров и комбинаций. Опыт тестирования показывает, что в стратегии имеет смысл использовать до 5 инструментов. Не более.

Чем больше параметров, тем больше нужно тестовых сделок и тем более длительный нужен период тестирования.

По оси Х – количество сделок, У- период теста в годах.

  • Увеличить историческое окно теста. Вы подбрасываете монету. Из 3х раз дважды выпадает орел, один раз – решка. В выборке 100% подбросов у орла выпадение 66,67%, у решки – 33,33%. Но если вы проведете 100 подбрасываний, то количество выпадения орла и решки приблизится к значению 50/50.

Нет ответа, сколько нужно сделок для прохождения порога статистической значимости. Для каких-то стратегий достаточно 100 сделок, для каких-то – более 500. Минимально рекомендуемое количество – 200-300.

  • Тестирование на разных таймфреймах и активах. Чем большей стабильности результатов удалось достичь на интервалах Н1, Н4, D1, на валютных парах, товарах, акциях, тем лучше. Но опыт показывает, что получить такой алгоритм почти невозможно. То есть стратегия оптимально работает только на конкретном таймфрейме и конкретном активе. Но стремиться к идеалу стоит.
  • Обязательное форвардное тестирование. В простом понимании это тестирование вне выборки. Вы берете интервал 2013-2023 год. Получаете после оптимизации лучший результат и тестируете стратегию на участке 2023-2024. Результат тот же – все ок.

Out-of-Sample – более сложный, но более точный результат тестирования. Скрин варианта 7:1 приведен ниже. Его суть: стратегия тестируется на участке 2007-2013 год (7 лет). Затем прогоняется по форвардному участку «2014 год». Затем происходит сдвиг на 1 год – тестирование на участке 2008-2014. Форвардный участок – 2015. И т.д. до нашего времени (форвардный участок – 2024).

Если в конструкторе модель тестирования Out-of-Sample предусмотрена, то вы на выходе получаете быстрый результат по всей линейке годов. Оценивается как соответствие результатов основного участка форвардному, так и форвардных между собой. Для МТ4 есть отдельная библиотека, включающая эту модель.

  • Тестирование по методу Монте-Карло. Статистический подход, применяемый для моделирования и оценки риска стратегий путем симуляции и многократного перебора возможных сценариев.

Вывод. Парадокс тестирования: чем лучше результаты бектеста, тем хуже будут результаты на реальном счете. Если заниматься подгонкой данных. Приведенные выше советы могут помочь частично избежать ошибок переоптимизации, но все же 100% гарантии положительного результата никто и ничто дать не может.

Что почитать. «Применение метода Монте-Карло в трейдинге», «Ошибка игрока или ложный вывод Монте-Карло», «Рубрикатор 59: тестирование в трейдинге», «Тестирование стратегий на исторических данных: что учитывать».