Скрипт FXTFileMaker_AnyData

 

В статье Тестирование на реальной истории был показан способ подстановки собственного файла данных в тестер стратегий MT4. В качестве примера использовался файл данных тикового потока из базы данных История тиков

К сожалению, разработанная методика не подходила для формирования в тестере стратегий нестандартных таймфреймов, а также других типов графического отображения котировок: эквиобъемных графиков и графиков, основанных на range-барах (графики равновысоких свечей). Идея, как исправить такое положение дел, появилась только сейчас, благодаря подсказкам, данным одним из участников форума под ником dorohov. Результатом  работы стала новая версия скрипта - FXTFileMaker_AnyData.

 

Логика формирования нестандартных графиков

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

Главное препятствие для создания нестандартных таймфреймов в тестере стратегий - это отсутствие гибкой настройки по выбору таймфрейма в самой программе. Соответствующий выпадающий список в тестере стратегий содержит лишь 7 доступных значений (см. рис. 1). 

 

Рис. 1. Доступные таймфреймы в тестере стратегий.

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

Поэтому для формирования нестандартного таймфрейма пользователь может запустить скрипт на любом типе стандартного графика (кроме W1 и MN1), запомнить, на каком периоде графика был создан FXT-файл и затем, перед началом тестирования, выбрать в выпадающем списке (см. рис. 1) этот таймфрейм.

 

Формирование равновременных графиков

Чтобы создать FXT-файл с нестандартным временным периодом (например 30 сек, 4 минуты, 2 часа и т. д.), при запуске скрипта нужно выбрать значение "Равновременной" в параметре "Тип графика", а в параметре "Период" указать количество секунд, приходящееся на одну свечу (см. рис. 2). 

 

Рис. 2. Формирование графика Н2.

Далее, в случае успешного выполнения скрипта следует открыть тестер стратегий и выбрать тот таймфрейм, на котором производился запуск скрипта. Например, ТФ Н1 (см. рис. 3).

 

Рис. 3. Результат создания таймфрейма Н2.

Синей вертикальной линией на рисунке показан момент начала сформированного FXT-файла. Слева от линии находятся обычные бары графика Н1, т. к. они просто скопированы из имеющейся в терминале истории. Справа же от линии располагаются бары графика Н2, которые были построены на основании реальных тиковых данных. Чтобы на слева на графике были только "правильные" бары, нужно при запуске скрипта указать 0 в параметре "Баров до начала теста" (см. рис. 4), 

Рис. 4. Отсутствие подстановки "родных" баров графика.

а тестирование начать с более поздней даты (см. рис. 5).

Рис. 5. На графике только бары графика Н2.

Заметим, что FXT-файл имеет начальную дату 2014.05.28 (рис. 4), а тестирование начато с даты 2014.06.01.

Новый скрипт также позволяет строить графики с периодом, кратным 1 сек. К примеру, график с периодом 30 секунд в тестере стратегий будет выглядеть так (см. рис. 6).

 

Рис. 6. Период графика - 30 секунд.

Интересная особенность - в отличие от автономных графиков, графики тестера стратегий могут содержать свечи с одинаковым временем открытия.

 

Формирование графиков равновысоких (range) баров

Аналогичным образом происходит формирование графиков свечей с одинаковой высотой. Достаточно указать тип графика - "Равновысокий". В этом случае параметр "Период" будет указывать максимальную высоту свечи в пунктах (см. рис. 7).

 

Рис. 7. Параметры для графика равновысоких свечей.

Результат построений (см. рис. 8):

 

Рис. 8. График со свечами высотой 8 пунктов.

 

Формирование эквиобъемных графиков

Если выбрать тип графика "Эквиобъемный", то параметр "Период" будет указывать количество тиков, приходящееся на одну свечу. В итоге можно формировать хоть тиковые графики для тестирования (см. рис. 9).

 

Рис. 9. Тиковый график ("Период" равен 1).

 

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

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

Май 2015