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

# Why Results Differ

> Why your backtest results may differ from expectations or other platforms - and how to diagnose it.

## When “different results” are normal

Different backtest results are not always a bug.

Results can differ because of:

* different data sources and coverage
* different evaluation timing (close vs intrabar)
* different execution assumptions (fills, fees, slippage)
* different indicator implementations or defaults
* different position sizing rules

This page shows the most common causes and a simple diagnostic flow.

***

## 1) Data source and coverage differences

Two platforms rarely use identical historical data.

Differences may include:

* missing candles or gaps
* different exchange source
* different candle construction rules
* different listing start dates

Fix:

* confirm the backtest range and data coverage

<Card title="Data coverage" icon="database" href="/backtesting/data-coverage" horizontal>
  Understand what data your test is using.
</Card>

***

## 2) Timeframe mismatch

A strategy is defined on a timeframe.

Even a small mismatch (15m vs 1h) changes:

* indicator values
* crossover points
* trade count
* volatility profile

Fix:

* confirm the exact timeframe used on both sides
* do not compare a “similar” timeframe

***

## 3) Candle-close vs intrabar evaluation

Many platforms allow intrabar logic or simulate fills inside candles.

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

Impact:

* entries and exits may happen later than expected
* crossovers trigger only when present at close
* stop/take profit behavior may differ if another tool assumes intrabar fills

Fix:

* compare on candle-close mode where possible
* validate trades, not just metrics

<Card title="How backtesting works" icon="chart-line" href="/backtesting/how-backtesting-works" horizontal>
  Learn the evaluation model behind the simulator.
</Card>

***

## 4) Indicator defaults and parameter differences

Indicators often have:

* default lengths
* smoothing rules
* internal calculation variants

Example:

* one tool uses EMA smoothing for RSI
* another uses Wilder’s smoothing (standard)

Fix:

* explicitly specify parameters in your strategy description
* avoid relying on “platform defaults”

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

***

## 5) Execution assumptions (fees, slippage, fill model)

Even with identical trades, results differ due to execution modeling:

* maker/taker fees
* slippage assumptions
* limit vs market fill behavior
* partial fills vs full fills

Fix:

* compare settings side-by-side
* ensure fees and slippage are aligned

<Info>
  If one platform assumes zero fees and the other includes fees, results can diverge significantly.
</Info>

***

## 6) Position sizing differences

PnL depends on sizing.

Differences can come from:

* fixed size vs % of equity
* compounding vs static sizing
* leverage assumptions
* one-trade-at-a-time vs multiple positions

Fix:

* compare normalized metrics (profit factor, expectancy)
* align sizing rules when comparing PnL

***

## 7) Schedule & filters differences

Time filters can silently eliminate trades.

Examples:

* “weekdays only” applied in one platform but not in another
* timezone differences shift session windows

Fix:

* compare schedule definitions
* confirm timezone

<Card title="Time & session logic" icon="calendar-clock" href="/indicators-logic/time-and-session-logic" horizontal>
  Understand session/time rules and timezone impact.
</Card>

***

## A fast diagnosis workflow

When results differ, do this:

<Steps>
  <Step title="Verify market, timeframe, date range">
    Confirm symbol, timeframe, and backtest window match exactly.
  </Step>

  <Step title="Compare trade count and first 10 trades">
    If trades differ early, the difference is structural (logic/data/timing).
  </Step>

  <Step title="Check evaluation mode (close vs intrabar)">
    Align candle-close evaluation if possible.
  </Step>

  <Step title="Lock indicator parameters and defaults">
    Explicitly define all parameters.
  </Step>

  <Step title="Align execution assumptions">
    Fees, slippage, sizing, and fill model.
  </Step>
</Steps>

***

## Common patterns you’ll see

<AccordionGroup>
  <Accordion title="Same trades, different PnL">
    Likely sizing, fees, slippage, or fill model differences.
  </Accordion>

  <Accordion title="Different trades from the start">
    Likely timeframe mismatch, data differences, or indicator defaults.
  </Accordion>

  <Accordion title="Same trades early, divergence later">
    Often data gaps, session timezone shifts, or regime differences.
  </Accordion>

  <Accordion title="Trinigence shows fewer trades">
    Often caused by candle-close evaluation or stronger filtering assumptions.
  </Accordion>
</AccordionGroup>

***

## What to read next

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

  <Card title="Common pitfalls" icon="triangle-exclamation" href="/backtesting/common-pitfalls">
    Avoid the most frequent traps.
  </Card>

  <Card title="Metrics explained" icon="chart-column" href="/backtesting/metrics-explained">
    Compare strategies using correct metrics.
  </Card>

  <Card title="Trade history & logs" icon="list-check" href="/backtesting/trade-history-and-logs">
    The most reliable debug tool.
  </Card>
</CardGroup>

<Note>
  Compare trades first.\
  Compare metrics second.
</Note>
