This indicator is a standard Commodity Channel Index with the standard average deviation formula and the possibility to select smoothing algorithm and dynamically changing oversold/overbought levels.
The only difference of this indicator from its standard equivalent is the possibility to change the smoothing algorithm by selecting an appropriate one out of ten algorithms present:
- SMA – simple moving average;
- EMA – exponential moving average;
- SMMA – smoothed moving average;
- LWMA – linear weighted moving average;
- JJMA – JMA adaptive average;
- JurX – ultralinear smoothing;
- ParMA – parabolic smoothing;
- T3 – Tillson’s multiple exponential smoothing;
- VIDYA – smoothing with the use of Tushar Chande’s algorithm;
- AMA – smoothing with the use of Perry Kaufman’s algorithm.
It should be noted that Phase parameter has completely different meaning for different smoothing algorithms.
- 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 period, for AMA it is a slow EMA period;
- 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.
Oversold/overbought levels are indicated in dynamically changing variant based on the Bollinger Bands ® to provide more accurate work with them.
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”.