Discover expert developed MetaTrader tools that can complement professional solutions.
Indicator Smoothed ADX was written on demand of a forum visitor and was not too difficult. However, the search for a description of the smoothed ADX algorithm resulted in nothing. This is why I give below only the code that has been provided:
Inputs: {declaring inputs}
Length( 14 ),
ADXTrend( 25 ), alpha1(0.25), alpha2(0.33);
DMIPlus( 0 ), DMIMinus( 0 ), DMI( 0 ), ADX( 0 ),
DIPlusLead(0), DIMinusLead(0), DIPlusFinal(0), DIMinusFinal(0),
ADXLead(0), ADXFinal(0);
DIPlusFinal = alpha2*DIPlusLead + (1 - alpha2) * DIPlusFinal[1];
DIMinusFinal = alpha2*DIMinusLead + (1 - alpha2) * DIMinusFinal[1];
ADXFinal = alpha2*ADXLead + (1 - alpha2) * ADXFinal[1];
Plot3( ADXFinal, "ADX" ) ;
Indeed, if you don't try to get into the deep sense underlying the initial text of the smoothed ADX, this smoothing can be divided into two stages. Suppose we have a numerical sequence P and we have to smooth it with a minimum lag. For this, we build at the first stage function V(P) of P-sequence oscillation from the following formula:
V0 = (8*P0 - 7*P1 + 3*V1) / 4,
where:
- P0 is the current value of the sequence (a price or an indicator);
- P1 is the preceding value of the sequence;
- V1 is the preceding value of oscillation;
- V0 is the current value of oscillation.
Or, in a different way:
V0 = (Vol(P) + 3*V1) / 4,
where:
Vol(P) = 8*P0 - 7P1 - Ehlers' burst (the term is invented by myself).
At the second stage, we apply the simple weighted smoothing:
W0 = (1*V0 + 2*W1) / (2 + 1).
where:
Protect profits effectively with the smart Trailing Stop Expert Advisor. Advanced trailing options for MT4/MT5. See it in action.
- W0 is the current smoothed value of sequence P;
- V0 is the current value of P-sequence oscillation;
- W1 is the preceding smoothed value.

Complement community code with advanced automation from RobotFX.
7072