Accumulation Distribution
The Accumulation Distribution indicator measures the cumulative flow of money into and out of an asset by analyzing the relationship between price movement and volume. It tracks buying and selling pressure by calculating where the close falls within the bar's range, then multiplying this by volume to create a money flow value that accumulates over time.
Developed by Marc Chaikin in the 1970s, this indicator builds on earlier volume-price concepts by providing a running total that reflects the balance between buying pressure (accumulation) and selling pressure (distribution). Unlike simple volume analysis, it weights volume by the position of the close within the bar's range.
The indicator helps traders identify divergences between price and money flow, potentially signaling trend reversals when the indicator moves opposite to price. It's particularly useful for confirming trends and spotting potential weakness or strength not visible in price alone.
What It Measures
Accumulation Distribution measures the cumulative money flow by calculating where each bar's close falls within its high-low range (the Money Flow Multiplier), multiplying this by volume to get Money Flow Volume, then maintaining a running total of these values over time.
When to Use
- Trend Confirmation: Rising A/D with rising prices confirms uptrend strength; falling A/D with falling prices confirms downtrend strength
- Divergence Detection: A/D moving opposite to price may signal weakening trends or potential reversals
- Breakout Validation: Strong A/D movement through key levels can confirm price breakouts
- Volume-Price Analysis: Understanding whether volume is supporting or contradicting price movements
- Accumulation/Distribution Phases: Identifying periods where smart money may be accumulating (buying) or distributing (selling)
Interpretation
- Rising A/D Line: Indicates buying pressure and accumulation; close is consistently near the high, weighted by volume
- Falling A/D Line: Indicates selling pressure and distribution; close is consistently near the low, weighted by volume
- Bullish Divergence: Price makes lower lows while A/D makes higher lows; suggests potential upside reversal
- Bearish Divergence: Price makes higher highs while A/D makes lower highs; suggests potential downside reversal
- Flat A/D During Price Move: Indicates lack of volume support for the price move; trend may be weak
- Cumulative Nature: A/D is a running total that accumulates over time; the absolute value matters less than the trend direction
- No Standard Parameters: A/D doesn't use periods or smoothing; it's a pure cumulative measure starting from the initial value (typically 0.0)
Default Usage
use rust_ti::strength_indicators::bulk::accumulation_distribution;
pub fn main() {
// fetch the data in your preferred way
// let high = vec![...]; // high prices
// let low = vec![...]; // low prices
// let close = vec![...]; // close prices
// let volume = vec![...]; // volume data
let previous_ad = 0.0; // starting value for first calculation
let ad = accumulation_distribution(&high, &low, &close, &volume, previous_ad);
println!("Accumulation Distribution: {:?}", ad);
}
import pytechnicalindicators as pti
# Accumulation Distribution calculation
previous_ad = 0.0 # starting value for first calculation
ad = pti.strength_indicators.bulk.accumulation_distribution(
high, low, close, volume, previous_ad
)
print("Accumulation Distribution:", ad)
import init, {
strength_bulk_accumulationDistribution
} from 'https://cdn.jsdelivr.net/npm/ti-engine@latest/dist/web/ti_engine.js';
await init();
// fetch the data in your preferred way
// const high = [...]; // high prices
// const low = [...]; // low prices
// const close = [...]; // close prices
// const volume = [...]; // volume data
const previousAd = 0.0; // starting value for first calculation
const ad = strength_bulk_accumulationDistribution(high, low, close, volume, previousAd);
console.log("Accumulation Distribution:", ad);
Interactive Chart
Use the interactive playground below to explore how different parameters affect the indicator's behavior.