Profit Factor vs Win Rate for Trading Bots
Profit factor is usually the more useful of the two, because it measures whether a bot's wins are bigger than its losses. Win rate only tells you how often it wins. Neither number is enough alone, though. A bot can win 80% of its trades and still lose money, and a bot that wins 35% of the time can come out ahead. This guide explains both metrics, how they relate, and how to use them together without fooling yourself.
What win rate actually measures
Win rate is the share of closed trades that ended in profit:
- Win rate = winning trades ÷ total trades
It is easy to understand and easy to market, which is why bot sellers love to quote it. But it ignores two things that decide whether a strategy makes or loses money:
- How big the wins are compared with the losses
- How much each trade costs in fees, funding and slippage
A high win rate often comes from taking profit quickly and letting losers run. That produces lots of small wins and a few large losses. The equity curve looks smooth for weeks, then one bad trade wipes out a month of gains.
What profit factor actually measures
Profit factor compares the money made on winning trades with the money lost on losing trades:
- Profit factor = gross profit ÷ gross loss
How to read it:
- Below 1.0: the bot lost money over the sample
- Exactly 1.0: break-even before anything else goes wrong
- Above 1.0: winners outweighed losers over the sample
Profit factor captures both how often a bot wins and by how much. That makes it a better first summary than win rate. It still has weaknesses, which we cover below.
The link between them: expectancy
The cleanest way to connect the two metrics is expectancy, the average result per trade:
- Expectancy = (win rate × average win) − (loss rate × average loss)
From it you can work out the break-even win rate for any payoff profile:
- Break-even win rate = average loss ÷ (average win + average loss)
This one formula answers most "is this win rate good?" questions. A 70% win rate is excellent if the average loss equals the average win. It is a losing system if the average loss is five times the average win.
Worked example: two bots, opposite profiles
Illustration only. The numbers below are made up to show the maths. They are not BOTLAB results and do not describe any real bot.
Imagine two bots, each tested on 100 trades.
Bot A: high win rate, small wins, big losses
- Win rate: 80% (80 wins, 20 losses)
- Average win: $10
- Average loss: $50
Calculations:
- Gross profit = 80 × $10 = $800
- Gross loss = 20 × $50 = $1,000
- Profit factor = 800 ÷ 1,000 = 0.80
- Expectancy = (0.80 × 10) − (0.20 × 50) = 8 − 10 = −$2 per trade
- Break-even win rate = 50 ÷ (10 + 50) = 83.3%
Bot A wins four trades out of five and still loses money. It needs to win more than 83% of the time just to break even.
Bot B: low win rate, big wins, small losses
- Win rate: 35% (35 wins, 65 losses)
- Average win: $30
- Average loss: $10
Calculations:
- Gross profit = 35 × $30 = $1,050
- Gross loss = 65 × $10 = $650
- Profit factor = 1,050 ÷ 650 ≈ 1.62
- Expectancy = (0.35 × 30) − (0.65 × 10) = 10.5 − 6.5 = +$4 per trade
- Break-even win rate = 10 ÷ (30 + 10) = 25%
Bot B loses almost two trades out of three. Over this sample its winners more than covered the losers.
Now add costs
Suppose fees and slippage cost $1 per round trip (again, an illustration):
- Bot A expectancy falls from −$2 to −$3 per trade
- Bot B expectancy falls from +$4 to +$3 per trade
Costs hurt every strategy, but they hurt high-frequency, small-target strategies the most. If a bot's average win is only a little larger than its round-trip cost, a modest rise in fees or slippage can flip it negative. Always check whether a reported profit factor is net of fees.
Why each metric can mislead you
Win rate traps
- Hidden tail risk. Strategies with no stop-loss, or with averaging-down, can show very high win rates until one large loss arrives.
- Survivorship in short samples. A few weeks without a big adverse move can make a fragile bot look brilliant.
- Psychological comfort. Frequent small wins feel good, which makes people overlook the size of the losses.
Profit factor traps
- Small samples. With 20 trades, one lucky outlier can push profit factor from 1.1 to 2.5. The number is only as reliable as the number of trades behind it. See How Many Trades Does a Backtest Need?.
- Outlier dependence. If removing the single best trade drops profit factor below 1.0, the "edge" may be one lucky event.
- Gross vs net. A profit factor calculated before fees can be very different from what you'd actually see.
- Overfitting. Tune enough parameters on one dataset and you can make almost any profit factor look good. It usually falls apart on new data.
- Market beta. A long-only bot in a rising market can show a strong profit factor simply because prices went up. That is exposure to the market, not a proven edge.
How to judge a bot using both numbers
Use this checklist when you look at any bot's results, including your own:
- Get the trade count and the period first. No trade count, no conclusion.
- Read win rate together with average win and average loss. Calculate the break-even win rate and compare.
- Check profit factor is net of costs. Ask what fee level and slippage were assumed.
- Remove the best one or two trades. Recalculate profit factor. If it collapses, be cautious.
- Look at the worst losing streak and max drawdown. A good profit factor with a drawdown you couldn't sit through is not usable.
- Compare to simply holding the asset. If the bot did roughly what the market did, it may have no edge of its own.
- Prefer out-of-sample or forward results. A backtest is a hypothesis. Paper trading on live prices is a better test, and it is still not proof. Our Paper trading, explained post covers the difference.
How we apply this at BOTLAB
We don't treat a high win rate as evidence by itself. Every bot we track has to pass 6 statistical gates (G1–G6), defined on the site, before it is labelled "ready for micro live". As of our latest build, 101 of the 102 bots we track are marked not ready.
A real example of why win rate alone isn't enough: in paper trading (simulated money, real market prices) from 2026-08-16 to 2026-10-03, our mr4h/long bot recorded 53 trades with an 81.1% win rate and passed 6 of 6 gates. Our own verdict is still "sample too small to conclude". Another bot, botGPT/dir2s, had a 39.0% win rate over 41 paper trades (2026-09-17 to 2026-10-06), and our verdict there is "market beta, no proven edge". A high or low win rate doesn't settle the question either way. You can follow the mr4h/long paper update.
If you want to run your own bot's trade list through these kinds of checks, try the free tool: Check your bot.
FAQ
What is a good profit factor for a crypto trading bot?
There is no universal "good" number. A net profit factor above 1.0 means winners outweighed losers in that sample. How much that matters depends on the trade count, whether fees are included, how much the result depends on a few outliers, and whether it holds up on data the bot was not tuned on. A high profit factor on a small sample deserves extra suspicion.
Can a bot with a 90% win rate lose money?
Yes. If the average loss is more than nine times the average win, a 90% win rate loses money. Use the break-even formula, average loss ÷ (average win + average loss), to check.
Is a low win rate a red flag?
Not by itself. Trend-following strategies often win less than half their trades and rely on occasional large winners. The real questions are whether the average win is large enough to cover the losses and costs, and whether you could tolerate the losing streaks that come with a low win rate.
Should I use profit factor or expectancy?
Use both. Profit factor is a ratio and is easy to compare across bots. Expectancy tells you the average result per trade in money or R terms, which makes the impact of fees easier to see. Both need a sufficient trade count to mean anything.
Key takeaways
- Win rate tells you how often a bot wins. Profit factor tells you whether the wins outweigh the losses.
- Always calculate the break-even win rate from average win and average loss.
- Use profit factor net of fees and slippage, and check that it survives removing the best trades.
- Small samples make both metrics unreliable. Look at trade count and period first.
- A strong-looking metric can just be market beta or overfitting. Forward and paper results are better evidence, but they are still not proof.
Not available in restricted jurisdictions (see the Service Agreement). You trade with your own exchange account; BOTLAB never holds funds.
Paper trading results are simulated. Past results don't predict future results. Crypto trading can lose money, including all capital. Not financial advice.
More guides
Check your bot free