Why a 90% Win Rate Crypto Trading Bot Can Still Lose You Money (And What to Ask Instead)

By Felix Götz, Co-Founder and CTO of ArrowTrade AG, building unCoded since 2016 in crypto trading.
Disclosure: I'm Co-Founder and CTO of ArrowTrade AG, the company behind unCoded. This article is about a metric the whole industry abuses, including in ways that make my own platform's backtests look more impressive than they should at first glance. I'll be honest about that too. This is not financial advice.
If someone tries to sell me a crypto trading bot with a 90% win rate or higher in 2026, my first thought is not "wow, that's impressive." My first thought is "okay, brother, where exactly are you hiding the bodies?"
Because in crypto, this one number gets romanticized beyond all reason. Look around and it's always the same figure. 88% win rate. 92% win rate. 95% win rate. Sometimes, as we'll get to, all the way up to 100%. It sounds brutally good. More than that, it sounds safe. It sounds like someone solved the market.
And it can still be complete garbage.
The longer you actually work with bots, the more you understand why a high win rate tells you almost nothing on its own. Let me walk through what the number actually measures, how it gets faked, why a worse-looking win rate is often the better system, the small framework of metrics that matter more, and the five questions I'd ask before trusting any bot ever again.
What a win rate actually measures (and what it doesn't)
The problem is genuinely simple once you see it.
Win rate only tells you how often a trade closes in profit. That's it. It does not tell you how expensive it gets when a trade goes wrong.
Those are two completely different things, and the gap between them is where accounts quietly bleed out. A win rate is a count. It says "X out of 100 trades closed green." It says nothing about the size of the wins versus the size of the losses. And in trading, size is everything.
You can be right 90 times out of 100 and still lose money. You can be wrong 60 times out of 100 and get rich. The win rate alone cannot distinguish between these two outcomes, which is exactly why it's such a comfortable number to put on a marketing page and such a useless one to make decisions on.
The 90% win rate that loses money
Let me make this concrete with the simplest possible example.
Picture 100 trades. 90 of them close with a profit of 10 dollars each. That's 900 dollars in winnings. Sounds great. Sounds like a 90% win rate doing its job.
Now look at the 10 losers. Say each one loses 150 dollars on average. That's 1,500 dollars gone.
900 dollars in wins, 1,500 dollars in losses. Your account is down 600 dollars. With a 90% win rate.
That's the illusion in one picture. A beautiful hit rate sitting on top of an ugly loss structure. The win rate is real, the trades did close green 90% of the time, and you still lost money. Nobody selling you the 90% number puts the loss structure next to it, because the loss structure is where the truth lives.
How you mechanically fake a high win rate
Here's the part that's genuinely uncomfortable, especially for me to write as someone who builds a bot.
A dream win rate is mechanically easy to manufacture. You just don't allow losses to close.
The trick is simple. You hold every position open until it can be sold in profit, and only then do you sell it. Positions that go against you don't get closed at a loss. They get held, indefinitely, waiting for a bounce. On paper, every trade that closes is a winner, because you never let a loser close. You can drive the win rate straight to 100% this way.
I'll show you this honestly using our own backtesting. When you look at unCoded's best strategies in the backtester, you'll often see a 100% win rate. That sounds incredible until you understand what's actually happening underneath. With certain stop loss settings disabled, the system only ever closes trades in profit. There is always a portion of positions that simply isn't sold yet, or only sells with a long time delay once the price recovers.
In plain terms: a 100% win rate, on its own, can just mean bagholding. The bot isn't selling at a loss. It's hoping for a bounce back into the green. That's not a magic strategy. That's a deferral of the loss into "unrealized" territory where it doesn't show up in the win rate column.
This is exactly why context matters more than the number. At unCoded we have a feature called Sell Time Curves, which I've covered in its own video, built specifically to prevent positions from sitting in limbo forever. And in the backtester, the win rate is meant to function as a tuning tool, not a trophy. If you run a strategy with a trailing stop loss or a hard stop loss and the win rate drops to, say, 95%, that drop is information. It tells you where and how losses are actually occurring, so you can adjust your stop settings accordingly. The number is useful precisely because it moves when you change your risk rules.
So I'm not telling you win rate is worthless. I'm telling you it's only meaningful in context, and that a naked 100% with stops switched off is the least meaningful version of all.
Why a 40% win rate can beat a 90%
Now the counterintuitive part, the part that hasn't really landed for most people in crypto yet.
A system with a 40% win rate can be far better than one with a 90% win rate. What matters is the relationship between your average win and your average loss, which comes down to your individual settings.
The math is brutally clear. Suppose you risk 100 dollars on each trade but make 300 dollars when you're right. Now run 100 trades with only 40 winners and 60 losers. The 40 winners bring in 12,000 dollars. The 60 losers cost you 6,000 dollars. You're up 6,000 dollars, with a win rate of just 40%.
So yes, you're wrong more often than you're right, and you make more money anyway.
This is a strange thought for a lot of crypto traders, because emotionally we would rather be right than manage risk cleanly. Being right feels good. A high win rate feels like validation. But the market does not pay you for feeling good often. It pays you for keeping your mistakes cheap. A trader who is wrong 60% of the time but loses small and wins big will quietly outperform the one chasing a pretty hit rate with no control over the downside.
The framework: win rate is one number among several
Win rate is one metric, and on its own it's the weakest one. Here are the three that usually matter more. Together they form a small framework you can run any bot through.
Expectancy. This is the number the win rate has been hiding the whole time. Expectancy is your average profit per trade, accounting for both how often you win and how much you win or lose:
Expectancy = (win rate × average win) − (loss rate × average loss)
Run our two earlier examples through it. The 90% win rate bot: (0.90 × 10) − (0.10 × 150) = 9 − 15 = minus 6 dollars per trade. Negative. The 40% win rate bot: (0.40 × 300) − (0.60 × 100) = 120 − 60 = plus 60 dollars per trade. Strongly positive. Same two systems, and expectancy tells you in a single number what the win rate actively obscured. The first one loses 6 dollars every time it trades. The second one makes 60. Positive expectancy is the entire game. Everything else is detail.
Profit factor. Gross profit divided by gross loss, in absolute terms. It tells you the magnitude story instead of the count story. Below 1.0 means you're losing money. Above 1.5 is decent. Above 2.0 is strong. Our 90% bot has a profit factor of 900 divided by 1,500, which is 0.6, a losing system. Our 40% bot sits at 12,000 divided by 6,000, which is 2.0. The win rates said 90 beats 40. Profit factor says the opposite, and profit factor is right.
Maximum drawdown. The largest peak-to-trough drop in your account during the test, measured against the total. This is the metric that tells you whether you'd actually have survived the strategy, both financially and psychologically. I'll come back to why deep drawdowns are so dangerous in a moment, because the recovery math is worse than most people expect.
Put those three next to the win rate and the picture changes completely. A 90% win rate with negative expectancy, a profit factor under 1, and a deep drawdown is a losing system wearing a winning costume. A 40% win rate with positive expectancy, a profit factor above 2, and a controlled drawdown is the one you actually want. Win rate is one number among several, and the others are usually more important.
Look at the whole model, not the headline number
In practice, this is how you put that framework to work. You look at the whole model instead of stopping at the win rate.
Take Bitcoin as an example in the backtester. I'm not going to glance at "100% win rate" and feel clever. I'm going to look at the equity curve, which tells me how much profit I'm actually making per trade and how that profit accumulates over time. I can drill down into individual trades, see the take profits, and understand the shape of the returns. If the strategy weren't at 100%, I'd see the negative trades displayed there too, and that's exactly what I want to see, because it tells me how my risk is actually behaving under my specific settings.
The win rate is one cell in a spreadsheet. The expectancy, the profit factor, the equity curve, and the drawdown profile are the actual story.
The five questions to ask before trusting any bot
From today onward, when you look at any crypto trading bot, ask the same five questions. These also appear in the practical checklist of this topic on our site.
How big is the average win compared to the average loss? This ratio matters more than the win rate, because it's what feeds expectancy and profit factor, the two numbers that actually decide whether the system makes money. A 50% win rate with a 2-to-1 win/loss ratio is a strong system. A 90% win rate with a 0.1-to-1 ratio is a disaster waiting to happen.
Is there a hard exit, or do red positions just get sat on? A bot that never closes losers is manufacturing its win rate through bagholding. With unCoded specifically, this comes down to your individual stop loss settings, which is why I want you to understand them rather than just trust a number.
How high is the maximum drawdown relative to the total account? This is your survival metric. It tells you how deep the hole got at the worst point, which is what actually threatens your capital.
What happens when five losing trades hit in a row? Losing streaks happen. They can happen because of bad luck, or because an exchange like Binance delivers data too slowly during a fast move. A robust system survives a cluster of losses. A fragile one doesn't.
Do you only see closed winning trades, or is there floating red hidden somewhere? This is the bagholding check again, from the other direction. Closed winners look beautiful while unrealized losses pile up out of view.
If a bot can't answer these five honestly, the win rate it's advertising is decoration.
The regulatory reality check on backtests
This isn't just my opinion. The SEC, the NFA, and the CFTC have warned for years about reading backtests and hypothetical results too uncritically.
The reasons are exactly the ones above. These presentations are built with hindsight. They don't reflect the real psychological pressure of live losses, where you might pull capital at the worst possible moment. And costs like spreads, fees, and real execution slippage can distort the picture between what the backtest shows and what actually happens in your account.
A backtest is extremely useful. I built an entire honest backtesting system because I believe in it. But it is not an oracle. You have to be able to interpret the data it gives you, and honestly, tools like ChatGPT can help you reason through a backtest's numbers if you're not sure what you're looking at. The backtest is a sanity check, not a guarantee.
The drawdown math that kills accounts
Here's the one sentence I'd really like you to take away from this. The deeper the drawdown, the harder the recovery.
We put it simply in our drawdown article, and the arithmetic is unforgiving:
A 10% loss needs an 11.1% gain just to get back to even.
A 20% loss needs a 25% gain.
A 50% loss needs a 100% gain, a full double, only to return to where you started.
This is why accounts don't die from one small wrong decision. They die from the big loss structure that was ignored beforehand, the structure that a shiny 90% win rate conveniently hid. This is also why maximum drawdown belongs in your core framework next to expectancy and profit factor. By the time the drawdown is deep, the climb back is so steep that the account often never recovers. The win rate said everything was fine right up until it wasn't.
The honest summary
A high win rate is the most seductive and least informative number in crypto bot marketing. It tells you how often trades close green. It tells you nothing about how much you lose when they don't. You can post a 90% win rate and still bleed money, and you can manufacture a 100% win rate simply by refusing to ever close a loser, which is just bagholding with better optics.
The fix is to stop treating win rate as the headline and start treating it as one input among several. Expectancy tells you whether the system makes money per trade. Profit factor tells you the magnitude of wins against losses. Maximum drawdown tells you whether you'd have survived it. Those three usually matter more than the win rate, and when they disagree with a pretty hit rate, they are the ones telling the truth.
I'll hold my own platform to the same standard. When you see 100% in the unCoded backtester, that is a tuning signal with stops disabled, not proof of a money machine. Turn on real risk rules, watch the number move, and read the expectancy, the profit factor, and the drawdown instead of falling in love with the headline.
So the next time someone holds a 95% win rate or higher in front of your face, don't ask the first question everyone asks. Don't ask how often the bot wins. Ask how ugly it gets when it loses. That's the adult question, and it's the right one.
That single question is where the pretty dashboard separates from the system you can actually trust with real money.
Felix Götz is Co-Founder and CTO of ArrowTrade AG, the company behind unCoded. A self-hosted, non-custodial crypto trading bot with profit-sharing pricing, operating from Switzerland under the Swiss DLT regulatory framework. Documentation at uncoded.ch/docs. Public backtest data at uncoded.ch/backtesting. This article reflects personal experience and is not financial advice.
Recommended Reading

Binance Grid Bots vs unCoded: Smarter Trading, or Just Extra Steps?
By Felix Götz, Co-Founder and CTO of ArrowTrade AG, building unCoded since 2016 in crypto trading. D...

Bitcoin 2030: An Honest Look at the $1 Million Hype, the Real Risks, and Why Hodl-and-Pray Isn't a Strategy
By Felix Götz, Co-Founder and CTO of ArrowTrade AG, building unCoded since 2016 in crypto trading. D...

Binance API Security: A Masterclass in Asset Protection
By Tommy Tietze, CEO of ArrowTrade AG The architecture of modern cryptocurrency trading relies entir...

Averaging Down vs. DCA: The Path to Total Loss
By Tommy Tietze, CEO of ArrowTrade AG Many traders use the term "DCA" to feel better about losing mo...

Crypto Correlation: Why Altcoins Follow BTC
By Tommy Tietze, CEO of ArrowTrade AG A crypto portfolio can look diversified on paper and still beh...

Position Sizing in Crypto Trading
By Tommy Tietze, CEO of ArrowTrade AG Many traders spend hours searching for the perfect entry. They...

The rsETH Heist: Turning Bridges Into Exit Liquidity
On April 17–18, 2026, roughly 116,500 rsETH – about 292 million USD at the time – were effectively “...

Best Crypto Trading Bot Switzerland 2026: What Actually Matters If You're Trading from Swiss Soil
By Felix – founder of unCoded, ArrowTrade AG, Switzerland. Trading crypto since 2016. If you're base...