Библиотека MovingAverages входит в стандартную поставку терминала MetaTrader 5.
Она содержит функции для вычисления различных скользящих средних. Всего в библиотеке 8 функций, которые можно разбить на 2 группы однотипных функций по 4 в каждой.
Первая группа - это функции, которые получают массив и просто возвращают значение скользящей на указанной позиции:
Эти функции предназначены для однократного получения значения средней на массиве и не оптимизированы под многократные вызовы. Если вы хотите использовать функцию из этой группы в цикле (для вычисления значений средней с последующей записью каждого вычисленного значения в массив), то вам необходимо самостоятельно позаботиться об организации оптимального алгоритма.
Вторая группа функций предназначена для заполнения массива-приемника значениями скользящей средней на основе массива исходных значений:
Функции:
//+------------------------------------------------------------------+ //| MovingAverages.mqh | //| Copyright 2009, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2009, MetaQuotes Software Corp." #property link "https://www.mql5.com" //+------------------------------------------------------------------+ //| Simple Moving Average | //+------------------------------------------------------------------+ double SimpleMA(const int position,const int period,const double &price[]) //+------------------------------------------------------------------+ //| Exponential Moving Average | //+------------------------------------------------------------------+ double ExponentialMA(const int position,const int period,const double prev_value,const double &price[]) //+------------------------------------------------------------------+ //| Smoothed Moving Average | //+------------------------------------------------------------------+ double SmoothedMA(const int position,const int period,const double prev_value,const double &price[]) //+------------------------------------------------------------------+ //| Linear Weighted Moving Average | //+------------------------------------------------------------------+ double LinearWeightedMA(const int position,const int period,const double &price[]) //+------------------------------------------------------------------+ //| Simple moving average on price array | //+------------------------------------------------------------------+ int SimpleMAOnBuffer(const int rates_total,const int prev_calculated,const int begin, //+------------------------------------------------------------------+ //| Exponential moving average on price array | //+------------------------------------------------------------------+ int ExponentialMAOnBuffer(const int rates_total,const int prev_calculated,const int begin, const int period,const double& price[],double& buffer[]) //+------------------------------------------------------------------+ //| Smoothed moving average on price array | //+------------------------------------------------------------------+ int SmoothedMAOnBuffer(const int rates_total,const int prev_calculated,const int begin, const int period,const double& price[],double& buffer[]) //+------------------------------------------------------------------+ //| Linear Weighted moving average on price array | //+------------------------------------------------------------------+ int LinearWeightedMAOnBuffer(const int rates_total,const int prev_calculated,const int begin, const int period,const double& price[],double& buffer[])
Использование:
Пример использования библиотеки можно найти в статье "Как написать индикатор в MQL5".
Variable Index Dynamic Average (VIDYA)
Данный осциллятор измеряет отношение между суммой положительных приращений и суммой отрицательных приращений за определенный период.
Triple Exponential Moving Average (TEMA)
Индикатор TEMA может быть использован вместо традиционных скользящих средних для сглаживания ценовых данных и значений других индикаторов.
LoongClock
Очень простой пример часов.
ErrorDescription
Библиотека содержит функции для получения описания ошибок и кодов возврата торгового сервера.