Lemrin

Awesome Oscillator and MACD, AntiStep Version

Any indicator based on moving averages (MAs) lags real-time movement. Immediately after large ("step") changes in level, the pre-step values that are still within the MA window cause the result to falsely reflect continued movement, even if real-time values remain flat or move in the opposite direction.

To counter this, when a step change of a configurable size is detected, my technique temporarily shrinks the MA window size to include only those values occurring since the step change, and then allow the size to increase to normal length as we move away from the step change.

Changes from my previous AO/MACD indicator:
Added anti-step capabilities, including brand-new functions that implement my anti-step technique in ema() and rma().
Created generalized alpha_ma() function, which allows ema function creation using custom alpha structures.
Created "_external" versions of all antistep functions, allowing step detection to be based on some other series, aside from the one being averaged (this is required for the macd signal ma).
Added options to calculate ao and macd using SMA, EMA, or RMA, including anti-step versions of all three.
Added bull and bear signal indicators based on previous descriptions.

Comparison with anti-step enabled and disabled:

Comparison with different tolerance levels (positive tolerance detects fewer steps; negative tolerance detects more steps):
Protected script
This script is published closed-source but you may use it freely. You can favorite it to use it on a chart. You cannot view or modify its source code.
Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this script on a chart?