Бэктест советников — качество на 99%

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

Пример:

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

1. 90%

2. 99%

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

Инструкция:

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

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

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

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

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

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

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

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

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

80155b71d956

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

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

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

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

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

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

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

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

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

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

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

Добавить комментарий