Chaikin Oscillator

Created by Marc Chaikin, the Chaikin Oscillator is the difference between fast and slow Exponential Moving Averages (EMA) of the Accumulation/Distribution Line (ADL). [Discuss] 💬

chart for Chaikin Oscillator

// usage
IEnumerable<ChaikinOscResult> results =
  quotes.GetChaikinOsc(fastPeriods, slowPeriods);

Parameters

fastPeriods int - Number of periods (F) in the ADL fast EMA. Must be greater than 0 and smaller than S. Default is 3.

slowPeriods int - Number of periods (S) in the ADL slow EMA. Must be greater F. Default is 10.

Historical quotes requirements

You must have at least 2×S or S+100 periods of quotes, whichever is more, to cover the convergence periods. Since this uses a smoothing technique, we recommend you use at least S+250 data points prior to the intended usage date for better precision.

quotes is a collection of generic TQuote historical price quotes. It should have a consistent frequency (day, hour, minute, etc). See the Guide for more information.

Response

IEnumerable<ChaikinOscResult>

Convergence warning: The first S+100 periods will have decreasing magnitude, convergence-related precision errors that can be as high as ~5% deviation in indicator values for earlier periods.

ChaikinOscResult

Date DateTime - Date from evaluated TQuote

MoneyFlowMultiplier double - Money Flow Multiplier

MoneyFlowVolume double - Money Flow Volume

Adl double - Accumulation Distribution Line (ADL)

Oscillator double - Chaikin Oscillator

🚩 Warning: absolute values in MFV, ADL, and Oscillator are somewhat meaningless. Use with caution.

Utilities

See Utilities and helpers for more information.

Chaining

Results can be further processed on Oscillator with additional chain-enabled indicators.

// example
var results = quotes
    .GetChaikinOsc(..)
    .GetSlope(..);

This indicator must be generated from quotes and cannot be generated from results of another chain-enabled indicator or method.