Chande Momentum Oscillator (CMO)

Parameters: period = 14 (2–200)

Overview

The Chande Momentum Oscillator (CMO), developed by Tushar Chande, is a sophisticated momentum indicator that measures the difference between the sum of gains and losses over a specified period. What sets CMO apart from other momentum indicators is its use of absolute price movements rather than percentage changes, and its normalization to a -100 to +100 scale, making it easier to identify overbought and oversold conditions.

The CMO's unique calculation method makes it particularly effective at capturing pure price momentum while filtering out the effects of volatility. By separately summing positive and negative price changes before calculating the ratio, it provides clearer signals than traditional momentum indicators and responds more quickly to changes in market direction.

How It Works

The CMO calculation involves four key steps:

  1. Calculate Price Changes: Determine daily price changes (Close - Previous Close)
  2. Separate Movements: Sum positive changes and negative changes separately
  3. Calculate Ratio: Find the difference divided by the sum
  4. Normalize: Multiply by 100 for percentage scale

Price Change = Close[i] - Close[i-1]

If Price Change > 0: Up Sum += Price Change
If Price Change < 0: Down Sum += |Price Change|

CMO = ((Up Sum - Down Sum) / (Up Sum + Down Sum)) × 100

Range: -100 to +100
Where:
+100 = All price changes were positive
0 = Equal positive and negative changes
-100 = All price changes were negative

Key Features

  • Bounded Oscillator: Clear -100 to +100 range for easy interpretation
  • Pure Momentum: Measures absolute price changes, not percentages
  • Symmetric Scale: Equal treatment of bullish and bearish momentum
  • Responsive: Reacts quickly to momentum changes

Interpretation & Trading Signals

Signal Levels

CMO Readings:

  • Above +50: Strong bullish momentum (overbought)
  • +20 to +50: Moderate bullish momentum
  • -20 to +20: Neutral zone, consolidation
  • -50 to -20: Moderate bearish momentum
  • Below -50: Strong bearish momentum (oversold)

Trading Signals:

  • Zero Line Cross: Bullish above 0, bearish below 0
  • Extreme Reversals: Buy < -50 turning up, sell > +50 turning down
  • Divergences: Price/CMO divergences warn of reversals
  • Momentum Confirmation: CMO direction confirms trend strength

Strengths

  • Clear bounded range simplifies interpretation
  • Captures pure price momentum effectively
  • Symmetric scale treats bullish/bearish equally
  • Excellent divergence signals
  • Works well in trending and ranging markets

Limitations

  • Can remain at extremes during strong trends
  • May produce whipsaws in choppy markets
  • Absolute price changes favor higher-priced assets
  • Requires confirmation from other indicators
  • Period selection affects signal frequency

Example Usage

Code examples will be available once the Rust implementation is complete.

Performance Analysis

Related Indicators