Функции для работы с техническими индикаторами

Все функции типа iMA, iAC, iMACD, iIchimoku и т.п., создают в глобальном кеше клиентского терминала копию соответствующего технического индикатора. Если копия индикатора с этими параметрами уже существует, то новая копия не создается, а увеличивается счетчик ссылок на данную копию.

Эти функции возвращают хэндл соответствующей копии индикатора. Используя этот хэндл в дальнейшем можно получать данные, рассчитанные соответствующим индикатором. Данные соответствующего буфера (технические индикаторы содержат рассчитанные данные в своих внутренних буферах, которых, в зависимости от индикатора, может быть от 1 до 5) можно копировать в mql5-программу при помощи функции CopyBuffer().

Нельзя обратиться к данным индикатора сразу после его создания, так как на расчет значений индикатора требуется некоторое время, и поэтому создавать хэндлы индикаторов лучше всего в OnInit(). Функция iCustom() создает соответствующий пользовательский индикатор и при успешном создании возвращает его хэндл. Пользовательские индикаторы могут содержать до 512 индикаторных буферов, содержимое которых также можно получать при помощи функции CopyBuffer(), используя полученный хэндл.

Существует универсальный метод создания любого технического индикатора с помощью функции IndicatorCreate(). Эта функция получает в качестве входных параметров:

  • имя символа;
  • таймфрейм;
  • тип создаваемого индикатора;
  • количество входных параметров индикатора;
  • массив типа MqlParam, содержащий все необходимые входные параметры.

Для освобождения памяти компьютера от неиспользуемого больше индикатора служит функция IndicatorRelease(), которой передается хэндл этого индикатора.

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

Все индикаторные функции имеют как минимум 2 параметра - символ и период. Значение символа NULL означает текущий инструмент, значение периода 0 означает текущий таймфрейм.

Функция

Возвращает хэндл индикатора:

iAC

Accelerator Oscillator

iAD

Accumulation/Distribution

iADX

Average Directional Index

iADXWilder

Average Directional Index by Welles Wilder

iAlligator

Alligator

iAMA

Adaptive Moving Average

iAO

Awesome Oscillator

iATR

Average True Range

iBearsPower

Bears Power

iBands

Bollinger Bands®

iBullsPower

Bulls Power

iCCI

Commodity Channel Index

iChaikin

Chaikin Oscillator

iCustom

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

iDEMA

Double Exponential Moving Average

iDeMarker

DeMarker

iEnvelopes

Envelopes

iForce

Force Index

iFractals

Fractals

iFrAMA

Fractal Adaptive Moving Average

iGator

Gator Oscillator

iIchimoku

Ichimoku Kinko Hyo

iBWMFI

Market Facilitation Index by Bill Williams

iMomentum

Momentum

iMFI

Money Flow Index

iMA

Moving Average

iOsMA

Moving Average of Oscillator (MACD histogram)

iMACD

Moving Averages Convergence-Divergence

iOBV

On Balance Volume

iSAR

Parabolic Stop And Reverse System

iRSI

Relative Strength Index

iRVI

Relative Vigor Index

iStdDev

Standard Deviation

iStochastic

Stochastic Oscillator

iTEMA

Triple Exponential Moving Average

iTriX

Triple Exponential Moving Averages Oscillator

iWPR

Williams' Percent Range

iVIDyA

Variable Index Dynamic Average

iVolumes

Volumes