Simple Crypto Trading Strategy That Actually Works (Backtested)

This example tests whether a simple strategy is useful, rather than assuming that simplicity is an edge. A 50/200 SMA backtest produced a positive return, but it finished below its Bitcoin Buy & Hold reference. One BTC-only backtest does not establish that simple systems outperform complex ones.
This article examines a daily SMA 50/200 crossover backtest on BTCUSDT from 2019 to 2024 and explains how to build the rules on CoinQuant.
The Strategy: What "Simple" Actually Means
We are testing a classic 50/200 Simple Moving Average (SMA) crossover, one of the most well-known and well-tested signals in technical analysis.
Buy signal: 50-day SMA crosses above the 200-day SMA (Golden Cross)
Sell signal: 50-day SMA crosses below the 200-day SMA (Death Cross)
Position sizing: 100% of current equity per entry, one long position
Rule-based exit: On opposing SMA crossover, with no stop-loss or take-profit. The last position was closed automatically when the test ended on December 31, 2024.
Two moving averages define the rule set. This backtest does not establish that the setup is generally well-suited to Bitcoin.
Backtest Setup
| PARAMETER | VALUE |
|---|---|
| Pair | BTCUSDT, Binance spot |
| Timeframe | Daily (1d bars), Close inputs |
| Backtest period | January 1, 2019 – December 31, 2024 (UTC) |
| Starting capital | 10,000 USDT |
| Position sizing | 100% of current equity; one long position |
| Buy rule | Previous SMA50 <= SMA200 AND current SMA50 > SMA200 |
| Sell rule | Previous SMA50 >= SMA200 AND current SMA50 < SMA200 |
| Trading fees | 0.1% on each entry and exit (taker) |
| Slippage | 5 bps (0.05%) adverse per fill, configured |
| Data source | Binance spot |
| Execution assumption | Signal-candle Close, market orders |
| Final exit | Last position closed at the end of the test |

Note: All figures below are from a hypothetical backtest simulation. Past backtest results do not guarantee future performance.
The seven closed trades include six signal exits and one position closed at the end of the test.
Results (2019–2024)
| METRIC | SMA 50/200 BACKTEST | BUY & HOLD REFERENCE (BTC) |
|---|---|---|
| Total return | +908.91% | +2,364.38% (curve-derived) |
| Annualised return (CAGR) | 46.97% | Not reported |
| Closed trades | 7 (6 signal exits, 1 at end of test) | N/A (reference curve) |
| Win rate | 71.43% | N/A (reference curve) |
| Max drawdown (magnitude) | 66.81% | 76.63% (curve-derived) |
| Sharpe ratio | 0.9927 | Not reported |
| Longest zero-position-value sequence | 389 daily equity observations | Not reported |
| Profit factor | 9.6176 | N/A |
| Ending value | 100,891.21 USDT | 246,438.11 USDT |
| SQS | 61 | N/A |
| Total fees | 568.75 USDT | Not established |

Key takeaway: the backtest took 10,000 USDT to 100,891.21 USDT (+908.91%), while its Bitcoin Buy & Hold reference ended at 246,438.11 USDT (+2,364.38%). It did not outperform that reference. Sharpe is 0.9927, win rate is 71.43%, and maximum drawdown is 66.81%, lower than the reference curve's 76.63% drawdown. The seven closed trades include one position closed at the end of the test, so these statistics do not come from signal exits alone.
Buy & Hold is the reference curve: 10,000 USDT on January 1, 2019 and 246,438.11 USDT on December 31, 2024. Its +2,364.38% return and 76.63% maximum drawdown are calculated from that curve, not taken from an opaque outperformance score. The reference curve's fee/slippage treatment is not established, so this is a reference comparison, not a proven like-for-like cost-adjusted benchmark. Benchmark Sharpe and CAGR are not reported here; trade count and win rate are not inferred for a reference curve.
What this backtest shows
The 50/200 SMA rule set seeks to follow trends. In this backtest it produced a positive return with substantial drawdown and a lower final value than the Buy & Hold reference. This one result does not prove that it sits out the worst drawdowns or generalizes to other market conditions.
Practical reasons to investigate a simple rule set, not evidence from this test that simple strategies outperform complex ones:
1. Discipline by design. A complex strategy with 12 conditions gives you 12 reasons to hesitate. A two-line crossover gives you zero. You execute or you don't.
2. Fewer parameters = fewer opportunities to fit this example. Every parameter you add is another opportunity to curve-fit historical data. The SMA crossover has two indicator periods: fast and slow. That simplicity does not by itself establish better performance on unseen data.
Trend-following works in crypto. In an asset class driven by retail emotion, halving cycles, and macro narratives, trends are persistent and exploitable with simple tools. The academic evidence on momentum is robust. Crypto amplifies it.
What to Watch Out For
Whipsaw in sideways markets. When price consolidates, moving averages can generate false crossovers. This backtest includes losing closed trades, but it is not a separately validated comparison of performance by market regime.
Lag is baked in. SMAs are lagging indicators. You will never buy the bottom or sell the top. Accept it. The edge is in catching the middle of the move.
Long flat periods. The daily equity series has a longest sequence of 389 observations with zero marked position value, from January 15, 2022 through February 7, 2023 inclusive. This is a property of the reported daily equity series, not an independently verified measure of the time between crossover signals.
Single-asset concentration. This backtest is BTC-only. It does not establish that the same rules on ETH, SOL, or a basket would smooth the equity curve; those variants would need separate tests.
Fees matter. This six-year backtest has seven closed trades and fourteen filled orders, with 568.75 USDT in recorded commissions. Each entry and exit commission is consistent with 0.1% of filled notional. Higher frequency or higher fees would require a separate assessment.
The backtest uses daily Close inputs, market orders, 10,000 USDT starting capital, one long position, and 100% of current equity. Costs are configured as 0.1% taker fees on each entry and exit and 5 bps (0.05%) adverse slippage per fill. Entries and exits fill at the signal candle's Close, not the next day's Open.
How to Build This on CoinQuant in 60 Seconds
Go to CoinQuant and open the Strategy Builder.
Select BTCUSDT → Daily timeframe.
Add Indicator: SMA → Period 50. Add a second SMA → Period 200.
Set Buy Rule: SMA(50) crosses above SMA(200).
Set Sell Rule: SMA(50) crosses below SMA(200).
Click Backtest. Set date range: Jan 2019 → Dec 2024. Use the current-equity sizing, Close-input and cost settings above; inspect the final exit type before treating this as a signal-only test.
Review your performance report. Deploy live when ready. No code required.
CoinQuant runs the backtest engine in seconds, generates the full performance dashboard (returns, drawdown, Sharpe, trade log), and lets you deploy the same strategy live to Binance, Coinbase, or Interactive Brokers with one click. No Python. No spreadsheets. No waiting.
Conclusion
The 50/200 SMA backtest on BTCUSDT returned +908.91%, taking 10,000 USDT to 100,891.21 USDT, with Sharpe of 0.9927 and a 71.43% win rate across seven closed trades. It finished below the Buy & Hold reference and experienced 66.81% drawdown. One trade was closed at the end of the test rather than by a signal. The result is a testable historical example, not proof that a simple strategy generally outperforms complex systems.
Use the transparent rules as a hypothesis to investigate, not a strategy shown here to be dependable. Adjusting periods or adding assets would be new experiments; none is validated by this backtest. Review the risks, costs and execution limitations before considering live use.
Disclaimer:
This content is for educational and informational purposes only and does not constitute financial, investment, or trading advice. All strategies and examples are for illustrative purposes and do not guarantee results. Always conduct your own research before making financial decisions.
Key Takeaway