Aroon ignores price size and measures time: how long since the last new high or low. The Up-minus-Down difference is a bounded, stationary, cross-instrument oscillator for free, but it reads timing, not magnitude.
Every indicator is one of two families: non-recursive (FIR: inputs only, stable, lag = degree/2) or recursive (IIR: eats its own output, cheap, sharp, can ring). The family predicts the failures.
The ADX is not a price indicator, it is a ratio of ATR-normalized range expansions with two hidden smoothing stages. Build it right and you get a stationary trend-strength filter, but respect the lag: it stays high after sharp trends die.
Design an indicator by stating the phase (lag) you want, then solving for the filter. Causality couples magnitude to phase, so you move lag around the spectrum but never delete it. Zero-lag, buried.
Most indicators keep the close and toss the rest of the bar. Price intensity reads open-to-close travel against the true range, a pure intrabar conviction gauge, and the volume-free version is a clean mean-reversion feature once smoothed and normalized.
Momentum is price now minus price N-1 bars ago, a high-pass filter: it kills the trend, peaks on a passband set by N, goes blind at nulls, and lags by (N-1)*omega/2. Not a strength gauge.
Short MA minus long MA swings tenfold between calm and chaos. Divide by ATR times the square root of the bar-distance between the two averages' centers, lag the long one, compress the tails, and the trend gap finally holds still.
Model price as a local sine and its velocity and acceleration are exact derivatives, with no differencing lag. Acceleration flags a swing running out of gas early, but rides on a fragile sine fit.
The raw stochastic lurches every time an old high or low drops out of its window, noise from a denominator that keeps redefining itself. Smooth it once or twice, center at 50, and the same trick fixes the StochRSI.
Model price as one local sine and solve its frequency from four bars: difference out the offset, ratio out the amplitude, read cos(omega). Low lag, high variance, and it lies when no cycle exists.
A two-bar RSI screams on every shock. Regress it on a slow 20-bar RSI, inverse-logistic its U-shaped distribution first, and trade the residual: how far price strayed from where the trend says it belongs.
A wavelet is a band-pass whose width scales, so one Mexican Hat (the 2nd derivative of a Gaussian) scans every cycle at once. Compact support makes it usable; the resolution tradeoff makes it honest.