Скрипт FXTFileMaker

 

При проверке работоспособности экспертов в тестере стратегий Meta Trader 4 наиболее дотошные трейдеры сталкиваются с ограниченной точностью процесса тестирования. Связано это ограничение с тем, что детализированная история котировок хранится терминалом в виде минутных свечей. В свою очередь, каждая минутная свеча представлена только четырьмя значениями (ценами открытия, закрытия, максимума и минимума). Во многих случаях этого вполне достаточно для воспроизведения реальных событий, что и делает тестер, моделируя поведение цены внутри минутной свечи. Но для тех случаев, когда речь идет о восстановлении событий во время выхода важных новостей, моделирование оказывается бессильным, а помочь восстановить реальные события может только детализированная тиковая история.

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

 

Общий подход

Принцип подстановки собранной тиковой истории в тестер стратегий без подробностей выглядит следующим образом:

1. Получение файла тиковой истории для нужного интервала тестирования.

2. Конвертирование файла в формат FXT и копирование файла в папку тестера стратегий.

3. Запуск тестера стратегий.

Далее каждый из пунктов будет описан в подробностях.

 

Получение файла тиковой истории

Описываемый способ подстановки данных в тестер является узкоспециализированным, а потому для него подходит только один конкретный вид файлов тиковых данных - TKS. Этот формат данных используется индикаторами тиковых объемов. Коллекции файлов тиковых данных абсолютно бесплатно можно получить здесь. Способ склеивания истории из нескольких архивов в один файл описан в статье "Непрерывный тиковый файл"

 

Конвертирование тикового файла в формат FXT

Преобразовать тиковый файл в формат файлов тестера стратегий можно при помощи скрипта FXTFileMaker. Скрипт необходимо запустить на графике того символа, на котором планируется производить тестирование. Это требование является обязательным, т. к. по заданному символу скрипт собирает всю необходимую рыночную информацию: от параметров рыночного окружения до истории котировок. Кроме названия символа с графика запуска скрипта берется таймфрейм для создания файла. Таким образом, важны и символ, и период текущего графика.

В момент запуска скрипта потребуется ввести правильные значения настроечных параметров (см. рис. 1).

Рис. 1. Параметры запуска скрипта FXTFileMaker.

При указании дат интервала тестирования, в отличие от тестера стратегий, можно указывать не только дату, но и время проведения тестирования с точностью до одной секунды. При этом следует учитывать, что границы дат должны находиться внутри того диапазона котировок, который присутствует в исходном файле типа TKS. Узнать диапазон этих дат можно путем указания в параметрах дат скрипта такого диапазона тестирования, который отдален во времени от текущего момента (далекое прошлое или близкое будущее). В этом случае скрипт выдаст сообщение об ошибке, но в нем же укажет диапазон дат, который приходится на файл тиковых данных (см. рис. 2).

Рис. 2. Получение диапазона дат файла тиковых данных.

Получив эти даты, необходимо позаботиться о том, чтобы до даты начала тестирования текущий график содержал достаточное количество исторических баров. Эти бары будут помещены в FXT-файл в виде предварительной истории. По умолчанию для предварительной истории необходимо 1000 баров. Такое значение используется в тестере стратегий, но при помощи параметра скрипта "Количество баров до начала тестирования" эту величину можно изменить в любую сторону: от 1 до того количества баров, которое имеется на данный момент в истории терминала. Отсутствие необходимого количества баров для предварительной истории приведет к ошибке исполнения программы.

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

Во время работы скрипта в рабочем каталоге (MQL4\Files) создается FXT-файл, который затем копируется в папку тестера стратегий (tester\history). После копирования файлу устанавливается атрибут "только для чтения", что не дает тестеру стратегий создать собственный файл FXT, вынуждая использовать тот файл, который имеется. Все эти процессы также могут вызывать различные ошибки, причину возникновения которых скрипт сообщит трейдеру.

При успешном завершении процесса конвертирования скрипт сообщит, что итоговый файл уже находится в папке тестера стратегий. Это позволяет перейти непосредственно к тестированию.

 

Запуск тестера стратегий

При запуске процесса тестирования следует выбрать тот символ, для которого создавался FXT-файл, и тот же период графика. В противном случае тестер создаст свой тиковый файл на основании моделирования тикового потока. Также необходимо позаботиться о том, чтобы в параметрах интервала тестирования были указаны даты, пересекающие тот диапазон дат, который присутствует в FXT-файле. В идеальном варианте даты начала и окончания тестирования должны быть равны тем датам, которые были указаны при запуске скрипта FXTFileMaker. Отсутствие пересечения диапазонов дат приведет к невозможности запуска теста.

Подтверждением факта использования сгенерированного FXT-файла будет появление в журнале тестера следующего сообщения (см. рис. 3).

Рис. 3. Подтверждение использования сгенерированного FXT-файла.

Отсутствие такого сообщения свидетельствует об использовании тестером собственного FXT-файла. В таком случае необходимо еще раз внимательно провести весь процесс генерации FXT-файла.

 

Скрипт распространяется "как есть". Автор не несет ответственности за прямые или косвенные убытки, понесенные трейдерами вследствие использования программы.

Игорь Герасько

Август 2014