Как тестировать советники с качеством 99% — легко, бесплатно, легально

Здравствуйте, уважаемые коллеги форекс трейдеры!

Как известно, для тестирования форекс советников (особенно скальперов, пипсовщиков, чувствительных индикаторных роботов) в настоящее время стало признаком хорошего тона проводить тесты с качеством 99%, то есть с использованием тиковых данных от сторонних источников. Мы ранее уже писали про отличную (но, к с сожалению, платную) программу Tick Data Suite и её аналог Tickstory. Однако, в связи с возможностями новых билдов Metatrader4 и изменениями в лицензионной политике Tickstory , мы рекомендуем более простой и эффективный способ тестирования с качеством 99%. Все что нужно — терминал и прямые руки.

Что случилось с Tickstory Lite?

Беда пришла, откуда не ждали: Tickstory Lite стал коммерческим продуктом. По адресу https://tickstory.com/download-tickstory/ мы видим следующее:

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

Что же делать? Искать в интернете старые версии MetaTrader4? Пользоваться услугами хакеров и прочих мастеров тёмных искусств?  Нет, в этом уже нет необходимости: новые билды метатрейдера и пара бесплатных программок могут полностью заменить нам Tickstory Lite.

Чем хороши и чем плохи новые билды MT4?

Плохая новость: в МТ4 по-прежнему нет тиковой истории котировок.

Хорошая новость: мы можем скачать сторонние тиковые котировки, сконвертировать их в соответствующий  формат и подсунуть  тестеру.

Почему мы так не делали раньше?  Потому, что в более ранних билдах тестер метатрейдера  не позволял просто взять и использовать «неродные» файлы: он их пытался переписать скачанными в онлайне брокерскими котировками и эмулировать заново тиковые значения, перезаписывая файл с тестерными котировками,  что вынуждало патчить файлы МТ4, чем, собственно, и занимались  Tick Data Suite и Tickstory Lite. Но в новых билдах метатрейдер перестал портить файлы, что и позволяет нам сэкономить на платных программах.

Что понадобится: наш джентльменский набор

  1. Сам Metatrader4, который можно нужно  скачать с сайта Вашего брокера и установить.
  2. Программа для закачки тиков от Dukascopy StrategyQuant Tick Data Downloader, доступная по адресу:
    http://www.strategyquant.com/tickdownloader/
    (подсказка: ищите зелёную кнопку, далее введёте имя и адрес почты, куда пришлют ссылку на скачивание программы). Лично я рекомендую использовать 32-разрядную версию — как самую стабильную в работе.
  3. Скрипт CSV2FXT  https://eareview.net/download/csv2fxt_v0.50.zip.

Начало работы

  1.  Устанавливаем Metatrader4 как обычно, регистрируем демо счёт,  и кладём файлы скрипта CSV2FXT в каталог MQL4 в программе Metatrader4. Закрываем Metatrader4.
  2.  Устанавливаем программу StrategyQuant Tick Data Downloader.

Настройка общих параметров

Программа StrategyQuant Tick Data Downloader бесплатна, и в ней есть некоторые пункты в настройках, которые  для наших целей  либо не нужны, либо избыточны, поэтому остановимся только на необходимых действиях.

Для начала настроим общие параметры программы.

Нажимаем кнопку Configure и ставим галочку напротив Automatic export to CSV. Также в пункте меню Change timezone можно настроить часовой пояс получаемых котировок. Текущая версия программы создает два выходных файла котировок CSV: один без сдвига времени, а другой с тем сдвигом, который мы указали в настройках. Наиболее удобно использовать файл без сдвига во времени.

Скачивание тиковых котировок

Выставляем пары и диапазоны дат для скачивания.

Для примера взята пара EURUSD  и срок 1 месяц.

Далее, выбираем путь для сохранения файлов CSV.

По умолчанию программа предлагает записывать  в ту папку, где инсталлирован StrategyQuant Tick Data Downloader, поддиректория tickdata. Можно указать другую папку. Затем сохранить выбор: Save.

Запускается скачивание кнопкой Start Download.

В итоге получили 2 файла:

Мы видим два файла, EURUSD_tick.csv и EURUSD_tick_UTC+0_00.csv.

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

Конвертируем тики в формат Metatrader4

  1. Переносим файл котировок в формате .csv (в инашем примере это файл EURUSD_tick.csv) в папку терминала MQL4/Files. Для удобства переименовываем его в EURUSD.csv;
  2. Запускаем терминал MT4;
  3. Открываем график нужной нам пары (EURUSD), ставим нужный нам таймфрейм;
  4. Запускаем скрипт CSV2FXT.

Для наших целей необходимо изменять не все параметры скрипта, однако, рассмотрим весь список.

  • CSV2FXT version — версия скрипта;
  • CSV filename  — имя файла с тиковыми котировками, если оно совпадает с именем валютной пары (например EURUSD.csv и пара EURUSD в терминале), то можно не заполнять это поле, иначе явно указываем;
  • Create HST — создавать файлы HST, конечно же true (файлы, в которых метатрейдер хранит историю котировок, имеют расширение .hst, а встроенный тестер из них делает файлы с историей котировок в другом формате, с расширением .fxt);
  • All spreads and comissions in pips  — суммарно все спреды и комиссии в пипсах, для наших целей можно оставить значение «ноль»;
  • Spreadспред, для наших целей можно оставить значение «ноль»;
  • Date range infoинформация о диапазоне дат;
  • Start date/ End Date — начало и конец даты конвертации тиков. Если  не задавать эти значения, то скрипт просто сконвертирует всё, что есть в заданном файле;
  • Use real (variable spread) — использовать реальный спред. В нашем случае мы будем спред задавать непосредственно в тестере, поэтому ставим false;
  • Spread padding — фиксированный дополнительный спред брокера  (broker’s markup), для наших целей можно оставить значение «ноль»;
  • Minimum spread  — минимальное значение спреда в сконвертированном файле, для наших целей можно оставить значение «ноль»;
  • Comission infoинформация о комиссиях;
  • Comission in pips — комиссия в пипсах, для наших целей можно оставить значение «ноль»;
  • Commission in accoun currency — комиссия в валюте аккаунта, для наших целей можно оставить значение «ноль»;
  • Leverageплечо, можно оставить automatic;
  • FXT GMT and DST info — информация о настройках сдвига по GMT и летнего времени ( DST = daylight saving time — светлое время суток, т.е. летнее время);
  • FXT GMT offset — сдвиг времени от GMT  в файлах FXT;
  • FXT DST setting  — выбор летнего времени в файлах FXT в зависимости от брокера;
  • CSV GMT and DST info — информация о настройках сдвига от GMT и летнего времени в файле котировок формата .csv;
  • CSV GMT offset — сдвиг времени от GMT в файле котировок формата .csv, для наших целей можно оставить значение «autodetect»;
  • CSV DST setting — параметры летнего времени в файле котировок формата .csv, для наших целей можно оставить значение «autodetect»;
  • Remove duplicate ticks — убирать дублирующиеся тиковые значения;
  • Create M1 FXT, Create M5 FXT, Create M15 FXT, Create M30 FXT, Create H1 FXT, Create H4 FXT, Create D1 FXT, Create W1 FXT, Create MN FXT — эти параметры дают возможность создавать несколько FXT файлов для разных таймфреймов за один раз.  По умолчанию скрипт создаёт FXT файлов только для того таймфрейма, на котором он запущен;
  • Time shift info — использование сдвига по времени;
  • Time shift — использовать сдвиг по времени, да/нет.  При значение true все даты в файле тестера FXT переписываются на 28 лет назад. Если какой-то советник имеет блокирование своей работы в тестере на определённые даты (для утаивания плохих результатов), то сравнение тестов с обычным временем и с котировками, сдвинутыми на 28 лет назад, даст разные результаты и поможет выявить «читеров»;
  • Price multiplication factor — мультипликатор, все котировки после конвертации умножаются на это значение. Для обычных котировок forex  значение должно быть рано 1.0,  однако, есть брокеры, которые для данных типа цен на CFD, индексы, металлы, и т.д. предоставляют вместо нормальных котировок (например, 1.23456), значения, умноженные на некоторое значение (например, 1234.56), поэтому удобно использовать умножение значений в .csv файле на определённое число.

Заключение

После выставления параметров нажимаем OK. Скрипт спросит нашего согласия на перенос и перезапись файлов (с чем мы, конечно же, соглашаемся) и предлагает перезапустить терминал МТ4. Перезапускаем терминал  — и теперь можно тестировать советники!

Внимание! Не забудьте в тестере выбрать нужный советник, пару, таймфрейм и спред! 🙂

Тема на форуме

С уважением, Алексей aka Мерлин
TradeLikeaPro.ru

Софт для трейдинга , , , , ,