How it works
The Chaikin Oscillator is a MACD computed on the Accumulation/Distribution line instead of on price. Take the cumulative flow line, smooth it with a short exponential average and a long one, and plot the difference. Where the A/D line answers 'has money been accumulating?', the oscillator answers 'is that accumulation speeding up or slowing down?'.
That distinction matters because a cumulative line can keep rising for a long time while the rate at which it rises collapses. Levelling off in a series that only ever moves in one direction is hard to see by eye; differencing two averages of it makes the change obvious. Zero on the oscillator is the point where the short average of flow crosses the long one, which is roughly where the slope of the flow line changes character.
The standard use is a two-part filter. First establish direction from price or from the A/D line itself, then use the oscillator to time within that direction: a cross above zero while price sits above a rising long-term average is treated as flow re-engaging behind an existing uptrend, and a cross below zero in a downtrend as the mirror. Applied on its own, without a directional context, the zero crossings are far too frequent to be useful.
Divergence works here as well, and arguably better than on the raw A/D line, because the oscillator has a stable zero and is not dragged by decades of accumulated history. A price high accompanied by a materially lower oscillator peak says the acceleration behind the move has faded even if the cumulative line is still climbing.
Its position among the neighbours is worth being clear about. A/D gives level, Chaikin Money Flow gives a bounded proportion over a fixed window, and this oscillator gives rate of change. All three are built from the same money flow volume, so they will rarely disagree in a way that resolves a question — running all three is redundancy, not confirmation.
Calculation
The arithmetic in words, in the order it happens.
Build the Accumulation/Distribution line first: per bar, ((close - low) - (high - close)) / (high - low) multiplied by volume, accumulated into a running total. The oscillator is then the 3-period exponential moving average of that line minus its 10-period exponential moving average, plotted around a zero line. Because both averages are taken of the same cumulative series, the output is a difference of smoothings and therefore measures the slope of the flow line rather than its level.
Source
An AlgoBeamScript implementation of the formula above, written by us from the arithmetic so the code and the calculation agree line for line.
Runs unchanged on the platform and in the AlgoBeamTS runtime. The language reference is in the documentation.
Inputs
Defaults are the values most charting packages ship with. They are conventions, not optimal settings — the right length depends on your instrument and your holding period.
| Input | Default | What it changes |
|---|---|---|
| Short length | 3 | Length of the fast exponential average of the A/D line. Raising it damps the oscillator and cuts the number of zero crossings, at the cost of reacting later to a genuine change in flow. |
| Long length | 10 | Length of the slow average that defines the baseline. Widening the gap between the two lengths produces larger, slower swings; narrowing it produces a jittery line that crosses zero on small changes. |
How to read it
What practitioners take from the plot. Read these as descriptions of market state, not as entry signals.
- Cross above zero while price is above a rising long-term average
- Money flow is accelerating in the direction of an existing uptrend. The most reliable configuration for the tool, because the direction comes from elsewhere.
- Cross below zero in an established downtrend
- The mirror case: selling flow is re-accelerating. Used to time re-entries or to stand aside rather than as a standalone short trigger.
- Oscillator peaks falling while price highs rise
- The acceleration behind each new high is weaker than the last, even though the cumulative flow line may still be rising. A maturity signal for the move.
- Repeated shallow crossings around zero
- Flow is balanced and the two averages are tangled. A chop warning; the tool has nothing to say in this state and mechanical crossing rules will bleed on costs.
Limitations
Where this indicator misleads. None of these are fixed by a better parameter.
- It inherits every flaw of the Accumulation/Distribution line it is built on — the gap blindness and the extreme multipliers on narrow-range bars — and then smooths them twice, so bad inputs arrive late as well as wrong.
- Two exponential averages of a cumulative series means substantial lag. It confirms changes in flow rather than anticipating them, despite frequently being sold as a leading indicator.
- The output is unbounded and scaled by the volume of the instrument, so there are no fixed thresholds and readings cannot be compared between symbols or across a period in which turnover changed materially.
- In sideways markets it oscillates around zero, and a mechanical zero-cross system generates a stream of small losing trades that costs and spread turn into a steady drain.
Educational reference. This page explains how an indicator is built and how it is commonly read. It is not investment advice, not a recommendation and not a signal service. No indicator is profitable on its own — each is a way of describing a market, and any rule built on one has to be tested with realistic costs before it is traded.