Тестирование торговых стратегий на исторических данных: что нужно учитывать

·

·

3

мин.

Rate-Forex

Тестирование торговых стратегий помогает оценить эффективность стратегии на основе прошлых рыночных данных. Оно помогает трейдеру понять, как стратегия могла бы работать в реальных рыночных условиях, что нужно было бы изменить, какие влияющие на результат факторы и т.д. Например, как влияет выход новостей. Или насколько помогает окупить убытки постепенное повышение объема позиции. Какие критерии наиболее важны при тестировании, рассматриваем в этом обзоре.

Критерии проведения тестирования стратегий на истории котировок

1. Достоверность и качество исторических данных.

Для проведения тестирования требуется точная и полная история рыночных данных. Ошибки или пропуски в котировках могут привести к неправильным результатам. Например, в котировках будет пропуск одного дня, на котором была «шпилька». Она могла бы закрыть сделку по стопу в убыток, но ее нет – она не попадает в отчет и искажает кривую доходности.

Что нужно учитывать:

  • Качество данных. Используйте проверенные источники данных с минимальным количеством ошибок и лагов. Лучше использовать котировки своего брокера. Если тестируете стратегию на сторонних тестерах (не в МТ4 брокера), используйте данные TradingView, Twelve Data.
  • Глубина истории. Данные должны охватывать значительный период времени, включая разные рыночные условия (тренд, флет, высокая/низкая волатильность). В зависимости от таймфрейма стратегии: для скальпинга – 1 год, для долгосрочных стратегий – 10 лет.
  • Точность тиков. Для высокочастотной торговли и скальпинга важны данные тикового уровня, для среднесрочных стратегий могут подойти данные по закрытию свечей.

История котировок скачивается у того брокера, с которым вы работаете. Она может отличаться от истории других брокеров, так как у компаний разные поставщики ликвидности. Но не должно быть сильных, видимых расхождений, пустых мест. Это проверяется в табличном редакторе.

2. Реалистичность исполнения ордеров.

Тестируя стратегию на исторических данных, необходимо учитывать, что реальная торговля отличается от тестирования:

  • Скользящий спред. Спред может меняться в зависимости от волатильности, времени суток или новостей. Учитывайте изменение спредов в тестировании, не используйте в настройках фиксированные значения.
  • Проскальзывание. Ордер может быть исполнен по цене, отличной от запланированной, особенно на волатильных рынках или при недостаточной ликвидности.
  • Задержка исполнения. В реальной торговле может быть задержка между подачей ордера и его исполнением, особенно на высоковолатильных рынках.

Суть проблемы сводится к тому, что в тестере ордер будет исполнен тут же. В реальной торговле – проскальзывания, задержка на сервере и т.д. И все это может внести корректировки на несколько пунктов минимум. В тестере это все учесть невозможно. Потому имеет смысл закладывать процент отклонения реального результата от результата теста в худшую сторону. Или второй вариант: тестировать стратегию на разных спредах и наблюдать, насколько меняется результативность, характер кривой эквити при увеличении/уменьшении спреда.

3. Учет комиссий и издержек.

Любая стратегия, даже если она показывает положительный результат в тестере, может стать убыточной при учете реальных торговых издержек:

  • Комиссия брокера. Важно учитывать фиксированные или переменные комиссии, которые взимает брокер за каждый ордер. У некоторых тестеров добавление комиссии предусмотрено в параметрах. Если не предусмотрено, вычитайте из прибыли за каждый полный лот вручную.
  • Спред. Может расширяться в периоды низкой ликвидности. Также можно заложить в параметрах некоторых тестеров.
  • Свопы. У каждого брокера они кардинально разные и немаленькие с учетом тройного свопа.

Суть проблемы сводится к функциональности тестера. Если нельзя учесть плавающий спред, своп, ищите другой тестер. В МТ4/МТ5 часть этих возможностей есть. Но только часть.

4. Оптимизация и переоптимизация стратегии.

Тестирование стратегии может привести к чрезмерной оптимизации (подгонка данных). Стратегия идеально подходит для исторических данных, но оказывается неэффективной в реальных рыночных условиях.

  • Избегайте глубокой специальной подгонки параметров. Если слишком много параметров стратегии оптимизировано под исторические данные, это может снизить ее устойчивость на реальном рынке.
  • Используйте форвардное тестирование. Этот метод позволяет протестировать стратегию на одном временном участке и затем применить ее на другом, что помогает избежать переоптимизации.

Здесь суть сводится к балансу. Попытка использовать десяток индикаторов одновременно, подгоняя между собой их значения – ошибка. Вы подогнали параметры для участка в 15 сделок (условно), а на другом участке уже нужно подгонять параметры заново. Хорошая стратегия показывает одинаково положительный результат на всех временных участках.

5. Тестирование на различных рыночных условиях.

Стратегия должна быть протестирована в разных условиях рынка:

  • Тренд и флет. Убедитесь, что стратегия эффективна как в периоды сильных трендов, так и во время боковых движений.
  • Волатильность. Стратегия может работать в условиях низкой волатильности, но быть убыточной при резких рыночных движениях. Важно тестировать ее на данных с разной волатильностью.
  • Макроэкономические события. Новости, решения ЦБ и другие экономические факторы могут сильно влиять на рынок. Стратегию нужно протестировать на временных промежутках, включающих важные экономические события.

6. Стресс-тестирование.

Для оценки устойчивости стратегии рекомендуется проводить стресс-тесты:

  • Падение ликвидности. Как стратегия работает при резком снижении ликвидности?
  • Резкие скачки цен. Как стратегия реагирует на неожиданные изменения цен?
  • Кризисные события. Тестирование на данных финансовых кризисов (например, 2008 год) помогает оценить устойчивость стратегии в экстремальных условиях.

7. Анализ метрик стратегии.

После проведения тестирования нужно проанализировать результаты по следующим ключевым показателям:

  • Максимальная просадка. Максимальная потеря средств в ходе тестирования. Чем меньше просадка, тем менее рискованной является стратегия.
  • Соотношение риск/прибыль. Какую прибыль генерирует стратегия на каждый доллар риска.
  • Процент прибыльных сделок. Важно не только количество прибыльных сделок, но и их соотношение с убыточными.
  • Средний размер прибыли/убытка.

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