Тестер стратегий MetaTrader4 – оценка стандартными средствами

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

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

AForex

Необходимо заметить, что даже при самостоятельном качественном тестировании нельзя иметь стопроцентную уверенность в объективности результатов. Ведь даже при идеальном моделировании рыночных ситуаций, тестер не может учесть плавающего спреда при торговле на NDD- или ECN-счетах, проскальзывания и скорости исполнения ордеров у различных брокеров.

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

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

Подготовка данных для тестирования

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

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

Итак, как получить историю котировок для тестирования? В МТ4 таких способов два. Первый – это загрузить историю с торгового сервера, второй – воспользоваться внешним источником котировок. К сожалению, МТ4 не поддерживает загрузку и работу с тиковыми данными, поэтому формат таймфрейма загружаемых котировок будет М1. Этого достаточно, что бы обеспечить точность, близкую к 90% на старших таймфреймах, таких как М5-М30.

Загрузка истории с торгового сервера

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

Загрузка котировок осуществляется следующим образом. Необходимо зайти на вкладку меню «Сервис => Архив котировок»:

MetaTra1

В папке Fx Majors выбираем требуемую валютную пару и нажимаем кнопку «Загрузить»:

MetaTra2

Необходимо отметить, что в истории возможны пропуски данных, образующиеся в результате отключения терминала – если держать терминал открытым 24 часа, подобных пропусков не будет. Что бы устранить этот недостаток, необходимо повторить загрузку истории. Загрузку желательно повторять до тех пор, пока не появится следующее окно:

MetaTra3

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

Загрузка истории с внешнего источника

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

После этого удаляются все файлы с расширением «hst». Кроме того, необходимо запомнить расположение файлов установленного МТ4 – «меню Файл => Открыть каталог данных»:

MetaTra4

Файлы  с расширением «hst» расположены в папке «history/ “Имя сервера”»,в случае нашего примера это папка «Alpari-ECN1»:

MetaTra5

Далее из этой папки удаляются все файлы, имеющие отношение к валютной паре, на которой осуществляется тестирование. Далее заходим на сайт этого брокера в раздел «История котировок» - для примера приведен скрин с сайта RVDMarkets (справочно: в настоящее время брокер RVDMarkets соскамился):

MetaTra6

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

Для получения таймфрейма, требуемого для тестирования советника можно переконвертировать скачанный таймфрейм М1 в требуемый. Делается это с помощью стандартных средств МТ4 – скрипта Period_Converter:

 MetaTra7

Для конвертации следует открыть график скачанных котировок – «менюФайл => Открыть автономно, находим EUR/USD, M1:

MetaTra8

Далее перетаскиваем правой кнопкой мыши скрипт на график и открываем окно «Входные параметры»:

MetaTra9

Значение параметра Period multipler factor задает количество минут в требуемом нам таймфрейме. Относительно таймфреймов до одного часа параметр устанавливается как есть, а таймфреймы старше пересчитываются на минуты. Так Н4 – это 240 минут, D1- это 1440 минут и так далее. После изменения настроек запускаем скрипт.

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

Использование тестера стратегий

Тестирование начинается из стандартного окна тестера:

 MetaTra10

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

 MetaTra11

  • параметр «Советник» - задается предварительно установленный советник для тестирования;
  • параметр «Символ» - из выпадающего списка выбирается валютная пара, на которой советник будет тестироваться;
  • параметр «Модель» - задает таймфрейм для моделирования работы советника. Имеются три параметра: «Все тики» - наиболее точное моделирование, «Контрольные точки» - средняя точность, и «По ценам открытия» - наименьшая точность из предлагаемых тестером моделей. С уменьшением точности моделирования увеличивается его скорость. Поэтому, если необходимо получить достаточно быстрые результаты, придется пожертвовать точностью модели.
  • параметр «Период» - устанавливается таймфрейм, на котором будет тестироваться советник;
  • параметр «Спред» - для автоматического исполнения задается  «текущий». Необходимо отметить, что для пятизначного брокера спред будет в десять раз выше. Точное значение спреда определенного брокера можно узнать на его сайте или в сервисе Myfxbook.
  • в блоке «Выбор даты» устанавливается период, на котором будет производиться тестирование советника:

MetaTra12

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

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

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

MetaTra13

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

 MetaTra14

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

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

 MetaTra15

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

Этот параметр следует выбирать с использованием правил управления капиталом. Допустим, для депозита 10000 долларов размер лота не должен превышать 0,1. Кроме того, должна быть возможность установки фиксированного лота, не зависящего от размера депозита. 

  • параметр «Свойства символа» сообщает всю основную информацию относительно валютного инструмента, на котором производится тестирование;
  • параметр «Открыть график» позволяет увидеть сделки, открытые советником в процессе тестирования:
  • MetaTra16

  • параметр «Изменить эксперта» открывает доступ пользователю к исходному коду советника.
  • Заключительный этап тестирования доступен на вкладке «Оптимизация»:

     MetaTra17

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

    Оценка результатов тестирования

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

    • валютная пара EUR/USD;
    • таймфрейм М15;
    • период тестирования с 11.2012 по 05.2015;
    • спред 5;
    • лот 0,1;
    • депозит $10000.

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

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

     MetaTra18

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

    На вкладке «График» представлена визуализация изменения депозита в процессе тестирования:

     MetaTra19

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

    Во вкладке «Отчет» содержится наиболее важная часть результатов тестирования:

     MetaTra20

    Имеющиеся показатели характеризуют эффективность тестируемого советника.

    Так, представленный во вкладке показатель «Чистая прибыль» показывает объем заработанных советником средств. Как известно, этот показатель можно отрегулировать настройкой параметра Lots.

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

    Параметр «Всего сделок» показывает общее количество совершенных советником сделок. В нашем примере период тестирования недостаточен – общее количество сделок менее 100.

    Параметр «Качество моделирования» должен быть не менее 90%. При меньшем показателе результатам тестирования доверять сложно.

    Параметр «Матожидание выигрыша» характеризует средний результат прибыльности сделок.

    Параметр «Максимальная просадка» оценивает максимальное уменьшение депозита от начального размера, выраженное в процентах. В примере просадка равна 1,48%, что является достаточно неплохим результатом. В общем случае, просадка не должна превышать 10%. Кроме того, каждый трейдер оценивает этот показатель и с психологической точки зрения – комфортно ли ему иметь возможный убыток в размере $1000. В результате такого подхода комфортный порог максимальной просадки может уменьшиться еще. В любом случае, этот параметр можно регулировать с помощью размера лота. Если полученный результат просадки не удовлетворяет, необходимо уменьшить величину лота.

    Тестер стратегий имеет еще одну вкладку – «Журнал». Эта вкладка в постоянном режиме информирует о происходящих при тестировании событиях. Например, об ошибках при работе советника:

     MetaTra21

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

    Стандартные средства тестера позволяют сохранить отчет в формате “html”:

     MetaTra22

    Общепринятый способ сохранения позволяет просмотреть и опубликовать отчет в таком виде:

     MetaTra23

    Еще одним способом сохранения является хранение отчетов на сервисе Myfxbook. Этот способ хранения открывает доступ к файлам отчетов с любого компьютера, по типу облачного хранилища. Для добавления отчета необходимо получить регистрацию в сервисе и на своем аккаунте пройти по вкладке меню «“Системы” => “Стратегии”»:

     MetaTra24

    Добавление отчета по тестированию производится следующим образом:

     MetaTra25

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

     MetaTra26

    Заключение

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