Chande Momentum Oscillator

The Chande Momentum Oscillator (CMO) is a technical analysis tool used to measure the momentum of price movements in a financial market. It was developed by Donald Dorsey and is designed to identify overbought and oversold conditions in an asset’s price.

Similarly to the popular RSI, CMO is also also used to spot overbought and oversold conditions, as well as to gauge the strength of a trend.

Chande Momentum Oscillator visualized on a chart with historical values obtained via TAAPI.IO

How to use CMO

1. Overbought and Oversold Conditions:

  • CMO value above +50 is considered overbought, suggesting that the asset might be overvalued and due for a price correction.
  • CMO value below -50 is considered oversold, indicating that the asset might be undervalued and due for a price increase.

2. Centerline Crossover:

  • When the CMO crosses above the 0 line, it indicates a potential buying opportunity.
  • When the CMO crosses below the 0 line, it signals a potential selling opportunity.

3. Trend Confirmation:

  • A rising CMO indicates strengthening momentum, suggesting a continuation of the current trend.
  • A falling CMO indicates weakening momentum, suggesting a potential reversal or consolidation.

Get realtime and historical values via API

We provide API access to the Chande Momentum Oscillator values for all of the most popular assets like stocks, crypto (try one of the popular exchanges like Binance) and forex, on all commonly used timeframes – from the weekly and daily all the way down to one minute intervals. You can also calculate the values on your own data using our manual method.

Customise CMO Sensitivity

When using the CMO technical indicator, you have the ability to fine-tune its responsiveness by adjusting the optional period parameter through the API. This parameter allows you to customize the number of candles considered in the CMO calculation. If you opt for a shorter period, the CMO becomes more sensitive, responding quickly to recent price changes and potentially signaling overbought or oversold conditions sooner. On the other hand, choosing a longer period smoothens the CMO’s output, offering a broader perspective on market trends. This feature lets you tailor the CMO to fit your specific trading strategies and timeframes, enhancing its effectiveness in various market conditions.

Get started with the cmo

Simply make an HTTPS [GET] request or call in your browser:


API response

The cmo endpoint returns a JSON response like this:

  "value": 48.115851780097856
Example response from TAAPI.IO when querying cmo endpoint.

API parameters

Required String
The secret which is emailed to you when you request an API key.
Required String
The exchange you want to calculate the indicator from: binance, binancefutures or one of our supported exchanges. For other crypto / stock exchanges, please refer to our Client or Manual integration methods.
Required String
Symbol names are always uppercase, with the coin separated by a forward slash and the market: COIN/MARKET. For example: BTC/USDT Bitcoin to Tether, or LTC/BTC Litecoin to Bitcoin...
Required String
Interval or time frame: We support the following time frames: 1m, 5m, 15m, 30m, 1h, 2h, 4h, 12h, 1d, 1w. So if you're interested in values on hourly candles, use interval=1h, for daily values use interval=1d, etc.
Optional Integer
The backtrack parameter removes candles from the data set and calculates the cmo value X amount of candles back. So, if you are fetching the cmo on the hourly and you want to know what the cmo was 5 hours ago, set backtrack=5. The default is 0.
Optional String
The chart parameter accepts one of two values: candles or heikinashi. candles is the default, but if you set this to heikinashi, the indicator values will be calculated using Heikin Ashi candles. Note: Pro & Expert Plans only.
Optional Boolean
true or false. Defaults to false. By setting to true the API will return a timestamp with every result (real-time and backtracked) to which candle the value corresponds. This is especially helpful when requesting a series of historical values using the results parameter.
New Optional Boolean
true or false. Defaults to true. By setting to false, the API will ensure that there are no candles missing. This often happens on lower timeframes in thin markets. Gaps will be filled by a new candle with 0 volume, and OHLC set the the close price of the latest candle with volume.
New Optional String
number or max. Use this parameter to access historical values on the past X candles until the most recent candle. Use max to return all available historical values. Returns an array with the oldest value on top and most recent value returned the last.
Optional Integer

Sets the number of candles used in the indicator calculation.

Default: 14

More examples

Let's say you want to know the cmo value on the last closed candle on the 30m timeframe. You are not interest in the real-time value, so you use the backtrack=1 optional parameter to go back 1 candle in history to the last closed candle.

Get cmo values on each of the past X candles in one call

Let's say you want to know what the cmo daily value was each day for the previous 10 days. You can get this returned by our API easily and efficiently in one call using the results=10 parameter:


Looking for even more integration examples in different languages like NodeJS, PHP, Python, Curl or Ruby? Continue to [GET] REST - Direct documentation.