GrabDuck

Еще раз о тестировании по всем тикам или отправляем TickStory на свалку

:

Мы уже не раз писали о тестировании советников в тестере стратегий MetaTrader4 с использованием тиковых котировок (с качеством моделирования 99%), в частности здесь https://www.argolab.net/testirovanie99-ot-integral.html и здесь https://www.argolab.net/tick-data-suite.html. Но жизнь не стоит на месте и вносит свои коррективы в привычные схемы работы.

Много лет одним из самых простых бесплатных способов протестировать стратегию по тиковым котировкам было использование пакета TickStory Lite (мы писали об этом вот здесь https://www.argolab.net/tickstory-lite.html). Однако, некоторое время назад команда TickStory прекратила бесплатную поддержку новых билдов МТ4. Действительно, в описании версий TickStory на официальном сайте читаем следующее

Т.е., TickStory Lite по-прежнему бесплатна, но поддерживает билды МТ4 только до 765 (а актуальный билд сейчас 1031). Платить 35$ за лицензию многим не хочется, а за годы использования многие привыкли к TickStory, а зачастую еще хуже – не представляют себе, как без нее обойтись. Вот и приходится или использовать для тестирования старые билды, или собирать по сети ломаные коммерческие версии. Ломаные версии работают плохо, а жить со старыми билдами еще хуже. Старые билды МТ4 уже нельзя подсоединить к брокеру, они норовят автоматически обновиться, а главное — советники скомпилированные новыми билдами на старых билдах не работают.

Между тем, многие не осознали тот факт, что с новыми билдами TickStory уже просто не нужна – ни бесплатная, ни коммерческая. Для тестирования по всем тикам сейчас нет никаких препятствий. Более того, можно использовать разные источники тиковых котировок, в то время как TickStory умеет использовать только тиковые котировки от Dukascopy. Так что жизнь не всегда меняется к худшему, бывают и позитивные сдвиги :).

Для начала расскажу, что же хорошего случилось с новыми билдами МТ4. Давайте начнем с азов:  как известно, в самом МТ4 тиковых котировок нет, поэтому при тестировании в тестере стратегий он генерирует (моделирует) псевдо-тиковые котировки в формате FXT, по которым и тестирует потом советник. Идея тестирования по настоящим тиковым котировкам заключается в том, что мы скачиваем сторонние тиковые котировки, конвертируем их в формат FXT, и подсовываем тестеру наш FXT файл.

Зачем нам вообще понадобилась TickStory? Дело в том, что старые билды МТ4 не позволяли просто так подсунуть себе другой FXT файл. Их приходилось патчить, патчи приходилось обновлять для каждого следующего билда и в открытом доступе их не было. А TickStory это делать умела. Так вот, хорошая новость заключается в том, что новые билды МТ4 патчить не нужно – они будут использовать тот FXT файл, который мы им подсунем. Правда, они сделают нам небольшую пакость и, распознав «неродной» FXT файл, напишут нам в отчете тестера качество моделирования не «99%», а «n/a». Но ведь это нас не смутит, правда?

Есть еще одна  хорошая новость. Раньше спред тестирования зашивался намертво в FXT файл, а настройки выставляемые в пользователем тестер игнорировал. Теперь же все по-человечески – при тестировании используется спред, указанный пользователем в окне тестера стратегий, а значение спреда в FXT файле игнорируется.

Ну что же. Давайте теперь перейдем собственно к тестам по тиковым котировкам.

Шаг 1: скачать тиковые котировки и сохранить их в виде текстового (CSV) файла. Сегодня доступно изрядное количество источников тиковых котировок (список есть, например, здесь https://forumargolab.net/threads/Источники-тиковых-котировок.655/). Удобнее всего скачивать тиковые котировки от Dukascopy, по той причине, что для этой цели есть специальная бесплатная программа StrategyQuant Tick Data Downloader. Идем на http://www.strategyquant.com/tickdownloader/, загружаем дистрибутив, устанавливаем программу, запускаем.

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

Теперь устанавливаем галочку напротив нужной нам валютной пары, вводим диапазон дат, который нас интересует и жмем Start Download.

На примере выше мы решили загрузить пару GBPUSD за два года, 2015 и 2016. Дожидаемся, пока процесс загрузки и конвертации закончится и идем на диск посмотреть что получилось. Если мы не указали в настройках иначе, котировки сохраняются в ту папку, где инсталлирован Tick Data Downloader, поддиректория tickdata. В моем случае я предпочел указать другую папку. Вот что у меня получилось

Мы видим два файла, GBPUSD_tick.csv и GBPUSD_tick_UTC+0_00.csv. Оба файла можно посмотреть в любом текстовом редакторе (осторожно, они большие, примерно 1.5 Gb за год). Нам будет нужен первый их этих двух файлов.

Теперь переходим к Шагу 2: преобразовать котировки в формат, который понимает МТ4. Для этого нам понадобится отдельный терминал МТ4, специально выделенный нами для тестов по тиковым котировкам Dukascopy, и скрипт CSV2FXT, который можно скачать в конце данной статьи или на сайте автора http://eareview.net.

Я поставил терминал МТ4 от Альпари, открыл демо счет, подключился к брокеру. Теперь копируем в терминал прилагаемый скрипт. Тут все как обычно: файлы .mq4 и .ex4 в папку MQL4/Scripts, .dll в папку MQL4/Libraries, .mqh в папку MQL4/Includes.

Теперь нам надо перенести наш файл котировок GBPUSD_tick.csv в папку MQL4/Files терминала. Будет удобно его переименовать в GBPUSD.csv (иначе придется вводить имя файла в настройки скрипта). Теперь открываем график GBPUSD, устанавливаем таймфрейм на котором будем тестировать советник и бросаем скрипт на график. Открывается окно настроек скрипта. В настройках можно указать желаемый сдвиг времени котировок и установить переход на летнее время. Я предпочитаю иметь котировки без сдвига, поэтому никаких изменений в настройки мы вносить не будем. Вообще же настроек у скрипта много, почитать про них и обсудить можно у нас на форме https://forumargolab.net/threads/csv2fxt-%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F-hst-%D0%B8-fxt-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2-%D0%B8%D0%B7-%D1%82%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D1%85-%D0%BA%D0%BE%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BE%D0%BA.595/

Нажимаем ОК и наблюдаем за процессом. После окончания скрипт спрашивает нашего согласия на перенос и перезапись файлов (соглашаемся) и предлагает перезапустить терминал МТ4. Перезапускаем терминал  — и можно тестировать советники!

В тестере стратегий устанавливаем валютную пару и таймфрем, для которого сгенерировали котировки, задаем период тестирования, соответствующий датам котировок, задаем адекватный спред

… и вперед!

Ну вот и все на сегодня. Удачных вам тестов и профитов!

Скачать CSV2FXT:

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