Syntax
public CADO(Bars bars, string description)
public static CADO Series(Bars bars)
Parameter Description
Description
The Chaikin Oscillator allows us to analyze accumulation and distribution in the convenient form of an oscillator. The principle behind this oscillator is the nearer the close is to the high, the more accumulation taken place. Conversely the nearer the close is to the low, the more distribution is taken place. Further, healthy rallies and declines are accompanied by increasing volume levels, conversely price tends to decline as volume dries up. The Chaikin Oscillator allows you to compare price action to volume flow, to help determine market tops and bottoms.
Interpretation
- The best Chaikin Oscillator sell signal is when price action develops a higher high into overbought zones and the Chaikin Oscillator diverges with a lower high and begins to fall. Price may remain in overbought zones during strong trends.
- The best Chaikin Oscillator buy signal is when price action develops a lower low into oversold zones and the Chaikin Oscillator diverges with a higher low and begins to rise. Price may remain in oversold zones during strong trends.
- You can also use the Chaikin Oscillator to assist entry into existing trends. In this case you look for a change of direction of the oscillator for buy or sell signal. For example, if you have confirmed strong uptrend and the Chaikin Oscillator turns up from a negative value, then buy the dip in price action.
Calculation
The Chaikin Oscillator is created by subtracting a 10-period
EMA of Accumulation/Distribution from a 3-period EMA of Accumulation/Distribution.
CADO = EMA( AccumDist, 3 ) - EMA( AccumDist, 10 )
where,
CADO = Chaikin Oscillator
EMA = Exponential Moving Average (using EMACalculation.Modern)
AccumDist = Accumulation/Distribution indicator
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()
{
// Use RSI to look for divergences between price and CADO
WealthLab.LineStyle hist = WealthLab.LineStyle.Histogram;
LineStyle ls = LineStyle.Solid;
SetBarColors( Color.Silver, Color.Silver );
DataSeries RSIPrice = RSI.Series( Close, 10 );
DataSeries RSICado = RSI.Series( CADO.Series( Bars ), 10 );
DataSeries Diff = RSIPrice-RSICado;
ChartPane CADOPane = CreatePane( 40, true, true );
ChartPane RSIPane = CreatePane( 50, true, true );
ChartPane DiffPane = CreatePane( 50, true, true );
DrawLabel( RSIPane, "RSI of Price and CADO" );
PlotSeries( CADOPane, CADO.Series( Bars ), Color.Brown, hist, 3 );
PlotSeries( RSIPane, RSIPrice, Color.Teal, ls, 1 );
PlotSeries( RSIPane, RSICado, Color.Brown, ls, 1 );
PlotSeries( DiffPane, Diff, Color.Gray, hist, 1 );
/*
Both RSI and CADO are "unstable" indicators, and it
requires starting the bar at least 3 times the period
*/
for(int bar = 30; bar < Bars.Count; bar++)
{
if( Diff[bar] > 30 )
SetBarColor( bar, Color.Red ); else
if( Diff[bar] < -30 )
SetBarColor( bar, Color.DarkGreen );
}
}
}
}