ETH Was Already Bleeding Before January Ended. The Bot Kept Working Anyway.
ETH entered 2025 at $2,235.94 — riding the tail end of a post-ETF rally that had already started to crack.
By February 15, ETH had fallen to $1,822.43. That’s a $413.51 drop, −18.49% in 45 days—a slow, grinding descent with no sustained recovery. For a spot holder, that meant watching $203.43 evaporate on a $1,100 position.
The question this backtest was built to answer:
Can a DCA bot find repeatable profit inside a sustained downtrend — or does it just delay the inevitable?
We ran this backtest across 45 days of real Binance 1-minute OHLCV data. What we found is more nuanced than a simple yes-or-no.
Strategy Parameters
How Each Setting Impacted Performance?
Parameter Impact Summary
| Parameter | Impact | The Logic (Why) |
|---|---|---|
| Small Base Order | Reduced risk | Low initial exposure |
| Equal DCA Size | Stable averaging | Linear cost reduction |
| 2% DCA Step | High trade frequency | Captures local dips |
| 10 DCA Orders | Deep recovery buffer | Survives major dips |
| 3% Take Profit | Higher exit threshold | Filters noise, waits for real bounce |
45 orders. $97.09 closed-session profit. $10.79 per completed cycle.
The Math That Matters
💰 Closed Sessions Tell a Different Story
Strip out the one incomplete session, and this strategy generated $97.09 in gross profit across 9 closed sessions. That’s an 8.83% effective yield on the $1,100 base capital over 45 days — achieved entirely within a market that fell 18.49%.
Annualized (45-day period × 365/45): that projects to roughly 71.6% annualized yield on base capital — assuming similar oscillation conditions, which is a significant assumption in a trending market.
⚡ The One Session That Breaks the Number
Session 10 is the entire story. It deployed all 11 orders ($1,100.83), ran from January 31 to February 14, and ended with a −$99.57 unrealized loss still open. That single incomplete session erased everything the first nine built — on paper.
Fee drag on closed sessions: $3.375 ÷ $97.09 = 3.47%. Low. The strategy ran lean — 45 orders in 45 days at 0.075% is almost negligible.
🛡️ The Capital Lock Reality
Session 10 locked the full $1,100 for 15+ days with no exit. That’s not just a drawdown number — it’s a capital availability problem. While those funds were committed, no new sessions could start. The strategy’s ability to compound depends entirely on sessions resolving quickly. Session 10 proved that’s not guaranteed.
| Variant | DCA Step | TP % | Sessions | Orders | P&L USDT |
|---|---|---|---|---|---|
| A | 2% | 2% | 16 | 12 | −23.70 |
| B | 2% | 2% | 16 | 10 | −32.33 |
| CThis Playbook | 2% | 3% | 9 | 10 | −2.75 |
Variant C outperformed both alternatives by a significant margin — not because it traded more, but because it traded smarter. The 3% TP requirement filtered out shallow bounces that variants A and B chased, only to exit at 2% into a market that kept falling.
Variant B performed worst: same trade frequency as A, but a shallower TP in a downtrending market means you’re exiting on small bounces that get erased immediately. More activity, less profit. In a slow bleed, patience is the parameter.
What the results are really telling you.
✅ what worked
Sessions 1–9 executed exactly as designed. Session 4 is the standout: ETH dipped enough to trigger all 10 DCA orders, deploying $1,000.75, then bounced 3% to deliver $28.48 profit.
That’s the DCA mechanism working perfectly — deep averaging across a local bottom, followed by a partial recovery exit. The 2% step frequency meant the bot was already positioned when the bounce came.
⚠️What didn't work
Session 10 broke the strategy. ETH dropped from late January with no meaningful 3% recovery before the backtest window closed. With 11 orders deployed and −$99.57 unrealized, the session sat open for 15+ days.
A smaller TP (2%) would have exited on weaker bounces, but variants A and B show that approach also failed in this market. There’s no clean fix — only a trade-off.
💡 The key insight
DCA bots don’t fight trends. They harvest oscillations within them.
Sessions 1–9 closed because ETH had enough local volatility — short-term bounces of 3%+ even within the downtrend. Session 10 failed because those oscillations stopped. The market entered a directional phase with no meaningful recovery.
The optimal DCA setup for a slow-bleed market does not avoid loss — it captures enough oscillation profit early to offset the inevitable locked session at the trend’s worst point. This setup did that for 9 out of 10 sessions. The tenth is the cost of playing in a downtrend.
🚩 Watch out for - a potential red flag
The 86.98% max drawdown is the number most readers will misread. It does not mean the account lost 87%. It means one open session’s unrealized exposure peaked at 87% of that session’s capital — roughly $956 of the $1,100 deployed in Session 10 was temporarily underwater.
The real risk isn’t the drawdown percentage. Its duration. Session 10 locked $1,100 for 15+ days with no exit. If ETH continues falling past all 10 DCA levels, the position becomes indefinitely locked. Before running this setup, ensure the full $1,100 is liquid, uncommitted, and you’re psychologically prepared to see it locked for weeks with no resolution.
Always ensure your full $1,100 capital is liquid and available before starting this strategy — and never run it on capital you cannot afford to leave committed for 30+ days.
🧭 When This Strategy Works Best
Ideal Conditions:
✔ Sideways / oscillating markets with 3–8% recurring swings
✔ Mildly bearish markets where ETH dips but periodically recovers
✔ High-volatility environments where deep entries recover quickly
✔ Markets where ETH is ranging between two price levels
🚫 When NOT To Use This Strategy
Avoid when:
❌ ETH is in a confirmed directional downtrend with no 3% bounces
❌ The market has just experienced a sharp, fast crash — recovery timing is unknown
❌ ETH volatility is very low and price is flat (triggers won’t fire)
❌ You cannot keep the full $1,100 liquid and fully committed
📊 Expert Rating
Profitability: ⭐⭐⭐⭐☆
Risk Control: ⭐⭐⭐☆☆
Capital Efficiency: ⭐⭐⭐⭐☆
Beginner Friendly: ⭐⭐⭐☆☆
Market Adaptability: ⭐⭐☆☆☆
🏆 Overall Score
6.1 / 10 — Conditionally Viable Bear Market DCA
✔ Quick Takeaways
✔ 9 of 9 closed sessions finished in profit — in a market that fell 18.49%
✔ The 3% TP was the right call: variants with 2% TP lost more money, not less
✔ Gross closed-session profit was $97.09 — the open session is what created the net negative
✔ Session 4 deployed $1,000+ and returned $28.48 in a single local bounce — DCA averaging at work
✔ Fee drag at 3.47% of gross profit is negligible — the strategy ran lean
✔ Buy-and-hold lost $203.43 in the same period; even net of the open session loss, the bot was $200.68 ahead
✔ The real risk in this setup is capital lock duration, not the drawdown percentage
What did spot buy & hold actually return?
DCA Bot vs. Spot Buy & Hold
The opportunity cost of not running the DCA bot during this period: $200.68. That’s the gap between −$2.75 (net bot result) and −$203.43 (buy-and-hold result).
The bot didn’t generate spectacular profit in a bear market. But it didn’t bleed out either. Buy-and-hold had no mechanism to capture the oscillations that sessions 1–9 exploited.
The DCA bot found $97 worth of profit inside a trend that destroyed $203 for passive holders
Before you run this playbook, check these off.
Use this as your go/no-go checklist before deploying this exact parameter set.
🧠 Market Suitability Matrix
| Market Condition | Rating | Strategic Notes |
|---|---|---|
| Sideways / Consolidating | ★★★★★ Excellent | Frequent 3% oscillations = consistent exits |
| High Volatility | ★★★★★ Excellent | Deep entries, fast recoveries |
| Mildly Bearish / Slow Bleed | ★★★★☆ Good | This backtest. Works until ETH stops bouncing — Session 10 proves it |
| Mildly Bullish / Slow Climb | ★★★☆☆ Moderate | Fewer sessions, lower P&L |
| Strong Bull Run | ★★☆☆☆ Risky | ETH rarely dips 2% before surging — bot sits idle while spot holds soar |
| Strong Bear / Crash | ★☆☆☆☆ Poor | All 10 orders deploy immediately, no recovery, capital locked indefinitely |
| Very Low Volatility | ★☆☆☆☆ Poor | No triggers fire, capital sits completely idle |
How to tune this playbook for different scenarios.
Disclaimer: All data sourced from CryptoGates DCA Backtest Bot. Results are historical simulations using Binance 1-minute OHLCV data. Past backtest performance does not guarantee future live trading results. DYOR.
Battle-Test Your Strategy
Before the Market Does.
Eliminate guesswork with institutional-grade backtesting for DCA, Grid, and Rebalance bots. Real historical data. Real-world results.


