QuantStudio Financial Data Analysis and Trading Framework

CAD Class

Chaikin A/D Oscillator (CAD)

For a list of all members of this type, see CAD Members.

System.Object
   RQuant.Indicator.TTimeArray
      RQuant.Indicator.TDoubleArray
         RQuant.Indicator.TIndicator
            RQuant.Indicator.CAD

[Visual Basic]
Public Class CAD
    Inherits TIndicator
[C#]
public class CAD : TIndicator

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Remarks

Inspired by the prior work of Joe Granville and Larry Williams, Marc Chaikin developed a new volume indicator, extending the work done by his predecessors. The Chaikin Oscillator is a moving average oscillator based on the Accumulation/Distribution indicator.

The most important signal generated by the Chaikin Oscillator occurs when prices reach a new high or new low for a swing, particularly at an overbought or oversold level, and the oscillator fails to exceed its previous extreme reading and then reverses direction.
Signals in the direction of the intermediate-term trend are more reliable than those against the trend. A confirmed high or low does not imply any further price action in that direction.
A second way to use the Chaikin Oscillator is to view a change of direction in the oscillator as a buy or sell signal, but only in the direction of the trend. For example, if we say that a stock that is above its 90-day moving average of price is in an up-trend, then an upturn of the oscillator while in negative territory would constitute a buy signal only if the stock were above its 90-day moving average--not below it. A downturn of the oscillator while in positive territory (above zero) would be a sell signal if the stock were below its 90-day moving average of closing prices."

This indicator is described in more details in the Steve Achelis' book "Technical Analysis from A to Z".

Formula:

Example

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","CAD DEMO",600,400);
    
Canvas.Divide(1,2);

CAD CAD = new CAD(Daily, 3, 10);

Canvas.cd(1);
Daily.Draw("c");

Canvas.cd(2);
CAD.Draw(Color.Red);

Requirements

Namespace: RQuant.Indicator

Assembly: RQuant.Indicator (in RQuant.Indicator.dll)

See Also

CAD Members | RQuant.Indicator Namespace