Скрипт ConvertTicksFile

 

Постепенное увеличение базы тиковой истории позволяет использовать ее в качестве замены той истории, которую предоставляют трейдеру брокеры, а не только для тестирования стратегий или в качестве исходных данных для тиковых индикаторов. Поэтому все актуальнее становится вопрос о том, как преобразовать данные из файлов тикового потока в формат, используемый терминалом Meta Trader 4, или другими торговыми платформами.

Общие положения

Конвертирование тиковых данных производится при помощи скрипта ConvertTicksFile. Скрипт предоставляет три направления преобразования данных:

  1. Без конвертирования в какой-либо таймфрейм. Производится запись тиков в CSV-файл (обычный текстовый файл, который можно открыть как Блокнотом, так и при помощи Excel) как есть.
  2. В свечи указанного периода графика. Запись также проводится в CSV-файл в таком формате, который может быть впоследствии прочитан терминалом Meta Trader 4 при импорте котировок (Сервис - Архив котировок).
  3. В свечи указанного периода графика с прямой записью котировок в историю терминала Meta Trader 4.

Перед тем, как использовать любой из перечисленных методов, в папке MQL4\Files каталога данных терминала (Файл - Открыть каталог данных) необходимо расположить соответствующий тиковый файл (файл типа TKS из базы данных История тиков).

 

Сохранение тиков в текстовый файл "как есть"

Для использования этого режима скрипт запускается со следующими значениями настроечных параметров:

Рис. 1. Запись тиков в CSV-файл.

Параметр "Минут в свече" будет проигнорирован, т. к. тики не объединяются в свечи. Необходимо позаботится о том, чтобы было правильно указано имя существующего файла тиков (в папке MQL4\Files), имя желаемого файла CSV и точность представления котировок (от 0 до 15 значащих цифр).

В случае успешного преобразования данных, в папке MQL4\Files появится файл, имя которого было указано в четвертом настроечном параметре скрипта. Содержимое файла при просмотре в блокноте будет выглядеть так:

Рис. 2. CSV-файл тиков.

Первая колонка данных (разделителем служит запятая) представляет дату и время прихода тика с точностью до секунды. Вторая колонка - цена Bid тика, а третья - цена Ask. Открыть этот тип файла к Excel не всегда может получиться, т. к. у Excel есть ограничение на количество отображаемых строк.

 

Преобразование тиков в свечи заданного периода графика с записью в CSV-файл

Режим вступает в силу, если в первом параметре скрипта указан способ преобразования "В CSV-файл свечей". Каждая записываемая свеча будет объединять в себе тики, пришедшие в пределах того количества минут, которое указано в параметре "Минут в свече". Это количество может относиться как к стандартным графикам Meta Trader 4 (1, 5, 15, 30, 60, 240, 1440, 10080, 43200), так и к любому нестандартному графику (2, 3, 7, 14, 55 и т. д.).

Формат CSV-файла, который создается скриптом, в этом случае полностью соответствует формату, используемому терминалом Meta Trader 4 при экспорте и импорте котировок:

Рис. 3. CSV-файл свечей.

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

Создаваемый CSV-файл располагается в папке MQL4\Files и получает имя и расширение, которое указано пользователем в параметре "Имя формируемого файла".

 

Преобразование тиков в свечи заданного периода графика с записью в историю котировок

Этот режим включается путем установки способа преобразования "В файл истории". Запись данных происходит непосредственно в HST-файлы терминала. В итоге может быть изменена текущая история котировок, используемая терминалом, что требует большой осторожности от пользователя.

Значение параметра "Имя формируемого файла" в этом режиме работы скрипта игнорируется. Имя HST-файла определяется путем считывания названия символа графика, на котором запущен скрипт. То есть нужно обязательно проследить за тем, чтобы символ графика и символ тикового файла соответствовали друг другу, хотя такое соответствие не проверяется программой, оставляя возможность подстановки данных одного символа в другой. 

Такой режим запуска скрипта стоит использовать, если в терминале целиком или частично отсутствует история за некоторый интервал времени. Например, часты случаи наличия "дыр" в истории:

Рис. 4. "Дыра" в истории.

Для заполнения "дыры" необходимо позаботится о том, чтобы в терминале не были открыты графики, отображающие таймфрейм, который планируется исправлять/заполнять. К примеру, если требуется создать график символа EURUSD, ТФ M5, то нужно переключить все окна графиков этого символа на любой другой таймфрейм. Далее можно запустить на одном из этих графиков скрипт (чтобы история была записана для текущего символа, а не какого-нибудь другого). Вслед за успешным выполнением скрипта потребуется перезагрузить терминал. Итогом будет исчезновение "дыры":

Рис. 5. Заполненная "дыра".

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

 

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

 

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

Декабрь 2014