Многие трейдеры, недавно осознавшие все преимущества автоматизированных систем, пытаются вручную оптимизировать параметры советников путём перебора ключевых параметров и даже не предполагают, что большую часть работы может выполнить сам торговый терминал.
В предыдущей статье мы уже кратко познакомились с тестером стратегий и научились скачивать репрезентативные котировки, поэтому сегодняшний обзор будет посвящён именно практической части оптимизации советника в MT4.
Прежде всего, потребуется установить алгоритм в соответствующую директорию MetaTrader4. Сделать это можно стандартным способом – сначала находим | необходимую папку через команду «Файл – Открыть каталог данных», после чего копируем файл робота в директорию «MQL4 – Experts» и перезапускаем терминал. |
Если исходный код робота не содержал ошибок, которые могли помешать компиляции, установленный робот появится в раскрывающемся списке тестера. Я в качестве примера использовал простейший советник CCI_MA, заключающий сделки по индексу товарного канала и скользящей средней.
По большому счёту, это «сливатор», который вручную настроить практически невозможно, поэтому я его и выбрал для экспериментов, чтобы показать преимущества автоматической оптимизации советников в MT4.
Итак, советник выбран, теперь на панели тестера задаём остальные ключевые параметры – торговый инструмент (это тикер валютной пары, металла или CFD), таймфрейм, тип модели (желательно всегда выбирать «все тики»), дату тестирования и, самое главное, ставим галочку напротив пункта «оптимизация».
На втором этапе настройки потребуется задать начальные параметры счёта и робота, а также установить величину шага для функций, требующих оптимизации. Для решения этой задачи нажимаем кнопку «Свойства эксперта».
Перед нашим взором открылось стандартное окно настроек, с которым многие читатели уже наверняка знакомы. Во вкладке «Входные параметры» галками отмечаем переменные, требующие оптимизации, а также задаём их начальные значения (колонка старт), шаг корректировки и конечное значение (стоп).
В представленном примере я решил «подогнать» три функции – CCI_per (основной индекс), MA_per (сигнальная скользящая) и CCI_close_per (индекс, по значениям которого сделка закрывается), поэтому галки стоят только напротив перечисленных переменных.
Параметры всех остальных функций в процессе оптимизации советника в MT4 меняться не будут, поэтому они задаются сразу в колонке «Значение».
Таким образом, если параметр оптимизируется, необходимо заполнять колонки «Старт», «Шаг» и «Стоп», но если переменная в процессе тестов меняться не будет, она настраивается лишь однажды в поле «Значение».
Затем переходим во вкладку «Тестирование» и задаём здесь величину начального депозита, разрешаем советнику открывать сделки в обе стороны (buy и sell), а также отключаем функцию «генетический алгоритм».
Генетический алгоритм – это специальный «умный» модуль, при помощи которого терминал ищет прибыльные «прогоны», после чего начинает подгонять значения ключевых переменных таким образом, чтобы все потенциально профитные комбинации тестировались в первую очередь.
Практика показывает, что подобный подход зачастую мешает оценить результаты теста, поскольку переменные советника подбираются вразнобой, например, в первом прогоне CCI_per будет равен 25, во втором 55, а в третьем 15. Мне нравится, когда всё упорядочено, поэтому я отключаю данную функцию.
Но это ещё не всё. Чтобы сократить время оптимизации советника в MT4, целесообразно задать ограничения на максимальную просадку, прибыль и прочие статистические переменные. Сделать это можно в специальной вкладке того же самого окна.
Когда всё готово, просто нажимаем на кнопку «старт», как и при обычном единичном тесте. С этого момента оптимизация началась.
Как можно заметить, на рабочей панели тестера появились две новые вкладки, которых раньше не было – «Результаты оптимизации» и «График оптимизации». Учитывая тот факт, что здесь собрана необходимая нам информация, остановимся на каждой из них подробнее.
В таблице «Результаты оптимизации» отображаются итоги всех «прогонов», т.е. когда терминал в очередной раз корректирует одну из ключевых переменных робота на величину заданного шага, он начинает заново тестировать алгоритм на выбранном временном интервале, после чего заносит итог в отдельную графу.
По умолчанию здесь показаны только прибыльные результаты, но я рекомендую включить отображение всех тестов, в том числе и убыточных. Сделать это можно при помощи правой кнопки мыши:
Как нетрудно догадаться, результаты тестов можно упорядочить по определённому параметру, например, разумно их расположить в порядке убывания итогового баланса.
«График оптимизации» также является источником важной информации, в частности, его точечный вариант позволяет оценить, как менялись прибыли и убытки по мере корректировки того или иного параметра.
Справедливости ради следует отметить, что подобный способ представления результатов используется достаточно редко, поскольку гораздо больше информации можно получить из двумерного матричного графика, переключиться на который проще всего при помощи клавиши «Пробел».
На данной диаграмме сразу видно, при каких комбинациях оптимизация советника в MT4 показала наилучший результат, в частности, чем насыщеннее цвет квадратов, тем ближе величина баланса к наибольшему из всех полученных значений.
Таким образом, при помощи стандартного тестера стратегий можно существенно экономить время, затраченное на оптимизацию роботов, при этом автоматизация позволяет максимизировать потенциальную прибыль и минимизировать возможную просадку, чего вручную добиться практически невозможно.