In this indicator the values of the moving average are corrected with the help of NRTR algorithm (Nick Rypock Trailing Reverse).
Smoothing algorithms can be selected out of ten possible versions:
It should be noted that Phase1 and Phase2 parameters have 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 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.
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".
Indicator input parameters:
//+-----------------------------------+ //| Indicator input parameters | //+-----------------------------------+ input Smooth_Method MA_Method1=MODE_SMA; // First smoothing averaging method input int Length1=12; // First smoothing depth input int Phase1=15; // First smoothing parameter //---- for JJMA Phase1 is changed at the range -100 ... +100 impacting transition process quality; //---- for VIDIA Phase1 is the CMO period, for AMA it is a period of the slow moving average input Smooth_Method MA_Method2=MODE_JJMA; // Second smoothing averaging method input int Length2= 5; // Second smoothing depth input int Phase2=15; // Second smoothing parameter //---- for JJMA Phase2 is changed at the range -100 ... +100 impacting transition process quality; //---- for VIDIA Phase2 is the CMO period, for AMA it is a period of the slow moving average input Applied_price_ IPC=PRICE_CLOSE; // Price constant /* the indicator calculation is performed at that price (1-CLOSE, 2-OPEN, 3-HIGH, 4-LOW, 5-MEDIAN, 6-TYPICAL, 7-WEIGHTED, 8-SIMPLE, 9-QUARTER, 10-TRENDFOLLOW, 11-0.5 * TRENDFOLLOW.) */ input uint Step=30; // Flat oscillations size //---- this parameter determines the size of oscillations perceived as flat(discretization digital pitch in points) input uint Max_DEV=55; // Terminal deviation of price from X2MA that does not change the value of the average input int Shift=0; // Horizontal shift of the indicator in bars input int PriceShift=0; // Vertical shift of the indicator in points
Translated from Russian by MetaQuotes Software Corp.
Original code: https://www.mql5.com/ru/code/573
Adaptive CG Oscillator is a CG Oscillator that can adapt to constantly changing market cycles of a real financial asset.XXDPO
Detrended Price Oscillator (DPO) shows the market overbought/oversold states and also can be used for getting buy/sell signals.