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

# Backtest realism

> How Quanorix models fills and costs, and why it is not a 1:1 MT4 clone.

# Backtest realism

Quanorix’s engine aims to be **deterministic** and close to MetaTrader, but it is not a tick-for-tick Strategy Tester emulator. Understanding the model avoids surprises when [exporting](/en/export/mt4-mt5).

## Causal signal

* The signal is evaluated on the **close** of bar `t`.
* Market fills are modeled on the **open** of `t+1` (except pending/edge rules documented on the strategy).
* No look-ahead: generator and backtest share that semantics.

## Costs

| Cost           | Model                                                                       |
| -------------- | --------------------------------------------------------------------------- |
| **Spread**     | Distance in **points** (MT Market Watch style) or **bps** relative to price |
| **Commission** | USD per lot **round-trip** (open+close)                                     |
| **Slippage**   | Extra bps                                                                   |

Set them in Generator, strategy detail, or [Settings](/en/settings/overview) defaults.

## SL / TP and M1

* On the **entry bar** the engine may evaluate SL/TP per engine rules (including intrabar resolution on **M1** when applicable).
* Fills report time to the **minute** (M1) when data exists.
* **No re-entry** on the same exit bar (avoids unrealistic recycling).

## Lots and instrument

* Size is normalized to instrument lots (min/max/step).
* If risk asks below/above a bound, you get a **lot clamped** warning.
* USD PnL/sizing may need a **conversion pair**; if missing, there is a fallback with a warning.

## Entry trigger: level vs edge

* **Level:** may retry while the signal stays true.
* **Edge:** a pulse on false→true (better MT parity on sticky signals, especially HTF).

See also [Presets and multi-TF](/en/generator/presets-mtf).

## What does not guarantee perfect MT4 parity

* Different history (GMT vs broker +2/+3) → [Sessions and TZ](/en/settings/sessions-timezones).
* **Approximate** or unsupported blocks on export.
* Terminal spread/commission different from the backtest.
* Pending / BE / trailing behavior if broker/tester differs.

## Next

* [Building blocks](/en/concepts/building-blocks)
* [Export bots](/en/export/mt4-mt5)
* [Troubleshooting](/en/troubleshooting)
