Fit a trend, project it one bar forward, and subtract it from the actual close. A small gap means the trend holds; a big one means it just broke. A regime-break kill switch, built on log prices and ATR, not raw price.
EMA, low-pass, high-pass, band-pass, band-stop are one second-order equation with different coefficients, built from the period via alpha. One engine and a recipe table, not a drawer of indicators.
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.