// research

DCA bot with safety orders vs plain DCA: a backtest

Not over the whole period. A base order plus five safety orders every -2% and a +2% take-profit closed 456 deals in a row on BTC since 2020 and still ended at +94.77%, against +170.30% for weekly buys and +1,065.16% for holding: for 64.5% of the time every safety order was filled and the bot sat waiting for a rebound. It came out ahead of weekly buys only in the 2021–2022 bear window.

6 min read

A "DCA bot" in the sense of bot services such as 3Commas is not the same thing as dollar-cost averaging. Plain DCA buys a fixed amount on a schedule and holds. A DCA bot opens a deal with a base order, buys more with safety orders each time the price falls a set step, and sells the whole position at a small take-profit above the average entry — then starts the next deal. It wins almost every deal; the question is what it costs to wait for the ones that go wrong.

The bot and what it was compared with

  • The bot: a base order of 600 USDT at the first bar; up to five safety orders, each when an hourly close is 2% below the previous fill, sized 600, 900, 1,350, 2,025 and 3,037.5 USDT (volume scale 1.5) — 8,516.75 USDT if all six orders fill, 85% of a 10,000 USDT account. Take-profit +2% from the average entry, closing the whole deal; a new deal starts on the same bar. No stop-loss. Spot, 1h candles.
  • Plain DCA: 95 USDT every Monday, 104 times — 9,880 USDT over a two-year window — held to the end. For the whole period, the existing run of 25 USDT every Monday for 351 weeks (8,775 USDT), 2020-01-06 → 2026-09-27, from the best-weekday study.
  • Buy & hold: the benchmark the bot's own run reports — the whole account in the coin from the first bar.
  • Windows: 2021-01-01 → 2022-12-31 (the 2021 top and the 2022 bear), 2023-01-01 → 2024-12-31 (the bull run) and 2020-01-01 → 2026-09-30. Binance spot, BTCUSDT and ETHUSDT, 0.1% fee and 0.05% slippage on every buy and sell.
  • Runs: 10 new ones — the bot six times, the 104-week DCA four times — plus two from the earlier study. One set of bot settings, chosen up front; nothing was tuned.

The bot is built from six entry layers — the base order and five safety orders — with an aggregate take-profit that measures +2% from the average entry of everything the deal holds. Two things differ from how a service such as 3Commas describes its bot1: there each safety order rests as a limit order at a fixed deviation from the base order (-2%, -4%, -6%, -8%, -10% here), while in this backtest a safety order fills at the close of the first hour that ends 2% or more below the previous fill — so a fast drop fills it lower than the level, and a wick that recovers within the hour does not fill it at all.

Results

WindowCoinDCA botWeekly DCABuy & holdBot max drawdown
2021–2022BTC-29.11%-48.25%-42.95%47.77%
2021–2022ETH+23.42%-39.98%+62.94%34.65%
2023–2024BTC+57.74%+142.42%+466.11%13.49%
2023–2024ETH+36.67%+50.19%+179.52%24.63%
2020 → 2026BTC+94.77%+170.30%+1,065.16%44.36%
2020 → 2026ETH+122.79%+142.27%+1,984.28%47.19%

Every return links to its run. Buy & hold is the benchmark reported by the bot's run over the same window.

In the bull window and over the whole period the bot finished behind both weekly buys and holding, on both coins. In the 2021–2022 window it finished ahead of weekly buys on both coins and ahead of holding on BTC — but with a drawdown of 47.77% there, not a safe harbour.

Backtest

DCA bot: base + 5 safety orders every -2%, x1.5, TP +2% — article study

BTCUSDT · 1h · Spot · 2020-01-01 → 2026-09-30

Return
+94.77%
Max drawdown
44.36%
Sharpe
0.53
Win rate
77.2%
Trades
854
Open the report →
DCA bot on BTC, 2020-01-01 → 2026-09-30: +94.77%

Backtest

DCA bot: base + 5 safety orders every -2%, x1.5, TP +2% — article study

BTCUSDT · 1h · Spot · 2023-01-01 → 2024-12-31

Return
+57.74%
Max drawdown
13.49%
Sharpe
1.48
Win rate
77.4%
Trades
420
Open the report →
DCA bot on BTC, 2023–2024: +57.74%, against +466.11% for holding

Backtest

DCA bot: base + 5 safety orders every -2%, x1.5, TP +2% — article study

BTCUSDT · 1h · Spot · 2021-01-01 → 2022-12-31

Return
-29.11%
Max drawdown
47.77%
Sharpe
-0.30
Win rate
74.8%
Trades
242
Open the report →
DCA bot on BTC, 2021–2022: -29.11%

Where the time went

The numbers below are computed from each run's trade list and the hourly candles: a deal is the set of fills that close together, "capital in deals" is the cost of the open fills averaged over every hour of the window, and "fully loaded" means all five safety orders were filled.

RunDealsClosed at the take-profitAll 5 safety orders filledCapital in deals, averageTime fully loaded
BTC 2020 → 20264574562260.5%64.5%
ETH 2020 → 20265775763170.3%78.4%
BTC 2021–2022129128774.3%84.2%
ETH 2021–20222952941764.5%70.1%
BTC 2023–20242342331133.5%25.9%
ETH 2023–2024174173951.7%50.0%

Every deal that closed, closed at the take-profit — in each run the only exception is the one still open when the data ended. Most deals were quick: on BTC over the whole period 272 of 457 closed on the base order alone, and the median deal lasted 0.71 days. The trouble is the other tail. Only 22 deals ever filled the fifth safety order, yet the bot spent 64.5% of the period inside such deals, because once fully loaded it can only wait for the price to climb back to 2% above the average.

The longest waits:

  • BTC: the deal opened on 2021-11-10, the day of the 2021 top, filled its last safety order on 2021-11-17 at an average of 61,946 USDT and stayed fully loaded for 834 days, until 2024-02-28. At its worst, on 2022-11-21, it was 6,365 USDT under water.
  • ETH: fully loaded from 2022-04-11 to 2024-02-27, 687 days, at an average of 3,215 USDT; at worst 6,121 USDT under water on 2022-06-18.
  • Now: both full-period runs ended inside a fully loaded deal — BTC since 2025-10-11, ETH since 2025-10-30 — 2,365 and 2,678 USDT under water at the last bar.

In the bull window the opposite problem showed: the bot kept on average only 33.5% of the BTC account in a deal, so two thirds of the money sat idle while the price rose more than fivefold, and the +2% exits sold every rally early.

Conclusion

  • The bot won 456 deals of 457 on BTC since 2020 and still made +94.77% against +170.30% for weekly buys of a similar budget and +1,065.16% for holding.
  • The near-perfect deal record hides where the time goes: 64.5% of the period on BTC and 78.4% on ETH with every safety order filled, the longest wait 834 days.
  • It held up better than weekly buys only in the 2021–2022 window, and even there the drawdown reached 47.77% on BTC.

Related: DCA or lump sum, the best weekday to DCA, and how to read drawdown and the other metrics: backtest metrics explained.

Notes

  1. 3Commas Help Center, "Main settings of DCA Bot", https://help.3commas.io/en/articles/3108940-main-settings-of-dca-bot — checked 2026-10-20: averaging (safety) orders are placed at deviations measured from the base order, a volume scale multiplies each next order, and the take-profit is by default a percentage of the average price. ↩

Test your own idea

Create a free account, start from a template or from your own rules, and read your first report.

More articles