Chande Momentum Oscillator (Unsmoothed) (CMOU)
Summary
Chande Momentum Oscillator: Tushar Chande's original momentum oscillator, computed from plain moving-window sums of the up-moves and down-moves over the period.
Bounded in [-100,+100]; positive = net upward momentum, negative = net downward.
CMOU is the version as defined by Chande in his book The New Technical Trader (1994), and is the more common implementation used by TradingView (ta.cmo) and pandas-ta's default.
See CMO for a smoothed variant of CMOU.
Formula
d = P[t]-P[t-1]; over the trailing optInTimePeriod changes accumulate Su = sum of the positive d, Sd = sum of -d for negative d. CMOU = 100 * (Su-Sd)/(Su+Sd); 0 when Su+Sd == 0 (an exactly flat window). Unlike CMO, the sums are the plain period totals (a moving-window sum), not Wilder-smoothed averages, so there is no unstable period.
Inputs
inReal— Source price/value series
Outputs
outReal— CMOU oscillator value
Parameters
| Parameter | Type | Default | Accepted values | Description |
|---|---|---|---|---|
optInTimePeriod | integer | 14 | 2–100000 | Number of trailing price changes summed |
Properties
Numerical Stability: Start-Independent
| ☐ Overlap Input |
| ✅ Independent Y-Axis i |
| ☐ Candlestick |
| ☐ Can Output NaN or ±Inf |
| ☐ Identity at Period 1 |
| ☐ Display Shift |
Implementation
TA-Lib Definition: cmou.c · cmou.yaml
| Native | File |
|---|---|
| C | ta_CMOU.c |
| Rust | cmou.rs |
| Java | Core_CMOU.java |
| C# | Core_CMOU.cs |
TA-Lib is also available for Python, R and more using a wrapper.
Aliases
Chande Momentum Oscillator (Unsmoothed)
See Also
References
- Tushar S. Chande, The New Technical Trader, John Wiley & Sons (ISBN 0471597805)