Change Momentum Oscillator (CMO)
For a list of all members of this type, see CMO Members.
System.Object
RQuant.Indicator.TTimeArray
RQuant.Indicator.TDoubleArray
RQuant.Indicator.TIndicator
RQuant.Indicator.CMO
Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.
The primary method of interpreting the CMO is looking for extreme overbought and oversold conditions. As a general rule, Mr. Chande quantifies an overbought level at +50 and the oversold level at -50. At +50, up-day momentum is three times the down-day momentum. Likewise, at -50, down-day momentum is three times the up-day momentum. These levels correspond to the 70/30 levels on the RSI indicator.
You could also establish overbought/oversold entry and exit rules by plotting a moving average trigger line on the CMO. For example, if you are using the default 20-period CMO, a 9-period moving average may serve as a good trigger line. Buy when the CMO crosses above the 9-period trigger line; sell when it crosses below The CMO is closely related to, yet unique from, other momentum oriented indicators such as Relative Strength Index Stochastic, Rate-of-Change, etc.
Formula:
TDataManager.cd("Demo");
TDailyArray Daily1 = TDataManager.GetStock("YHOO").DailyArray;
DateTime Date1 = DateTime.Parse("1999/02/08");
DateTime Date2 = DateTime.Parse("2000/12/29");
TDailyArray Daily = Daily1.Clone(Date1, Date2);
TCanvas Canvas = new TCanvas("Canvas","CMO DEMO",600,400);
Canvas.Divide(1,2);
CMO CMO = new CMO(Daily, 14);
Canvas.cd(1);
Daily.Draw("c");
Canvas.cd(2);
CMO.Draw(Color.Red);
Namespace: RQuant.Indicator
Assembly: RQuant.Indicator (in RQuant.Indicator.dll)
CMO Members | RQuant.Indicator Namespace