Skip to main content

The goal of reading results

Backtest results are not a score. They are a diagnostic tool. Your goal is to answer:
  • Did the strategy behave as intended?
  • Is there an edge, or just noise?
  • Is the risk acceptable?
  • Is it stable across conditions?

The correct reading order

Follow this order every time:
  1. Inputs & assumptions
  2. Trade activity
  3. Equity curve
  4. Risk (drawdown + tail trades)
  5. Edge (profit factor + expectancy)
  6. Return quality (Sharpe/Sortino)
  7. Stability checks
  8. Only then: total return / CAGR
If you start with total return, you will overfit. Every time.

Step 1: Verify inputs

Before you read any chart, confirm:
  • market (symbol)
  • timeframe
  • backtest date range
  • direction (long/short/both)
  • schedule/filters (if any)
  • exits and risk rules
Most “wrong results” are input misunderstandings.

Strategy structure overview

Verify what you actually tested.

Step 2: Check trade activity

Start with:
  • trade count
  • exposure time
  • average trade duration
Red flags:
  • very low trade count (results meaningless)
  • extreme exposure (strategy always in the market)
  • trades lasting far longer than intended

Step 3: Look at the equity curve

The equity curve tells you behavior shape. Healthy signals:
  • smooth-ish progression
  • recoveries after drawdowns
  • no single trade dominates results
Red flags:
  • one huge spike (one trade drives all returns)
  • long flat periods (no edge or too many filters)
  • sudden structural change (regime dependence)

Step 4: Read risk like an investor

Risk is not drawdown only. Look at:
  • max drawdown
  • drawdown duration
  • largest loss (worst trade)
  • losing streak behavior (if available)
Ask:
  • Could you stay in this strategy during this drawdown?
  • Would you stop it at the worst time?

Metrics explained

Understand what each risk metric means.

Step 5: Check edge metrics

Now evaluate whether the strategy has an edge. Look at:
  • profit factor
  • expectancy
  • average win vs average loss
  • win rate (in context)
A common trap:
  • high win rate with low profit factor = fragile and likely losing

Step 6: Check quality of returns

If the edge looks real, check:
  • Sharpe ratio
  • Sortino ratio
  • Calmar ratio (if available)
These help compare strategies with different volatility and drawdowns.

Step 7: Stability checks

Before trusting the result, test stability:
1

Extend the backtest range

If results collapse when you add more history, the edge is likely regime-specific or overfit.
2

Change timeframe slightly

If a strategy only works on one exact timeframe, it may be fragile.
3

Change parameters slightly

If small parameter changes destroy performance, it’s likely over-optimized.
Robust strategies degrade gracefully.

Step 8: Only then look at total return

Total return and CAGR matter, but only after:
  • edge exists
  • risk is acceptable
  • stability is proven
Otherwise you’re just rewarding noise.

Debug workflow when results look wrong

If results don’t match expectation:
Many users expect intrabar triggers. Trinigence evaluates on candle close by default.
If you can’t explain the first 10 trades, you can’t trust the metrics.
Filters often eliminate most trades. Validate baseline logic first.
Exits often dominate outcomes. Simplify and test again.

How backtesting works

Understand what the simulator is actually doing.

Best practices

  • Save a baseline version of each strategy
  • Compare strategies on the same date range
  • Avoid optimizing on a single period
  • Always cross-check metrics with the trade list

If you can’t explain your trades, you don’t understand your strategy yet.