Рассмотрим их.
1-ый параметр для задания имени символа на котором происходит расчет МАшки. Типа этого параметра строковый, т.е. string. Поэтому разработчик должен указать имя символа, например, так - "EURUSD" или так - "USDJPY". Если (почти всегда) нужно значение МАшки для актива, на котором запущен советник, то используется константа NULL или "0".
Начиная со 2-го параметра все имеют тип int.
2-ой параметр - это ТФ. Может быть одним из значений перечисления ENUM_TIMEFRAMES. Для текущего графика нужно ввести 0 (ноль).
3-ий параметр - период усреднения МАшки. Например, 200 или 100 или 25 и т.п.
4-ый параметр - сдвиг МАшки относительно ценового графика (вперед или назад). Например, используется в индикаторе Ишимоку или в МАшках, рассматриваемых у Ди Наполи. Часто это значения меньше 10. Т.е., например, 3, 5 и т.д. Но, в основном, МАшка в торговых системах не сдвигается, т.е. вводить нужно 0 (ноль).
5-ый параметр - метод усреднения МАшки. Может быть любым из значений:
MODE_SMA - простое усреднение;
MODE_EMA - экспоненциальное усреднение
MODE_SMMA - сглаженное усреднение
MODE_LWMA - линейно-взвешенное усреднение
По частоте использования в торговых системах, в основном, используется простое и экспоненциальное усреднение.
6-ой параметр - тип цены, взятой для расчета МАшки. Может быть одним из значений:
PRICE_CLOSE, PRICE_OPEN, PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN, PRICE_TYPICAL, PRICE_WEIGHTED.
Наиболее часто применяется усреднение по цене закрытия - PRICE_CLOSE.
7- параметр - номер получаемого значения из набора значений МАшки на каждом баре (или сдвиг относительно текущего бара на указанное количество периодов назад). Например, для текущего бара чтобы получить значение МАшки нужно ввести 0 (ноль), для прошлого бара 1 и т.д.
Возвращаемое значение индикатора iMA() имеет тип double.
Создадим в коде советника переменную типа double под названием dblMA, чтобы получить значение простой скользящей средней, рассчитанной по цене закрытия на прошлом баре, на текущем активе, на текущем ТФ, с периодом 100, без смещения относительно графика:
- Код: выделить все
double dblMA = iMA("0", 0, 100, 0, MODE_SMA, PRICE_CLOSE, 1);
Чтобы вывести это значение для отображения на графике воспользуемся функцией Comment(). Тогда код в функции OnTick() примет вид:
- Код: выделить все
void OnTick()
{
double dblMA = iMA("0", 0, 100, 0, MODE_SMA, PRICE_CLOSE, 1);
Comment( "\n", "Значение МАшки: ", DoubleToStr(dblMA, _Digits));
}
Запустив советник на выполнение и отобразив на графике индикатор скользящей средней с теми же параметрами, мы убедимся в правильности работы советника:
Код советника можно скачать по ссылке ниже.