Crypto Trading Strategy Backtesting

Replay ten strategies over years of Binance history with real fees, slippage and funding. Get win rate, average R, profit factor, drawdown - and the lower bound that says whether any of it is more than luck.

Run a backtest

A backtest answers one question: if I had run these exact rules over this history, what would have happened? It only answers honestly if the rules, the costs and the exits are the same ones the live signal uses. Here they are.

What gets tested

Ten strategies, each a fixed rule set - confluence, Donchian breakout, EMA cross, RSI reversion, MACD momentum, squeeze breakout, VWAP, range fade, downtrend rally and cash-in-downtrend. None of them has a parameter tuned per symbol. That makes the numbers smaller and the comparison honest: a strategy that wins on BTC and loses on SOL is telling you something a per-symbol fit would have hidden.

Each is replayed over up to five thousand bars of Binance history on the horizon you choose - 15-minute, hourly, 4-hour, daily - across any symbol on the board. The first sixty bars warm the indicators and are not traded.

What comes back


win rate         share of trades that closed above zero
average R        mean result per trade, in units of risk
profit factor    gross wins divided by gross losses
max drawdown     the deepest peak-to-trough fall, in R
trades           how many - the number that decides what the rest are worth
lower bound      the 99% confidence floor under the average

The last line is the one most backtesting tools leave out and the one that matters. An average of +0.40R on 43 trades and an average of +0.10R on 2,810 trades are not in the same league: the first has a lower bound of +0.02R, the second of +0.06R. The second is the better strategy, and a table sorted by average would put it fifth.

Why most backtests lie, and the one number that does not →

The same code, both ways

The signal you see on the terminal and the trade the backtest simulates are produced by one function. Same five rules, same 4-of-5 threshold, same entry at the next bar's open, same 1.5× ATR stop, same 1.5× and 3× ATR targets, same rule that a bar touching both stop and target counts as a stop. Same cost model per market.

This matters because a backtest that used different rules from the live signal would be measuring something else. Every result in the evidence store was produced by the code that will trade it.

Costs are not optional

On 15-minute crypto bars, costs are most of the story: every strategy measures between −0.48R and −0.65R per trade at that horizon, and it is the fees and slippage on a small move that do it. That is not a flaw in the strategies. It is the reason the daily horizon is where the evidence is.

Where the results go

Every backtest is stored, per strategy, per market, per horizon, and pooled with every other user's - so the sample grows with the number of people running the terminal. When you open the automation screen and pick a strategy, the engine looks up that pool, computes the lower bound at your horizon, and either arms or tells you which combinations it would accept instead.

Evidence-based automated trading →

Run it two ways

In the browser, against the server's history, one symbol at a time. Or on the desktop backtester, which runs all ten strategies across a whole board on your own machine and uploads only the results - so the computation never queues behind anyone else's.

Either way the numbers land in your account, and the engine reads them before it trades.

Questions people ask

What does R mean in the results?

R is the result of a trade measured in units of the risk taken - the distance from entry to stop. A trade that hits its first target at 1:1 is +1R; a trade stopped out is −1R. Measuring in R makes every trade comparable regardless of price or position size, and it is what the automation engine sizes against.

Why is the lower bound sometimes negative when the average is positive?

Because the average rests on too few trades to be trusted. A 99% lower bound is the worst result the data is still consistent with. On 40 trades it sits far below the average; on 2,000 it sits close. When it is below zero, the data cannot rule out that the strategy loses money, whatever the average says.

Are fees included?

Yes, by market. Spot is modelled at 0.10% taker plus 0.05% slippage; futures at 0.045% taker, slippage and funding every eight hours; forex as a 1.2-pip spread plus commission and swap; IDX at about 0.2% per side including levies. A backtest without costs is a backtest of a market that does not exist.

Can I backtest my own strategy?

The ten strategies shipped are fixed rule sets so their results are comparable across every user and every market. Custom rules are not exposed yet; the desktop backtester runs the same ten on your own machine and uploads only the result.

Run a backtest Pricing