Технические индикаторы
© 2000-2011, MetaQuotes Software Corp.
859
Функции для работы с техническими индикаторами
Все функции типа iMA, iAC, iMACD, iIchimoku и т.п., создают в глобальном кеше клиентского
терминала копию соответствующего технического индикатора. Если копия индикатора с этими
параметрами уже существует, то новая копия не создается, а увеличивается счетчик ссылок на
данную копию.
Эти функции возвращают хэндл соответствующей копии индикатора. Используя этот хэндл в
дальнейшем можно получать данные, рассчитанные соответствующим индикатором. Данные
соответствующего буфера (технические индикаторы содержат рассчитанные данные в своих
внутренних буферах, которых, в зависимости от индикатора, может быть от 1 до 5) можно
копировать в mql5-программу при помощи функции CopyBuffer().
Нельзя обратиться к данным индикатора сразу после его создания, так как на расчет значений
индикатора требуется некоторое время, и поэтому создавать хэндлы индикаторов лучше всего в
OnInit(). Функция iCustom() создает соответствующий пользовательский индикатор и при
успешном создании возвращает его хэндл. Пользовательские индикаторы могут содержать до 512
индикаторных буферов, содержимое которых также можно получать при помощи функции
CopyBuffer(), используя полученный хэндл.
Существует универсальный метод создания любого технического индикатора с помощью функции
IndicatorCreate(). Эта функция получает в качестве входных параметров:
имя символа;
таймфрейм;
тип создаваемого индикатора;
количество входных параметров индикатора;
массив типа MqlParam, содержащий все необходимые входные параметры.
Для освобождения памяти компьютера от неиспользуемого больше индикатора служит функция
IndicatorRelease(), которой передается хэндл этого индикатора.
Примечание. Многократное обращение к функции индикатора с одними и теми же параметрами в
пределах одной mql5-программы не приводит к многократному увеличению счетчика ссылок,
счетчик будет увеличен всего один раз на 1. Однако рекомендуется получать хэндлы индикаторов
в функции OnInit() или в конструкторе класса, с последующим использованием полученных
хэндлов в остальных функциях. Счетчик ссылок уменьшается при деинициализации mql5-
программы.
Все индикаторные функции имеют как минимум 2 параметра - символ и период. Значение символа
NULL означает текущий инструмент, значение периода 0 означает текущий таймфрейм.
Возвращает хэндл индикатора:
Accumulation/Distribution
Average Directional Index
Average Directional Index by Welles Wilder