Skip to main content

How to Read a Backtest, Metric by Metric

A walk across the results panel — what each metric means, what counts as good, and when it will mislead you. Ends with a checklist you can use right after every run.

8 min read

When a backtest finishes you get a row of metric cards, an equity curve and a trade list. This walks through them in order of importance.

First, two questions about eligibility

Before interpreting any return figure, confirm that this run is even eligible for interpretation.

Trade count. With only a dozen trades, no result should be taken seriously — that is a record of luck, not a property of the strategy. The practical threshold is 30 trades to start, 100+ for statistical meaning. When the count is too low, the fix is a longer window or more symbols, never more parameter tuning.

Test window. A history covering only a one-way advance cannot demonstrate the value of any risk rule. A good window contains at least one clear decline. Watch the data start date too — consolidated daily bars on this platform begin 2024-07-01, and we will not pretend to conclusions from before that.

Fail either of these and every number below is decoration.

Return metrics

Total return — cumulative return over the window. It only means something next to the benchmark. In a strongly rising market any long-biased strategy shows a positive number.

Annualised return — total return expressed per year. The shorter the window, the less reliable: 10% over three months annualises to 46%, and that figure represents nothing sustainable.

Benchmark return — buy-and-hold on the same symbol over the same window. This is what you get for doing nothing.

Excess return — strategy minus benchmark. Negative means all that effort underperformed doing nothing. Do not dismiss the strategy immediately, though — check whether its max drawdown is materially shallower.

Risk metrics

Max drawdown — the largest peak-to-trough decline of the account. This is the number on the panel that most deserves your attention, because people quit during drawdowns, not during gains.

Drawdown arithmetic is asymmetric. Memorise this:

DeclineGain needed to recover
-20%+25%
-30%+43%
-50%+100%

For a strategy with 20% annualised return and a 55% max drawdown, ask honestly: if the account halves and then stagnates for a year, will you switch it off? If yes, your real annualised return is whatever it was on the day you quit.

Benchmark max drawdown — buy-and-hold's drawdown over the same window. Reading the two side by side is the fastest way to judge the strategy:

  • Higher return, shallower drawdown → worth pursuing.
  • Slightly lower return, materially shallower drawdown → a risk-preference trade-off; depends what you want.
  • Lower return and deeper drawdown → drop it; do not try to rescue it with parameters.

Sharpe ratio — return divided by volatility. It assumes normally distributed returns, while trend-following returns are right-skewed and fat-tailed, so Sharpe systematically understates strategies of this kind: large upside moves land in the denominator too. Useful for comparing similar styles, unreliable across styles.

Trade quality metrics

Win rate — share of profitable trades. The most misread number on the panel. Trend-following win rates of 35%–45% are normal, not a problem. On seeing a low win rate, the next step is to check the profit factor, not to close the tab.

Profit factor — gross profit divided by gross loss:

  • Below 1.0 — the strategy loses money.
  • 1.0–1.3 — most likely does not survive commissions and slippage.
  • Above 1.5 — worth further study.

Win rate and profit factor must be read together. A strategy winning 80% of trades with +1% wins and −6% losses loses steadily; one winning 35% with +9% wins and −3% losses gains steadily.

Average holding period — in trend following, winners should be clearly longer than losers. If they are similar, the exit rule is cutting trends along with the noise.

Reading the equity curve

Do not just look at the endpoint. Look at three things:

  1. Whether the gains are concentrated in a few segments. They should be: long flat stretches punctuated by occasional steep advances. A suspiciously smooth curve usually means costs were understated or look-ahead bias is present.
  2. How long the deepest drawdown lasted. Depth is survivable, length often is not. Flat periods of six months or more are normal here — decide whether you can sit through them.
  3. Its shape relative to the benchmark curve. Is the strategy visibly flatter during declines? If so, that is where its value lies.

What to look for in the trade list

Sort by profit and check what share of total return came from the top two or three trades. In trend following this share is usually high. If removing the single best trade makes the strategy unprofitable, the conclusion depends heavily on one event and its robustness is questionable.

Also check the largest single loss: does it clearly exceed the stop distance? If so, a gap probably went through the stop — a risk no parameter change can remove.

The post-run checklist

  1. Trade count ≥ 30? Does the window contain a clear decline?
  2. Is excess return positive or negative? If negative, is the drawdown materially shallower?
  3. Can I genuinely bear that max drawdown? How long did it last?
  4. If the win rate is low, does the profit factor compensate?
  5. Are commissions and slippage included? Does the conclusion survive one notch higher cost?
  6. Does the conclusion hold on a different symbol and a different window?

If any one of the six has no answer, what you are holding is not a conclusion yet. It is a chart.

For a deeper look at why "tune until it looks good" is self-deception, read Three Traps in Backtesting: Survivorship Bias, Look-Ahead Bias, Overfitting.

This article is for quantitative research and educational purposes only and does not constitute investment advice. Historical backtest results do not represent future returns; trading risk is borne entirely by the investor.

After this

The Research section goes deeper, including the common traps in backtesting and how data conventions change your results.