4 нюанса тестирования советников в терминале MetaTrader 4, о которых знают не все трейдеры

[info_block align=»right»]Обратите внимание, что качество истории котировок у разных брокеров отличаются, что может вызвать серьезные расхождения в результатах тестирования одного советника на счетах от разных брокеров[/info_block]

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

Все, что нужно знать о том, как правильно тестировать торгового советника в тестере стратегий терминала MetaTrader 4 – в инструкции от экспертов журнала Фортрейдер.

С чего необходимо начинать тестирование советника?

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

Рис. 1. Архив котировок в меню «Сервис» терминала MetaTrader 4.
Рис. 1. Архив котировок в меню «Сервис» терминала MetaTrader 4.

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

Рис. 2. Выбор валютной пары и таймфрейма.
Рис. 2. Выбор валютной пары и таймфрейма.

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

Выбираем в тестере стратегий торгового робота (1), валютную пару (2), тип моделирования (3), таймфрейм (4), спред (5) и настройки советника (6).

Рис. 3. Настройка тестера стратегий для тестирования.
Рис. 3. Настройка тестера стратегий для тестирования.

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

Какой тип моделирования выбрать?

[info_block align=»right»]Тестируете по всем тикам, потом по контрольным точкам, потом по ценам открытия и смотрите разницу.[/info_block]

Тестер стратегий предлагает на выбор три типа моделирования:

  • Все тики;
  • Контрольные точки;
  • По ценам открытия.

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

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

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

Опять-таки, оптимизируем быстрым методом, найденный лучший вариант проверяем по всем тикам и убеждаемся, что все в порядке.

На какие параметры нужно обратить внимание при оптимизации советника?

Количество сделок

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

Если же сделок меньше 150, то необходимо увеличить промежуток времени тестирования, чтобы получить полную картину.

Прибыль и просадка

[info_block align=»right» linkText=»Зарабатываем с Мартингейлом! 8 правил торговли экспертами с повышенным риском» linkUrl=»https://mr-trader.com/learn/forex-trader/zarabatyvaem-s-martingejlom-8-pravil-torgovli-foreks-ekspertami-s-povyshennym-riskom» imageUrl=»http://files.fortrader.org/uploads/2016/11/invest-money.jpg»]Заработок на советнике по принципу Мартингейла возможен. 8 правил о том, как снизить риск от торговли «опасным» роботом.[/info_block]

Во вторую очередь нас будет интересовать соотношение прибыли к просадке.

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

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

double GetRecoveryFactor( void ) {

  double Res = 0;

  double MaxDD = TesterStatistics(STAT_EQUITY_DD);

  if (MaxDD != 0)

      Res = TesterStatistics(STAT_PROFIT) / MaxDD;

  return(Res);

}

double OnTester( void ) {

  return(GetRecoveryFactor());

}

и перекомпилировать его. После этого при оптимизации в тестере появится новая колонка «Результат OnTester». Она будет содержать коэффициент восстановления. Щелкнув по шапке этой колонки, можно отсортировать результаты оптимизации по данному параметру.

Рис. 4. Сортировка результатов оптимизации по коэффициенту восстановления.
Рис. 4. Сортировка результатов оптимизации по коэффициенту восстановления.

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

Часто случается, что  в отчете о тестировании торгового эксперта тестер стратегий в строке «Качество моделирования» указывает значение n/a и сообщает об ошибках рассогласования графиков.

Рис. 5. Ошибки рассогласования графиков.
Рис. 5. Ошибки рассогласования графиков.

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

Как устранить это расхождение? Существует очень простой способ. Необходимо удалить историю котировок по необходимой валютной паре через  «Меню Файл» — «Открыть каталог данных» – History – «Имя торгового сервера». Стираем все файлы EURUSD*.hst.

Рис. 6. Удаление файла с архивом котировок.
Рис. 6. Удаление файла с архивом котировок.

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

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

Итого

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

Похожие статьи

Комментарии ( 2 )

  1. Здравствуйте! Спасибо Вам за информацию о тиковом тестировании робота. Но у меня вопрос такого плана. Если я скачаю тики из архива котировок MQL4 и провожу тестирование в таймфрейме H1(часовом), то не будет ли отличаться время открытия бара от серверного времени брокера? Мне это важно знать, так как открытие ордера в моём роботе привязано ко времени открытия бара и со временем начала торговых сессий.
    Заранее благодарен, если получу от Вас разъяснение по моему вопросу.
    PS: может у Вас есть описание кода, который можно будет внести в тело советника для устранения проблемы, если она, конечно, существует.

  2. А ничего что котировки после удаления будут загружены с сервера метаквот и будут очень сильно отличаться от данных полученных от брокера и после перезалива этот тестер можно смело выкинуть в ведро? вы этот момент почему-то упускаете.

Добавить комментарий

Кнопка возврата к началу