Практическое пособие для начинающих трейдеров по оптимизации советников в МТ4. Схемы, правила и закономерности. Что такое оптимизация советника или как увеличить эффективность торгового эксперта Пошаговый алгоритм оптимизации торгового эксперта

Привет Всем!

Друзья, в сегодняшнем посте мы поговорим о том как нужно правильно оптимизировать советник , чтобы улучшить его результаты при автоматической торговле на рынке Форекс. Подробнее рассмотрим, как нужно корректировать входные параметры торгового эксперта, как настроить и запустить процедуру оптимизации советника в терминале МетаТрейдер 4, как установить и сохранить оптимизированные параметры эксперта при дальнейшей работе с ним.

Итак, поехали:-). Как помните из предыдущей статьи , мы протестировали стандартный эксперт MACD Sample из стандартными параметрами на истории котировок (за 2011 год) и получили неутешительные результаты. Сейчас же мы проведем оптимизацию этого советника и посмотрим, как изменится его эффективность торговли.

Для того чтобы выбрать оптимальные параметры для торгового работа, после проведения тестирования, в окне тестера стратегий нажимаем на кнопку «Свойства эксперта » / вкладка «Входные параметры ».

Что мы здесь видим? Это список параметров и их значения, по которым торгует советник. Для того чтобы оптимизировать какой-то из них, нужно обозначить их галочками (рис. ниже).

Лот мы не выбираем, поскольку данный советник не использует никакой тактики , потому проставляем значение 0.1 для всех случаев.

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

Для примера, если вы поставите для параметра TakeProfit:

Старт — 5 пунктов

Шаг — 1 пункт

Стоп – 200

А для всех остальных параметров эксперта значение шаг и стоп будут равны 0, то оптимизация советника , в таком случае, будет проходить только для параметра тейк профит и выглядеть так:

Первый цикл — он прогоняет со значением параметра TakeProfit — 5 пунктов (это один прогон).

Второй цикл — с значением 6 пунктов (так как шаг у нас 1 пункт, это уже второй прогон)

И т.д. до значения 200. В результате мы получаем 195 прогонов советника из которых будем выбирать лучший вариант.

Так эти значения «Старт », «Шаг » и «Стоп » проставляются для каждого параметра советника отдельно и тогда проводится оптимизация.

  • Параметр TakeProfit у нас будет прогонятся по порядку от значения 50 пунктов до 200 с шагом 1.
  • Lots не оптимизируем, соответственно для колонок шаг и стоп оставляем 0.
  • Трейлинг стоп от 10 до 100 пипсов.
  • Для параметров MACDOpenLevel выставляем количество свечей от 3 до 30 с шагом 1. MACDCloseLevel от 2 до 30.
  • И периоды для скользящей средней МАTrendPeriod от 20 до 100.

Есть! Установили:-). Теперь на вкладке «Тестирование » выбираем депозит (в нашем случае, 1000$) для которого будет проводится оптимизация советника, после чего нажимаем на кнопку «ОК ».

После этого, обязательно ставим галочку «Оптимизация » и нажимаем «Старт ».

Оптимизация советника займет несколько минут в зависимости какой мощности у Вас компьютер. Соответственно после завершения оптимизации, в окне тестера стратегий появляются дополнительные вкладки «Результаты оптимизации » и «График оптимизации ».

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

Если после этого зайдем на вкладку «Свойства эксперта », то увидим, что советник принял новые параметры, которые мы ему установили.

Как показано на рисунках выше, я отсортировал колонку с наибольшей прибылью (она составила – 1586$) и установил эти параметры для эксперта. Теперь нужно заново протестировать советник, чтобы получить реальный график и отчет эффективности его торговли за указанный период. Для этого снимаем галочку «Оптимизация » и нажимаем на кнопку «Старт ».

Как видно на рисунке выше, из вкладки «График », оптимизация советника и его повторный тест показал значительно лучший результат (прибыль за указанный период (год) составила – 1586 дол.) по сравнению с предыдущим тестированием со стандартными параметрами (прибыль – 452$).

Теперь нужно сохранить оптимизированные настройки советника, для этого заходим на вкладку «Входные параметры » и нажимаем кнопку «Сохранить ». В открывшемся окне, пишем название файла с настройками, выбираем папку в которой будем его хранить и сохраняем в специальном формате — .set.

После стандартного теста можно провести так называемый «форвард тест », т.е. тестирование за период с неизвестными для советника котировками. Для примера, так как мы проводили тестирование за период и котировками за 2011 год, то для форвард теста возьмем весь доступный период 2012 года (котировки для робота, в этом случае, будут неизвестны). Результаты, я уверен, будут отличаться существенно, и они будут более достоверны для анализа работоспособности советника на реальном счете.

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

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

Видео обязательное для просмотра «Миф об оптимизации торговых советников»:

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

  • выбрать советника и задать его входные параметры
  • выбрать финансовый инструмент и его период
  • выбрать один из трех способов моделирования баров
  • задать временной диапазон для оптимизации (необязательно)

Для тестирования и оптимизации советников в терминале используется специальное окно "Тестер" . Все вышеперечисленные настройки производятся во вкладке "Настройка" этого окна.

В поле окна "Тестер - Советники" следует выбрать эксперт, параметры которого необходимо оптимизировать. В этом поле нельзя выбрать любой файл советника. Здесь могут быть лишь доступные в клиентском терминале файлы. Для этого они должны быть скомпилированными и находиться в папке /EXPERTS.

После того как выбран советник, необходимо провести дополнительную настройку и задать входные параметры. Это можно сделать нажатием кнопки "Свойства эксперта".

При этом появится новое окно с тремя вкладками:

Тестирование

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

В этой вкладке также выбираются типы открываемых позиций: Only Long - открывать только длинные позиции; Only Short - только короткие; Long and Short - открывать позиции в обе стороны. Каков бы ни был алгоритм советника, он будет открывать позиции только в заданных направлениях.

Также можно включить генетический алгоритм оптимизации. Подробное описание этого алгоритма можно найти в статье .

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

  • Balance - показателем оптимизированности является максимальное значение баланса;
  • Profit Factor - показателем является максимальное значение фактора прибыльности;
  • Expected Payoff - показателем является максимальное значение математического ожидания выигрыша;
  • Maximal Drawdown - показателем является минимальное значение просадки;
  • Drawdown Percent - показателем является минимальное значение относительной просадки (в процентах);
  • Custom - при выборе данного параметра в качестве критерия оптимизации будет учитываться значение функции OnTester() в советнике. Данный параметр позволяет пользователю использовать любой собственный показатель для оптимизации.

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

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

При оптимизации входные параметры советника задаются в полях "Старт", "Шаг" и "Стоп". В этих полях задаются начальные значения, шаг изменения и конечные значения внешних переменных соответственно. Слева от названия переменных имеются галочки, включающие параметр в оптимизацию. Если переменная не отмечена галочкой, она не участвует в оптимизации. Ее значение в процессе оптимизации не изменяется, и используется параметр, записанный в поле "Значение". Количество прогонов эксперта напрямую зависит от этих параметров. Данные, записываемые в поле "Значение", не влияют на оптимизацию советника и необходимы лишь для его тестирования .

Существует возможность загрузить уже сохраненный набор входных параметров (включая значения "Старт", "Шаг" и "Стоп"). Это можно сделать, нажав кнопку "Загрузить" и выбрав предварительно сохраненный набор параметров. Сохранить текущий набор внешних переменных можно при помощи одноименной кнопки.

Оптимизация

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

Чтобы включить ограничивающее условие, необходимо выставить соответствующий флажок слева от него. Двойным кликом левой кнопки мыши в поле "Значение" можно изменить имеющийся параметр, после ввода нового значения нажмите клавишу "Enter".

К ограничивающим параметрам относятся:

  • Минимальный баланс - минимальное значение баланса в валюте депозита;
  • Максимальная прибыль - максимальная прибыль в валюте депозита;
  • Минимальный уровень маржи % - минимальный уровень маржи в процентах;
  • Максимальная просадка % - максимальная просадка в процентах;
  • Непрерывный убыток - максимальный суммарный убыток в одной серии. Убыточной серией называются несколько следующих подряд убыточных сделок;
  • Непрерывное количество убыточных сделок - максимальное количество убыточных сделок в одной серии;
  • Непрерывный выигрыш - максимальная суммарная прибыль в одной серии. Прибыльной серией называются несколько следующих подряд прибыльных сделок;
  • Непрерывное количество прибыльных сделок - максимальное количество прибыльных сделок в одной серии.

Финансовый инструмент и его период

Чтобы приступить к тестированию, недостаточно лишь выбрать советника и настроить его. Необходимо также выбрать финансовый инструмент и период (таймфрейм) для тестирований. Все тестирования будут проходить именно на этих данных. При тестированиях можно выбрать один из доступных в терминале инструментов или использовать внешний файл данных. В тестированиях используются файлы исторических данных формата *.FXT, которые записываются в директории /TESTER. Эти файлы автоматически создаются при тестированиях, если был выбран имеющийся в терминале инструмент.

Финансовый инструмент задается в поле "Символ", а таймфрейм - в поле "Период". Если файла данных по этому инструменту, периоду и методу моделирования не существует, он будет создан автоматически. При отсутствии исторических данных по инструменту и периоду, тестер автоматически скачает 512 последних баров истории.

Методы моделирования

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

Терминал позволяет оптимизировать советники с использованием различных методов моделирования исторических данных. При этом динамика цен эмулируется более точно. За счет использования исторических данных более мелких периодов можно представлять колебания цен внутри баров. Например, при оптимизации советника на часовых данных, динамику цен внутри бара можно смоделировать на основе минутных данных. Таким образом, моделирование существенно приближает исторические данные к реальным колебаниям цен и делает оптимизацию советников более достоверной.

При настройке оптимизации можно выбрать один из трех методов моделирования исторических данных:

  • По ценам открытия (быстрый метод на сформировавшихся барах)
    Некоторые механические торговые системы не зависят от особенностей внутрибарного моделирования, они торгуют на сформировавшихся барах. То, что текущий ценовой бар полностью сформировался, можно узнать по появлению следующего. Именно для таких экспертов предназначен этот режим моделирования.
    В этом режиме сначала моделируется открытие бара (Open = High = Low = Close, Volume=1), что дает эксперту возможность точно идентифицировать окончание формирования предыдущего ценового бара. Именно на этом зарождающемся баре запускается тестирование эксперта. На следующем шаге выдается уже полностью сформированный текущий бар, но на нем тестирование не производится!
  • Контрольные точки (используется ближайший таймфрейм + фрактальная интерполяция)
    Метод моделирования контрольных точек предназначен для грубой оценки экспертов, торгующих внутри бара. Для этого метода необходимо наличие исторических данных ближайшего меньшего периода (таймфрейма). В большинстве случаев имеющиеся данные меньшего таймфрейма не полностью покрывают временной диапазон тестируемого таймфрейма. При отсутствии данных меньшего таймфрейма развитие бара генерируется на основе цен закрытия 12 предыдущих баров. То есть, движение внутри бара повторяет движение цены за последние 12 периодов. Это и есть фрактальная интерполяция.
    Как только появляются исторические данные меньшего таймфрейма, фрактальная интерполяция применяется уже к этим данным. Однако используется уже не 12, а всего 6 предыдущих баров. То есть воспроизводятся реально существующие цены Open, High, Low, Close плюс ещё две сгенерированных цены. Значение и местоположение этих двух сгенерированных цен зависит от движения цены на 6 предыдущих барах.
  • Все тики (на основе всех наименьших доступных периодов с фрактальной интерполяцией каждого тика)
    Этот режим позволяет наиболее точно смоделировать движение цены внутри бара. В отличие от "контрольных точек", потиковый метод использует для генерации данные не только ближайшего меньшего таймфрейма, но и всех доступных меньших таймфреймов. При этом, если для какого-то временного диапазона одновременно существуют данные более одного таймфрейма, то для генерации используются данные самого меньшего таймфрейма. Так же, как и в предыдущем методе, фрактально генерируются контрольные точки. Для генерации движения цены между контрольными точками также используется фрактальная интерполяция. Возможна ситуация, когда генерируется несколько одинаковых тиков подряд. В этом случае дублирующиеся котировки фильтруются, и фиксируется объем последней из таких котировок.
    Необходимо учитывать очень большой возможный объем сгенерированных потиковых данных. Это может сказаться на потребляемых ресурсах операционной системы и на скорости тестирования.

В клиентском терминале в истории ценовых данных сохраняются только цены Bid. Для моделирования цен Ask в тестере стратегий по умолчанию используется текущий спред инструмента на момент запуска оптимизации. Однако пользователь может задать собственное значение спреда для оптимизации в поле "Спред".

Временной диапазон

Диапазон дат позволяет тестировать советники не на всех имеющихся данных, а лишь на выбранном временном отрезке. Это бывает удобным при необходимости исследовать отдельную часть исторических данных. Ограничение диапазона дат можно использовать не только при тестировании эксперта, но и при генерации тестирующей последовательности баров (файла смоделированных данных, используемого для тестирования). Очень часто нет необходимости генерировать данные всей истории, особенно при потиковом моделировании, когда объем неиспользуемых данных может быть очень большим. Поэтому если при первоначальной генерации тестирующей последовательности была включена возможность использования диапазона дат, то бары, выходящие за пределы указанного диапазона, не генерируются, а просто переписываются в выходную последовательность. Данные не исключаются из последовательности, чтобы оставалась возможность правильно посчитать индикаторы на всей полученной истории. Необходимо заметить, что первые 100 баров также не генерируются. Это ограничение не зависит от установленного диапазона дат.

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

Всем привет. Представьте ситуацию, решили собрать компьютер по комплектующим. Купили самую дорогую видеокарту, материнскую плату, оперативки 32Gb и тд. Собрали все в системный блок и работаете, что называется как есть, без драйверов. Как думаете, будет ли такой компьютер, удовлетворять ваши ожидания? Думаю что нет. Прежде чем работать на нем, ему нужно установить хотя бы драйвера, я уж не говорю о более глобальных настройках.

С торговыми советниками дело обстоит ровно так же. Да, безусловно разработчики дают свои настройки, но время идет, и, как уже сказано выше, то что работало вчера, может не работать сегодня. Поэтому, будем разбираться, как правильно оптимизировать советника.

Настраиваем параметры для оптимизации

В маркете, скачал советник BF Scalper EA (не знаете как устанавливать советники, читайте статью Как установить и запустить торгового советника в MetaTrader 4 (MT4)). Что это за зверь и по какому принципу работает не знаю, да это и не важно. На его примере будем разбираться с настройками и оптимизацией.

Для начала, прогоним тест с предустановленными настройками. Автор пишет, что его робот, хорошо торгует на паре GBPUSD, таймфрейм М15. Запускаем дату от 01.01.2019 до 28.02.2019 и посмотрим какой график доходности получится.

Не плохо. Со $100, советник заработал еще $178. На истории советник отработал очень даже хорошо и это вдвойне нас устраивает. Если бы советник отработал даже на истории в минус, то вообще на него смотреть смысла не было бы.

И все же, нет предела совершенству. Будем оптимизировать советник и пытаться улучшить результаты. Для этого, в окне тестера стратегий, нажимам «Свойства эксперта». Перед нами три вкладки:

  • Тестирование;
  • Входные параметры;
  • Оптимизация.

Во вкладке «Тестирование» установим интересующий начальный депозит в $100. Торговать советник будет и на покупку и на продажу, поэтому в поле «Позиции» выберите «Long & Short».

В блоке «Оптимизация», нам предлагают выбрать «Оптимизируемый параметр» из предложенного списка:

  • Balance;
  • Profit Factor;
  • Expected PayOff;
  • Maximal Drawdown;
  • Drawdown Percent;
  • Custom.

Если хотите чтобы в выдаче участвовали только результаты с положительным итогом, то установите галочку на против «Генетический алгоритм».

Вкладка «Входные параметры», включает в себя переменные, которые будем оптимизировать.

Установите галочку на против поля, которое хотите оптимизировать. В моем случае были выбраны StopLoss и TakeProfit. Столбец «Значение», оставляем без изменений. В этом столбце расположено значение, предустановленное при предыдущем тестировании, по умолчанию. Нас интересуют столбцы:

  • Старт - с какого значения начинается оптимизация;
  • Шаг - какой шаг для следующего значения;
  • Стоп - по достижении какого значения, оптимизация должна быть остановлена.

На скрине ниже выбрано для переменной StopLoss, начало оптимизации 20 пп, с шагом 5 пп, пока не дойдем до 50 пп. Аналогично с TakeProfit.

В советнике, оптимизировать можно любой параметр: StopLoss, TakeProfit, Максимальную просадку и тд.

Вкладка «Оптимизация» включает в себя ограничения. Работает по принципу описанному выше. К примеру, мы не хотим чтобы максимальная просадка во время работы советника, доходила до 30%. Устанавливаем галочку в поле «Максимальная просадка» и вводим значение 30. Во время оптимизации советника, любой проход который будет включать просадку 30%, автоматически останавливается и тест начинается со следующими параметрами.

С настройками все, теперь начинаем оптимизацию.

Бэк тест - это тест на исторических данных с новыми, оптимизированными параметрами. Делается он для точного понимания на сколько прибыльно будет работать советник и стоит ли переходить к форвард тесту, или нужно вернуться на этап оптимизации.

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

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

Переходим в тест стратегий, выбираем оптимизируемый советник, настраиваем все поля и, главное, на забудьте поставить галочку напротив поля «Оптимизация». Запускаем тестер и ждем.

Тестер оптимизировал параметры для советника, в моем случае на это ушло чуть больше 30 минут. Давайте смотреть что из этого вышло.

Перейдите во вкладку «Результаты оптимизации», здесь представлена подробная информация о все проходах. Нажимая на название столбцов, можно отсортировать по нужному показателю.

Найдите в списке приемлемы для вас вариант. Справой стороны есть колонка «Входные параметры». Это те параметры, при которых советник совершил подходящий для вас результат. Чтобы не переписывать в ручную каждый параметр, достаточно нажать на строчку правой кнопкой мыши и выбрать «Установить входные параметры». Параметры будут скопированы в советник.

Теперь, можно перейти в «Настройки» → «Свойства эксперта» → «Входные параметры» и нажать кнопку «Сохранить». Выберите названия для сохранения полученных параметров и нажмите Ок, файл сохранится с расширением.set, который можно передать для использования на другом терминале с этим советником.

Для большей наглядности полученных результатов, предусмотрена вкладка «График оптимизации», в которой прямоугольники с более темным фоном, означают наилучший результат оптимизации советника.

Введите оптимизированные параметры во «Входные параметры» и запустите тестер стратегий, не меня установленной ранее даты. Согласитесь, бэк тест с новыми параметрами, выглядит получше.

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

С бэк тестом закончили, теперь переходим к форвард тесту.

Во время бэк тестирования, в графе «Использовать дату до» мы ввели дату, на месяц раньше текущей. Для форвард теста, мы должны ввести в тестер стратегий не используемые ранее даты.

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

Форвард тест показал, что с оптимизированными параметрами, советник за последний месяц хорошенько слил бы наш депозит. Что делать? Варианта два: либо вновь оптимизировать и пытаться найти лучшие параметры, либо отказаться от советника и искать другой.

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

Как правильно оптимизировать советников в тестере стратегий терминала МетаТрейдер 4? Зачем вообще нужна оптимизация, и что это такое - оптимизация параметров советников для достижения прибыльной торговли валютой на Форекс? Ответы на эти и другие вопросы Вы сможете узнать, прочитав данный материал.

Шаг 2. Сейчас необходимо загрузить в тестер стратегий оптимизационный файл, если он у Вас есть. Если оптимизационнго файла нет - загружаем файл настроек советника, который копировался в папку с торговым терминалом (это папка на диске С://Programe Files/MetaTrader/experts/presets/ , либо отдельная папка для советника - С://Programe Files/MetaTrader/experts/presets/название_советника/). Для этого нажимаем на кнопку Свойства эксперта, в открывшемся окне выбираем вкладку Входные параметры, кликаем Загрузить и находим файл оптимизируемого советника с расширением.set, с соответствующим валютным инструментом и периодом (тайм-фреймом):


Загружаются первоначальные настройки советника, которые на вкладке "Входные параметры" необходимо изменить. Для этого галочкой отмечаем значения в столбце Переменная, которые необходимо изменять в процессе оптимизации советника, выставляем начальные, конечные цифры и значения шага в столбцах Старт, Стоп и Шаг, после чего сохраняем оптимизационный файл для советника в папку С://Programe Files/MetaTrader/tester/ - эта папка будет Вам доступна по умолчанию, если нажать кнопку Сохранить. Если Вы оптимизируете не одного советника, а несколько, то в таком случае рекомендуется в папке /tester/ создавать папку по названию советника и в неё сохранять начальный оптимизационный файл - это поможет избежать путаницы и всегда понять, к какому советнику относится оптимизациооный файл. В название файла оптимизации с раширением.set следует включать имя валютной пары и тайм - фрейм, например, оптимизация_название_советника_eurusd_m15.set:


После этого переходим на вкладку Тестирование, устанавливаем размер депозита, позицию (Long или Shot), выбираем оптимизируемый параметр (по умолчанию Balance), и ставим галочку в окошке генетический алгоритм (Возможно, у Вас возникнет вопрос - Что такое генетический алгоритм? Генетический алгоритм - это "умная" функция перебора параметров, которая заведомо убыточные параметры отбрасывает, в результате чего значительно сокращается количество вариантов перебора и время тестирования). После этого жмём кнопку ОК.


Шаг 3. Непосредственно перед запуском оптимизации параметров советника ставим галочку в окошечке со словом Оптимизация. И только после этого можно жать кнопку Старт. Процесс оптимизации форекс советника на тестовом периоде может занять значительное время - от нескольких минут, до часов и даже до суток: все зависит от количества оптимизируемых параметров каждого конкретного советника.


Шаг 4. По окончанию процесса оптимизации во вкладке График оптимизации формируется своеобразный график, где более темным цветом выделяются параметры советников, прибыльность которых выше. Даже невооруженным глазом видно, что вариации от 1,7 до 1,75 в порядке возрастания больше подойдут для дальнейшей оптимизации:


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


Открывается окно тестера, где, если нужно, изменяем параметр Модели. Вместо значения По цене открытия устанавливаем значение Все тики, так как результаты теста по всем тикам будут более точными. Но это в первую очередь зависит от того, по какому алгоритму работает советник. Если работа советника построена по Ценам открытия - тестирование его по Всем тикам даст неверные результаты ! Поэтому, прежде чем оптимизировать советника, Вы должны понимать логику его работы. Снимаем галочку с окошка Оптимизация и жмём кнопку Старт для тестирования советника с оптимизированными входными параметрами на тестовом периоде:


Анализ теста проводится на основе вкладок График и Отчет. Чем график прибыли более ровный и восходящий, тем входные параметры лучше:


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


Во вкладе Отчет тестера стратегий торговой платформы MetaTrader 4 представляется более удобная для восприятия и анализа информация. Причём, если оптимизация проводилась на котировках, скаченных с MetaQuotes, то результаты будут такими:


А если Вы работали с котировками, скаченными с сервиса DukasCopy, то результаты качественной оптимизации советника (одного и того же) с одинаковыми параметрами, будут выглядеть следующим образом:


Вывод сделать не сложно.

Далее поочередно подставляем различные комбинации входных параметров, сортируя их по разным параметрам. Особое внимание при выборе комбинаций следует уделять таким параметрам, как Количество сделок (для каждого типа советников разное), Максимальная и минимальная просадка. При выявлении "красивого" восходящего графика и удачных результатов (хорошая прибыльность, небольшая просадка и т.д.) с тем или иным набором параметров, необходимо протестировать советника на форвардном периоде.

Шаг 5. Тестирование советника на форвардном периоде. Переходим во вкладку тестера Настройки и вместо промежутка времени исторического периода устанавливаем даты начала (От) и окончания (До) форвардного периода. Форвард-период начинается с конца исторического периода и заканчивается сегодняшним числом. Кнопка Старт запускает тестирование робота с установленными входными параметрами, полученными на первом этапе оптимизации.


Если тестер показывает хорошие результаты (анализировать по графику и отчету), то установленную комбинацию параметров можно сохранить. Для этого во вкладке Настройки кликаем кнопку Свойства эксперта, выходит уже знакомое окошко с входными параметрами, теми, которые показали хороший результат теста. Здесь нажимаем на Сохранить. Сохранить файл можно в папке с уже имеющимися файлами.set, дав ему такое имя, что бы можно было сразу понять, оптимизационный файл от какого советника, какой валютной пары и какого тайм - фрейма перед Вами:


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

Шаг 6. Дооптимизация советников . Перед тем, как запустить советника на реальный счёт, рекомендуется его дооптимизировать. Но, внимание - не совершите ошибку ! Дооптимизация - это не оптимизация советника на форвардном периоде! Подгонку советника на форвард-тесте следует полностью исключить! Для начала поясним, какой принцип положен в систему дооптимизации советников. Известно, что система считается стабильной в том случае, если небольшое изменение параметров не дестабилизирует её состояние. Ключевая фраза в этом определении - небольшое изменение параметров . Применительно к дооптимизации советников этот принцип должен реализовываться следующим образом: нужно изменить параметры советников в небольших пределах и запустить оптимизацию на форвардном периоде. И если после дооптимизации на форвардном периоде выходные данные (максимальная и минимальная просадка, прибыльность, количество сделок и т. д.) не будут существенно отличаться от тех, которые были получены при тестировании на форвардном периоде, то выбираете лучшие настройки и сохраняете их. Вы проверите правильность оптимизации советника и получите ещё более лучший комплект настроек.

У разных советников дооптимизируются различные параметры, поэтому в рамках данной статьи конкретные параметры, которые должны дооптимизироваться, назвать нельзя. Но привести пример для лучшего понимания материала можно, что мы и сделаем. Например, для данных настроек, которые применялись при оптимизации советника на тестовом периоде, можно дооптимизировать параметр Pips - значение Шаг поменять с 2 на 1, коэфицент Старт изменить с 10 на 22, а Стоп - с 30 на 26:


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

Из всего вышесказанного можно сделать вывод, что только качественная оптимизация советника вместе с его тестированием на историческом и форвардном периоде может обеспечить пусть и не 100-процентную, но высокую вероятность его стабильной работы в реальном режиме. Сложно - скажете Вы? Да, сложно! Но Вы сможете получать , которая полностью окупит ваше терпение и настойчивость в изучении принципов оптимизации советников в торговой платформе MetaTrader 4...

Как правильно оптимизировать советник? - вопрос на который не существует пока точного ответа. Здесь я расскажу как я это делаю в metatrader 4. В статье я предполагаю что Вы уже знаете

Для начала разберёмся с техническими тонкостями оптимизации. Оптимизация это подбор наилучших параметров работы советника. "Наилучших" - понятие расплывчатое, кто то скажет риск должен быть минимален, для кого то важнее прибыль в процентах, для других высокий профит фактор. Наилучшие параметры это уже вопрос больше религии, кто во что больше верит. Лично я верю что можно подобрать оптимум(самые наивыгоднейшие параметры) по множеству критериев сразу. Но платформа MT4 пока что в этом плане ограничена и позволяет оптимизировать только по одному критерию, т.е. если мы ставим оптимизировать чистую прибыль, то генетический алгоритм пытается подобрать такие параметры при которых прибыль максимально, не глядя на просадку, и прочие показатели. Это очень похоже на джина, который вроде формально выполняет желание, но всегда криво и не так как нужно. В оптимизации советников очень важно экспериментировать и набираться опыта, оптимизировать как можно больше систем, на разных интервалах, следить что меняется, как меняются лучшие параметры. Тогда с опытом Вы будете лучше разбираться в работоспособности и живучести советников.

  • 1. Естественно депозит. На этапе оптимизации депозит ставят максимально большим, чтобы депозит не стал ограничением в работе советника, пускай и убыточного, работу над ошибками в системе делают именно так.
  • 2. Long/Short - параметр который разрешает открывать и BUY и SELL ордера. МТ4 позволяет запретить открытие любого из типов ордеров. Не рекомендую использовать этот параметр, т.к. в эксперте могут возникнуть логические ошибки. В любом эксперте!
  • 3. Оптимизируемый показатель - то о чём я говорил выше. Если выставить balance то генетический алгоритм будет пытаться максимизировать баланс, не смотря на другие показатели. Из всех представленных показателей оптимизации я рекомендую использовать ProfitFactor, он наиболее оптимально для большинства систем подберёт параметры.
  • 4. Вкл/выкл Генетический алгоритм. Генетический алгоритм ОЧЕНЬ существенно ускоряет поиск оптимальных параметров. Существует целый раздел в Машинном обучении, который поможет Вам подробно разобраться что же такое генетический алгоритм. Я лишь скажу что без него идёт прямой перебор параметров, который может затягиваться на года, в то время как генетический алогиртм ищет оптимальные параметры за 1-2 дня максимум.

Поехали дальше, вторая вкладка


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

  • 1. Старт - с этого значения параметр начинает свой перебор в сочетании с другими параметрами. Т.е. если здесь напротив TP_1 выставить 100 то при оптимизации занчение TP_1=100 будет минимальным, никогда советник не выставит ниже 100 пунктов TP_1. Аналогично и для других параметров.
  • 2. Шаг перебора параметра. Если напротив TP_1 шаг установить 20, то генетический алгоритм будет перебирать поочерёдно значения 100, затем 120, затем 140, затем 160, НО никогда не будет перебирать 145 или 167, шаг не позволит столь детализироваться в подборе параметров.
  • 3. Стоп- это максимальное значение параметра в переборе. Если напротив TP_1 выставить 1000 то в переборах параметров TP_1 никогда не будет больше 1000, только меньше.
  • 4. Ну и последнее - Должна стоять галочка(где показано стрелкой) чтобы этот параметр подбирался. Если галочка у параметра не стоит то параметр приравнивается к колонке "Значение"

Самый важный параметр - Шаг. Его правильное значение позволяет максимально сократить время оптимизации. Я рекомендую брать размах(Максимальное значение параметра и минимальное) параметра и делить его на 5-8, получившееся значение вписывать в шаг при оптимизации. На примере Вы знаете что Тейкпрофит в колонке Старт лучше поставить минимальным примерно 5 пунктов. Но в то же время в колонке Стоп Вы понимаете что стратегия не долгосрочная и больше 200 пунктов ставить не имеет смысла. Тогда шаг выставляете 20 пунктов. И уже затем когда Вы понимаете что система Вас устраивает и Вам нужно более детализировано оптимизировать параметры и Вам известно, допустим, что оптимальный тейкпрофит колеблется в диапазоне 25-45 пунктов, тогда Вы можете провести ещё одну оптимизацию с более мелким шагом но и более узким диапазоном значений.

Ну и наконец третья вкладка


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