The CFramaOnArray class is intended for calulcation of Fractal Adaptive Moving Average (FRAMA) on indicator buffers.
Usage:
The Init() method with the following parameters is called in the OnInit() function of the indicator:
- int aPeriod is indicator period.
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 parameters;
- const int aPrevCalc is the prev_calculated variable from the OnCalculate() function parameters;
- double aDataHigh[] is the buffer with the High data for the indicator calculation;
- double aDataLow[] is the buffer with the Low data for the indicator calculation;
- double aDataClose[] is the buffer with the Close data for the indicator calculation;
- double aPrama[] is the buffer with calculated values of the indicator.
- int BarsRequired() returns the minimum number of bars required for the indicator calculation;
- string Name() returns a string with the indicator name.
The Test_FramaOnArray.mq5 is an indicator demonstrating how to use the CFramaOnArray class. The IncFramaOnArray file must be located in the MQL5\Include\IncOnArray directory of the terminal data folder (the IncOnArray folder must be created).
Fractal Adaptive Moving Average Technical Indicator (FRAMA) was developed by John Ehlers. This indicator is constructed based on the algorithm of the Exponential Moving Average, in which the smoothing factor is calculated based on the current fractal dimension of the price series. The advantage of FRAMA is the possibility to follow strong trend movements and to sufficiently slow down at the moments of price consolidation.