Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
MovingAverages - библиотека для MetaTrader 5
- Просмотров:
- 6727
- Рейтинг:
- Опубликован:
- 2010.02.04 11:50
- Обновлен:
- 2016.11.22 07:33
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Библиотека MovingAverages входит в стандартную поставку терминала MetaTrader 5.
Она содержит функции для вычисления различных скользящих средних. Всего в библиотеке 8 функций, которые можно разбить на 2 группы однотипных функций по 4 в каждой.
Первая группа - это функции, которые получают массив и просто возвращают значение скользящей на указанной позиции:
- SimpleMA() - для вычисления значения простой средней;
- ExponentialMA() - для вычисления значения экспоненциальной средней;
- SmoothedMA() - для вычисления значения сглаженной средней;
- LinearWeightedMA() - для вычисления значения линейно-взвешенной средней.
Эти функции предназначены для однократного получения значения средней на массиве и не оптимизированы под многократные вызовы. Если вы хотите использовать функцию из этой группы в цикле (для вычисления значений средней с последующей записью каждого вычисленного значения в
массив), то вам необходимо самостоятельно позаботиться об организации оптимального алгоритма.
Вторая группа функций предназначена для заполнения массива-приемника значениями скользящей средней на основе массива исходных значений:
- 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".
Данный осциллятор измеряет отношение между суммой положительных приращений и суммой отрицательных приращений за определенный период.
Triple Exponential Moving Average (TEMA)Индикатор TEMA может быть использован вместо традиционных скользящих средних для сглаживания ценовых данных и значений других индикаторов.
Очень простой пример часов.
ErrorDescriptionБиблиотека содержит функции для получения описания ошибок и кодов возврата торгового сервера.