# Chande Momentum Oscillator

Chande Momentum Oscillator is an indicator on [Vela](https://vela.luxalgo.com/chart), our next-generation charting platform, written in Pine Script®.

The Chande Momentum Oscillator sums gains and losses over a lookback window and expresses their difference as a share of total price movement, yielding an oscillator bounded between +100 and -100. The default length is 9. This is the standard implementation of Chande's momentum oscillator with its usual default.

- Indicator in the LuxAlgo Library, by LuxAlgo, published Apr 13, 2020.
- Access: free.
- Concepts: [Chande Momentum Oscillator](https://www.luxalgo.com/library/concept/chande-momentum-oscillator/) (primary)
- Open on Vela: https://vela.luxalgo.com/chart?pineScriptCodeId=r9ub3hv2rbm2sr6nfoi416l4
- Page: https://www.luxalgo.com/library/indicator/chande-momentum-oscillator/

The **Chande Momentum Oscillator** measures how one-sided recent price movement has been. Over a lookback window it sums all gains and all losses separately, then expresses their difference as a share of total price movement, yielding an oscillator bounded between +100 and -100. The build is the standard implementation of Tushar Chande's formula with its usual default length of 9, plotted with overbought, oversold, and zero reference lines.

## How to Trade the Chande Momentum Oscillator?

- **CMO above the Overbought level (+50)**: heavily one-sided upside movement: stretch worth fading in ranges, simple persistence in strong trends, so context decides.
- **CMO below the Oversold level (-50)**: the downside counterpart: sellers have dominated the window.
- **Zero Line sign**: above zero, up closes have outweighed down closes; below zero, the reverse, which makes a quick directional filter for other signals.
- **Divergence**: a new price extreme against a lesser CMO extreme shows the one-sidedness fading.

The raw sums make for a jagged line: the level the CMO holds across several bars carries more information than any single-bar spike.

## Chande Momentum Oscillator Settings

- **Length** (default 9): the number of bars over which up moves and down moves are summed. Shorter windows reach the extremes constantly; longer ones visit them rarely but mark deeper stretch.
- **Source** (default close): the price series measured for bar-to-bar changes.
- **Overbought Level** (default 50): the threshold above which readings count as overbought.
- **Oversold Level** (default -50): the downside threshold, mirroring the overbought input.

## Alerts

Three alert conditions are declared: **Overbought Cross** when the CMO crosses above the overbought level, **Oversold Cross** when it crosses below the oversold level, and **Zero Cross** when it crosses zero in either direction.

## Frequently Asked Questions

### How is the Chande Momentum Oscillator related to RSI?

Both weigh up movement against down movement, but RSI smooths its averages with Wilder's method and runs 0 to 100, while the CMO sums raw changes and marks balance at zero rather than 50. It turns faster and prints rougher.

### Can the CMO stay overbought during a strong trend?

Yes. A reading beyond +50 says movement has been one-sided, not that it must reverse. In persistent trends it can hold extreme territory for long stretches, so treat extremes as conditions that still need a price trigger.

### Should I change the default +50 and -50 levels?

They are the conventional thresholds for the default length of 9. Widening them toward the bounds yields fewer but deeper signals; narrowing them produces earlier, noisier flags. Tune them together with the Length so signal frequency matches your horizon.

## Related indicators

- [LTF Momentum Projection](https://www.luxalgo.com/library/indicator/ltf-momentum-projection/) (Momentum): markdown at https://www.luxalgo.com/library/indicator/ltf-momentum-projection.md
- [Rubber Band Liquidity Signals](https://www.luxalgo.com/library/indicator/rubber-band-liquidity-signals/) (Disparity Index): markdown at https://www.luxalgo.com/library/indicator/rubber-band-liquidity-signals.md
- [Moving Averages Proximity Oscillator](https://www.luxalgo.com/library/indicator/moving-averages-proximity-oscillator/) (Disparity Index): markdown at https://www.luxalgo.com/library/indicator/moving-averages-proximity-oscillator.md
- [Candle Breakout Oscillator](https://www.luxalgo.com/library/indicator/candle-breakout-oscillator/) (Momentum): markdown at https://www.luxalgo.com/library/indicator/candle-breakout-oscillator.md
- [Adaptive Momentum Oscillator](https://www.luxalgo.com/library/indicator/adaptive-momentum-oscillator/) (Momentum): markdown at https://www.luxalgo.com/library/indicator/adaptive-momentum-oscillator.md
- [Momentum Cycle Sentry](https://www.luxalgo.com/library/indicator/momentum-cycle-sentry/) (Momentum): markdown at https://www.luxalgo.com/library/indicator/momentum-cycle-sentry.md
- [Momentum Terrain 3D](https://www.luxalgo.com/library/indicator/momentum-terrain-3d/) (Momentum): markdown at https://www.luxalgo.com/library/indicator/momentum-terrain-3d.md
- [Triangular Momentum Oscillator & Real Time Divergences](https://www.luxalgo.com/library/indicator/triangular-momentum-oscillator-real-time-divergences/) (Momentum): markdown at https://www.luxalgo.com/library/indicator/triangular-momentum-oscillator-real-time-divergences.md

---

Source: https://www.luxalgo.com/library/indicator/chande-momentum-oscillator/ (LuxAlgo Library). Free to use with attribution: https://www.luxalgo.com/library/license/
