WhitmanTrading

Accumulation Distribution: Volume, Signed

The accumulation distribution line adds a share of each bar's volume, positive or negative depending on where the close sat within that bar's range, and accumulates the result. It is one of the few common indicators using an input other than price, and it ignores gaps entirely.

How it works

A candlestick chart with a volume histogram beneath it, with the volume histogram emphasised. The headline on the chart reads: Volume signed by where the close sat in its range.
Volume signed by where the close sat in its range. Illustrative chart - not real market data.

For each bar, work out where the close sat between the high and the low. A close at the high scores +1, at the low −1, exactly in the middle 0, and everything in between proportionally.

A candlestick chart of the site's shared price history. The headline on the chart reads: A close near the high adds most of the bar's volume.
A close near the high adds most of the bar's volume. Illustrative chart - not real market data.

Multiply that score by the bar’s volume, and add it to a running total. A heavy bar closing at its high adds nearly all of its volume; a heavy bar closing mid-range adds almost nothing.

The line is that running total. Rising means the closes have been landing in the upper part of their ranges on the busier bars; falling means the opposite.

Why it is worth having on a chart

A gently rising stretch of the long price series. The headline on the chart reads: It is one of the few indicators that is not pure price.
It is one of the few indicators that is not pure price. Illustrative chart - not real market data.

Almost every oscillator on a standard platform is a transformation of closing prices. On this site’s shared 576-bar history, five of them — the relative strength index, the stochastic, the commodity channel index, the moving average convergence divergence histogram and momentum — correlate with each other between 0.53 and 0.87 on bar-to-bar changes.

This one uses volume, which none of them do. That does not make it better at predicting; it makes it capable of disagreeing, and disagreement is the only thing a second input can usefully contribute. The confluence page sets out why that distinction matters more than any individual tool’s merits.

A calmly advancing stretch of the long price series. The headline on the chart reads: It accumulates forever, so its level means nothing.
It accumulates forever, so its level means nothing. Illustrative chart - not real market data.

The line accumulates from an arbitrary starting point and never resets, so its absolute value is meaningless. A reading of 4.2 million says only that you started counting at a particular bar.

A strongly rising stretch of the long price series. The headline on the chart reads: Only the slope and the divergences are readable.
Only the slope and the divergences are readable. Illustrative chart - not real market data.

Only slope and divergence are readable. Is the line rising while price is flat? Falling while price makes new highs? Those comparisons are the whole use of it.

The flaw in the weighting

A flat but volatile stretch of the long price series. The headline on the chart reads: A bar that gaps and closes mid-range scores zero regardless.
A bar that gaps and closes mid-range scores zero regardless. Illustrative chart - not real market data.

The formula uses only the bar’s own high, low and close — the open is not in it. So a bar that gapped enormously and then closed in the middle of its range contributes close to nothing, no matter how far price moved that session.

That is a real defect and it is specific to this indicator. A session that opened 5% higher and finished mid-range was a substantial move; the accumulation distribution line records it as neutral.

A flat, quiet stretch of the long price series. The headline on the chart reads: On balance volume makes the opposite simplification.
On balance volume makes the opposite simplification. Illustrative chart - not real market data.

On balance volume makes the opposite trade-off. It adds the entire bar’s volume if the close is up on the previous close and subtracts all of it if down — so it captures the gap and throws away the range position. Neither is right; they discard different information.

Knowing which one is discarded is the point. If your instrument gaps regularly, this indicator is blind to a lot of what happened. If it rarely gaps, the range-position weighting is the more informative of the two.

In practice

A declining stretch of the long price series. The headline on the chart reads: On foreign exchange the volume input is tick count.
On foreign exchange the volume input is tick count. Illustrative chart - not real market data.

The volume input has to be a real one. Spot forex has no consolidated volume, so platforms substitute tick count — the number of price updates — which measures activity rather than size. Crypto charts show one venue’s share of a market that trades everywhere. Equities and futures are the clean cases.

A long-horizon candlestick view of the same price series. The headline on the chart reads: On a long horizon the line is a trend line in disguise.
On a long horizon the line is a trend line in disguise. Illustrative chart - not real market data.

Over long stretches the line tracks price closely enough to be a trend line with extra steps. In a sustained advance most closes land in the upper part of their ranges, so the accumulation is near-automatic. The tool earns its place where it diverges, not where it agrees.

A candlestick series containing several opening gaps, with the largest opening gap marked. The headline on the chart reads: And a gap is invisible to it by construction.
And a gap is invisible to it by construction. Illustrative chart - not real market data.

The gap blindness is worth repeating because it is easy to forget while reading a divergence. If a divergence opened up across an earnings gap, part of it is the formula ignoring the largest single price event in the window.

A declining stretch of the long price series, with the entry price and the level at which a stop would trigger drawn as horizontal lines. The headline on the chart reads: No stop level exists anywhere in it.
No stop level exists anywhere in it. Illustrative chart - not real market data.

It produces no price, so a stop has to come from structure as always.

A candlestick chart of the site's shared price history, annotated with the round-trip cost. The headline on the chart reads: Each divergence traded costs a share of a bar.
Each divergence traded costs a share of a bar. Illustrative chart - not real market data.

Each divergence traded costs 2% of a typical bar’s range in round-trip costs on this history — and divergences on a cumulative line can persist for a long time before resolving, if they resolve at all.

A 72-bar candlestick section of the shared price history. The headline on the chart reads: Where the close sat is not who was buying.
Where the close sat is not who was buying. Illustrative chart - not real market data.

And the mechanism is an assumption. “Closing near the high means buyers were in control” is a story about a single number. The order book records no such attribution, and a close is where the last trades happened to print.

What accumulation distribution is not

It is not a record of institutional buying. Nothing in the data identifies who traded. The “accumulation” in the name is an interpretation.

It is not on balance volume. Same family, different simplification.

It is not comparable across instruments. Cumulative, unbounded, in whatever volume units the feed uses.

And it is not Chaikin money flow. That applies the same range-position weighting over a rolling window and divides by total volume, which bounds it and makes levels comparable — a genuine improvement on the cumulative form for most uses.

When it fails

A sideways, range-bound candlestick series. The headline on the chart reads: In a range the closes land at both ends and it meanders.
In a range the closes land at both ends and it meanders. Illustrative chart - not real market data.

In a range the closes land at both ends and the line meanders. Small divergences appear constantly and mean nothing, because price is oscillating and so is the close’s position within each bar.

The second failure is the gap blindness on gapping instruments. On a stock that moves on earnings, the indicator systematically ignores the sessions that mattered most.

A third is reading the level. A cumulative line’s absolute value depends on when the chart started. Comparisons between two charts of the same instrument with different histories are meaningless.

A fourth is trusting the volume input without checking it. Tick volume on forex and single-venue volume on crypto are not what the formula assumes.

And a fifth is holding a divergence indefinitely. A cumulative measure can diverge from price for months. Without a structural invalidation level, “the line says accumulation” becomes a reason never to exit.

The original data

On this site’s shared 576-bar history, the five price-derived oscillators measured correlate with each other between 0.53 and 0.87 on bar-to-bar changes — the closest pair being the relative strength index and the stochastic at 0.87. The matrix is in research/series-measurements.json, produced by site/measure_series.py.

A 72-bar window of the shared price history, cut short at the decision bar. The headline on the chart reads: Price flat, the line rising. Accumulation?
Price flat, the line rising. Accumulation? Illustrative chart - not real market data.

That matrix is the case for this indicator, stated by what it leaves out. Every tool in it is built from closes, so none of them can contradict the others in any way that carries information. A tool using volume is the cheapest genuinely independent input available on a standard chart — not because it predicts better, but because when it disagrees with price you have learned something, and when two close-derived oscillators disagree you have learned about their smoothing constants. Run the correlation of this line’s changes against your existing oscillators on your own data; it should be the lowest number in your matrix, and if it is not, the volume feed is worth checking.

On balance volume is the cruder sibling and the direct comparison. Volume explains what the input actually measures. And Chaikin money flow is the bounded, windowed version of the same weighting.

What I actually do

This is one of two or three indicators I would keep if I had to strip a chart to the bone, and not because it predicts. It uses an input the rest of the panel does not have, so when it disagrees with price the disagreement is real rather than a rounding difference between two smoothings.

— Michael Whitman

This page is educational, not financial advice. Test every idea on your own charts before risking money.