Любой, кто хоть раз делал бэктест советников в МТ4, замечал, что качество моделирования не поднимается выше 90%.
Причина в том,что по умолчанию терминал использует минутные бары, вместо тиковых данных. И если советник скальпирует (тейк-профит 3-15 пунктов) или использует небольшой трейлинг стоп, разница в качестве моделирования может очень сильно изменить результат теста.

Пример:

Бэктест одного и того же эксперта,с одинаковыми настройками за год

1. 90%

261537b9fbf3

2. 99%

69b9a186f630

Разница в 2000 пунктов очевидна.

Инструкция

1. Прежде всего я рекомендую установить отдельный терминал Metatrader 4 в отдельную папку исключительно для тестирования стратегий. И обязательно запускайте его от имени Администратора, если у вас Windows 7 / Vista .

3. Теперь нам нужно получить тиковые данные. Один из немногих брокеров, если не единственный, который предоставляет cовершенно бесплатно тиковую историю высочайшего качества — Dukascopy.


1) Открываем демо-аккаунт по ссылке (можно использовать сервис временной почты 10minutemail, дабы не получать впоследствии спам на ваш основной ящик).

2) Когда на почту придут Логин и Пароль, не забудьте переписать их. Далее нажмите на вот эту ссылку -> JFOREX DEMO START. На ваш компьютер загрузится маленький файлик с расширением .jhlp . Запускаем его (на компьютере должна быть установлена Java), принимаем все условия установки, затем вводите логин и пароль, которые пришли нам на почту ранее.

НЕ МЕНЯЙТЕ ЯЗЫК ПРОГРАММЫ!! ОН ДОЛЖЕН ОСТАВАТЬСЯ АНГЛИЙСКИМ!!

3) Внутри терминала Jforex нажимаем Tools->Historical Data Manager. Внизу терминала появится окошко менеджера данных, откуда мы и будем скачивать котировки.

В поле Delimiter ставим запятую (это важно), Data Type выбираемTicks. В нижней части окна выбираем пару (можно расставив галочки,загрузить котировки сразу для нескольких пар). Выбираем временной промежуток для загрузки (в первый раз,для экономии времени и дабы убедиться, что вы все сделали правильно, советую загрузить небольшой промежуток в месяц-два для одной пары).
Далее нажимаем кнопку Start. Начнется загрузка котировок, которая может занять довольно продолжительная время, в зависимости от выбранного временного промежутка и количества пар. В итоге вы получите .CSV-файл (ы), по умолчанию он сохраняется в папку Документы (доступна через Пуск в Windows).

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

Скачайте и распакуйте архив со скриптами по ссылке в конце статьи.  ПапкуMQL4 копируем в каталог данных терминала для тестирования (см.инструкция по установке скриптов), соглашаемся на замену файлов при совпадении имен.
Cкопируйте файл с тиковой историей (CSV файл, который мы скачали через Dukascopy) в папку expert/files. Желательно переименовать его по названию валютной пары, — например GBPUSD.csv
Запускаем терминал, заходим Сервис->Настройки
Выбираем вкладку Советники и проставляем галочки как на рисунке ниже. Жмем ОК

Oткрываем график валютной пары, для которой мы скачали тиковую историю, и меняем таймфрейм графика на нужный для тестирования(к примеру, если вы хотите протестировать советник на М5, то нужно сменить таймфрейм на пяти-минутный).
На панели навигатора жмем плюсик напротив раздела Скрипты и мышкой перетаскиваем на график CSV2FXT

Появится окно настроек :

 

СsvFile — если вы переименовали СSV файл по названию валютной пары (вида GBPUSD.csv),оставляем пустым. Если нет,-вписываем имя файла.
CreateHst — в первый раз ставим true,в дальнейшем включать этот параметр нужно только если история,загруженная для пары длиннее предыдущей.
StartDate и EndDate — проставляем дату начала и окончания периода тестирования в формате ГГГГ.ММ.ДД . Если не заполнять эти поля, сконвертируются все данные, доступные в .CSV-файле.
Spread — если не изменять этот параметр, при формировании файла .FXT будет использоваться спред как у вашего брокера, если изменить — будет использоваться значение, указанное вами.
GMTOffset — изначально данные Dukascopy идут с GMT 0.Но если выставить другое значение в настройках скрипта,то и полученные данные будут с указанным сдвигом.
При тестировании в настройках советника нужно проставлять тот GMT,который был в настройках скрипта(по умолчанию 0)

Жмем ОК. Теперь необходимо подождать(вплоть до получаса), пока скрипт сконвертирует данные.

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

Соглашаемся, нажав Да.

Примечание: для выполнения следующего пункта у вас на компьютере должен быть установлен Microsoft Visual C++ 2010 (скачать для X86/дляХ64)

6. Скачиваем программу Tick Data Suite и устанавливаем ее в корневую директорию терминала, для которого готовилась тиковая история. При первом запуске Tick Data Suite попросит ввести ключ. Триальный ключ выдаётся здесь. Запускаем tds.exe от имени администратора из папки с терминалом. Программа автоматически запустит и пропатчит терминал, чтобы он мог работать с тиковой историей.

7. Открываем тестер стратегий и приступаем к тестированию.

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

Скачать архив скриптов

Скачать кнопка

comments powered by HyperComments