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

# Common Backtesting Pitfalls

> The most common ways traders misread backtests - and how to avoid them.

## Why pitfalls happen

Backtests feel objective because they produce numbers and charts.

But most backtest mistakes come from:

* wrong assumptions (timeframe, execution, intrabar behavior)
* overfitting (optimizing to the past)
* ignoring risk (drawdown, tail losses)
* ignoring data limitations (coverage, gaps, warmup)

This page helps you avoid the traps that create false confidence.

***

## Pitfall 1: Starting with total return

If you start with the biggest number (PnL / CAGR), you will:

* overfit quickly
* ignore risk
* misunderstand behavior

Fix:

* read results in the correct order

<Card title="How to read results" icon="magnifying-glass-chart" href="/backtesting/how-to-read-results" horizontal>
  Use a stable workflow for every backtest.
</Card>

***

## Pitfall 2: Ignoring trade count

A strategy with 7 trades can look incredible by chance.

Fix:

* require a meaningful trade sample
* validate behavior across multiple ranges

<Info>
  Low trade count = high uncertainty.
</Info>

***

## Pitfall 3: Expecting intrabar triggers

Many traders expect:

* entries on candle highs/lows
* instant crossovers mid-candle

Trinigence evaluates logic on **candle close** by default.

Fix:

* design strategies for candle-close evaluation
* validate triggers using trade history

***

## Pitfall 4: Confusing events and states

Common mistake:

* using a crossover (event) as if it were a persistent condition (state)

Example:

* “EMA crosses above EMA” triggers once
* “EMA is above EMA” stays true

Fix:

* use events for triggers
* use states for filters

<Card title="Crossovers & trend changes" icon="shuffle" href="/indicators-logic/crossovers-and-trend-changes" horizontal>
  Events vs states explained clearly.
</Card>

***

## Pitfall 5: Over-filtering the strategy

Too many filters often lead to:

* almost no trades
* misleading metrics
* “perfect” equity curves that are just inactivity

Fix:

* start with a baseline strategy
* add one filter at a time

***

## Pitfall 6: Exit logic dominates (but you don’t notice)

A strategy can appear profitable because:

* TP/SL choices dominate outcomes
* exits are too wide/tight
* one extreme trade drives results

Fix:

* simplify exits
* inspect the biggest wins/losses
* validate distribution, not just averages

***

## Pitfall 7: Over-optimizing parameters

Tuning parameters to maximize past performance often creates:

* fragile strategies
* collapse out of sample
* regime dependence

Fix:

* small parameter changes should not destroy performance
* test across multiple time ranges
* prefer robust parameter zones

<Card title="Indicator parameters" icon="sliders" href="/indicators-logic/indicator-parameters" horizontal>
  Understand how parameters change behavior.
</Card>

***

## Pitfall 8: Ignoring data coverage and warmup

Common symptoms:

* “strategy doesn’t trade early in the backtest”
* “results look broken in old periods”
* “backtest range got adjusted”

Fix:

* confirm data coverage
* understand indicator warmup behavior

<Card title="Data coverage" icon="database" href="/backtesting/data-coverage" horizontal>
  Learn how coverage affects results.
</Card>

***

## Pitfall 9: Assuming one market equals all markets

A strategy that works on BTC may fail on:

* ETH
* altcoins
* other volatility regimes

Fix:

* test on multiple markets
* look for behavior consistency, not peak returns

***

## Pitfall 10: Ignoring drawdown duration

Many traders only look at max drawdown, not how long it lasts.

A strategy can have:

* acceptable max drawdown
* but extremely long recovery periods

Fix:

* evaluate drawdown duration alongside max drawdown

***

## Quick self-check

Before trusting a backtest, ask:

* Do I understand the first 10 trades?
* Do I have enough trades for confidence?
* Is risk acceptable (DD + duration + tail trades)?
* Does it work across multiple ranges?
* Does it survive small parameter/timeframe changes?

***

## What to read next

<CardGroup cols={2}>
  <Card title="How to read results" icon="magnifying-glass-chart" href="/backtesting/how-to-read-results">
    A step-by-step workflow.
  </Card>

  <Card title="Metrics explained" icon="chart-column" href="/backtesting/metrics-explained">
    Interpret numbers correctly.
  </Card>

  <Card title="Trade history & logs" icon="list-check" href="/backtesting/trade-history-and-logs">
    Debug trade-by-trade.
  </Card>

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

<Note>
  The easiest backtests to believe are often the most dangerous.
</Note>
