Sample size decides whether anything else means anything
Every ratio on a performance report is a summary of a sample, and small samples produce impressive summaries by chance. A profit factor over twenty trades carries no information. A few hundred trades begins to; a few thousand carries considerably more.
Display the trade count next to every ratio, always. A report that shows a profit factor without its sample size is hiding the only thing that makes it interpretable.
The core measures
- Profit factor — gross profit over gross loss. Above 1.0 is profitable.
- Expectancy — the average money per trade, which multiplies cleanly by frequency to project.
- Maximum drawdown — the largest peak-to-trough decline, which decides whether the return was survivable.
- Win rate with average win and average loss — never win rate alone, which encourages cutting winners early.
- Longest losing streak, alongside how likely that length is at the observed win rate.
Is it an edge or is it noise?
The honest test is to compare against what chance produces. Take the same instrument, the same bars, the same number of trades and the same stops and targets, and enter at random a few hundred times. That gives you a distribution of results luck alone can generate.
If the bot's actual result sits comfortably inside that distribution, the entry timing contributed nothing. This is the single most informative analysis available and it is almost never run, because the answer is frequently unwelcome.
Comparing live results to the backtest
A divergence between live and backtested performance is information rather than bad luck. Look first at execution — the gap between the price the strategy decided on and the price it actually filled at, measured in basis points. If that gap is consistently against you, it is a real per-trade cost no strategy change removes.
If execution is clean and results still diverge, the backtest was flattering: costs missing, sample too small, or the strategy fitted to the data it was tested on.
Common questions
How do I measure trading bot performance?
Profit factor, expectancy per trade, maximum drawdown and longest losing streak — each shown with the number of trades it was computed from. Then compare against random entries on the same data to check the timing carries information.
How many trades before results mean something?
Twenty means nothing. A few hundred begins to be meaningful; a few thousand considerably more. This matters because ratios computed from small samples are impressive by chance.
Why are my live results worse than the backtest?
Usually the backtest omitted costs, used too small a sample, or was tuned on the same data it was judged on. Check execution slippage first — if fills are consistently worse than the decision price, that is a real cost; if they are not, the backtest was flattering.
Trading carries risk and you can lose money. Nothing on this page is financial advice. Past performance does not indicate future results.
