Markets › Crypto · BTCUSDT (Binance, real volume), 4-hour candles

Accumulation/Distribution Indicator Backtest: 9 Years of Bitcoin on 4-Hour Candles

The A/D line is supposed to show whether volume is flowing in or out before the price moves. We tested its three most common uses, a divergence, a cross of its average and the Chaikin oscillator, on every 4-hour Bitcoin candle since 2017, with real volume, costs and a random control.

Bitcoin (BTCUSDT, Binance, real volume) · 4-hour candles · A/D divergence, A/D vs its 20-bar average, Chaikin oscillator (3, 10) · Protocol v1.0 plus the 8 Oct 2026 rules

Buried · Fragile

It followed the money. The money did not follow back.

BornFrozen 22 Oct 2026 (ad_spec.md), before any A/D value was computed
Died22 Oct 2026

Variants tried: 3 · Passed every gate: 0 · Best: 2 of 6 gates · Holdout opened: yes (already used)

Short answer: not on Bitcoin 4-hour candles. With Binance's real volume from 2017 to 2026, the A/D line crossing its average and the Chaikin oscillator made money until 2020 and lost after, ending at x0.46 and x0.56 with every trade reinvested; the A/D divergence made +0.30% a trade but on only 316 trades and negative without its ten best.How much costs took here, compared across all 54 of our tests →Did the same rules work on other markets? The cross-market scoreboard →

00The verdict in three lines

  • We tested the Accumulation/Distribution indicator on Bitcoin 4-hour candles from October 2017 to September 2026, using Binance's real traded volume: a divergence between price swings and the A/D line (stop at the swing, 2R target), the A/D line crossing its 20-bar average, and the Chaikin oscillator crossing zero. 0.05% a fill.
  • The two always-in versions worked until 2020 and lost money after. Their trades still add up to +146.4% and +157.5%, but 1 unit reinvested in every trade ended at x0.46 and x0.56, against x19.1 for buy and hold.
  • The divergence was the most interesting and the least proven: +0.296% a trade, positive in every period, but only 316 trades and negative without its ten best. Buried, all three.

01What is the Accumulation/Distribution indicator?

The Accumulation/Distribution line (A/D) was created by Marc Chaikin. For each bar it asks where the price closed inside the bar's range, weights that by the bar's volume, and adds the result to a running total:

  • Money flow multiplier = ((close − low) − (high − close)) / (high − low): +1 when the bar closes at its high, −1 at its low, 0 in the middle.
  • Money flow volume = multiplier × volume. A/D line = the running sum of money flow volume.
  • Chaikin oscillator = the 3-period EMA of the A/D line minus its 10-period EMA: the momentum of the money flow.

A rising A/D line is read as accumulation (buying), a falling one as distribution (selling). Because it needs real traded volume, we tested it on Bitcoin: our forex and spot gold data only count price changes, not traded size.

02How to use the Accumulation/Distribution indicator: the three strategies we tested

  • AD-DIV, accumulation/distribution divergence: a swing low is a 4-hour candle whose low is below the five candles on each side. When a new swing low is lower than the previous one (within 10 days) but the A/D line is higher, buy; the mirror on swing highs is a sell. Stop at the swing, target twice the risk, out after five days if neither is hit.
  • AD-MA: long when the A/D line crosses above its 20-bar simple average, short when it crosses below; always in the market.
  • AD-CHO, Chaikin oscillator strategy: long when the oscillator crosses above zero, short when it crosses below; always in the market.
  • Signals are read at the close of a 4-hour candle and executed at the next candle's open, at real prices.

We fixed these three versions and every setting on 22 October 2026, before computing a single A/D value. On the same 4-hour Bitcoin candles we had already tested the Heikin Ashi strategy.

03How we tested it

Binance BTCUSDT 1-minute history, August 2017 to 30 September 2026, with the volume of every minute, built into 19,702 4-hour candles from 1 October 2017 (candles with fewer than 120 minutes of data are skipped). Binance is one exchange, so its volume is a large sample of Bitcoin's trading, not all of it. Costs: 0.05% of the price on every fill (the taker fee on Binance perpetual futures, so shorts are possible), about 0.1% a round trip; funding reported separately. Periods: October 2017 to June 2021, July 2021 to 2023, and a holdout from 2024 already used by earlier Bitcoin tests. First-period bar t ≥ 2.0. Control: each version's own trades, shifted together to other days by a random number of days, 500 times. Engine check: the multiplier, the running sum and the oscillator against a hand calculation, swing points and divergences on hand-made candles, stops, targets and the five-day exit, and an independent re-implementation that matched every one of the 5,000 trades (ad_selftest_result.txt).

04Results: does the Accumulation/Distribution indicator work?

VariantRuleTradesWin rate (95% range)Gross per tradeNet per tradeNet, sum of tradesCompound, 1 unitProfit factorVerdict
AD-DIVDivergence between price swings and the A/D line; stop at the swing, target 2R, out after 5 days31641.1% (36% to 47%)+0.396%+0.296%+93.5%x1.641.17Buried
AD-MAA/D line crossing its 20-bar average; always in the market2,45330.9% (29% to 33%)+0.160%+0.060%+146.4%x0.461.06Buried
AD-CHOChaikin oscillator crossing zero; always in the market2,23132.2% (30% to 34%)+0.171%+0.071%+157.5%x0.561.06Buried
x0.3x1x3x10x30201820192020202120222023202420252026validationholdout*AD-DIVAD-MAAD-CHOBuy and hold

Growth of 1 unit fully invested in each trade, by month, log scale; dashed: buy and hold from 1 October 2017. * Holdout already used before this test.

Why a positive sum can lose money

The always-in versions add up to a positive total, yet reinvesting in every trade loses money. Percentages do not add when you reinvest: a +20% trade followed by a −20% trade sums to zero but leaves 0.96 of what you started with. With thousands of trades of a few percent each on a volatile market, that drag ate the whole gain. The compound column is what an account would have seen.

VariantAverage holdTime in the marketNet per trade with 10%/yr fundingLongs, sum (trades)Shorts, sum (trades)
AD-DIV2.80 days27.0%+0.219%+33.1% (197)+60.4% (119)
AD-MA1.34 days99.9%+0.023%+335.6% (1,226)-189.3% (1,227)
AD-CHO1.47 days99.9%+0.030%+336.5% (1,115)-179.1% (1,116)

05A/D divergence on Bitcoin: rare, positive, fragile

In nine years the rule found 364 divergences on 4-hour candles: 230 bullish and 134 bearish, and 316 became trades (others came while a trade was open). 45.3% of trades were stopped at the swing, 20.3% reached the 2R target and the rest ran out of time after five days.

The result was positive in every period (+0.294%, +0.249%, +0.350% a trade), and the bearish divergences did better than the bullish ones (+60.4% against +33.1%, sums of trades). But 316 trades are few: the first-period t-statistic was 0.46, the validation profit factor 1.17 (1.2 needed), the same trades shifted to random days were not clearly worse (percentile 77.6), and without its ten best trades the version lost 80.4%.

06A/D or random timing?

VariantTradesReal net per tradeShifted, medianShifted, 5th to 95thPercentile (95 needed)
AD-DIV316+0.296%+0.031%-0.495% to +0.559%77.6
AD-MA2,453+0.060%-0.045%-0.189% to +0.074%93.6
AD-CHO2,231+0.071%-0.042%-0.192% to +0.089%92.6

The control keeps each version's own trades, with their direction and length, and moves them to other days. All three did better than the median shifted run, and none cleared the 95th percentile.

07By period and by year

VariantOct 2017 to Jun 2021, net per trade (trades)Jul 2021 to 2023 (trades)Holdout* 2024 to Sep 2026 (trades)t, first periodPF, second period
AD-DIV+0.294% (122)+0.249% (102)+0.350% (92)0.461.17
AD-MA+0.222% (944)-0.034% (800)-0.052% (709)1.090.96
AD-CHO+0.278% (846)-0.034% (699)-0.079% (686)1.300.97
YearAD-DIV sum of trades (trades)AD-MA sum of trades (trades)AD-CHO sum of trades (trades)
2017 (from 1 Oct)+26.7% (7)+48.1% (52)+63.7% (50)
2018+30.8% (32)-13.2% (255)+10.6% (231)
2019+3.0% (29)+71.4% (262)+62.3% (238)
2020+19.8% (30)+173.5% (211)+141.1% (195)
2021+3.7% (41)-83.4% (323)-62.1% (267)
2022-8.4% (41)-7.5% (316)+25.0% (254)
2023-14.2% (44)-6.0% (325)-28.8% (310)
2024+29.1% (33)+0.8% (252)-8.5% (261)
2025-14.2% (36)-23.6% (249)-36.5% (237)
2026 (to 30 Sep)+17.3% (23)-13.7% (208)-9.2% (188)

The average-cross and Chaikin versions made most of their money in 2020 (+173.5% and +141.1%) and lost in 2021 and again in 2025 and 2026.

08The gates

VariantTrades1. PF ≥ 1.2 in validation2. ≥ 50 trades in each period3. t ≥ 2.0 on development4. Above the 95th percentile of the shifted-trades control5. Positive without the 10 best trades6. Holdout net positive (already used)
AD-DIV316failpassfailfailfailpass
AD-MA2,453failpassfailfailfailfail
AD-CHO2,231failpassfailfailfailfail
VariantCauseGates failedVerdict
AD-DIVFragile1, 3, 4, 5Buried
AD-MAFragile1, 3, 4, 5, 6Buried
AD-CHOFragile1, 3, 4, 5, 6Buried

The data-gap check removed 9, 28 and 29 trades open over a gap in the data; no verdict changed. Fragile: positive as a sum of trades, negative without the ten best.

TWhat this shows, and what to take into your own tests

What the results show

  • The Accumulation/Distribution line, built from Binance's real volume on 4-hour Bitcoin candles, did not give a proven edge in any of three common uses from 2017 to 2026.
  • The two always-in versions (the A/D line against its average, and the Chaikin oscillator) made money from 2017 to 2020 and lost it afterwards; their sum of trade returns stayed positive (+146.4% and +157.5%) while 1 unit reinvested in every trade shrank to x0.46 and x0.56.
  • The divergence signal was rare (364 divergences in nine years) and slightly positive in every period, +0.296% a trade, but it lived on its best trades: without the ten best it lost 80.4%.

What remains unknown

  • Other markets. Since this test we have also tested the same three rules, long only, on SPY daily bars, where Marc Chaikin designed the indicator: all three were buried, and the crossing rules timed their trades worse than random (A/D on the S&P 500).
  • Whole-market volume. Binance is one exchange; its volume is a sample of Bitcoin's trading, not all of it.
  • Other divergence definitions (other swing sizes, other look-backs). We fixed one before the run and tried no others.

Why it was buried

None of the three passed more than two gates. The always-in versions had a strong first period (development t-statistics 1.09 and 1.30, still under 2.0) and then lost in both later periods; their gains came from long trades in a market that rose about 19-fold, and they did not beat the same trades shifted to random days by enough (percentiles 93.6 and 92.6; 95 needed). The divergence version was positive in every period but too thin to separate from luck: 316 trades, a first-period t-statistic of 0.46, and a result that turns negative without its ten best trades.

What you can apply to your own tests

  • Look at compounded results, not only the sum of percentages. A strategy can add up to +146.4% and still lose money when every trade is reinvested.
  • Volume indicators need real volume. On forex and CFD gold, the volume in MetaTrader counts price changes, not traded size.
  • Count divergences before you trust them. A signal that fires a few dozen times a year needs many years before its average means much.

A note on the numbers: drawdown figures are measured on closed trades unless a table says it includes open losses. Open losses inside a trade are not counted in a closed-trade drawdown, so real account risk is higher, especially for systems with no stop. Backtests are not live trading.

FAQCommon questions

What is the Accumulation/Distribution indicator?

A running total of volume weighted by where each bar closes in its range, created by Marc Chaikin: a close at the high adds the whole volume, a close at the low subtracts it, a close in the middle adds nothing. A rising line is read as accumulation, a falling one as distribution.

How do you use the Accumulation/Distribution indicator?

The three most common ways are a divergence (price makes a new low while the A/D line does not), the A/D line crossing its own moving average, and the Chaikin oscillator (the 3-period EMA of the A/D line minus its 10-period EMA) crossing zero. We tested all three on Bitcoin.

Does the A/D indicator work?

Not in our Bitcoin test: none of the three versions passed more than two of our six gates, and none beat a random-timing control at the 95% level.

Does A/D divergence work?

It was the best of the three but not proven: 364 divergences in nine years of 4-hour candles, 316 trades, +0.30% a trade after costs, positive in every period, and negative without its ten best trades.

What is the Chaikin oscillator strategy?

Buy when the Chaikin oscillator crosses above zero and sell when it crosses below. On Bitcoin it made money from 2017 to 2020 and lost after; with every trade reinvested it ended at x0.56.

How was the strategy tested?

On Binance BTCUSDT 1-minute data with volume, built into 4-hour candles, October 2017 to September 2026, 0.05% a fill and rules written and dated before the data was run, costs included on every trade, results split into development, validation and holdout periods, a random-entry control as the benchmark, and every variant reported. Read the protocol.

09Check our arithmetic

Frozen specificationThe A/D formula, the three rules, costs, periods, gates and control, dated before any value was computed.
ad_spec.md
CodeThe engine (its readings of the rules at the top), the independent re-implementation, the self-test and the run (node ad_run.js). Needs the Binance BTCUSDT 1-minute history, which is public.
ad_lib.js · ad_ref.js · ad_selftest.js · ad_run.js
Shared code it usesStatistics and control helpers.
control_audit_lib.js · gh_lib.js · hourly_lib.js · ma_lib.js · rsi2_protocol.js
ResultsSelf-test result, the console output of the run and all numbers.
ad_selftest_result.txt · ad_results.txt · ad_summary.json
Trade logs (CSV)Every trade: entry and exit (UTC), direction, prices, exit reason, days held, gross and net %, net % with funding.
AD-DIV · AD-MA · AD-CHO

Code provenance: our own code, written from the specification and Chaikin's published formula.

10Data notes

Source. Binance BTCUSDT spot 1-minute history (data.binance.vision), the file of our earlier Bitcoin tests, with volume in BTC; the costs are those of the perpetual futures, where shorts are possible. A 4-hour candle with fewer than 120 minutes (exchange outages) is skipped. Fills: the real open of the first minute after the signal candle; stops and targets at their level, or the minute's open if it gapped through.

11Corrections

22 Oct 2026, addition: the “what we do not know” note on stocks now links the follow-up test on SPY daily bars. No result of this test changed. 22 Oct 2026, navigation: added a link to the new guide comparing trading costs across all our tests. No result changed. 22 Oct 2026, navigation: added a link to the new cross-market scoreboard, which includes this test. No result changed. 22 Oct 2026, navigation: added a link to the new guide comparing trend following and mean reversion across all our tests. No result changed.

+More tests and guides