Скрипт OneTicksFileMaker

 

Тиковая история, бесплатно предоставляемая на сайте Advance Tools (см. "История тиков"), фрагментирована, т. к. хранение данных одним большим файлом представляет трудности для их обслуживания. В то же время, для использования этой истории трейдерам как раз необходимы данные, представленные одним файлом. Рассмотрим, какие шаги необходимо предпринять, чтобы из нескольких архивов тиковых данных получить правильный файл, содержащий информацию о тиковой истории за наиболее продолжительный период времени. 

 

Подготовка данных

Все данные, с которыми далее будет производиться работа, должны находиться в одной определенной папке терминала. Чтобы найти ее, необходимо открыть пункт меню "Файл" терминала, а в нем выбрать подпункт "Открыть каталог данных" (см. рис. 1).

Рис. 1. Открытие каталога данных.

Открыв эту папку, следует переместиться в подпапку MQL4\Files (см. рис. 2).

Рис. 2. Рабочая папка экспертов, скриптов и индикаторов.

В этой папке и нужно будет располагать все файлы, о которых речь пойдет ниже.

 

Подготовить данные перед процессом слияния рекомендуется следующим образом. Сначала закачивается архив с наиболее ранними данными. На момент написания статьи для одного символа одного и того же брокера существует только два архива: 23.05.14 - 01.08.14 и 04.08.14 - 08.08.14. Таким образом, первым скачивается архив от 23-го мая, а его содержимое распаковывается в рабочую папку. Так как это самый ранний файл, то к его имени добавляется символ "1". Следующий файл (от 4-го августа) распаковывается в эту же папку. К имени добавляется число "2". Каждый более поздний файл должен иметь в окончании имени файла число, на единицу большее, чем число в имени предыдущего файла. В итоге получится такое состояние рабочей папки (см. рис. 3).

Рис. 3. Подготовленные данные.

В данном случае файл EURUSD3.tks содержит данные, накопленные за 11-ое и 12-ое августа, которые еще не вошли в состав архива от 4-го августа.

 

Склеивание данных

Слияние данных в один файл производится при помощи скрипта OneTicksFileMaker. Для того чтобы не указывать имя символа, которому соответствуют собранные данные, нужно запустить скрипт на графике с именем финансового инструмента, совпадающим с именем символа. В данном случае это EURUSD. После непродолжительной работы скрипт отобразит сообщение (см. рис. 4).

Рис. 4. Окончание работы скрипта.

В рабочей папке появится новый файл (см. рис. 5).

Рис. 5. Итог работы скрипта.

Файл EURUSD.tks и будет результатом склеивания трех файлов. Причем последовательность данных сохранится: сначала в общий файл попадут данные из файла "1", затем - из "2", а закончится склеивание данными из файла "3".

 

Настройка скрипта и ошибки в процессе работы

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

Первым делом скрипт проверяет наличие в рабочей папке файла в формате <имя символа><1>.tks (например, EURUSD1.tks). Если такого файла нет, то скрипт завершает свою работу с ошибкой "начальный тиковый файл не обнаружен". Наличие файлов с индексами 2 и далее не проверяется. 

Если в рабочей папке файл с индексом 1 будет единственным в своем роде, то это не помешает скрипту успешно закончить работу: содержимое файла будет просто скопировано в файл типа <имя символа>.tks.

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

 

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

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

Август 2014