Audited replay · cTrader Historical Replay
realbacktesting Balanced FTMO Swing
FTMO Platform · EUR · 1:30
· 5y 7m 26d (04/01/2021 - 30/08/2026) · 3289 trades across 8 markets
data · m1BarsFromServer
start €80,000
end €337,797
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 · 5y322.25%total return
CAGR29.0%geometric / yr
Net profit€257,797on €80,000
Max equity DD5.26%€6,748 · intrabar
Sharpe3.55daily · √252
Sortino7.95daily · √252
Profit factor1.67per-trade
Trades3,289win 47.6% · per-trade
Recovery38.2net ÷ maxDD
Calmar5.5CAGR ÷ maxDD
Equity curve · 2021-01-04 → 2026-08-30
The account balance exactly as cTrader plots it — €80,000 start →
€337,797 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.
| metric | these trades · per-day |
cTrader · per-trade | why they differ |
| Sharpe | 3.55 | n/a | risk-adjusted return; per-trade Sharpe is undefined |
| Profit factor | 2.08 | 1.67 | intraday netting lifts day-PF above trade-PF |
| Win rate | 52.3% | 47.6% | 204 near-BE/trail scratches drag the per-trade rate |
| Return | 322.2% | 322.2% | identical either way — total return doesn't depend on the denominator; only the risk ratios above do |
Yearly return
2021+40.3%
2022+45.5%
2023+25.4%
2024+34.8%
2025+14.7%
2026+6.8%
Costs · verified
Commissions€-4,293.28
Swaps€-2,335.01
Total friction€-6,628.29
% of gross P/L2.507%
Near-BE / trail scratches204 (6.2%)
By market
Indices are commission-free on FTMO (spread-only); FX, metals & crypto carry commission.
| market | trades | net |
win | comm | swap |
| US100.cash | 698 | €101,977 | 51% | €0 | €0 |
| GER40.cash | 614 | €47,341 | 50% | €0 | €-271 |
| USDJPY | 570 | €33,527 | 45% | €-2,203 | €103 |
| BTCUSD | 164 | €20,658 | 54% | €-1,407 | €-772 |
| JP225.cash | 233 | €20,329 | 36% | €0 | €-1,164 |
| XAUUSD | 590 | €14,943 | 40% | €-278 | €0 |
| GBPUSD | 129 | €13,523 | 48% | €-175 | €-232 |
| GBPJPY | 291 | €5,428 | 59% | €-230 | €2 |
Independent strategy sleeves
12 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.
- Install the cBot. Add realbacktesting Balanced FTMO Swing to cTrader (cTrader Store → My cBots, or import the .algo). It compiles with zero warnings.
- 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.
- 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.
- (Only if your broker renames markets) set Symbol overrides
(e.g. USATECHIDXUSD=US100.cash,DEUIDXEUR=GER40.cash). On FTMO the defaults resolve automatically.
- 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.
- 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.