How Is a One-Year BTC DCA Backtest Calculated?

Short answer: A backtest buys at historical prices on schedule (daily/weekly/monthly): coins = Σ(amount ÷ price at each buy), final value = coins × latest price, profit = final value − total invested, plus maximum drawdown.

What the backtest computes

A backtest does not interpolate; it uses real daily closes. On each buy date it converts "amount ÷ that day price" into coins and adds them up.

It tracks the value curve as "coins × that day price", producing the number of buys, total invested, coins held, average cost, final value, P&L, return, and the maximum drawdown from peak to trough of the value curve.

Formulas

Coins heldΣ(amount per buy ÷ price at that buy)
Total investedamount per buy × number of buys
Average costtotal invested ÷ coins held
Final valuecoins held × latest price
Maximum drawdownmax(1 − value ÷ running peak of value)

Example (4 simplified buys, recompute it yourself)

Invest 500 USDT weekly for 4 weeks, prices 70,000 / 75,000 / 72,000 / 78,000 USDT:

Coins per buy = 0.00714286 / 0.00666667 / 0.00694444 / 0.00641026, so coins held = 0.02716422.

Total invested = 500 × 4 = 2,000 USDT; average cost = 2,000 ÷ 0.02716422 ≈ 73,626 USDT; final value = 0.02716422 × 78,000 ≈ 2,118.81 USDT.

Profit = 2,118.81 − 2,000 = 118.81 USDT, a return of about +5.94%. A real one-year weekly plan has about 52 buys, calculated exactly the same way.

Notes

A one-year result depends on the window chosen: different start and end dates give different returns and drawdowns. A backtest is a statistic about a past price path, not a forecast.

Backtests usually exclude fees and slippage; including them lowers the real return.

FAQ

How many buys are in a one-year weekly plan?

About 52. The backtest counts the buy dates that actually fall inside the window; use the tool output for the exact count.

What is maximum drawdown?

The largest fall of the value curve from any peak to a later low. If value drops from 2,000 to 1,700, drawdown = 1 − 1,700 ÷ 2,000 = 15%.

Can a backtest predict future returns?

No. It only reflects the price path of a past window; a different future path gives a different result.