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

Interpretation

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.