Индикатор TicksCollector   

 

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

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

Рис. 1. Начало работы индикатора TicksCollector.

 

Как нетрудно догадаться, красная линия - это цена Ask, а бирюзовая линия - цена Bid. Данные сохраняются индикатором в каталог данных терминала (главное меню терминала Файл - Открыть каталог данных) MQL4\Files (см. рис. 2).

 Рис. 2. Размещение файла тикового потока.

 

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

 

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

 

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

 

Расширенная настройка сбора тиков

Искушенному пользователю, скорее всего, потребуется более тонкая настройка параметров сбора тиков. В этом случае перед запуском индикатора ему необходимо перейти на вкладку "Входные параметры" диалогового окна "Custom Indicator" (см. рис. 3).

 

Рис. 3. Индивидуальная настройка процесса сбора тиков.

 

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

Следующие два параметра связаны между собой. Первый из них ("Установить свое имя тикового файла?") разрешает пользователю указание собственного имени тикового файла, а не генерируемого программно. В случае перевода значения параметра в положение "Да" индикатор принимает во внимание содержимое параметра "Имя тикового файла". В файл с указанным именем и будет производиться запись собранных данных. Очевидно, что такой возможностью следует пользоваться очень осторожно, т. к. вполне может случиться одновременная запись тиковых потоков разных символов в один и тот же файл. Результат в этом случае непредсказуем.

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

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

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

 

Создание нестандартных таймфреймов

На сегодняшний день платформа МТ4 располагает только девятью таймфреймами для отображения процесса изменения рыночных цен: М1, М5, М15, М30, Н1, Н4, D1, W1 и MN1. Скорее всего, для привередливого трейдера такого набора катастрофически мало. В этом случае на помощь приходит такой механизм, как генерация нестандартных таймфреймов.

О штатном механизме генерации нестандартных таймфреймов распространяться не будем. По этому поводу есть немало соответствующих материалов (например, здесь и здесь). Тем более, что штатный механизм ограничен кратностью периода графика - одна минута: М2, М3, М4, М7 и т. д. В нашем случае, обладая историей тиков, можно уменьшить эту кратность до одной секунды. В итоге появляется возможность конструирования таймфреймов типа "30 секунд", "пять минут десять секунд" и т. д.

Что же необходимо сделать для создания нестандартного таймфрейма при использовании индикатора TicksCollector? Так как индикатор может создавать три вида нестандартных графиков (равновременной график, график равновысоких свечей и эквиобъемный график), то пока поговорим об общей методике.

Нестандартный период графика начинает создаваться с момента запуска индикатора TicksCollector, если один из параметров, "Создавать график равновременных свечей?", "Создавать график равновысоких свечей?" или "Создавать эквиобъемный график?" переведен в состояние "Да". Параллельно этому параметру в соответствующем разделе входных параметров необходимо указать желаемый целевой таймфрейм в параметре "Наименование ТФ в минутах". Это значение не должно быть равно периоду одного из стандартных таймфреймов (1, 5, 15, 30, 60, 240, 1440, 10080 и 43200) и не должно пересекаться с величинами ТФ других нестандартных периодов графика, создаваемых индикатором. Лучше всего оставить эти значения равными величинам, указанным по умолчанию.

Еще один момент, о котором не стоит забывать до запуска индикатора, это разрешение использования вызовов функций DLL (см. рис. 4).

Рис. 4. Разрешение использования функций DLL.

 

Запускаем индикатор, ждем прихода двух-трех тиков, и пытаемся открыть нестандартный таймфрейм. Это делается при помощи главного меню терминала "Файл" - "Открыть автономно" (см. рис. 4).

Рис. 5. Автономные графики.

 

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

В текущем примере мы создали равновременной график, который по умолчанию строится на графике с периодом 312 минут. Поэтому нужный график называется "EURUSD, M312". Жмем кнопку "Открыть", получая автоматически обновляющийся график нестандартного таймфрейма. Автообновление будет происходить до тех пор, пока запущен индикатор TicksCollector на нужном символе.

 

График равновременных свечей

Равновременные свечи - это обычные свечи, которые наблюдает трейдер в терминалах МТ4 и МТ5. То есть каждая свеча характеризуется одинаковой временной продолжительностью. Создание графика, имеющего период, отличный от набора периодов стандартных графиков, осуществляется путем включения параметра "Создавать график равновременных свечей?" и указанием нужного периода нестандартного графика в секундах (параметр "Период ТФ в секундах").

Для примера, создадим график с периодом 18 минут 25 секунд (период в секундах 1105). В результате будет получен такой график (см. рис. 6).

Рис. 6. Нестандартный период графика.

 

График равновысоких свечей

Этот тип графика оперирует свечами равной высоты. То есть окончание той или иной свечи регистрируется не истечением времени, а набором указанной высоты в пунктах. Указать высоту каждой из свечей можно в параметре "Максимальная высота свечи". В итоге получится следующий график с высотой свечей 25 пунктов (см. рис. 7).

 Рис. 7. График равновысоких свечей.

 

У полученного графика время открытия текущей свечи может отстоять от времени открытия предыдущей свечи как на 5 секунд, так и на 2 часа.

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

 

Эквиобъемный график

Эквиобъемные графики оперируют свечами, имеющими одинаковый тиковый объем. То есть каждая свеча вмещает в себя точно указанное количество тиков, которое задается в параметре "Количество тиков в одной свечей". Для величины 30 тиков на свечу эквиобъемный график будет иметь вид (см. рис. 8).

 Рис. 8. Эквиобъемный график.

 

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

 

Ценовой тип графика

В терминалах Meta Trader 4 и Meta Trader 5 все графики строятся исключительно по цене Bid, в то время как цена Ask остается "за кадром", о ее значении в прошедшем времени можно только догадываться. Но так как сборщик тиков сохраняет данные не только о цене Bid, но и о цене Ask, то существует возможность визуализации былых цен Ask на графике. С этой целью в версии индикатора 1.02 был добавлен параметр "Ценовой тип". 

По умолчанию ценовой тип графика задан такой же, как в терминалах МТ4 и MT5 - по цене Bid. Второй ценовой тип - "По Ask", т. е. график относительно привычного представления будет сдвинут вверх. Причем смещение это будет разным для каждой отображаемой свечи, если брокер использует переменный спред.

Третий и четвертый ценовые типы графика - это симбиоз цен Bid и Ask в переделах одного графика. Так, если выбран тип "Close - max Bid, Open - min Ask", то цены закрытия свечей графика будут указывать на максимальную цену Bid, действовавшую на свече, а цены открытия свечей - минимальную цену Ask (см. рис. 9).

Рис. 9. График в виде Close - max Bid, Open - min Ask.

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

Аналогичным образом выглядит график с ценовым типом "Close - max Ask, Open - min Bid" (см. рис. 10). 

Рис. 10. График в виде Close - max Ask, Open - min Bid.

Рисунки 9 и 10 отображают один и тот же период времени. Поэтому форма всех свечей совпадает. Различие лишь в высоте свечей на два спреда.

Последние два ценовых представления графика позволяют производить оценку торговых систем на основании исторических данных о величине спреда, что до сих пор было невозможно в терминале МТ4.