Skip to content

Momentum Oscillators (20 Indicators)

Momentum indicators measure the velocity, acceleration, and overbought/oversold extremes of price movements.


rsi(close, period=14)

Relative Strength Index using Wilder's smoothed moving averages. Oscillates between 0 and 100.

macd(close, fast=12, slow=26, signal=9)

Moving Average Convergence Divergence. Returns Struct: macd, signal, histogram.

stochastic(high, low, close, k=14, d=3)

Stochastic Oscillator. Returns Struct: %K, %D.

stoch_rsi(close, rsi_period=14, stoch_period=14)

Stochastic RSI. Applies the Stochastic formula to RSI values for heightened sensitivity. Returns Struct: %K, %D.

williams_r(high, low, close, period=14)

Williams %R. Reflects the level of close relative to the highest high over the lookback period.

cci(high, low, close, period=20)

Commodity Channel Index. Identifies cyclical turns by measuring deviations from statistical mean price.

roc(close, period=10)

Rate of Change. Measures percentage price change: \((P_t - P_{t-n}) / P_{t-n} \times 100\).

awesome_oscillator(high, low, fast=5, slow=34)

Bill Williams' Awesome Oscillator (AO). Difference between 5-period and 34-period SMAs of median price.

tsi(close, long_period=25, short_period=13)

True Strength Index. Double-smoothed momentum indicator that filters noise.

cmo(close, period=14)

Chande Momentum Oscillator. Calculates momentum on both up and down days, bounded between \(-100\) and \(+100\).

ppo(close, fast=12, slow=26, signal=9)

Percentage Price Oscillator. MACD expressed in percentage terms. Returns Struct: ppo, signal, histogram.

coppock(close, wma_period=10, fast_roc=11, slow_roc=14)

Coppock Curve. Long-term momentum oscillator designed for spotting major market bottoms.

ultimate_oscillator(high, low, close, p1=7, p2=14, p3=28)

Larry Williams' Ultimate Oscillator (UO). Combines momentum across three different timeframes.

fisher_transform(high, low, period=10)

Ehlers Fisher Transform. Converts price into a Gaussian normal distribution to pinpoint turning points. Returns Struct: fisher, signal.

rvi(open, high, low, close, period=10)

Relative Vigor Index. Compares bar closing price relative to bar range. Returns Struct: rvi, signal.

kst(close)

"Know Sure Thing" Oscillator by Martin Pring. Sum of four smoothed rate-of-change indicators. Returns Struct: kst, signal.

dpo(close, period=20)

Detrended Price Oscillator. Removes longer-term trends to highlight short-term cycles.

bop(open, high, low, close)

Balance of Market Power: \((Close - Open) / (High - Low)\).

cfo(close, period=14)

Chande Forecast Oscillator. Percentage difference between actual price and linear regression forecast.

squeeze_momentum(high, low, close, bb_period=20, bb_mult=2.0, kc_period=20, kc_mult=1.5, mom_period=None)

John Carter's Squeeze Momentum Indicator (popularized by LazyBear). Identifies compression consolidations and explosive breakouts using Bollinger Bands and Keltner Channels, accompanied by an OLS linear regression momentum histogram. Returns Struct: squeeze_on, squeeze_off, no_squeeze, momentum.