Wealth-Lab Wiki

API ChartStyles Community Components Community Indicators IndexDefinitions Knowledge Base Misc Optimizers PosSizers Providers Standard Indicators TASC Traders Tips TASCIndicators Tutorial Videos Visualizers
RSS

Navigation


Quick Search
»
Advanced Search »


Syntax

public CMO(DataSeries source, int period, string description)
public static CMO Series(DataSeries source, int period)
public static double Value(int bar, DataSeries source, int period)

Parameter Description

source Price series
period Indicator calculation period

Description

The Chande Momentum Oscillator is similar to RSI or Stochastics. It is calculated by dividing the sum of up day and down day activity into the difference of up day and down day activity. The result is then multiplied by 100 to arrive at an indicator that oscillates between -100 and 100. A typical value for number of periods, Period, for the CMO is 20.

Interpretation

  • CMO reaches extreme levels at 50 for overbought and -50 for oversold. You can also look for signals based on the CMO crossing above and below a signal line composed of a 9 period moving average of the 20 period CMO.

  • CMO measures the trend strength, the higher the CMO value the stronger the trend, whereas low CMO values indicate sideways trading ranges.

  • If underlying prices make a new high or low that isn't confirmed by the CMO this divergence can signal a price reversal.

  • CMO often forms chart patterns which may not show on the underlying price chart, such as double tops and bottoms and trendlines. Also look for support or resistance on the CMO.

Calculation

CMO = 100 * ( ( Su - Sd )/( Su + Sd ) )

where,

Su = Sum of prices on up days for the specified Period
Sd = Sum of prices on down days for the specified Period

Example

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;

namespace WealthLab.Strategies { public class MyStrategy : WealthScript { protected override void Execute() { /* This simple system buys when CMO is oversold, and sells when CMO is overbought */ for(int bar = 20; bar < Bars.Count; bar++) { if (IsLastPositionActive) { if( CMO.Value( bar, Close, 20 ) > 45 ) SellAtMarket( bar+1, LastPosition, "CMO Exit" ); } else { if( CMO.Series( Close, 20 )[bar] < -55 ) BuyAtMarket( bar+1, "CMO Entry" ); } } } } }

Important Disclaimer: The information provided by Wealth-Lab is strictly for informational purposes and is not to be construed as advice or solicitation to buy or sell any security.  The owner of Wealth-Lab.com assumes no liability resulting from the use of the material contained herein for investment purposes. By using this web site, you agree to the terms of this disclaimer and our Terms of Use.

Used under license from FMR Corp. Copyright 2008 FMR Corp. All rights reserved.


ScrewTurn Wiki. Some of the icons created by FamFamFam.