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:- Inputs & assumptions
- Trade activity
- Equity curve
- Risk (drawdown + tail trades)
- Edge (profit factor + expectancy)
- Return quality (Sharpe/Sortino)
- Stability checks
- 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
Strategy structure overview
Verify what you actually tested.
Step 2: Check trade activity
Start with:- trade count
- exposure time
- average trade duration
- 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
- 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)
- 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)
- 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)
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
Debug workflow when results look wrong
If results don’t match expectation:Confirm timeframe and candle-close behavior
Confirm timeframe and candle-close behavior
Many users expect intrabar triggers. Trinigence evaluates on candle close by default.
Inspect trade history
Inspect trade history
If you can’t explain the first 10 trades, you can’t trust the metrics.
Remove filters temporarily
Remove filters temporarily
Filters often eliminate most trades. Validate baseline logic first.
Simplify exits and risk
Simplify exits and risk
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
What to read next
Trade history & logs
Debug strategy behavior trade-by-trade.
Common pitfalls
The most frequent mistakes and misreads.
Improving a strategy
Iterate without overfitting.
Data coverage
Ensure the backtest window is valid.
If you can’t explain your trades, you don’t understand your strategy yet.