realbacktesting
Audited replay · cTrader Historical Replay

realbacktesting Balanced FTMO Swing

FTMO Platform · EUR · 1:30 · 5y 2m 8d (23/03/2021 - 31/05/2026) · 2919 trades across 6 markets
data · m1BarsFromServer start €80,000 end €223,373 commissions + swaps modelled account · hedging
This is the cTrader-native run — the one you reproduce yourself. Every figure below is cTrader's own (m1 bars, spread 0); this page only restyles its exported data. Open the untouched original (top-right) and reconcile any number yourself. Our published realbacktesting figure is the realistic one — real per-symbol spread, 1 bps slippage and intrabar execution (compared just below). Risk metrics are per trading day (×√252).

realbacktesting vs the cTrader run

Same strategies, same data — our engine adds real spread + 1 bps slippage and intrabar execution.
metric realbacktesting
published · realistic
cTrader (m1)
this run · reproducible
note
ROI · 5y133.3%179.2% −45.9 pp — cTrader applies zero spread/slippage; our engine charges the real per-symbol spread + 1 bps slippage, matching the costs you actually pay on a funded account
Profit factor1.802.10 our intrabar fills lift the day-level profit factor
Win rate50.7%50.1% open-only execution fills worse and misses intrabar exits

cTrader reads higher because it applies no spread or slippage. Our engine charges the real per-symbol spread + 1 bps slippage — the honest cost you actually pay. The lower number is the reliable one.

ROI · 5y179.22%total return
CAGR21.9%geometric / yr
Net profit€143,373on €80,000
Max equity DD3.24%€3,738 · intrabar
Sharpe3.46daily · √252
Sortino8.56daily · √252
Profit factor1.68per-trade
Trades2,919win 45.5% · per-trade
Recovery38.2net ÷ maxDD
Calmar6.8CAGR ÷ maxDD

Equity curve · 2021-03-23 → 2026-05-31

The account balance exactly as cTrader plots it — €80,000 start → €223,373 end. Nothing added or shaded.
account balance hover any point for profit · return · drawdown

Per-day vs per-trade — same trades, different denominator

Our published metrics aggregate to the trading day (how a portfolio is risked & how FTMO rules bite). cTrader's report counts each trade. Neither is wrong; they answer different questions.
metricour headline · per-day these trades · per-daycTrader · per-tradewhy they differ
Sharpe3.123.46n/arisk-adjusted return; per-trade Sharpe is undefined
Profit factor1.802.101.68intraday netting lifts day-PF above trade-PF
Win rate50.7%50.1%45.5%near-BE/trail scratches drag the per-trade rate
Return133.3%179.2%179.2%our published headline includes all real costs; cTrader applies none

Yearly return

2021+7.1%
2022+41.0%
2023+26.7%
2024+25.1%
2025+13.9%
2026+2.2%

Costs · verified

Commissions€-5,782.50
Swaps€-2,641.90
Total friction€-8,424.40
% of gross P/L5.569%
Near-BE / trail scratches194 (6.6%)

By market

Indices are commission-free on FTMO (spread-only); FX, metals & crypto carry commission.
markettradesnet wincommswap
ETHUSD634€31,95042%€-1,968€-819
US100.cash710€30,71249%€0€-84
GER40.cash459€28,60348%€0€-806
USDJPY677€26,83241%€-1,718€-251
BTCUSD154€16,32251%€-1,937€-664
XAUUSD285€8,42347%€-160€-19

Independent strategy sleeves

12 uncorrelated systems — each validated before inclusion.
PEGB-S01 USDJPY · 333t · 40%PEGB-S02 ETHUSD · 132t · 41%PEGB-S03 USDJPY · 256t · 44%PEGB-S04 US100.cash · 328t · 55%PEGB-S05 ETHUSD · 244t · 38%PEGB-S06 ETHUSD · 258t · 47%PEGB-S07 USDJPY · 88t · 33%PEGB-S08 BTCUSD · 154t · 51%PEGB-S09 US100.cash · 382t · 44%PEGB-S10 XAUUSD · 285t · 47%PEGB-S11 GER40.cash · 229t · 46%PEGB-S12 GER40.cash · 230t · 50%

Reproduce this backtest — step by step

Don't trust a screenshot. Run it yourself in cTrader and match every number on this page.
  1. Install the cBot. Add realbacktesting Balanced FTMO Swing to cTrader (cTrader Store → My cBots, or import the .algo). It compiles with zero warnings.
  2. Attach it to a chart. Open EURUSD on the m1 timeframe and drop the cBot on it. It is multi-symbol — it trades every market internally from this one host chart, so the host symbol only needs to exist.
  3. Set the warm-up gate. In the cBot parameters → group 6 Advanced, set Entries from (UTC yyyy-MM-dd) = 2021-06-01. Indicators warm up on the earlier data; live entries begin on this date — that is why the curve starts 1 Jun 2021, not 23 Mar.
  4. (Only if your broker renames markets) set Symbol overrides (e.g. USATECHIDXUSD=US100.cash,DEUIDXEUR=GER40.cash). On FTMO the defaults resolve automatically.
  5. Configure the backtest tab.
    • Period: 2021-03-23 → 2026-05-31 (start earlier than the entry date so indicators warm up).
    • Data: m1 bars from server (opening prices) — the light mode; runs on any machine.
    • Spread: Fixed value · 0 pips — a multi-asset backtest can only set one spread for every instrument, and any single value is wrong; we leave it at 0 here and model real per-symbol spread in our own engine.
    • Commission: 30 USD per 1M · apply automatically · Starting capital €80,000 · Leverage 1:30.
  6. Run, then compare. Press play. When it finishes, open the untouched cTrader original ↗ side-by-side — net profit, trades, drawdown and the equity curve should match to the tick.

Same strategies, same data, same rules. The only things that differ on a live account are when an entry fires (a few seconds of jitter) and how much it sizes (your balance) — both expectancy-neutral by construction.

Methodology. Backtest run in cTrader (m1BarsFromServer) on FTMO Platform, 5y 2m 8d (23/03/2021 - 31/05/2026), starting €80,000, leverage 1:30. Commissions and swaps are modelled (€-8,424.40 total). Sharpe/Sortino are re-derived from the daily equity path (cTrader does not report them) using our published convention — daily returns on the starting base, sample-std, annualised ×√252. Our site headline is read from the same validation that drives the live cBot (scale-matched); it is conservative relative to this cTrader run. Reproduce it: load the cBot in your own cTrader, point it at FTMO symbols, run the same window. Proof over promises.