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

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

Всё может очень сильно измениться уже через день. На рынке действительно есть такие классические значения, которые применимы сразу к широкому спектру инструментов, но они работают только на старших периодах, то есть на дневном и более. А всё, что меньше – не актуально. Скользящая средняя с периодом 100 на дневном графике известна давно. А вот на графике М30 будет просто случайным значением. Также происходит и в советниках на форекс. Разработчики тестируют их, пытаются получить наиболее актуальные значения параметров, но уже буквально через месяц они устаревают. А могут проработать ещё два года без изменений, то есть будущего никто не знает, всё постоянно меняется и адаптируется к тому, что происходит в мире. Без особых указаний к советнику часто просто не обойтись. И чтобы получить хорошие результаты, советник необходимо оптимизировать. Мы можем либо положиться на имеющиеся настройки и надеяться, что дальше всё будет в порядке, либо можем начать оптимизацию робота самостоятельно, для этого есть соответствующий инструмент в торговом терминале.

Получить бесплатно ТОП 5 лучших торговых роботов можно здесь!

Настройки тестировщика
Настройки тестировщика. Отмечены основные параметры непосредственно процесса тестирования и его условий, которые пока ещё не относятся к самой оптимизации, а лишь определяют процесс тестирования

Оптимизация советников в МТ4

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

Нажав на кнопку “Свойства эксперта”, увидим окошко с параметрами, которые будем настраивать. Предлагается три вкладки. На первой из них с названием “Тестирование”, у нас задаются основные исходные данные – размер депозита, валюта депозита, а также направления, в которых советнику можно открывать сделки. А вот ниже под этими данными будет оптимизация, в которой выбирается нужный нам метод:

  • Balance. В этом случае в результате тестирования будет выбираться набор параметров, которые приводят к увеличению конечного показателя баланса.
  • Profit Factor. Здесь у нас оценивается конечная сумма сделок, закрытых в плюс к конечной сумме сделок, закрытых в минус. Для успешной работы обычно предполагается соотношении больше 1, то есть профитных сделок будет больше.
  • Expected Payoff. Оптимизация, рассчитанная на матожидании, то есть по параметрам, при которых учитывается средняя прибыль на сделку. Она должна быть больше, чем спред, иначе советник будет убыточным, то есть прибыль не будет перекрывать расходов на разницу между ценой покупки и ценой продажи.
  • Maximal Drawdown. Поиск параметров, которые будут давать наименьшую просадку депозита. В данном случае речь идёт об абсолютном показателе, то есть выраженном в валюте депозита.
  • DrawDown Percent. Параметры аналогичны предыдущему, но вместо абсолютного значения будут проценты.
окошко настроек советника
Для того, чтобы попасть в окошко настроек советника и оптимизации, нужно зайти в свойства эксперта – кнопка расположена рядом со строкой названия советника

Дополнительным параметром является алгоритм тестирования, выделенный в отдельный пункт в окошке. Это такой метод, который даст возможность значительно снизить время тестирования. Нужно понимать, что перебор параметров по всем возможным комбинациям будет длиться очень долго, нужно будет проводить десятки и сотни тестирований советника. Столько ждать не все могут, да и смысла в этом особого нет. Поэтому в терминале предусмотрена такая возможность, в рамках которой используется выбор комбинаций и общее упрощение. Так что отмечаем пункт “Генетический алгоритм”.

После того, как настроили всё предыдущее, можно открывать параметры советника. Они находятся во второй вкладке в окошке – примерно то же мы видим, когда просто запускаем советника на графике. Но в рамках тестирования и оптимизации предлагается также настроить все значения для оптимизации. Всего для каждого параметра их 4 штуки – фактическое значение, стартовое значение – с него начинается само тестирование, шаг – он определяет какой интервал будет между тестируемыми значениями параметра, стоп – вторая граница для диапазона тестируемого параметра. Например, если мы просматриваем и оптимизируем робота в отношении стоп приказа, то в этом случае можно рассмотреть последовательность от 10 пунктов до 50 пунктов с шагом в 10 пунктов. Робот протестирует 10, 20, 30, 40 и 50 пунктов, из чего можно будет сделать выводы.

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

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

Получить бесплатно ТОП 5 лучших торговых роботов можно здесь!