Как протестировать советника в MetaTrader 4

Как протестировать советника в MetaTrader 4

Развитие компьютерных технологий и сети интернет в 20 веке позволило осуществлять торговые операции на финансовых рынках не выходя из дома. В 21 веке, когда прогресс шагнул ещё дальше, благодаря платформе Meta Trader 4 участники финансовых рынков получили возможность торговать в автоматическом режиме.

Мощность и потенциал современных компьютеров позволяют воплощать в жизнь любые алгоритмы и программы, даже очень сложные. Благодаря встроенному в терминал Meta Treder 4 редактору MetaEditor, свои идеи в виде торговых советников могут воплощать специалисты любого уровня, даже мало знакомые с программированием.

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

Подготовка к тестированию

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

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

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

testirovanie-sovetnika-mt4-1

После выбора соответствующего пункта, появится меню для настроек терминала:

testirovanie-sovetnika-mt4-2

Необходимо выбрать вкладку «Графики», затем в строках «Макс. баров истории» и «Макс. баров в окне» заполнить так, как изображено на рисунке (по умолчанию в настройках отображается 65 000 баров).

Чтобы котировки по выбранной паре стали доступными, необходимо открыть вкладку Сервис-Архив котировок или нажать F2:

testirovanie-sovetnika-mt4-3

После выполненных действий откроется окно, как на рисунке ниже:

testirovanie-sovetnika-mt4-4

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

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

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

Тестер терминала

Для начала тестирования нужно зайти в тестер стратегий:

testirovanie-sovetnika-mt4-5

Снизу в терминале появится панель следующего вида:

testirovanie-sovetnika-mt4-6

В самом верхнем левом углу есть переключатель советник-индикатор:

testirovanie-sovetnika-mt4-7

Выбираем строчку «Советник»:

testirovanie-sovetnika-mt4-8

На рисунке цифрами обозначены следующие строки:

Строка 1. Список с выпадающим перечнем советников.

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

Если в представленном списке нет нужной валютной пары, но брокер точно предоставляет по ней котировки, нужно обратиться к обзору рынка:

testirovanie-sovetnika-mt4-9

Далее нужно кликнуть правой кнопкой мыши в окне навигатора и выбрать пункт меню «Показать все символы»:

testirovanie-sovetnika-mt4-10

Возвращаясь к пронумерованным строкам на рисунке выше:

Строка 3. В этой строке доступна функция выбора необходимой модели тестирования.

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

Всего существует три вида  изображения развития ценовых баров:

1 По ценам открытия

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

Достоинство такого вида изображения – самый быстрый способ проверки. В этом режиме первоначально формируется открытие бара  Open=High=Low=Close, Volume=1.

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

2 Контрольные точки

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

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

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

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

3 Все тики

Этот метод наиболее точный, используются данные всех доступных наименьших таймфреймов.

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

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

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

 

Для тестирования советника лучший метод – все тики. Он самый медленный, но самый эффективный.

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

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

Строка 5. Визуализация, которой ниже будет посвящён отдельный раздел статьи.

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

testirovanie-sovetnika-mt4-11

Строка «период» предполагает выбор периода для тестирования. Доступны периоды до D1. Периоды W1 и MN1 не доступны для тестирования. Кроме этого, не следует забывать, что если по выбранному периоду в архиве данных не загружены котировки, то тестирование проведено не будет.

Строка «спред» – здесь можно использовать любое значение или текущее, по паре.

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

Строка «Изменить эксперта» доступна только в тех случаях, когда есть доступ к исходному коду советника. Эта функция позволяет при помощи кода открыть советника и внести в него желаемые изменения.

Строка «Открыть график» становится активной только после проведения теста. Её активация даёт возможность открыть график с нанесёнными на него индикаторами и сделками, совершёнными советником во время теста.

Строка «Свойства символа»:

testirovanie-sovetnika-mt4-12

Возможности что-то здесь поменять нет. Эта информация справочная по используемой валюте.

Строка «Свойства эксперта»:

testirovanie-sovetnika-mt4-13

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

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

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

testirovanie-sovetnika-mt4-14

Здесь находятся все управляющие переменные самого эксперта (советника), его настройки.

Вместе с советниками, как правило, поставляются и файлы с настройками, имеющие расширение .set и относящиеся к конкретному эксперту.

Чаще всего для каждой пары используется свой файл с настройками.

Чтобы загрузить правильные настройки для выбранной пары, нужно нажать кнопку «Загрузить» и выбрать необходимый файл. Если в папке тестера после загрузки файлов не оказалось (такое бывает часто), нужно обратиться к папке по адресу FEo3BE71CD8F9E8F4C7oEoFDAFC997E5\MQL4\Presets, вероятнее всего, файлы находятся здесь. Нужно выбрать и загрузить необходимый встроенный файл.

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

«Оптимизация» подробно рассматриваться здесь не будет. Эта вкладка создана для внесения изменений в советник.

Тестирование советника. Результаты теста

После проведённых манипуляций, которые описаны выше, всё готово к проведению тестирования.

Нужно нажать кнопку «Старт», а когда тестирование завершится, компьютер издаст звуковой сигнал, похожий на писк.

Какая информация будет отображаться в нижнем левом углу? Это видно на рисунке ниже:

testirovanie-sovetnika-mt4-15

Появились вкладки в нижней части окна: «Настройки», «Результаты», «График», «Отчёт» и «Журнал».

«Результаты» – вкладка, в которой отображены все сделки, совершённые советником за время теста.

«График» – вкладка, в которой можно ознакомиться с кривой доходности советника.

«Журнал» – вкладка, в которую нужно заглянуть в том случае, если не совершено ни одной сделки. Здесь отобразится информация о том, что происходило во время теста. Чаще всего такая ситуация возникает, когда в советнике есть какая-то ошибка. Понять, что за ошибка и попытаться её расшифровать, можно при помощи раздела «Коды ошибок».

«Отчёт» – вкладка, в которой отображается вся статистика работы советника на выбранном временном промежутке. Выглядит информация так:

testirovanie-sovetnika-mt4-16

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

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

Строка «Качество моделирования» имеет буквальное значение.

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

Если есть хотя бы одна такая ошибка, необходимо удалить всю историю и закачать её заново. Удаление можно произвести при помощи следующих шагов: Файл – Открыть каталог данных – Откроется окно с папкой терминала – папка history – Выбрать необходимый тип счёта (используемый сейчас) – Закрыть терминал и удалить все файлы с расширением .hst, после чего можно закачивать котировки в архив заново.

Панелька с сигнализатором качества котировок выглядит следующим образом:

testirovanie-sovetnika-mt4-17

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

Строка «Начальный депозит» отображает размер депозита, с которым проводилось тестирование.

Строка «Спред» – отображает спред, с которым проводилось тестирование.

Строка «Общая прибыль» отображает данные о том, сколько всего денег было заработано за период работы советника.

Строка «Общий убыток» отображает количество потерянных средств за время работы советника.

Строка «Чистая прибыль» отображает, сколько прибыли было получено за время работы советника. Если при тестировании использовался лот размером 0,1, то прибыль в валюте депозита равна количеству заработанных старых пунктов.

Чистая прибыль = Общая прибыль – Общий убыток.

Строка «Прибыльность» отображает соотношение между общей прибылью и общим убытком.

Прибыльность = Общая прибыль/Общий убыток.

Строка «Матожидание выигрыша» отображает математическое ожидание выигрыша.

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

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

testirovanie-sovetnika-mt4-18

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

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

Для сохранения отчёта в виде файла html, необходимо кликнуть по нему правой кнопкой мыши. Отчёт будет иметь следующий вид:

testirovanie-sovetnika-mt4-19

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

Режим визуализации

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

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

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

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

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

Заключение

Рассмотренный способ тестирования советников подходит для периодов от Н1 и выше. Для скальперов результаты такого тестирования будут носить чисто информативный характер.

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

Расскажите об этом друзьям


Также стоит посмотреть