Создание пользовательских индикаторов

Индикаторы — один из наиболее востребованных типов MQL-программ. Они являются простым и вместе с тем мощным средством технического анализа. Основной механизм их использования заключается в обработке исходных котировочных данных с помощью формул для создания производных таймсерий, которые позволяют оценить и визуализировать специфические характеристики рыночных процессов. В принципе, любая таймсерия, в том числе и та, что получена в результате расчетов индикатора, может быть подана в другой индикатор, и так далее. Формулы многих известных индикаторов (например, MACD) фактически состоят из обращений к нескольким взаимосвязанным индикаторам.

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

Как правило, индикаторы отображают результаты своей работы в виде линий, гистограмм и прочих графических построений в окне графика с котировками. Каждая такая диаграмма визуализируется на основе рассчитанных таймсерий, которые хранятся внутри индикаторов в специальных массивах, называемых индикаторными буферами: они доступны для просмотра в Окне данных терминала наравне с OHLC-ценами. Однако индикаторы могут предоставлять дополнительный функционал помимо буферов или не иметь их вовсе. Например, индикаторы часто применяются для решения задач, где требуется создавать графические объекты, управлять самим графиком и его свойствами, взаимодействовать с пользователем (см. OnChartEvent).

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

Чуть позже мы освоим технологию по внедрению индикаторов внутрь исполняемых MQL-программ в виде ресурсов.