How many trades does a backtest need?
A reproducible simulation of 30, 100 and 300 trades – and the formula that tells you the number for your own system.
Short answer
For a typical edge of +0.2R per trade you need roughly 100 to 300 trades before the result is clearly distinguishable from luck, and a thin edge of +0.05R needs thousands. In our simulation a system that truly earns +0.2R with 40% winners at 2R measured −0.20 R to +0.60 R over 30 trades and still looked breakeven or worse in 9.0% of 100-trade backtests. Thirty trades are a first look, not a verdict; the lower your win rate and the bigger your winners, the more trades you need.
What the simulation shows
| System (true expectancy) | Trades | 90% of backtests measured | Measured 0 or less |
|---|---|---|---|
| 50% × 1.5R (+0.25 R) | 30 | −0.08 R to +0.58 R | 18.0% |
| 50% × 1.5R (+0.25 R) | 100 | +0.05 R to +0.45 R | 2.9% |
| 50% × 1.5R (+0.25 R) | 300 | +0.13 R to +0.37 R | under 0.1% |
| 40% × 2R (+0.20 R) | 30 | −0.20 R to +0.60 R | 29.6% |
| 40% × 2R (+0.20 R) | 100 | −0.04 R to +0.44 R | 9.0% |
| 40% × 2R (+0.20 R) | 300 | +0.06 R to +0.34 R | 1.0% |
| 30% × 3R (+0.20 R) | 30 | −0.33 R to +0.73 R | 28.5% |
| 30% × 3R (+0.20 R) | 100 | −0.08 R to +0.52 R | 15.8% |
| 30% × 3R (+0.20 R) | 300 | +0.03 R to +0.37 R | 3.0% |
| 60% × 1R (+0.20 R) | 30 | −0.07 R to +0.47 R | 17.5% |
| 60% × 1R (+0.20 R) | 100 | +0.04 R to +0.36 R | 2.7% |
| 60% × 1R (+0.20 R) | 300 | +0.11 R to +0.29 R | under 0.1% |
| 35% × 2R (+0.05 R) | 30 | −0.40 R to +0.50 R | 50.5% |
| 35% × 2R (+0.05 R) | 100 | −0.19 R to +0.29 R | 38.3% |
| 35% × 2R (+0.05 R) | 300 | −0.08 R to +0.19 R | 29.4% |
Monte Carlo simulation, 20,000 backtests per row, fixed seed 20261022. Each trade wins the stated R with the stated probability or loses 1R; trades independent; no costs. Range = 5th to 95th percentile of the measured average R.
Three things to take from it
- 30 trades cannot separate a good system from a bad one. Every profile with a real edge of +0.2R or more measured zero or less in 17 to 30% of its 30-trade backtests.
- Low win rates need more trades. 30% winners at 3R and 60% winners at 1R have the same true expectancy (+0.2R), but the first swings far more: after 300 trades it still looked unprofitable in 3.0% of backtests, the second in under 0.1%.
- Luck alone produces convincing results. A system with no edge at all (50% at 1R) showed +0.2R or better in 18.1% of 30-trade backtests and in 3.0% of 100-trade backtests.
The number for your own system
| System | True expectancy | Spread of one trade | Trades until the 95% interval stays above 0 |
|---|---|---|---|
| 60% × 1R | +0.20 R | 0.98 R | 93 |
| 50% × 1.5R | +0.25 R | 1.25 R | 97 |
| 40% × 2R | +0.20 R | 1.47 R | 208 |
| 30% × 3R | +0.20 R | 1.83 R | 323 |
| 35% × 2R | +0.05 R | 1.43 R | 3,147 |
n = (1.96 × spread ÷ expectancy)², rounded up; spread of one trade = √(w × (1 − w)) × (b + 1). Normal approximation, no costs.
How to use the formula
Take your expected win rate w and average winner b in R (losers at −1R). The spread of one trade is √(w × (1 − w)) × (b + 1); the trades you need before the 95% interval excludes zero are (1.96 × spread ÷ expectancy)². Halving the edge quadruples the number of trades. The expectancy calculator gives you the expectancy; real results also vary in size, which makes the spread larger and the number higher.
Method and limits
- Model: each trade wins b R with probability w or loses exactly 1R. Trades are independent; there are no fees, slippage or funding.
- Runs: 20,000 simulated backtests for every profile and sample size, random numbers from the mulberry32 generator with the fixed seed 20261022, so every run of the script gives the same numbers.
- Reproduce it: download the script and run
node edgetrail-sample-size-simulation.js(Node.js 18 or newer, no packages). - Limits: real markets have regimes and streaks, results vary in size and costs are never zero. All of that widens the ranges, so treat these numbers as a lower bound on the trades you need.
Collecting the trades
Few traders reach 300 live trades of one setup quickly. Bar replay is the faster way: Replay runs on real candles from Bybit, Binance, OKX and Coinbase – 4,952 crypto markets as of 4 November 2026, from 1-minute to weekly candles. For Bitcoin, 1-minute history goes back to 20 July 2015 (BTC-USD on Coinbase). Each replay trade is booked with its R in the backtest journal of the system, with expectancy, profit factor, win rate and drawdown next to the trade count. Step by step: how to backtest a crypto strategy; a worked setup with a fixed definition is how to backtest liquidity sweeps, and what to check in a replay or backtesting tool is in crypto backtesting software. Read the measured profit factor against what a good profit factor is, and before you size up, check the risk of ruin with the lower end of your range. Edgetrail costs $24 a month or $199 a year; the first 50 Founders pay $99 once, after that a Lifetime plan costs $249 once. The first 14 days are free without a credit card, and every payment comes with a 14-day money-back guarantee.
Updated:
Frequently asked questions
Is 30 trades enough for a backtest?
As a first filter, yes; as a verdict, no. In the simulation, systems with a real edge of +0.2R or more still measured zero or less in 17 to 30% of 30-trade backtests.
How many trades do I need to backtest a strategy?
For an edge of about +0.2R per trade, roughly 100 to 300 trades, depending on the win rate. Halving the edge quadruples the number; for +0.05R it runs into the thousands.
Why do low win rate strategies need more trades?
Their results swing more: a few big winners decide the total. With 30% winners at 3R the spread of one trade is about 1.83R, against 0.98R for 60% winners at 1R.
Can I reproduce the simulation?
Yes. The script is published with a fixed seed; running it with Node.js prints exactly the numbers on this page.
Keep reading
$24 a month · $199 a year · $99 once as a Founder (50 spots) · later $249 Lifetime. The first 14 days are free, no credit card.
All pricesReady to face your numbers?
Log your first trade in minutes. 14 days free, no credit card.
Try free for 14 days