Тестируем советник в MetaTrader с 99% точностью

Каждый трейдер, кто хотя бы один раз тестировал советники в терминале MetaTrader замечал, что качество тестирования никогда не поднимается выше 90%. Причина таких результатов в том, что при тестировании по умолчанию терминал работает с минутными барами, а не полной историей изменений (тиков) цены за определенный период. Особенно разница между минутным и тиковым тестированием заметна на скальпирующих советниках, где нормой является Take Profit в 3-5 пунктов. Пример тестирования советника за один и тот же исторический период, но с разной точностью:

1. Встроенный тестер MetaTrader

MT_Test99_12. Результат по тиковым данным

MT_Test99_2

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

Порядок действий

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

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

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

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

Для получения тиковых данных необходимо зарегистрировать в Dukascopy демосчет и загрузить программу JFOREX DEMO START. На компьютер устанавливается файл имеющий расширение .jhlp для установки программы через Интернет. Перед началом установки убедитесь, что на вашем компьютере установлена и включена свежая версия Java или JForex предложит установить ее по соответствующим ссылкам.

В процессе установки программы необходимо ввести логин и пароль от демосчета Dukascopy и принять условия программы.

Важно: язык интерфейса программы оставляем английским!

После установки запускаем Jforex и в меню нажимаем Tools->Historical Data Manager. В нижней части экрана появляется окно Менеджера данных, откуда мы загрузим нужные котировки.

MT_Test99_3В списке выбора Delimiter обязательно вводим запятую и выбираем пункт Ticks (тики). Выбираем нужную пару в Менеджере данных (внизу экрана), если необходимо загрузить данные по нескольким парам отметьте нужные в списке. Далее указываем нужный временной период и в первый раз для экономии времени и освоения методики рекомендуется небольшой промежуток в один-два месяца.

После нажатия кнопки Start должна начаться загрузка данных, которая может занять достаточно много времени если выбран большой временной диапазон или много пар. По итогу мы получаем файл или набор файлов с расширением .CSV. Файлы по умолчанию сохраняются в папку «Документы», которая доступна из меню «Пуск» системы Windows.

Следующим этапом будет конвертирование полученных файлов в формат MetaTrader, обновление терминала и запуск первого теста. Для этого делаем следующее:

1. Распаковываем полученный по ссылке в конце статьи архив и копируем папку MQL4 в такую же папку терминала, подтверждаем замену файлов. Если вы устанавливали советники и индикаторы, то данный процесс должен пройти без проблем.

2. Копируем нужный CSV файл с тиками в папку expert/files и переименовываем его под нужную валютную пару, например AUDUSD.csv.

3. Запускаем тестовый терминал, переходим Сервис->Настройки и на вкладке Советники устанавливаем параметры, как на рисунке ниже. Нажимаем ОК.

MT_Test99_4Для валютной пары, для которой загружена тиковая история, открываем новое окно и устанавливаем нужный таймфрейм. В панели «Навигатор» терминала переходим в раздел скрипты и перетягиваем на график CSV2FXT. Настраиваем параметры как на рисунке:

MT_Test99_5СsvFile — если имя файла совпадает с валютной парой (AUDUSD.csv, как мы делали выше) оставляем поле пустым, иначе указываем имя файла.

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

StartDate и EndDate — начальная и конечная дата тестирования в формате ГГГГ.ММ.ДД. Если параметры не указаны используются все данные из CSV файла.

Spread — если параметр в пунктах не указан, используется значение спреда брокера

GMTOffset — исходные тиковые данные сформированы без сдвига относительно времени GMT. Если сдвиг по времени необходим, укажите его здесь.

4. Нажимаем Ok и ждем результата конвертирования. Процесс может продолжаться полчаса-час в зависимости от объема исходного файла CSV.

5. После окончания конвертации скрипт предлагает разнести файлы по соответствующим папкам MT4 (скриншот для брокера Альпари, для всех других также нажимаем «Да»):

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

Важно: для дальнейших шагов на компьютере должен быть установлен Microsoft Visual C++ версии не ниже 2010. Почти на всех компьютерах он уже присутствует, но если его все-таки нет установите его по следующим ссылкам — для X86/для Х64.

Загружаем программу Tick Data Suite и устанавливаем в корневую папку тестового MetaTrader. При первом запуске программа потребует ключ, триал-версию которого можно получить здесь. Из корневой папки терминала от имени администратора запускаем файл tds.exe, вводим полученный ключ и программа изменяет терминал для поддержки тиковых данных.

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

Скачать скрипты >>