Watch how to download trading robots for free
Find us on Telegram!
Join our fan page
Interesting script?
So post a link to it -
let others appraise it
You liked the script? Try it in the MetaTrader 5 terminal
Views:
5537
Rating:
(15)
Published:
2012.01.12 13:04
Updated:
2023.03.29 13:43
\MQL5\Include\
xma-xn.mq5 (10.6 KB) view
xma-xn_.mq5 (10.6 KB) view
Need a robot or indicator based on this code? Order it on Freelance Go to Freelance

The fan consisting of one hundred XMA moving averages.

Indicator buffers are declared using the simplest class for the code optimization:

//+------------------------------------------------------------------+
//|  Variables arrays for the indicator buffers creation             |
//+------------------------------------------------------------------+  
class CIndicatorsBuffers
  {
public: double    IndBuffer[];
  };
//+------------------------------------------------------------------+
//| Indicator buffers creation                                       |
//+------------------------------------------------------------------+
CIndicatorsBuffers Ind[LINES_TOTAL];

If you want to change the number of lines on the chart, you should only change the value of the LINES_TOTAL constant:

//+-----------------------------------+
//|  Declaration of constants         |
//+-----------------------------------+
#define LINES_TOTAL    100 // the constant for the number of the indicator lines

This indicator allows to select a smoothing type out of ten possible versions:

  1. SMA - simple moving average;
  2. EMA - exponential moving average;
  3. SMMA - smoothed moving average;
  4. LWMA - linear weighted moving average;
  5. JJMA - JMA adaptive average;
  6. JurX - ultralinear smoothing;
  7. ParMA - parabolic smoothing;
  8. T3 - Tillson's multiple exponential smoothing;
  9. VIDYA - smoothing with the use of Tushar Chande's algorithm;
  10. AMA - smoothing with the use of Perry Kaufman's algorithm.

It should be noted that Phase type parameters for different smoothing algorithms have completely different meaning. For JMA it is an external Phase variable changing from -100 to +100. For T3 it is a smoothing ratio multiplied by 100 for better visualization, for VIDYA it is a CMO oscillator period and for AMA it is a slow EMA period. In other algorithms these parameters do not affect smoothing. For AMA fast EMA period is a fixed value and is equal to 2 by default. The ratio of raising to the power is also equal to 2 for AMA.

Indicator input parameters:

//+-----------------------------------+
//|  Indicator input parameters       |
//+-----------------------------------+
input int Step=10;                        // Interval step
input Smooth_Method xMA_Method=MODE_JJMA; // Averaging method
input int xLength=3;                      // Smoothing depth
input int xPhase=100;                     // Smoothing parameter
input Applied_price_ IPC=PRICE_CLOSE;     // Price constant
input int Shift=0;                        // Horizontal shift of the indicator in bars
input int PriceShift=0;                   // Vertical shift of the indicator in points
input int ColorWidth =40;                 // Color palette width (changes from 0 to 131)

The indicator uses SmoothAlgorithms.mqh library classes (must be copied to the terminal_data_folder\MQL5\Include). The use of the classes was thoroughly described in the article "Averaging Price Series for Intermediate Calculations Without Using Additional Buffers".

XMA-XN

Translated from Russian by MetaQuotes Ltd.
Original code: https://www.mql5.com/ru/code/686

IncADOnArray IncADOnArray

CADOnArray class is designed for calculation of AD (Accumulation Distribution, A/D) values on indicator buffers. Test_ADOnArray indicator is provided as the example of the class use.

GMMA GMMA

Guppy Multiple Moving Average (GMMA) is an indicator based on the relationships between groups of moving averages providing insight into the behavior of two dominant market groups - traders and investors.

Quartiles Quartiles

The indicator shows the first, second and third quartiles of the sample.

IncCHOOnArray IncCHOOnArray

CCHOOnArray class is designed for calculation of Chaikin Oscillator (CHO) values on indicator buffers. Test_CHOOnArray indicator is provided as the example of the class use.