Two backtest engines: the realbacktesting engine versus the cTrader reference run

Two engines · full transparency

Every number, two ways. You choose.

Toggle the Engine switch anywhere on this page — the chart and every metric update live. We default to our realbacktesting engine (the realistic figure, the same core that trades live). cTrader is the run you reproduce yourself on any machine — it reads above ours on all three systems because it charges no spread or slippage, and we explain exactly why.

Default · realistic

realbacktesting engine

Our own backtester — the exact core that runs the live bot, audited to 100% signal parity.

  • Intrabar M1 execution — sees each minute's high & low, so stops and targets fill at the real level
  • Real per-symbol spread, measured from each instrument's own tick history (tight on EUR/USD, wide on Bitcoin & indices)
  • +1 bps slippage on every fill (entry & exit), always adverse
  • Real commission + swap, per symbol
→ the realistic figure, and the one we publish: real costs and intrabar execution, the same core that trades live. It lands below the cTrader run because we charge the real spread + slippage cTrader leaves out — and the lower number is the trustworthy one.
Reproducible

cTrader engine

cTrader's own Historical Replay on m1 bars (opening prices) — the lightest mode, runs on any machine.

  • 100% reproducible · independent · tamper-proof
  • Real commission + swap
  • Spread fixed at 0 — a multi-asset test can't apply per-asset spread, so it under-charges costs (reads high)
  • Acts only at each minute's open — never sees the intrabar high/low, so it misses stop/target touches and fills worse on volatile markets (reads low)
→ the run you verify yourself. Two opposing distortions: no spread (reads high) + open-only execution (reads low). The missing spread dominates, so it lands above our engine on all three systems — never the realistic number.
Why cTrader reads higher

cTrader's m1 run distorts in two opposite directions versus our engine: it charges no spread and no slippage (reads high), and it executes only at each minute's open (reads low — it misses intrabar fills). The cost-omission dominates on all three systems, so cTrader reads above us everywhere — by ~11 pp on Guardian and ~44–46 pp on Balanced and Edge. Our engine is the only one with real costs and intrabar execution — and it's the same engine that trades the live account, so the lower figure is the one you actually live with.

SystemEngineROI · 5ySharpe PFMax DDΔ vs cTrader
Guardianrealbacktesting 104.8%3.221.82−1.9% −11.0 pp
cTrader (m1) 115.8%3.131.9-2.69%
Balancedrealbacktesting 133.3%3.121.80−2.6% −45.9 pp
cTrader (m1) 179.2%3.462.1-3.24%
Edgerealbacktesting 212.3%3.261.84−2.9% −44.3 pp
cTrader (m1) 256.6%3.542.08-4.76%

Same strategies, same data. cTrader reads higher on all three because it charges no spread and no slippage — the missing cost dominates, so the Δ is negative everywhere (−11 pp on Guardian, −44 to −46 pp on Balanced and Edge). Our engine — real per-symbol spread + 1 bps slippage + intrabar M1 execution — is the conservative, realistic one, and it's the same engine that trades the live account.

Default is the realistic engine; toggle to the cTrader reference run to see the number you can reproduce yourself. Step-by-step reproduction (m1, spread 0) is in every report — run it and you'll match the cTrader column, to the tick.