Skip to content

Technical indicators

Accumulation/Distribution Line (ADL)

A running total of volume that counts as buying when bars close near their highs and selling when they close near their lows.

Each bar adds its volume times its money flow multiplier: +1 when it closes on its high, −1 on its low, 0 in the middle. The line is the running total since the start of the run, so its level depends on where the run began; only its direction matters. Volume here is the volume the price feed reports for each bar. For forex, brokers usually report the number of price updates in the bar, not an amount traded, so read it as activity rather than money.

Traders compare its direction with the price: price rising while the line falls suggests the rise lacks support.

multiplier = ((close − low) − (high − close)) / (high − low)
ADL = ADL(previous bar) + multiplier × volume

Call: adl()

No settings.

What you get: a number.

Warm-up: with no settings, it asks for 0 bars of history and a run-up of 1, and its first value came on bar 1 of the example data.

Accumulation/Distribution Line (ADL) drawn by its own code on example prices

The prices are made up, hourly, and the same on every page, so the chart shows how the indicator behaves, not how a market behaved.

let previousLine;
let previousClose;
function onIntervalClose() {
const line = adl();
if (previousLine !== undefined && previousClose !== undefined && CLOSE > previousClose && line < previousLine) {
log("Price up, accumulation down");
}
previousLine = line;
previousClose = CLOSE;
}