> For the complete documentation index, see [llms.txt](https://docs.optionalpha.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.optionalpha.com/technical-documentation/indicators/cmo.md).

# CMO

## CMO

The Chande momentum oscillator is a technical momentum developed by Tushar Chande. His formula calculates the difference between the sum of recent gains and the sum of recent losses and then divides the result by the sum of all price movements over the same time period.

The indicator oscillates between +100 and -100 and is similar to other momentum indicators such as Welles Wilder’s RSI. It measures momentum on both up and down days and does not smooth results. This method triggers more frequent oversold and overbought occurrences.

An instrument is considered to be overbought when the Chande momentum oscillator is above +50 and oversold when it is below -50. The oscillator can be used as a confirmation signal when it crosses above or below the 0 line. Trend strength can also be measured using the CMO as the oscillator's value denotes the strength or weakness of the expected trend. Bear in mind that the chosen time frame will affect the signals generated by the indicator.

The source code for the CMO function is available [here](https://app.optionalpha.com/ta/CMO.txt).

```
/* CMO calculation is mostly identical to RSI.
 * 
 * The only difference is in the last step of calculation:
 *
 *   RSI = gain / (gain+loss)
 *   CMO = (gain-loss) / (gain+loss)
 * 
 * See the RSI function for potentially some more info 
 * on this algo.
 */
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.optionalpha.com/technical-documentation/indicators/cmo.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
