MetaTrader 5 / Индикаторы

Тиковый индикатор Ticks - индикатор для MetaTrader 5

comp
6295
(39)

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

Пример работы индикатора Ticks

Внимание

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

Если вы собрались смотреть тики, то логично использовать небольшой ТФ (до M5) и крупный масштаб. Чтобы иметь возможность подробней видеть ценовую историю (как на картинке выше).

Индикатор взят из блога и немного подрихтован — были выходы за пределы массивов. Добавлено (несколько строк) заполнение области между соответствующими LowAsk и HighBid. Много лишнего из оригинала выкинуто — ООП-конструкция индикатора и неиспользуемые mqh-файлы.

Работает на удивление (не имеет совсем индикаторных буферов) стабильно.

Написан далеко не оптимально. Видимо, из-за того, что на момент написания не было исправлено множество багов в работе функции CopyTicks. Однако показывает исторические данные правильно и довольно шустро (есть возможности значительно ускорить).

Обращаться к этому индикатору через iCustom и IndicatorCreate бессмысленно — нет индикаторных буферов. Нужен он только для визуализации истории. И, собственно, оформлен он в виде индикатора только по некоторому совпадению основной функции — показывать.

Например, в виде советника то же самое

#property strict #include <fxsaber\ChartObjects\ChartObjectTicks.mqh> CHARTOBJECTTICKS ChartObject; void OnChartEvent( const int id, const long& lparam, const double& dparam, const string& sparam ) {   EVENTBASE::MyEvent(id, lparam, dparam, sparam); } void OnTick( void ) {   if (::ChartGetInteger(0, ::CHART_FIRST_VISIBLE_BAR) <= ::ChartGetInteger(0, ::CHART_VISIBLE_BARS))     ChartObject.Visual(); }

Т.е. просто используется один из кастомных видов интерактивных графических объектов. Поэтому, как это ни парадоксально, данный индикатор, собственно, является им лишь формально — техническая форма MT-программы.

Через входные параметры индикатора задается степень прозрачности данного объекта.

Индикатор самодостаточный — не использует стандартные библиотеки.

Делать скриншот средствами терминала проблематично — может не быть совпадения с тем, что показывает терминал.

Компилируется под MetaTrader 4, но, естественно (нет CopyTicks данных), ничего не показывает.