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

Внимание
Поскольку индикатор показывает ценовую тиковую историю на всем временном интервале, что виден на графике, то количество тиков для отображения может измеряться сотнями тысяч и миллионами. Такая нагрузка вызовет медленную работу индикатора. Например, на 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 данных), ничего не показывает.