Тестер стратегий MT4 и анализ результатов тестирования
Май
20

Тестирование советников Форекс, часть 1. Тестер стратегий MT4 и анализ результатов

Author Александр Дюбченко     Category Технические моменты, Торговые советники    

Тестирование советников Форекс в MT4Приветствую, коллеги-инвесторы!

Сегодня я продолжаю тему инвестирования на Форекс с использованием советников.

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

А сегодня я расскажу вам о том, как правильно пользоваться тестером стратегий MT4.

Термины, использованные в статье: советник, котировки, терминал Metatrader, таймфрейм, скальпер, спред, проскальзывание, брокер, тестер стратегий, свечи, тик, пункт, лот, Stop Loss, Take Profit, мани-менеджмент

Итак, вы скачали советник Форекс и хотите проверить, может ли он зарабатывать. Самый простой способ — “Тестер стратегий” в торговом терминале Metatrader 4:

Тестер стратегий в MT4

Для начала, можно ли доверять каким-либо тестам вообще? Или только результатам на торговом счёте?

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

  • плавающий спред (при торговле на ECN или NDD счетах);
  • проскальзывание;
  • скорость исполнения ордеров.

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

Зависимость простая — чем больше сделок, чем они короче и чем меньше период на графике — тем меньше можно доверять тестам, так как влияние “прелестей” реальной торговли будет выше.

Если говорить о типах советников, то скальперы как раз из таких — берут мало прибыли и недолго держат позиции. Они обычно работают на М5-М30.

Для долгосрочников тесты будут более точными. Они работают на H1-D1.

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

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

Содержание статьи:

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

Залог качественного теста советника на истории — качественная история котировок. Впрочем, я обычно не стремлюсь к максимально возможной точности 99% (которую можно получить, но довольно сложным способом) — это больше нужно разработчикам МТС для отладки стратегии, чем простому пользователю, который пользуется готовым решением.

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

Совет: сделайте отдельный терминал Metatrader для тестирования советников. Там будут храниться советники и данные по валютным парам, не перемешиваясь с нужными вам в торговле вещами. “Размножить” Metatrader 4 просто — скопируйте папку с установленным ранее MT4 в любое удобное место, переименуйте папку (например в “Alpari TEST”) и откройте терминал через terminal.exe.

В Metatrader 4 предусмотрено два способа получить котировки валютных пар:

  • скачать данные с торгового сервера;
  • закачать данные из внешнего источника (например, с сайта брокера).

В обоих случаях минимальным таймфреймом будет М1 (минутки), что соответствует 90% точности в тестере стратегий MT4 на всех таймфреймах больше М1 (М5, М15, M30 и т.д.). Можно получить 99% при условии работы с тиковыми данными, но только с использованием сторонних программ, в самом МТ4 эта возможность не поддерживается.

Ну, как я уже сказал, нас интересуют более-менее качественные котировки, так что 90% вполне хватит.

Способ 1. Качаем данные с торгового сервера.

С этим способом есть одна проблемка — далеко не каждый брокер предоставляет возможность скачать котировки с сервера. В большинстве случаев при попытке скачать данные вы получите предложение получить их от компании-разработчика Metatrader 4 — Metaquotes. И эти котировки достаточно низкого качества.

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

И делается это так: открываем Метатрейдер, переходим в пункт меню “Сервис” => “Архив котировок”:

Открываем архив котировок

В появившемся окне выбираем нужную валютную пару, например EUR/USD, она находится в папке Fx Majors. Жмем “Загрузить” и через несколько минут (зависит от вашего Интернета) получаем более 5 миллионов записей.

Котировки EURUSD

Кстати, обратите внимание — котировки у меня слегка “дырявые” — есть данные вплоть до 05.18 01:17, а затем сразу 05.19 19:13. Это часто будет происходить, если держать терминал включенным не 24 часа в сутки — и может привести к ошибкам в тестировании.

Чтобы это исправить, жмем “Загрузить” еще раз — и дырки в данных будут закрыты.

После каждой загрузки котировок рекомендую нажать “Загрузить” еще раз, чтобы появилось такое сообщение:

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

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

Способ 2. Качаем данные напрямую от брокера.

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

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

Далее, нужно удалить все файлы с расширением .hst. Сразу запоминайте, где находятся все файлы Метатрейдера: меню Файл => Открыть каталог данных:

Как быстро найти файлы MT4

Файлы .hst находятся в папке history/ “Имя сервера”, в моем случае Alpari-ECN1:

Удаляете все файлы, которые касаются вашей валютной пары. Теперь, идём на сайт нужного вам брокера. Для примера, давайте скачаем котировки с сайта RVD Markets:

Качает котировки EURUSD с сайта RVD Markets

Обычно нам нужно указать таймфрейм “Минута” и нужный период (несколько лет), за который нужно скачать историю, но в RVD есть возможность скачать сразу файл .hst, причём за всю историю работы брокера.

Так и сделаем, а после скачивания забрасываем его туда же, откуда удалили все файлы .hst ранее — в папку history/ “Имя сервера”. Когда все сделано, перезапускаем терминал.

Итак, у нас есть минутки, теперь нужно получить остальные таймфреймы. Чтобы не качать каждый раз историю с сайта, можно воспользоваться внутренней возможностью Metatrader — скриптом Period_Converter.

Скрипт Period_Converter

Скрипт нашли, но прежде чем применить его, нужно открыть график со скачанными нами котировками. Для этого заходим в меню Файл => Открыть автономно и находим EURUSD, M1:

Открываем автономно график EURUSD M1

Ну а теперь перетаскиваем скрипт на график и находим окно “Входные параметры”:

Выставляем параметр скрипта

Period multipler factor — единственная переменная в этом скрипте, и показывает, сколько секунд в нужном нам таймфрейме. Для создания истории по нужным вам ТФ пользуйтесь таблицей:

  • M5 — ставим 5
  • M15 — ставим 15
  • M30 — ставим 30
  • H1 — ставим 60
  • H4 — ставим 240
  • D1 — ставим 1440

Скрипт работает быстро, на всё уйдет пару минут. Убедитесь, что ненужные файлы .hst удалены, иначе скрипт не сработает.

Что ж, история готова, можно на ней тестировать советники Форекс. Надо отметить, что качество котировок непосредственно от брокера будет несколько лучше, чем с торгового сервера Alpari.

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

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

------------ ↑ к содержанию ↑ ------------

Как пользоваться тестером стратегий MT4

Стандартное окно тестера стратегий Форекс выглядит так:

Окно тестера стратегий

Пройдемся по интерфейсу, блок “Выбор условий тестирования”:

1. Советник. Здесь нужно выбрать предварительно установленного торгового робота из выпадающего списка. Если вы не знаете, как установить его, вам сюда.

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

3. Модель. Здесь остановлюсь подробнее. Всего доступны три модели:

Виды моделей тестирования советников в MT4

Все тики — наиболее точный метод, для моделирования поведения советника используется наименьший доступный таймфрейм, то есть обычно М1.

Контрольные точки — для моделирования торговли робота используется ближайший таймфрейм, например для H1 это будет M30, то есть точность всего в 2 раза лучше, в отличие от предыдущей модели, которая точнее в 60 раз.

По ценам открытия — здесь вообще движения цены внутри свечи игнорируются, для каждой свечи Open = High = Low = Close. Самая низкая точность среди всех моделей.

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

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

5. Спред. Можно задавать автоматически, выставив “Текущий”, можно вручную. Обратите внимание, что для пятизначного брокера спред будет в 10 раз выше, чем для четырехзначного.

Чтобы проверить, сколько знаков у вашего брокера, посмотрите на пару EUR/USD — если ее цена выглядит как 1.2345, то это четырехзнак, если 1.23456 — пятизнак.

Я рекомендую задавать спред заранее перед тестированием, потому что часто “текущий” спред намного выше, чем средний. Посмотреть спреды вашего брокера можно на myfxbook или на сайте самого брокера.

Переходим к следующему блоку “Выбор даты”:

6. Использовать дату. Ставим дату “от” и “до”. Если галочку убрать, советник будет тестироваться на всей доступной истории по валютной паре.

Вопрос о том, на каком сроке должен тестироваться робот - не самый простой. Как видите, у меня стоит от начала 2012 года по сей день, т.е. 3.5 года. Этого срока мне достаточно, чтобы понять работоспособность советника.

К тому же, чем меньше срок тестирования, тем быстрее я получу результат, а некоторые советники работают словно черепахи…

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

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

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

Третий блок тестера стратегий Форекс “Настройки тестирования”:

8. Свойства эксперта. Здесь можно просмотреть некоторые параметры советника, которые можно менять, не влезая в код:

Вкладка "Тестирование"

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

Есть раздел “Оптимизация”, сейчас его не трогаем.

На вкладке “Входные параметры”, собственно, и находятся все параметры советника, заданные его разработчиком:

Параметры советника Night Owl

Как видите, их очень много, поэтому обычно в описании советника есть подробная расшифровка этих параметров. Отмечу, что настройки можно сохранять в специальные .set файлы, нажав кнопку “Сохранить”, а также можно “Загрузить” их — чтобы использовать ранее сохраненный набор параметров.

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

Лучшим вариантом считается лот 0.1 при начальном депозите 10000$, потому что в этом случае 1 пункт (для четырехзнака) движения цены по основным парам (EUR/USD, GBP/USD и т.д.) равен одному доллару.

Также, должен быть способ управления капиталом под названием фиксированный лот. Обозначается он обычно просто Lot/Lots/LotSize или FixLot/FixedLot. Другими словами, никакого мани-менеджмента — мы оценивает работоспособность советника, а не сколько он заработает.

На вкладку “Оптимизация” пока не лезем.

9. Свойства символа. Основная информация по валютной паре, которая выбрана для тестирования.

10. Открыть график. После прогона советника в тестере стратегий Форекс можно посмотреть, какие же сделки он наоткрывал:

Результаты моделирования работы советника на графике

11. Изменить эксперта. Нажав на эту кнопку, вы перейдете в редактор MQL4, если есть доступ к исходному коду советника.

И последнее, “Оптимизация”:

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

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

Что ж, мы с вами уже выяснили, как получить качественную торговую историю и как пользоваться тестером стратегий. Теперь можно приступать непосредственно к тестированию, используя кнопку “Старт”.

------------ ↑ к содержанию ↑ ------------

Анализ результатов тестирования

Для примера, давайте проведем тест советника Night Owl, который неплохо себя показывает в Лаборатории. Допустим, нас интересует, как он работает на валютной паре EURUSD, таймфрейм М15.

Срок тестирования — 2012.11 — 2015.05, это максимальный срок на тех котировках, что я скачал с RVD. Заглянув на myfxbook, установлю спред по EUR/USD равным 5 (тестирую на пятизначном брокере, иначе поставил бы 1 вместо 0.5, т.к. тестер округляет дробные значения) — чуть больше среднего.

В настройках советника выставляем 10000$ стартового депозита и торговый лот 0.1:

Выставляем лотность сделок

Все, можно запускать, жмем на “Старт”. Ждем несколько минут, и видим, что в тестере появились три новых вкладки:

РЕЗУЛЬТАТ. Здесь находится информация о каждой сделке, совершенной при моделировании работы советника — об открытиях (buy/sell) закрытиях (close) и модификациях (modify) ордеров.

А также объем сделки, цена открытия, уровни Stop Loss и Take Profit, полученная прибыль и изменения баланса.

Вкладка "Результаты"

В целом, эта вкладка не особо полезна при анализе результатов советника. Зато отсюда можно скопировать все сделки или сохранить их в отчет в формате .html:

ГРАФИК. Вот что получилось при тестировании Night Owl:

График работы советника Night Owl

Поскольку параметры советника могут меняться произвольно, досконально изучать график, как в случае с ПАММ-счетами, нет необходимости.

Главное, чтобы линия графика плавно двигалась на северо-восток, без заметных просадок. К примеру, здесь именно такой график, не считая последних 10 сделок, где отчетливо видна просадка.

ОТЧЁТ. Эта вкладка — самая важная, и даёт очень много информации о работе советника. Однако, всегда нужно держать в уме, что точность тестирования — всего 90%, а в нашем случае даже 89% — а это значит, что все показатели не так уж точны.

Что ж, вот что получилось в нашем тесте:

Остановлюсь на некоторых показателях.

Чистая прибыль. Сколько долларов заработал советник. Если разделить на начальный депозит, получим доходность. При оценке этого показателя помните, что доходность (просадки тоже, разумеется) советника легко регулируется параметром Lots.

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

Прибыльность. Рассчитывается как Общая прибыль/Общий убыток. Хорошим показателем считается 1.6 и выше. В нашем случае 1.42 — советник работает не идеально, но все же в плюс.

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

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

Качество моделирования. Для тестирования на минутках максимум — 90%, на тиковых данных — 99%. В целом, если качество моделирования намного меньше 90% или же вообще n/a — тесту доверять нельзя.

Матожидание выигрыша. Средний результат сделки в долларах.

Максимальная просадка. Максимальный убыток в долларах и процентах от начального депозита. В нашем случае 148$ (1.44%) — это значит что поставив советник работать с депозитом 10000$ вы могли бы потерять 148$ или же 1.44%.

При выборе размера лота важно учитывать обе цифры. Просадки больше 10% нежелательны, это раз. А два — подумайте, готовы ли вы потерять эти 10%, что будет равно 1000$? Если нет, то просадку в долларах нужно уменьшить за счет уменьшения параметра lots.

Какие показатели при анализе отчёта самые важные? На мой взгляд, это Чистая прибыль, Прибыльность и само собой, Качество моделирования.

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

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

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

Еще есть вкладка ЖУРНАЛ, где непрерывно появляются сообщения о работе советников. Советую её тоже проверять, т.к. там будут отображаться сообщения об ошибках. Например, такие:

Ошибки в работе советника на вкладке "Журнал"

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

------------ ↑ к содержанию ↑ ------------

Сохранение тестов для дальнейшего использования

Во-первых, уже упомянутая мной возможность “Сохранить как отчёт”:

Вы получите файл в формате .html, который потом можно будет просмотреть в таком виде:

Подробный отчёт по советнику Night Owl на EURUSD

Но все равно, так не очень удобно — хранить тесты на компьютере, искать их и т.д. А если вы не дома, то и доступа к тестам нет. В общем, удобнее хранить их своем аккаунте на myfxbook (естественно, нужна регистрация в сервисе) через пункт меню “Системы” => “Стратегии”:

Добавим наш тест советника Night Owl:

В поле “Отчёт по стратегии” выбираем файл с отчётом, который мы ранее сохранили. Заполняем имя отчета, выбираем брокера, выставляем секретность и на этом в принципе всё, можно добавлять.

Forward Test — здесь можно выбрать торговый счёт с советником, который замониторен на myfxbook. Это нам не нужно сейчас.

Жмем “Добавить” и ждем некоторое время. Когда все будет готово, можно выбрать загруженную стратегию и перейти на окно аналитики:

График и параметры советника Night Owl на EURUSD

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

------------ ↑ к содержанию ↑ ------------

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

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

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

До встречи на страницах блога!

С уважением, Александр Дюбченко

Все статьи блога "Инвестируй в ЭТО"

Понравилась статья? Скажите "спасибо" лайком!

Tweet

Прокомментировать

Реклама...

Подписка на блог

Подпишитесь прямо сейчас, и получайте свежие статьи на Ваш E-Mail:

Ваш E-Mail в безопасности

Последние комментарии