Статьи / Оптимизация торговых роботов

15.02.2021

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

Задействуется тестер стратегий, робот получает котировки и в итоге мы видим результат. А дальше нужно искать моменты, где робот даёт результаты похуже и искать причины, что-то менять и пытаться добиться лучших результатов. Это трудоемкий и достаточно нудный процесс, отнимающий много сил.

Для чего нужна оптимизация роботов

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

  1. Разработчики улучшают своих роботов при создании. Как уже говорилось, робот изначально представляет собой идею, и только потом становится полноценной системой после большого количества тестов.
  2. Трейдеры, которые берут какой-нибудь бесплатный советник и пытаются сделать из него источник дохода. Без кардинальной смены алгоритма это редко когда удаётся сделать, так как рынок постоянно меняется и то, что работало раньше, сегодня может быть уже не эффективным. Это касается практически всех советников в свободном доступе.

Основные параметры в оптимизации советников

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

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

  1. Символ. Выбираем валютную пару, на которой будет прогонять нашего советника. Это может показаться странным, но часто бывает так, что на одной паре результаты прекрасные, а на схожей сильно отличаются. Все мы знаем, что евродоллар и фунтдоллар коррелируют, но при этом фунт гораздо волатильнее, проходит большие диапазоны и вообще имеет свой уникальный характер. Кстати, именно в результатах тестов определяется лучший торговый инструмент для робота, а потом в описании мы видим список пар, на которых можно запускать его.
  2. Тайм фрейм. Поведение цены в зависимости от тайм фрейма отличается ещё сильнее, чем от одной пары к другой. Малые периоды показывают очень высокую волатильность, в то время как М30 и выше уже относительно спокойные и на них можно вести какой-то анализ. Создать по-настоящему эффективного робота для минутного графика или М5 удаётся крайне редко, чаще всего результаты получаются нулевыми, то есть робот торгует в плюс, но затем наступает период времени, когда идёт сразу несколько стопов подряд и вся прибыль уходит.
  3. Модель тестирования. Как мы уже отмечали, в тестере происходит имитация торговли. Но, котировки можно давать роботу по-разному. Конечно, это не сравнится с тем, как можно было бы реально проторговывать, но в целом не так и плохо. Когда мы выбираем метод “Все тики”, робот будет рассматривать буквально каждое колебание, именно такой вариант даст наилучшее представление о том, на что он способен. Однако, такой вариант тестирования занимает огромное количество времени, поэтому некоторые используют другой вариант – сначала прогоняют робота на более грубых методах тестов, а уже потом в окончательном варианте проверяют его на всех тиках. Это позволяет сэкономить много времени.

Следующий этап – выбор периода. Мы указываем в окошке даты, в рамках которых будет проводиться тест. Чем больше период возьмём, тем более адекватными получатся результаты. Рассматривать следует как миниму годовой отрезок, а лучше взять намного больше. Дело в том, что поведение рынка меняется не только в рамках одних торговых суток или недели.

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

После того тестирования мы получим стейтмент, в котором будут указаны абсолютно все сделки, которые были открыты роботом в процессе тестирования. По ним мы можем искать слабые стороны и оптимизировать советника. Этот отчёт полностью совпадает с тем, какой представляется в терминале по открытым на счёте сделкам в разделе “История счёта”. Единственное, что тестер вообще никак не может учесть – это возможные проскальзывания.

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