Функции для работы с техническими индикаторами
Группа функций, предназначенных для расчета стандартных и пользовательских индикаторов.
Для того, чтобы эксперт (или любая MQL4-программа) мог получить значение какого-либо индикатора, присутствие данного индикатора на текущем графике необязательно. Запрошенный индикатор будет загружен и рассчитан в потоке вызвавшего его модуля.
Любой индикатор может быть рассчитан на данных не только текущего графика, но и на данных любого доступного символа/периода. Если запрашивается информация с другого графика (название инструмента и/или значение таймфрейма отличаются от текущих), то возможна ситуация, что в клиентском терминале не открыт соответствующий график и необходимые данные должны быть запрошены у сервера. В этом случае в переменную last_error будет помещена ошибка ERR_HISTORY_WILL_UPDATED (4066 - запрошенные исторические данные в состоянии обновления) и необходимо через некоторое время повторить попытку запроса (см. пример ArrayCopySeries()).
Все индикаторные функции имеют как минимум 2 параметра - символ и период. Значение символа NULL означает текущий инструмент, значение периода 0 означает текущий таймфрейм.
Функция
|
Возвращает значение индикатора
|
iAC
|
Accelerator Oscillator
|
iAD
|
Accumulation/Distribution
|
iADX
|
Average Directional Index
|
iAlligator
|
Alligator
|
iAO
|
Awesome Oscillator
|
iATR
|
Average True Range
|
iBearsPower
|
Bears Power
|
iBands
|
Bollinger Bands®
|
iBandsOnArray
|
Возвращает значение технического индикатора Bollinger Bands, рассчитанного на данных, хранящихся в массиве
|
iBullsPower
|
Bulls Power
|
iCCI
|
Commodity Channel Index
|
iCCIOnArray
|
Возвращает значение технического индикатора Commodity Channel Index, рассчитанного на данных, хранящихся в массиве
|
iCustom
|
Пользовательский индикатор
|
iDeMarker
|
DeMarker
|
iEnvelopes
|
Envelopes
|
iEnvelopesOnArray
|
Возвращает значение технического индикатора Envelopes, рассчитанного на данных, хранящихся в массиве
|
iForce
|
Force Index
|
iFractals
|
Fractals
|
iGator
|
Gator Oscillator
|
iIchimoku
|
Ichimoku Kinko Hyo
|
iBWMFI
|
Market Facilitation Index by Bill Williams
|
iMomentum
|
Momentum
|
iMomentumOnArray
|
Возвращает значение технического индикатора Momentum, рассчитанного на данных, хранящихся в массиве
|
iMFI
|
Money Flow Index
|
iMA
|
Moving Average
|
iMAOnArray
|
Возвращает значение технического индикатора 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
|
iRSIOnArray
|
Возвращает значение технического индикатора Relative Strength Index, рассчитанного на данных, хранящихся в массиве
|
iRVI
|
Relative Vigor Index
|
iStdDev
|
Standard Deviation
|
iStdDevOnArray
|
Возвращает значение технического индикатора Standard Deviation, рассчитанного на данных, хранящихся в массиве
|
iStochastic
|
Stochastic Oscillator
|
iWPR
|
Williams' Percent Range
|
Что нового в MQL5
В MQL5 количество встроенных технических индикаторов увеличено с 30 до 38, при этом сами индикаторы создаются и управляются с помощью хендлов, чтобы избежать лишних копий и снизить потребление памяти. Для этих же целей представлены новые функции для работы с индикаторами и таймсериями – они позволяют получать значения индикаторов целыми массивами, а не по одному значению.
Для работы с индикаторами добавлены новые функции, среди которых отметим ChartIndicatorAdd() и IndicatorRelease() – с их помощью можно динамически добавлять и удалять индикаторы при создании комплексных инструментов технического анализа.
Функция
|
Действие
|
ChartIndicatorAdd
|
Добавляет на указанное окно графика индикатор с указанным хэндлом
|
IndicatorRelease
|
Удаляет хэндл индикатора и освобождает расчетную часть индикатора, если ею больше никто не пользуется
|
|