Momentum & oscillators

Chande Momentum Oscillator · CMO

Tushar Chande's pure momentum oscillator — net gains vs losses on a −100 to +100 scale.

Works in most conditionsEngine-computed on a fixed sample series
14512096-5050Above 50 = overboughtBelow -50 = oversold
CMO 72.70How to read CMO on the chart — the callouts mark what to look for.

The formula

Over the lookback, sum every up-close's gain and every down-close's loss, then take their difference as a percent of their total. All gains gives +100, all losses gives −100, an even split gives zero.

CMO = 100 × (Σ Up moves − Σ Down moves) ÷ (Σ Up moves + Σ Down moves)
Worked example
Sum over lookback
Up moves (gains)15
Down moves (losses)5
Net ÷ total10 ÷ 20

CMO = 100 × (10 ÷ 20) = +50 (strong bullish momentum)

What it is

The Chande Momentum Oscillator (CMO), developed by Tushar Chande and presented in his 1994 book “The New Technical Trader,” is a pure momentum indicator that measures the difference between recent gains and recent losses relative to their total. It resembles RSI but is built to be more direct: it puts both up-moves and down-moves into the numerator and does not smooth the data, so it captures raw momentum and can reach more extreme readings. It swings between -100 and +100, with positive values meaning upward momentum has dominated the window and negative values meaning downward momentum has. The question it answers is how one-sided price action has been over the lookback, and how strong that bias is. Chande also used its absolute value as a trendiness meter, feeding it into his adaptive moving average, VIDYA.

How it is calculated

Over a chosen lookback, with 9 as Chande's original default and 14 also common, sum the point gains on all up-closing days to get Su and sum the absolute point losses on all down-closing days to get Sd. The oscillator is CMO = 100 x (Su - Sd) / (Su + Sd). If every bar in the window closed up, Sd is zero and CMO is +100; if every bar closed down, Su is zero and CMO is -100; when gains and losses balance, CMO sits at zero. Unlike RSI, which smooths average gains and losses and rescales to a 0-to-100 band, CMO uses raw sums and the symmetric -100 to +100 scale, which makes it more responsive and more prone to extreme readings. Nothing is averaged exponentially, so a single large day can move it sharply.

Reading it, step by step

The zero line splits upward momentum (positive) from downward momentum (negative), and crossings of zero mark momentum shifts. Overbought and oversold are commonly set at +50 and -50, so readings above +50 show strong, possibly overextended upward momentum and below -50 the opposite, though in powerful trends the oscillator can pin near its extremes. Because CMO is unsmoothed it reaches those extremes more readily than RSI, so its thresholds are set wider. Divergence is a core read: price making a higher high while CMO makes a lower high warns that momentum is fading beneath the advance. The absolute value carries information too, since a CMO near 100 in either direction signals a strong trend while a CMO hovering near zero signals a directionless, choppy market, which is the basis for using it as a trend filter.

Reading the signals on the chart

14512096-5050
CMO 72.70The ▲/▼ marks flag the most recent crossings of the -50 and 50 lines — the classic oversold / overbought signals.

Best timeframes

  • Scalping1m – 5m
  • Day trading5m – 15mperiod 9 – 14
  • Swing1h – daily
  • PositionDaily – weekly

CMO reaches its extremes fast, so demand confirmation before fading a ±50 reading.

CMO vs other momentum

CMORSITSI
Range−100 to +1000 to 100≈ −100 to +100
Zero-centeredYesNoYes
SmoothedNoYesYes (double)
Reaches extremesReadilyRarelyRarely

Common price-action setups

How the signal typically plays out on the chart.

Bullish CMO divergence

Price makes a lower low while CMO makes a higher low from below −50 — buy as it turns up and stop under the price low.

Buy divergence
Reversal off lows
Overbought fade

In a range, CMO pushes above +50 then rolls back below it — short the failed extreme and stop above the swing high.

Sell the fade
Mean reversion
Zero-line momentum

CMO crosses up through zero as buyers take control — enter with the trend and stop below the breakout bar.

Buy zero cross
Momentum shift up

Best timeframes and settings

Chande's original default is 9 periods, with 14 and 20 also widely used; shorter settings make the oscillator faster and noisier, and longer settings slower and smoother. It works across daily and intraday charts and on any liquid instrument, since it needs only closing prices. As a shorter-term momentum tool it is popular on daily stock and futures charts for spotting overextension and divergence. Because it is unsmoothed, traders who find the raw output too jumpy sometimes apply a short moving average to the CMO itself as a signal line. The trade-off is standard: a short lookback reacts fast but whipsaws, a long one steadies the signal but lags, and matching the period to your holding horizon is the practical rule.

When and where to use it

Use CMO when you want a responsive momentum read for identifying overbought and oversold extremes, momentum divergences, or, via its absolute value, whether a market is trending or ranging. It suits liquid stocks, futures, and forex on daily and intraday charts, and is especially useful for traders who find RSI too slow and want earlier extreme readings. Its trendiness reading makes it valuable as a regime filter, arguing for trend-following tactics when the absolute CMO is high and mean-reversion tactics when it is low. Avoid trading its extremes blindly in strong trends, where it can stay overbought or oversold for a long time. It is best treated as a momentum and regime gauge feeding a broader strategy rather than a lone trigger.

Strategies that use it

Overbought or oversold reversion: in a ranging market, sell when CMO pushes above +50 and rolls back down, and buy when it drops below -50 and turns up, targeting the zero line with stops beyond the recent swing. Zero-line trend trade: treat crosses above zero as a green light for longs and below zero for shorts, holding while the oscillator stays on that side. Divergence trade: act on price and CMO divergences at highs and lows, waiting for a price trigger to confirm. Trend filter: use absolute CMO to switch tactics, deploying trend-following entries when it is high and mean-reversion entries when it is low, echoing Chande's own use of the oscillator to drive an adaptive moving average.

Combining it with other indicators

Because CMO is a momentum read, pair it with a trend tool such as a moving average or ADX so its extremes are interpreted correctly, since an overbought CMO means little against a powerful uptrend confirmed by ADX. Support and resistance give the price levels where reversion signals become actionable. A signal-line moving average of CMO itself can generate crossover entries and tame its noise. Volume tools like Chaikin Money Flow can confirm that a CMO divergence is backed by fading participation. Its natural home is really RSI's ecosystem, so anywhere you would use RSI, CMO offers a faster, more extreme alternative, and combining it with the same trend and level context that disciplines RSI keeps its signals honest.

Where it fails

CMO's responsiveness cuts both ways: being unsmoothed, it whipsaws in choppy markets and fires false extreme readings that a smoother oscillator would avoid. In strong trends it saturates near its 100 extremes and its overbought or oversold signals become traps, as momentum simply persists. A single outsized day can jerk it because raw sums are unbuffered. Divergences, as always, can be early and repeatedly wrong before price finally turns. The remedies are to confirm its extremes against trend strength, to consider a signal-line smoothing of the raw output, and to lean on its trendiness reading to know when to fade extremes and when to respect them.

A worked example

Take a 5-day window with the following closing changes: +2, +1, -1, +3, -1 points. The up-day gains sum to Su = 2 + 1 + 3 = 6, and the down-day losses sum to Sd = 1 + 1 = 2 in absolute terms. CMO = 100 x (Su - Sd) / (Su + Sd) = 100 x (6 - 2) / (6 + 2) = 100 x 4 / 8 = +50, a strong positive reading marking upward momentum in control and sitting right at the common overbought threshold. If the next day closed down 5 points, the window drops the oldest +2 and becomes +1, -1, +3, -1, -5: now Su = 1 + 3 = 4, Sd = 1 + 1 + 5 = 7, and CMO = 100 x (4 - 7) / (4 + 7) = 100 x (-3 / 11) which is about -27. In a single bar the oscillator has swung from +50 to -27, crossing zero and showing how a large down day flips this unsmoothed momentum read.

Common mistakes

  • Fading every ±50 print — being unsmoothed, CMO fires more false signals than RSI in chop.
  • Assuming ±50 is universal when some markets rarely reach those levels.
  • Reading a high absolute CMO as overbought when it actually signals a strong, tradable trend.
  • Ignoring divergence, one of its cleaner uses, in favour of raw threshold trades.
  • Applying it without a trend filter to separate reversion setups from momentum ones.