Качество моделирования 99% в тестере стратегий – нужно ли оно и как его получить?

MirorringВ прошлом уроке мы разобрались, как тестировать советник в терминале МТ4.

 

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

Наилучшее качество моделирования, которое можно получить в тестере стратегий МТ4 обычными способами, это 90%.  Чтобы его получить, надо выбрать в тестере режим «по всем тикам» и иметь закачанные котировки самого мелкого таймфрейма М1 за весь период тестирования. Тем не менее, даже качество моделирования 90% не всегда оказывается достаточным для оценки работоспособности советника. Давайте разберем, почему такое может быть.

Как хорошо известно, исторические котировки всех инструментов хранятся в МТ4 в виде баров (свечей) различных таймфреймов. Каждый бар содержит в себе цену открытия (open), закрытия (close), максимум (high) и минимум (low) за данный промежуток времени. Самый мелкий таймфрейм в МТ4 это минутки M1. Это значит, что о каждой минуте из прошедшей истории терминал МТ4 «знает» не больше 4х цен. А каждый трейдер знает, что за некоторые минуты на рынке форекс успевает произойти многое. При тестировании советника в тестере стратегий в режиме «по всем тикам», тестер старательно пытается заполнить «дырки» между теми ценами, которые у него есть в распоряжении, расставляя имитированные цены просто линейно. Надо ли говорить, что это не имеет ничего общего с реальностью?

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

vector-90%

За неполный месяц 35 тыс. сделок и депозит увеличен в 3.5 раза, при работе постоянным лотом. Неплохо, не правда ли? Но подождем радоваться. Сначала прогоним тот же советник с теми же настройками за тот же период, но с качеством моделирования 99%. Получаем вот что

vector-99%

Строго говоря, в последнем тесте нам надо было бы разделить тейк-профит и стоп-лосс на 10, т.к. котировки 4х-значные а советник плохо написан, но роли это не играет – как бы мы ни подбирали настройки, тест с 99% моделированием будет показывать уверенный слив. Надо ли пояснять, какой из двух тестов ближе к тому, что получается при торговле на реальном счете? Думаю, что нет. Поясню только почему разница между 90% и 99% такая большая. Советник VectorTrader (как и другие подобные советники) написан так, чтобы торговать ВНУТРИ баров М1 – как раз там, где тестер при 90% моделировании не имеет достоверной информации и расставляет тики линейно.

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

 

Инструкция

1. Во-первых, котировки надо скачать. Один из немногих провайдеров, которые бесплатно предоставляет тиковую историю, это швейцарский брокер Dukascopy. Наиболее удобный способ закачки тиковых котировок от Dukascopy – с помощью свободно распространяемого менеджера закачек Tick Data Downloader от StrategyQuant. Скачиваем Tick Data Downloader здесь, устанавливаем. Устанавливать менеджер закачек лучше не в Program Files, а в какой-нибудь «нормальный» директорий, куда программа может записывать данные без проблем. Запускаем менеджер. Ставим галочки напротив желаемых валютных пар, выбираем начальную и конечную дату, жмем «Start Download». Процесс пошел…

Jfo0

После того, как котировки скачались, у вас появится файл с названием имя_валютной_пары.csv в поддиректории \tickdata папки  установки Tick Data Downloader. В моем случае это USDCHF.csv.

Jfo2

2. Теперь надо преобразовать скачанные котировки в формат, пригодный для МТ4. Для этого вам понадобится терминал МТ4, подключенный к вашему любимому брокеру. Пусть ваш терминал установлен в папку с названием MT4_folder. Распакуйте содержимое архива csv2fxt.zip. Положите сам скрипт csv2fxt.mq4 и csv2fxt.ex4 в MT4_folder\experts\scripts\, вспомогательный файл FXTHeader.mqh в папку MT4_folder\experts\include\, библиотеку CsvReader.dll в MT4_folder\experts\libraries\. Убедитесь, что в терминале МТ4 разрешен вызов dll библиотек. Для этого зайдите в меню Сервис  >Настройки > Советники. Убедитесь, что все галочки выставлены, как на рисунке внизу.

1

Теперь найдите скачанные котировки имя_валютной_пары.csv и перенесите их в MT4_folder\experts\files\. Перегрузите терминал и проверьте, что вы подсоединены к брокеру.

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

CsvFile – сюда можно ввести имя файла котировок (например, USDCHF.csv). Это необходимо сделать, если у вас в терминале «расширенное» имя валютной пары (например, USDCHF.m). Если имя пары такое же, как и у файла (USDCHF), то это поле можно оставить пустым.

FXTGMTOffset – сдвиг времени сервера брокера относительно времени GMT. Можно оставить нулем – тогда котировки будут такими, как будто у вашего брокера время стоит по Гринвичу.

CreateM1, CreateM5, CreateM15 и т.д. – ставим TRUE для тех таймфреймов, тиковые котировки которых необходимо сгенерировать. Генерировать сразу много тиковых котировок следует с осторожностью, т.к. каждый файл может занимать по нескольку гигабайт дискового пространства.

Нажимаем ОК.

Ждем появления окошка, сообщающего, что процесс окончен. Скрипт предлагает нам перенести файлы в другую папку – отклоняем его предложение. Смотрим в папку MT4_folder\experts\files и видим, что скрипт создал один или несколько файлов с расширением .fxt и несколько файлов с расширением .hst. Файлы fxt – это и есть файлы тиковой истории, а hst файлы содержат котировки различных таймфреймов, которые соответствуют тиковой истории.

 

3. Теперь переходим к третьему и заключительному этапу – настройке терминала МТ4 для тестов с 99% моделированием. Это самый «скользкий» момент, так как предполагает не совсем стандартное использование терминала. Надо сказать, что автор и владелец МТ4, компания MetaQuotes, является монополистом с весьма вредным характером. В первых версиях терминала МТ4 была специальная галочка, которую достаточно было сбросить, чтобы отменить обязательный пересчет тиковых котировок тестером. Уже давно такой галочки, к сожалению, нет и терминал приходится «патчить», причем патч приходится делать свой к каждому следующему обновлению терминала, что весьма неудобно.

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

Сначала надо выяснить название сервера брокера, к которому вы подсоединены в новом терминале. Для этого в меню Files выберите пункт Login и в открывшемся окне авторизации запомните имя сервера. В моем случае это RoboForex-Demo

Jfo3

Теперь надо распаковать старую версию МетаТрейдера 4 (455 билд), который будет использоваться для тестирования с 99% моделированием. Скажем, мы распаковали наш МТ4 в папку MT4_test. Напомню, в папке MT4_folder у нас новая версия MT4, подсоединенная к брокеру RoboForex-Demo.

  1. Копируем файл конфигурации сервера MT4_folder\config\RoboForex-Demo.srv   ->  MT4_test\config\RoboForex-Demo.srv
  2. Копируем всю папку истории MT4_folder\history\RoboForex-Demo\ ->  MT4_test\history\  А потом удаляем из нее все файлы *.hst. Для этого можно набрать в командной строке del *.hst
  3. Переносим файлы котировок, которые мы сгенерировали MT4_folder\experts\files\*.hst  ->  MT4_test\history\RoboForex-Demo\
  4. Переносим файлы тиковой истории, которые мы сгенерировали MT4_folder\experts\files\*.fxt  ->  MT4_test\tester\history\

Теперь запускаем терминал для тестов с помощью пакетного файла start_tester.bat в папке MT4_test. Появляется окошко авторизации. Нажимаем кнопку Login (содержание полей Login и Password не важно). Авторизации не происходит (она нам и не нужна), но в поле Market Watch появляются символы валютных пар. Перегружаем терминал и все готово к работе.

Замечу, что пакетный файл start_tester.bat запускает терминал МТ4 и автоматически выполняет скрипт патча. Вы можете также запустить терминал обычным образом (дважны кликнув на terminal.exe), а потом вручную запустить скрипт патча birts_patch_416, доступный в списке скриптов терминала.

Теперь попробуем протестировать какой-нибудь советник. Открываем тестер стратегий (Contrl-R), выбираем тестовый советник Moving Average, выбираем валютную пару, котировки которой мы сгенерировали, выбираем таймфрем, который мы сгенерировали, выбираем даты теста (в пределах периода сгенерированных котировок), выбираем качество моделирования “все тики” и нажимаем Start.

Jfo4

После окончания теста переходим в закладку Report и проверяем, что полученное качество моделирования действительно 99%. Бинго!!!

Jfo5

В заключение скажу, что скрипт для конвертации котировок а также скрипт для патча терминала написан один из пионеров 99% моделирования Кристи Дмитриеску aka Birt. Обновленные версии скриптов можно поискать у него на сайте http://eareview.net/tick-data/downloads.

Скачать материалы использованные в статье и все
необходимое для тестов с качеством 99%.

Автор: Владимир aka loopsider

Ваш E-Mail:


Метки: , , , , , ,
Опубликовано в Публикации, Секреты мастерства

Советники ARGOLab
Последние статьи
.
.
Комментарии
E-Mail:
Форекс рейтинг . Форекс каталог