Привет всем алготрейдерам! На нашем блоге мы недавно обсуждали разработку автоматических торговых системе и теперь пришло время поговорить об оптимизации советников.
На счет оптимизации советников обычно есть 2 мнения, одни трейдеры считаю, что это пустая трата времени и оптимизация только вредит торговой системе, другие напротив, видят в ней гораздо больше потенциала. Все дело в том, что процесс оптимизации советников довольно многогранный, и без достаточного опыта трейдер может легко запутаться, наделать ошибок и как следствие - не получить желаемого результата. В этой статье я расскажу, как же правильно оптимизировать советник и добиваться максимальных результатов.
Идея оптимизации в переборе параметров советника для получения наилучших показателей прибыльности и просадки. Конечно, можно вручную менять настройки робота и запускать их в тестере, но гораздо удобнее делать это через оптимизацию параметров. Тестер стратегий МТ4 и МТ5 обладает функционалом, который позволит вам подбирать любые значения советника и сравнивать результаты. На выходе вы получаете отчет о результативности торговой системы, когда используются те или иные параметры. Кроме этого, протестировав любой из вариантов параметров вы, получаете полный отчет со сделками и статистикой по торговле за выбранный период времени, который может содержать очень полезную информацию для дальнейшей оптимизации.
Вы должно быть знаете, что ручные торговые системы со временем устаревают и перестают приносить прибыль, как раньше. В то же время старые убыточные стратегии внезапно начинают успешно торговать. Все дело в цикличности рынка и изменении волатильности, когда рыночные условия уже не подходят определенным стратегиям. Со многими советниками происходит то же самое. Когда вы оптимизируете стратегию на истории, вы практически находите лучшие настройки для конкретного этого периода времени, и вовсе необязательно, что в будущем эти настройки будут работать так же хорошо. На практике, такие “оптимальные” настройки могут начать приносить убыток буквально спустя несколько недель и никак нельзя определить, когда настройки станут неактуальными и нужно снова их оптимизировать. В этом и состоит точка зрения противников оптимизации. Но если разобраться, виновата вовсе не оптимизация, а сама торговая стратегия или оптимизация и тестя были сделаны неправильно. Сейчас постараемся разобраться, как правильно делать оптимизацию.
Модель тестирования и оптимизации относится к качеству котировок, на которых и будут проходить тесты. Для лучших результатов важно использовать самые точные котировки, поэтому выбираем только модель «все тики». Есть модель “по ценам закрытия” и “контрольные точки”, но это очень грубый вариант для тестирования и может ввести трейдера в заблуждение, потому что часто показывает результаты тестов лучше, чем по модели «все тики». На практике тестирование по таким котировкам просто некачественное и использовать их нет никакого смысла.
Хочу сразу отметить, что в МТ4 качество котировок ниже, чем в МТ5, как и скорость и информативность тестирования. Однако это всеравно достойная платформа для оптимизации и далее будут описываться работа именно в МТ4.
Опция “Оптимизируемый параметр” определяет основной выходной параметр, по которому будет оцениваться каждый цикл тестов оптимизации:
Обязательно используйте опцию “Генетический алгоритм”. Она позволяет делать поиск оптимальных параметров при помощи генетического алгоритма, который завершит оптимизацию всего за несколько часов или дней. В противном случае, тестер прогонит все возможные варианты комбинации параметров советника и на это может потребоваться примерно гугол лет.
Для того, чтобы оптимизировать какой-либо параметр, нужно поставить напротив него галочку и указать значения для оптимизации. Таблица на вкладке входные параметры содержит 4 столбца – сам параметр, его текущее значение, начальное значение для оптимизации, шаг и конечное значение для оптимизации. “Текущее значение” не имеет значения для оптимизаци, это значение, которое используется в советнике для одиночного тестирования или непосредственно для торговли.
Оптимизатор использует значения из колонок “Старт”, “шаг” и “Стоп”. Предположим, нам нужно подобрать оптимальный стоплосс. Для этого указываем начальное значение стопалосса (старт), например, 50 пунктов, затем вводим конечное значение, например 200, после этого установим шаг 10 пунктов. В результате оптимизатор будет проверять на истории все значения стоплосса от 50 до 200 с шагом 10, т.е. 50, 60, 70, 80…, 200 и выдаст таблицу с результатами по каждому прогону.
Чем больше параметров вы тестируете за раз, тем больше времени потребуется терминалу для завершения оптимизации. На пример, вы хотите оптимизировать один параметр советника со значениями от 20 до 100 с шагом 20, значит оптимизатор сделает 5 прогонов (20, 40, 60, 80, 100). С этим терминал справится за пару секунд, но что, если мы оптимизируем сразу 2 или больше параметров? Все зависит от количества прогонов для каждого параметра, если к примеру вы хотите оптимизировать сразу 3 параметра с количеством прогонов для первого параметра 5, для второго 10, а для третьего тоже 10, то потребуется всего 500 прогонов на истории для завершения такой оптимизации. Просто умножьте количество циклов каждого параметра и получите итоговое необходимое количество.
Бывает, что параметров слишком много для оптимизации и МТ4 просто зависает. В этом случае нужно определить параметры по важности и связанности и оптимизировать их по-отдельности. Например не стоит вместе тестировать значения тейкпрофита и значения параметров стохастика. Если вы плохо представляете себе степень влияния отдельных параметров, можно определить это пробной оптимизацией отдельно взятого параметра.
Общая рекомендация - оптимизируйте вместе те параметры, которые связаны между собой, например параметры индикатора, который используется советником или параметры стоплосс, тейкпрофит и трейлинг стоп.
Эта вкладка поможет сэкономить время при оптимизации, но только, если у вас уже есть опыт и хорошее понимание всего процесса. Вы можете установить условия отсева результатов, например, ограничить максимальное непрерывное количество убыточных сделок, максимальную просадку и т.д. В итоге в результатах оптимизации окажутся только те результаты, которые соответствуют этим параметрам.
Это один из важных критериев при оптимизации советника и от правильного выбора этого отрезка времени будет зависеть ваша прибыль от торговли этим советником. Вот где начинающие трейдеры постоянно ошибаются и часто становятся противниками оптимизации и вообще работы с советниками.
Подход новичка
Начинающий трейдер обычно берет короткий доступный период истории (часто не длиннее пары месяцев, чтобы ждать было недолго) и нажимает кнопку «старт». После завершения выбирается те настройки, которые дали больше всего прибыли. Вот и все, робот запускается на реальном счете с такими параметрами, а трейдер уже представляет, как покупает себе новый Феррари. А затем, конечно же, сливает депозит. Ошибка в том, что оптимизация на таком коротком периоде времени абсолютна бесполезна и почти всегда будет давать ошибочные результаты.
Продвинутый подход
Уже опытные алго-трейдеровы делают кроме бэк-тестов еще и форвард-тесты. Проще говоря, бек-тест, это вариант тестирования, когда проверить подобранные настройки можно только на живой торговле, потому что параметры подбирались на последней доступной истории котировок. Форвард-тест, это вариант, при котором подбираются оптимальные настройки и проверяются на истории котировок, которая идет после оптимизации, т.е. советник еще не видел эти котировки. Это гораздо более эффективный способ и позволяет проверить стабильность системы.
Итак, для форвард-тестов выбирается два участка истории, участок оптимизации и участок форвард-теста. Разумеется, участок оптимизации находится перед участком форвард-теста. Обычно, для оптимизации выбирают первые две трети выбранного периода истории, а для форвард используют оставшуюся одну треть. Чем больше участок времени, тем более приспособленными будут настройки к различным изменениям рынка, и тем дольше он будет стабильно зарабатывать. Рекомендую использовать не менее трех лет, а лучше - больше. Также важно, чтобы рынок менялся несколько раз за выбранный период времени, увидеть это можно на недельном или дневном графиках.
Как только вы получили лучшие настройки советника не спешите запускать робота на реальном счете. Проверьте ваши сеты на демо счете, достаточно будет 20-30 сделок. Убедитесь, что сделки из теста совпадают с демо за тот же период. Если сделки хотя почти совпадают, то все хорошо. Не ожидайте, что сделки будут на 100% совпадать, будут отличия из-за спреда, проскальзывания или просто из-за того, что брокер не смог исполнить торговый приказ по какой-либо причине. Но если на демо результат кардинально отличается, то вероятнее всего дело в самой торговой системе или у брокера неподходящие торговые условия для нее.
Чем больший таймфрейм вы используете, тем больше будут совпадать результаты с демо и даже с реальным счетом. Если системы торгует на тайфрейме от H1 и использует стопы от 200 - 300 пипсов, то система будет себя вести почти как в тестере, потому что проскальзывания и изменения спреда незначительно будут влиять на результат. Но если у вас скальпер с тейк профитом 10 пипсов, то система в лучше случае будет работать только на демо.
Как видите, оптимизация параметров советника имеет множество нюансов, но это не такое сложное занятие, как могло показаться. Есть еще множество секретов, которыми я мог вы с вами поделиться, но это материал для других статей. Желаю вам успехов и стабильной торговли ваших советников!