Назад
Оптимизация торговых советников
Как заставить вашего робота торговать эффективнее при помощи оптимизации в МТ4
авг 11, 2021
4 мин. на чтение
Peter JanssenMarket expert

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

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

Что такое оптимизация

progress

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

Почему есть противники оптимизации

wrong way

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

Выбор модели тестирования

optimisation model

Модель тестирования и оптимизации относится к качеству котировок, на которых и будут проходить тесты. Для лучших результатов важно использовать самые точные котировки, поэтому выбираем только модель «все тики». Есть модель “по ценам закрытия” и “контрольные точки”, но это очень грубый вариант для тестирования и может ввести трейдера в заблуждение, потому что часто показывает результаты тестов лучше, чем по модели «все тики». На практике тестирование по таким котировкам просто некачественное и использовать их нет никакого смысла. 

Хочу сразу отметить, что в МТ4 качество котировок ниже, чем в МТ5, как и скорость и информативность тестирования. Однако это всеравно достойная платформа для оптимизации и далее будут описываться работа именно в МТ4.

Вкладка тестирование

testing tab

Опция “Оптимизируемый параметр” определяет основной выходной параметр, по которому будет оцениваться каждый цикл тестов оптимизации:

  • Balance” – итоговая величина баланса;
  • “Profit Factor” – итоговое соотношение суммы прибыльных сделок к сумме убыточных сделок (Profit Factor должен быть больше 1);
  • Expected Payoff” – итоговое математическое ожидание, т.е. среднее значение прибыли на одну сделку. (Математическое ожидание не должно быть равно или меньше размера спреда);
  • Maximal Drawdown” – отбор ведется по минимым значениям максимальной просадки. Maximal Drawdown – это наибольшая сумма средств, на которую уменьшался депозит от локального максимума баланса. Это критически важный показатель, который отражает размер риска торговой системы системы; 
  • Drawdown Percent” – отбор ведется по относительной просадке, т.е. значение в процентах отношения максимальной просадки к размеру текущего депозита. Рекомендуем этот параметр в качестве основного, если ваш советник торгует нефиксированными размерами лота или используется функция увеличивающегося лота.

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

Вкладка входные параметры

optimisation inputs

Для того, чтобы оптимизировать какой-либо параметр, нужно поставить напротив него галочку и указать значения для оптимизации. Таблица на вкладке входные параметры содержит 4 столбца – сам параметр, его текущее значение, начальное значение для оптимизации, шаг и конечное значение для оптимизации. “Текущее значение” не имеет значения для оптимизаци, это значение, которое используется в советнике для одиночного тестирования или непосредственно для торговли. 
Оптимизатор использует значения из колонок “Старт”, “шаг” и “Стоп”. Предположим, нам нужно подобрать оптимальный стоплосс. Для этого указываем начальное значение стопалосса (старт), например, 50 пунктов, затем вводим конечное значение, например 200, после этого установим шаг 10 пунктов. В результате оптимизатор будет проверять на истории все значения стоплосса от 50 до 200 с шагом 10, т.е. 50, 60, 70, 80…, 200 и выдаст таблицу с результатами по каждому прогону.  

Что делать, если параметров слишком много?

too busy

Чем больше параметров вы тестируете за раз, тем больше времени потребуется терминалу для завершения оптимизации. На пример, вы хотите оптимизировать один параметр советника со значениями от 20 до 100 с шагом 20, значит оптимизатор сделает 5 прогонов (20, 40, 60, 80, 100). С этим терминал справится за пару секунд, но что, если мы оптимизируем сразу 2 или больше параметров? Все зависит от количества прогонов для каждого параметра, если к примеру вы хотите оптимизировать сразу 3 параметра с количеством прогонов для первого параметра 5, для второго 10, а для третьего тоже 10, то потребуется всего 500 прогонов на истории для завершения такой оптимизации. Просто умножьте количество циклов каждого параметра и получите итоговое необходимое количество.    
Бывает, что параметров слишком много для оптимизации и МТ4 просто зависает. В этом случае нужно определить параметры по важности и связанности и оптимизировать их по-отдельности. Например не стоит вместе тестировать значения тейкпрофита и значения параметров стохастика. Если вы плохо представляете себе степень влияния отдельных параметров, можно определить это пробной оптимизацией отдельно взятого параметра. 
Общая рекомендация - оптимизируйте вместе те параметры, которые связаны между собой, например параметры индикатора, который используется советником или параметры стоплосс, тейкпрофит и трейлинг стоп.
 

Вкладка оптимизация

optimisation tab

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

Выбор периода времени для оптимизации

time

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

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

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

forward testing

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

Отличия торговли в тестере и на реальном счете 

differrencies

Как только вы получили лучшие настройки советника не спешите запускать робота на реальном счете. Проверьте ваши сеты на демо счете, достаточно будет 20-30 сделок. Убедитесь, что сделки из теста совпадают с демо за тот же период. Если сделки хотя почти совпадают, то все хорошо. Не ожидайте, что сделки будут на 100% совпадать, будут отличия из-за спреда, проскальзывания или просто из-за того, что брокер не смог исполнить торговый приказ по какой-либо причине. Но если на демо результат кардинально отличается, то вероятнее всего дело в самой торговой системе или у брокера неподходящие торговые условия для нее. 
Чем больший таймфрейм вы используете, тем больше будут совпадать результаты с демо и даже с реальным счетом. Если системы торгует на тайфрейме от H1 и использует стопы от 200 - 300 пипсов, то система будет себя вести почти как в тестере, потому что проскальзывания и изменения спреда незначительно будут влиять на результат. Но если у вас скальпер с тейк профитом 10 пипсов, то система в лучше случае будет работать только на демо.

Заключение

go big

Как видите, оптимизация параметров советника имеет множество нюансов, но это не такое сложное занятие, как могло показаться. Есть еще множество секретов, которыми я мог вы с вами поделиться, но это материал для других статей. Желаю вам успехов и стабильной торговли ваших советников!
 

Предыдущая статья
Читать другие статьи
Anna Bakker News analyzer
Биткойн во вторник упал примерно до 40 000 долларов на фоне рыночных потрясений
сен 21, 2021
1 мин. на чтение
Anna Bakker News analyzer
Криптовалюта Omicron (OMIC) подорожала в 10 раз всего за два дня после того, как ВОЗ дала название Omicron новому южноафриканскому штамму коронавируса
ноя 29, 2021
1 мин. на чтение
Anna Bakker News analyzer
BTC упал на 90%, но только в сети Solana (SOL)
сен 24, 2021
1 мин. на чтение
Советники Форекс для вашей прибыли
Торговые роботы Форекс на базе искусственного интеллекта. Инновационные торговые технологии для стабильного роста вашей прибыли