> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trinigence.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Read Backtest Results

> A step-by-step method to interpret Trinigence backtest results without fooling yourself.

## 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**

<Info>
  If you start with total return, you will overfit. Every time.
</Info>

***

## 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.

<Card title="Strategy structure overview" icon="diagram-project" href="/strategy-structure/overview" horizontal>
  Verify what you actually tested.
</Card>

***

## 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?

<Card title="Metrics explained" icon="chart-column" href="/backtesting/metrics-explained" horizontal>
  Understand what each risk metric means.
</Card>

***

## 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:

<Steps>
  <Step title="Extend the backtest range">
    If results collapse when you add more history, the edge is likely regime-specific or overfit.
  </Step>

  <Step title="Change timeframe slightly">
    If a strategy only works on one exact timeframe, it may be fragile.
  </Step>

  <Step title="Change parameters slightly">
    If small parameter changes destroy performance, it’s likely over-optimized.
  </Step>
</Steps>

<Info>
  Robust strategies degrade gracefully.
</Info>

***

## 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:

<AccordionGroup>
  <Accordion title="Confirm timeframe and candle-close behavior">
    Many users expect intrabar triggers. Trinigence evaluates on candle close by default.
  </Accordion>

  <Accordion title="Inspect trade history">
    If you can’t explain the first 10 trades, you can’t trust the metrics.
  </Accordion>

  <Accordion title="Remove filters temporarily">
    Filters often eliminate most trades. Validate baseline logic first.
  </Accordion>

  <Accordion title="Simplify exits and risk">
    Exits often dominate outcomes. Simplify and test again.
  </Accordion>
</AccordionGroup>

<Card title="How backtesting works" icon="chart-line" href="/backtesting/how-backtesting-works" horizontal>
  Understand what the simulator is actually doing.
</Card>

***

## 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

<CardGroup cols={2}>
  <Card title="Trade history & logs" icon="list-check" href="/backtesting/trade-history-and-logs">
    Debug strategy behavior trade-by-trade.
  </Card>

  <Card title="Common pitfalls" icon="triangle-exclamation" href="/backtesting/common-pitfalls">
    The most frequent mistakes and misreads.
  </Card>

  <Card title="Improving a strategy" icon="sliders" href="/iteration-optimization/improving-a-strategy">
    Iterate without overfitting.
  </Card>

  <Card title="Data coverage" icon="database" href="/backtesting/data-coverage">
    Ensure the backtest window is valid.
  </Card>
</CardGroup>

<Note>
  If you can’t explain your trades, you don’t understand your strategy yet.
</Note>
