Как тестировать и оптимизировать торговые стратегии

Каждая потеря депозита ставит трейдера перед вопросом – что делать дальше? Оптимизировать свою торговую стратегию? Лучше контролировать эмоции при торговле? А может быть поступить радикально и приобрести торгового советника?

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

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

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

Таким образом, основными целями тестирования служит проверка таких параметров:

  • показатели производительности, заложенные в стратегию;
  • рыночные показатели торговой стратегии – ликвидность, риск, проскальзывание, издержки;
  • оптимальность исходных параметров стратегии;
  • ошибки программного кода. 

Результатом должен стать отчет со статистическими и графическими данными результатов тестирования.

Как уже было сказано выше, тестирование может производиться на двух видах данных: 

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

Для тестирования можно использовать несколько различных способов. Широко используется математическое программное обеспечение, например от компании MatLab или MS Excel с биржевыми плагинами, механические системы MetaStock, Wealth-Labили Omega, языки программирования или тестеры, встроенные в торговые платформы. Последние получили наибольшее распространение в среде трейдеров в силу своей простоты и доступности.

Тестирование проводится в несколько этапов: 

  • проводится визуальный тест торговой системы или индикатора на достаточно длительном промежутке исторических данных с помощью тестера ручных стратегий;
  • создается торговый советник;
  • проводится тест советника на длительном промежутке истории в автоматическом режиме. В процессе тестирования подбираются параметры индикаторов – советник оптимизируется;
  • после получения стабильных положительных результатов тестирования в автоматическом режиме проводится тест советника на демо или центовом счете.

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

AForex

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

AForex

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

AForex

Механизм тестирования торговых стратегий «Форвард» очень полезен при оптимизации торговой стратегии. Алгоритм его работы заключается в делении исторических данных на две части, на первой из которых проводится оптимизация, а на втором результаты этой оптимизации проверяются. Часто в алгоритм тестера закладывается методика распределенного тестирования, когда вычисления производятся с помощью сетевых средств.

MetaStock3

Для качественного тестирования необходимо тщательно отобрать исторические данные. Период истории должен быть достаточно протяженным – не менее 5 лет. При этом в истории должен присутствовать период с кризисной динамикой, например с кризисом 2008-2009 годов. При использовании меньшего периода история должна включать как трендовые, так и флетовые участки.

Тестирование проводится на большом количестве сделок. Считается, что их должно быть не менее 300. Обязательным условием является тестирование стратегии на нескольких высоколиквидных инструментах.

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

Тестирование может различаться по способам расчета: 

  • по ценам открытия – самый быстрый метод тестирования, но и самый неточный – на коротких периодах истории большинство тестируемых стратегий могут показать полное отсутствие открытых сделок;
  • по контрольным точкам – сбалансированный метод тестирования, но с невысоким уровнем доверия к получаемым данным;
  • по тикам – наиболее предпочтительный метод, более всего приближенный к реальному рынку.

При тестировании следует помнить, что моделирование и большие объемы смоделированных данных потребляют много ресурсов, а при визуализации тестирования снижается скорость расчетов.

Результаты тестирования можно увидеть на итоговом графике, на котором будут отображены точки входа и выхода сделок, данные применяемых индикаторов. На графиках легко обнаружить ошибки стратегии. 

AForex

Результаты тестирования можно сохранить, выгрузив их в Excel или другую программу в виде определенной последовательности данных.

При загрузке истории необходимо помнить, что история котировок не должна иметь разрывов или поставляться из разных источников – котировки для тестирования должны идти непрерывным потоком, без сдвигов и пропусков.

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

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

Рекомендуемые брокеры для торговли: