Your win rate is a range, not a number.

Your win rate is right, and it is one point inside a range. Type your wins and your decided trades, or drop a statement, and the calculator draws the 95% band around it and counts the trades until it narrows. No account needed.

Test your setup’s sample

Enter your profitable trades and your decided trades (wins plus losses, breakevens left out). The band shows every long-run win rate your sample can’t rule out yet.

Drop your statement here or choose the file

cTrader, MT4, MT5, or TradingView’s trade history (Italian interface for now) · CSV, HTML or .xlsx · Voltrade reads it in your browser and uploads nothing

Voltrade reads column names in English and Italian. In any other language, switch the platform to English and export again.

Or type your numbers:

With losses at 1R. Left empty, the calculator reads breakeven at 1:1.

Examples:
Observed win rate
67.5%
27 wins ÷ 40 decided trades · Example data
Long-run win rates your sample can’t rule out
52.0% – 79.9%
95% band · Wilson score interval, z = 1.96 · exact formula, not simulated
Margin
±13.9 points
Half the band: (79.9 − 52.0) ÷ 2. The band is not centred on your observed win rate.
95% band on a fixed 0 to 100% scalewin rate 67.5% observed · 52.0% to 79.9%
0%50% · breakeven at 1:1100%

Indicative · 20 to 96 decided trades

57 more decided trades to ±10 points

Your band is 27.9 points wide. Your lower bound, 52.0%, clears breakeven at 1:1, a win rate of 50.0%. Whether it’s an edge depends on your average win in R: add it above and the breakeven line moves. 57 more decided trades to ±10 points.

Size from the lower bound, 52.0%, not the observed win rate of 67.5%. If your long-run win rate sits near the bottom of the band, your losing streaks run longer than your log shows, and a size set from the bottom already covers them.

Why the win rate confidence interval uses the Wilson score

Most spreadsheets use the normal approximation, p ± 1.96 · √(p(1−p)/n). On a small sample it breaks. At 3 wins of 3 it gives a margin of ±0.0 points, as if 3 trades had settled it. At 5 wins of 6 its upper bound is a win rate of 113.2%, which cannot exist.

The Wilson score interval stays between 0% and 100% and keeps its width when the sample is small: for the same 5 of 6 it gives a win rate between 43.6% and 97.0%. That width is what lets you size a position on what your sample supports.

Plan the streak before you are in it

Plan for 5 losses in a row within your next 100 trades. That is worked from the cautious end of your band, a loss rate of 48.0%: a run that long turns up in 74.9% of 100-trade stretches. At 1% risk per trade it costs −5% of your account, inside your 10% max drawdown.

Exact, not simulated · 100 trades at a 48.0% loss rate, 1 − the low end of your band · cost = 5 × 1%

Streak to plan for
5
Losses in a row, cautious end of your band, next 100 trades
Losses to your daily limit
5
5% daily loss ÷ 1% per loss
Losses to your max drawdown
10
10% max drawdown ÷ 1% per loss

The streak to plan for is as long as the 5 losses that reach your daily limit, though at 3 trades a day one day can’t hold that many, and 5 losses short of your max drawdown.

This counts trades, not days, and each loss as 1R: it does not know which losses share a day, a trailing drawdown, open positions or costs. The journal uses your real average loss. A description of your sample, not financial advice.

The same band, on every session you log.

In the journal the band redraws with every trade you log, and each session gets its own on the same 0 to 100% scale.

Check your trading export before you import it

Drop the file you exported from cTrader, MT4 or MT5, or the TradingView trade history export made with TradingView in Italian, and Voltrade reads it here, in your browser. You see how many trades it read, which rows it left out and why, and, when the file writes its own P&L total, that total next to the sum of the trades read.

The export made with TradingView in English is untested so far. The journal import reads files with the same parser, so the count you see here is the count a trading journal import starts from.