Win rate is the least useful number on the page
It is the number every dashboard leads with and it means almost nothing on its own. A strategy winning 70% of its trades is unprofitable if its losers are three times the size of its winners. A strategy winning 35% is comfortably profitable if the reverse is true.
Win rate only becomes meaningful when paired with the average size of wins against losses. Displayed alone it encourages exactly the wrong instinct — cutting winners early to keep the percentage up, which is the most reliable way to turn a profitable strategy into a losing one.
What belongs on the page instead
- Profit factor — gross profit divided by gross loss. Above 1.0 is profitable. Shown next to the trade count, because a profit factor over twenty trades is arithmetic rather than evidence.
- Expectancy — the average result per trade, in money. This is the number that tells you what the next trade is worth, and it multiplies cleanly by frequency.
- Maximum drawdown — the largest peak-to-trough fall. The number that tells you whether you could actually have sat through the result.
- Current losing streak, alongside how unusual that length is at the strategy's win rate. Five losses feels like a catastrophe and is usually routine.
- Sample size, everywhere. Every ratio on the page should carry the number of trades it was computed from.
- Realised versus open profit, kept separate. Combining them lets an unrealised gain flatter a day that has not finished.
The live feed matters more than the equity curve
An equity curve tells you what happened. A feed of what the bot is doing right now — the signal it saw, whether it acted, and if not, which limit refused it — tells you whether the system is behaving correctly.
That second thing is what builds justified confidence. Watching the risk gate refuse a trade because the daily loss limit was reached is more reassuring than any profit figure, because it is evidence the controls work rather than a claim that they do.
It is also how you catch problems early. A bot generating signals but taking no trades is either correctly protected or quietly broken, and only a feed showing the refusal reason distinguishes those.
Numbers that mislead
- Annualised returns extrapolated from a short period. Two good weeks projected forward is a guess wearing a number's clothes.
- Cumulative profit with no drawdown alongside it. Both halves are needed to judge either.
- Percentages without the underlying counts. "66% win rate" is three trades.
- A confidence or accuracy score from the strategy, unless it has actually been measured against outcomes. We measured ours across several thousand trades and found it did not predict the result, so we relabelled it rather than let it imply a probability it does not carry.
Alerts, and the discipline of restraint
A dashboard that alerts on everything trains you to ignore it, and then the one alert that mattered arrives into a habit of dismissal. The threshold for interrupting someone should be high.
Worth alerting on: the bot stopping, a protection tripping, a genuinely unusual losing streak, and the daily target being reached. Not worth alerting on: individual wins and losses, which belong in the trade list and nowhere else.
Common questions
What metrics should a trading bot dashboard show?
Profit factor with its trade count, expectancy per trade, maximum drawdown, current losing streak, and realised profit kept separate from open profit. Win rate belongs there too but only alongside the average win and loss sizes.
What is a good profit factor?
Above 1.0 is profitable. Anything above roughly 2.0 on a retail strategy should raise suspicion rather than confidence — it usually indicates a small sample or a fitted result. Always read it next to the number of trades.
What is expectancy?
The average amount a trade is expected to return, calculated from the win rate and the average sizes of wins and losses. It is more useful than win rate because it accounts for both how often you win and how much.
Why does my bot show signals but no trades?
Usually a risk limit is refusing them — the daily loss cap, the trade count cap, or a protection pause. A dashboard should show the refusal reason; if yours does not, you cannot distinguish correct protection from a silent fault.
Trading carries risk and you can lose money. Nothing on this page is financial advice. Past performance does not indicate future results.
