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.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
Set them in Generator, strategy detail, or Settings 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).
What does not guarantee perfect MT4 parity
- Different history (GMT vs broker +2/+3) → Sessions and TZ.
- Approximate or unsupported blocks on export.
- Terminal spread/commission different from the backtest.
- Pending / BE / trailing behavior if broker/tester differs.