Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Просмотров:
6727
Рейтинг:
(53)
Опубликован:
2010.02.04 11:50
Обновлен:
2016.11.22 07:33
\MQL5\Include\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Библиотека MovingAverages входит в стандартную поставку терминала MetaTrader 5.

Она содержит функции для вычисления различных скользящих средних. Всего в библиотеке 8 функций, которые можно разбить на 2 группы однотипных функций по 4 в каждой.

Первая группа - это функции, которые получают массив и просто возвращают значение скользящей на указанной позиции:

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

Вторая группа функций предназначена для заполнения массива-приемника значениями скользящей средней на основе массива исходных значений:

  • SimpleMAOnBuffer() - заполняет выходной массив buffer[] значениями простой средней от массива price[];
  • ExponentialMAOnBuffer() - заполняет выходной массив buffer[] значениями экспоненциальной средней от массива price[];
  • SmoothedMAOnBuffer() - заполняет выходной массив buffer[] значениями сглаженной средней от массива price[];
  • LinearWeightedMAOnBuffer() - заполняет выходной массив buffer[] значениями линейно-взвешенной средней от массива price[].

Функции:

//+------------------------------------------------------------------+
//|                                               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) Variable Index Dynamic Average (VIDYA)

Данный осциллятор измеряет отношение между суммой положительных приращений и суммой отрицательных приращений за определенный период.

Triple Exponential Moving Average (TEMA) Triple Exponential Moving Average (TEMA)

Индикатор TEMA может быть использован вместо традиционных скользящих средних для сглаживания ценовых данных и значений других индикаторов.

LoongClock LoongClock

Очень простой пример часов.

ErrorDescription ErrorDescription

Библиотека содержит функции для получения описания ошибок и кодов возврата торгового сервера.