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] :speech_balloon:

chart for Chaikin Oscillator

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


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.



:hourglass: 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.


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: Warning: absolute values in MFV, ADL, and Oscillator are somewhat meaningless. Use with caution.


See Utilities and helpers for more information.


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

// example
var results = quotes

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