CMO Pass Node

Chande Momentum Oscillator — Series Input

MomentumOscillatorPass

Overview

The CMO Pass Node computes the Chande Momentum Oscillator on a series input. CMO measures the ratio of the sum of up-moves to the sum of all moves over a period, expressing momentum on a −100 to +100 scale.

Unlike RSI which uses smoothed averages, CMO uses raw momentum data directly. Values near +100 indicate strong bullish momentum; values near −100 indicate strong bearish momentum. The zero line acts as a neutral momentum boundary.

Formula

UP = sum of (close[i] − close[i−1]) when positive, over period
DN = sum of (close[i−1] − close[i]) when negative, over period
CMO = (UP − DN) / (UP + DN) × 100
Output range: [−100, +100]. Zero = no net momentum. Returns null when UP + DN = 0.
Warm-up: period + 1 bars.

Parameters

ParameterDefaultDescription
period14Lookback period for momentum sums

Inputs & Outputs

SlotDirectionTypeDescription
inputInput{ values, timestamps }Any numeric series
valuesOutput(number | null)[]CMO values in [−100, +100]; nulls during warm-up
timestampsOutputnumber[]Unix timestamps aligned to input

Use Cases

Momentum Filtering

Filter long signals when CMO is positive (above zero), short signals when CMO is negative — aligns trade direction with net momentum.

Overbought/Oversold Thresholds

Use ±50 as extreme thresholds. CMO above +50 is strongly overbought; CMO below −50 is strongly oversold — prime mean-reversion zones.

Adaptive RSI Alternative

CMO is mathematically equivalent to RSI rescaled to [−100, +100] but uses raw sums. It reacts faster to momentum shifts than Wilder-smoothed RSI.

Tips & Best Practices

CMO vs RSI

CMO uses unsmoothed sums, making it more reactive to short-term momentum. RSI uses exponential smoothing, making it less noisy. Choose CMO when responsiveness matters more than smoothness.

Flat Market Handling

When all bars in the window are flat (UP = DN = 0), CMO returns null. Add a null-guard downstream if flat markets are possible in your data source.

Series Input Advantage

The Pass variant lets you apply CMO to any indicator output — e.g. apply CMO to a smoothed price, a volume series, or a spread — not just raw close prices.

Related Indicators