realbacktesting
Audited replay · cTrader Historical Replay

realbacktesting Edge FTMO Swing

FTMO Platform · EUR · 1:30 · 5y 7m 26d (04/01/2021 - 30/08/2026) · 3771 trades across 10 markets
data · m1BarsFromServer start €80,000 end €457,897 commissions + swaps modelled account · hedging
This is the cTrader-native run — the exact figure a buyer reproduces in their own cTrader. Every number below is cTrader's own (m1 bars, spread 0, real commission + swap); this page only restyles cTrader's exported data — it adds nothing. Open the untouched original (top-right) and reconcile any number yourself. Risk metrics are per trading day (×√252).

Watch the backtest in cTrader

The full walkthrough — reproduce it yourself with the free backtest-only edition.
ROI · 5y472.37%total return
CAGR36.2%geometric / yr
Net profit€377,897on €80,000
Max equity DD5.78%€10,339 · intrabar
Sharpe3.96daily · √252
Sortino8.91daily · √252
Profit factor1.64per-trade
Trades3,771win 46.5% · per-trade
Recovery36.5net ÷ maxDD
Calmar6.3CAGR ÷ maxDD

Equity curve · 2021-01-04 → 2026-08-30

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

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

The very same trades, counted two ways. Per-day aggregates them to the trading day — how a portfolio is risked & how FTMO rules bite (Sharpe/Sortino ×√252); per-trade is exactly how cTrader's report tab counts each fill. One run, two denominators — neither is wrong; they answer different questions.
metricthese trades · per-day cTrader · per-tradewhy they differ
Sharpe3.96n/arisk-adjusted return; per-trade Sharpe is undefined
Profit factor2.161.64intraday netting lifts day-PF above trade-PF
Win rate52.9%46.5%224 near-BE/trail scratches drag the per-trade rate
Return472.4%472.4%identical either way — total return doesn't depend on the denominator; only the risk ratios above do

Yearly return

2021+55.7%
2022+61.0%
2023+29.9%
2024+39.0%
2025+16.3%
2026+8.7%

Costs · verified

Commissions€-5,225.64
Swaps€-2,840.20
Total friction€-8,065.84
% of gross P/L2.091%
Near-BE / trail scratches224 (5.9%)

By market

Indices are commission-free on FTMO (spread-only); FX, metals & crypto carry commission.
markettradesnet wincommswap
US100.cash696€122,00551%€0€0
GER40.cash611€57,54050%€0€-233
AUS200.cash263€48,28243%€0€-648
USDJPY570€40,82545%€-2,681€126
JP225.cash232€25,65536%€0€-774
BTCUSD164€25,01554%€-1,713€-1,033
XAUUSD589€19,12040%€-339€0
GBPUSD128€16,62748%€-212€-280
HK50.cash227€15,94535%€0€-1
GBPJPY291€6,61259%€-281€2

Independent strategy sleeves

14 uncorrelated systems — each validated before inclusion.

The per-strategy breakdown is not published — the logic of the book is the product. Everything above is the whole account, unfiltered: equity curve, drawdown, verified costs and the full per-symbol split.

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 Edge 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-01-04 → 2026-08-30 (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 7m 26d (04/01/2021 - 30/08/2026), starting €80,000, leverage 1:30. Commissions and swaps are modelled (€-8,065.84 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.