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
- Spot - 0.10% taker per side, 0.05% slippage
- Futures - 0.045% taker, 0.05% slippage, funding of about 0.01% every eight hours on the notional
- Forex - 1.2 pips round trip, commission, daily swap
- IDX - about 0.2% per side including levies and tax
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.