The CEnvelopesOnArray class is intended for calculation of Envelopes on an indicator buffer.
Usage:
The Init() method with the following parameters is called in the OnInit() function:
- int aPeriod is indicator period;
- ENUM_MA_METHOD aMethodis a method of MA calculation;
- double aDeviation is a width of bands.
The Solve() method with the following parameters is called in the OnCalculate() function:
- const int aRatesTotal is the rates_total variable from the OnCalculate() function;
- const int aPrevCalc is the prev_calculated variable from the OnCalculate() function parameters;
- double & aData[] is the buffer with data for the indicator calculation;
- double & aMA[] is a calculated value of МА;
- double & aUpper[] is a calculated value of the upper line;
- double & aLower[] is a calculated value of the lower line.
Additional methods:
- int BarsRequired() returns the minimum number of bars required for the indicator calculation;
- string Name() returns a string with the indicator name;
The Test_EnvelopesOnArray.mq5 is an indicator demonstrating how to use the CEnvelopesOnArray class. The IncEnvelopesOnArray file must be located in the MQL5\Include\IncOnArray directory of the terminal data folder (the IncOnArray folder must be created). The CMAOnArray class for the IncMAOnArray file is required for this class for work.
Envelopes Technical Indicator is formed with two Moving Averages, one of which is shifted upward and another one is shifted downward. The selection of optimum relative number of band margins shifting is determined with the market volatility: the higher the latter is, the stronger the shift is.