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

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

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

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

В поле окна "Тестер - Советники" следует выбрать эксперт, параметры которого необходимо оптимизировать. В этом поле нельзя выбрать любой файл советника. Здесь могут быть лишь доступные в клиентском терминале файлы. Для этого они должны быть скомпилированными и находиться в папке /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 баров также не генерируются. Это ограничение не зависит от установленного диапазона дат.

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

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

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

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

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

Итак, советник выбран, теперь на панели тестера задаём остальные ключевые параметры - торговый инструмент (это тикер валютной пары, металла или CFD), таймфрейм, тип модели (желательно всегда выбирать «все тики»), дату тестирования и, самое главное, ставим галочку напротив пункта «оптимизация».

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

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

В представленном примере я решил «подогнать» три функции - CCI_per (основной индекс), MA_per (сигнальная скользящая) и CCI_close_per (индекс, по значениям которого сделка закрывается), поэтому галки стоят только напротив перечисленных переменных.

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

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

Затем переходим во вкладку «Тестирование» и задаём здесь величину начального депозита, разрешаем советнику открывать сделки в обе стороны (buy и sell), а также отключаем функцию «генетический алгоритм».

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

Практика показывает, что подобный подход зачастую мешает оценить результаты теста, поскольку переменные советника подбираются вразнобой, например, в первом прогоне CCI_per будет равен 25, во втором 55, а в третьем 15. Мне нравится, когда всё упорядочено, поэтому я отключаю данную функцию.

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

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

Как можно заметить, на рабочей панели тестера появились две новые вкладки, которых раньше не было - «Результаты оптимизации» и «График оптимизации». Учитывая тот факт, что здесь собрана необходимая нам информация, остановимся на каждой из них подробнее.

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

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

Как нетрудно догадаться, результаты тестов можно упорядочить по определённому параметру, например, разумно их расположить в порядке убывания итогового баланса.

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

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

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

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

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

Всем привет. Представьте ситуацию, решили собрать компьютер по комплектующим. Купили самую дорогую видеокарту, материнскую плату, оперативки 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, который можно передать для использования на другом терминале с этим советником.

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

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

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

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

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

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

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

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

Особенности тестирования советников в MT4

Механические торговые системы все чаще используются в работе трейдера. Одним из преимуществ является уменьшение неблагоприятного влияния психологических факторов на процесс торговли. Торговая платформа MetaTrader 4 , являясь наиболее распространенным и популярным торговым терминалом, позволяет создавать и использовать разнообразные торговые автоматические и механические торговые системы, а так же проводить их тестирование и оптимизацию, как на исторических данных, так и в режиме «демо» работы.

Подготовка советника к тестированию в MetaTrader 4. Загрузка истории котировок

Для тестирования советника в торговом терминале MetaTrader 4 необходимо, прежде всего, загрузить историю котировок тех финансовых инструментов, с которыми планируете работать. При этом загружаются котировки минутного интервала. Это позволяет точнее аппроксимировать ценовые движения внутри бара в режиме тестирования торговых стратегий на больших тайм фреймах (H1, H4, D).

Что бы загрузить минутные данные, следует установить в терминале MetaTrader 4 размер исторических данных (меню «Сервис ->Настройки):

В поле «Макс. баров истории» во вкладке «Графики» следует установить вручную число, согласно следующих расчетов: минутные данные одного года содержат 525600 баров. Соответственно, понадобится более 5 млн. баров для 10-летней истории. Для вступления в силу значения новых параметров, необходим перезапуск программы.

Данные истории загружаются в модуле программы «Архив котировок» (пункт «Сервис ->Архив котировок»).

В появившемся окне необходимо выбрать период - 1 минута, а так же символ торгового инструмента, для которого требуется загрузить историю. Затем нажать на кнопку «Загрузить». Теперь, после загрузки, база данных содержит требуемое количество котировок. Следует помнить, что количество загруженных данных может у различных брокеров различаться.

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

При этом в окне входных параметров следует указать длительность пересчитываемого временного в минутах (M15-15; H1-60; …). Согласование необходимо повторить для всех временных интервалов.

Алгоритм тестирования советника в торговом терминале MT4

Для тестирования советников используется модуль «Тестер стратегий» (пункт «Вид ->Тестер стратегий»):

Необходимо указать в окне тестера стратегий следующие настройки:

    анализируемый советник, а так же свойства

    необходимость визуализации процесса тестирования

    (в случае неустановленной опции «Использовать дату» тестирование будет проведено на всех исторических данных)

    необходимость проведения оптимизации параметров советника

Выбор советника и параметров тестирования в тестере стратегий

Необходимо в списке «Советники» выбрать советник для тестирования. В списке торгового терминала в папке «experts» находятся все скомпилированные эксперты. Кнопка «Свойства эксперта» позволяет открыть список дополнительных настроек советника. В графе «Тестирование» можно посмотреть и задать общие параметры советника:

Вы можете установить здесь валюту депозита, начальный размер торгового счета, характер торговых сделок: все сделки – Short и Long, только позиции на покупку – Only Long, только позиции на продажу – Only Short. Параметры оптимизации будут рассмотрены ниже.

Ниже приведена вкладка «Входные параметры», которая содержит основные переменные, оказывающие влияние на алгоритм работы эксперта:

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

Настройки «Период» и «Символ» тестера стратегий

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

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

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

Временной диапазон тестирования

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

Эффект визуализации тестирования

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

Запуск процесса тестирования и анализ полученных результатов

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

После завершения процесса тестирования на экране появятся окна новых вкладок: «Результаты», «График», «Журнал» и «Отчет».

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

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

Во вкладке «Журнал» находится отладочная информация непосредственно самого процесса тестирования эксперта. Здесь содержатся успешно выполненные операции, а также ошибки, возникшие во время работы советника:

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

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

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

Наиболее важные показатели системы – максимальная просадка, чистая прибыль, количество сделок.

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

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

Чистая прибыль означает разница между начальным и конечным состоянием баланса счета.

Фактор восстановления (соотношение прибыли к максимальной просадке) – это важный показатель работы советника и его эффективности. При эффективной работе фактор восстановления должен быть более трех.

Так же, важными характеристиками советника являются средняя прибыльная/убыточная сделка. Оптимальным вариантом является соотношение средней прибыли к средним убыткам 1:3, а также превышение числа убыточных сделок над прибыльными на уровне 1:2. То есть, должна расти прибыль, а убытки быстро фиксироваться.

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

Визуализация тестирования советника в терминале MT4

Тестер стратегий позволяет трейдеру просмотреть торговые события непосредственно на графике, которые возникали в период анализа советника. Имеется два способа визуализации: во время теста советника и после проведения теста.

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

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

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

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

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

Параметры оптимизации советника настраиваются в свойствах эксперта:

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

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

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

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

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

Процесс оптимизации займет определенное время:

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

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

График оптимизации демонстрирует область возможных прибыльных настроек:

По осям показаны оптимизируемые параметры, а более яркий цвет отображает максимальный баланс.

Практическое использование МТС

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

Как правильно оптимизировать советник? - вопрос на который не существует пока точного ответа. Здесь я расскажу как я это делаю в 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 пунктов, тогда Вы можете провести ещё одну оптимизацию с более мелким шагом но и более узким диапазоном значений.

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


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