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
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.
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
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.
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.
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
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.
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
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.
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.
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.
It produces no price, so a stop has to come from structure as always.
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.
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
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.
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.
Related
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.
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.