EA Backtest Results & Testing Methodology
Read this first. Every figure on this page is a hypothetical, backtested result produced in a strategy tester on historical data. None of it is live-account performance. Hypothetical results have inherent limitations: they are generated with the benefit of hindsight, no money was ever at risk, and simulation cannot fully reproduce slippage, requotes, liquidity gaps, or broker execution behaviour. Backtested performance does not indicate future results, and no result on this page should be read as a prediction of what your account will do.
We publish figures for the EAs we have completed testing on, and we say plainly where we have no data. We do not publish live-account results, because we do not have a verified live track record to show. If you are new to what an Expert Advisor is, start there before reading these numbers — it explains what a backtest can and cannot promise.
Correction (July 30, 2026)
The figures previously published on this page were wrong, and we have replaced them.
Our backtest engine reads Dukascopy hourly bar files directly. It was decoding each bar’s two extreme prices in the wrong order — the intrabar high and low were inverted on every single bar. That corrupts everything that depends on the range of a bar: stop-loss and take-profit touch detection, ATR, and the ADX directional components. Every number we had published from this pipeline was therefore produced on impossible price data.
We found the defect, fixed it, deleted the cached data, re-downloaded it, and re-ran every published test with no changes to any EA’s parameters. The corrected results are worse than what we had published, and we have published them anyway:
- SnapBack still clears our quality gate on EURUSD and GBPUSD, though GBPUSD is materially weaker than the figure we showed.
- QuickPulse no longer passes on any pair. Every pair now finishes flat-to-negative over the window. We are not recommending it for live use.
- DualHorizon now passes on EURUSD only. USDJPY, which we previously recommended, no longer clears the gate.
SnapBack, QuickPulse, and DualHorizon are our three newest EAs — see the release notes for the reasoning behind each design before reading the corrected figures below.
We also corrected this page’s methodology section, which described the wrong testing platform (see below).
Published Backtest Results
Test conditions for all three: EUR/USD-family majors, H1 timeframe, 2024-01 → 2026-03, bid-candle data with spread modelled. Re-run July 30, 2026 on corrected data.
SnapBack EA — Mean Reversion
| Pair | Trades | Profit Factor | Win Rate | Max Drawdown |
|---|---|---|---|---|
| EURUSD | 79 | 1.65 | 62.0% | 0.2% |
| GBPUSD | 78 | 1.57 | 61.5% | 0.1% |
| USDJPY | 57 | 0.58 — did not pass | 33.3% | 0.5% |
EURUSD and GBPUSD clear our PF > 1.3 gate. USDJPY loses money over the window, so we do not recommend SnapBack on that pair. Full EA details
QuickPulse EA — Contrarian Dip Buying
| Pair | Trades | Profit Factor | Win Rate | Max Drawdown |
|---|---|---|---|---|
| EURUSD | 521 | 0.93 — did not pass | 17.5% | 0.9% |
| GBPUSD | 521 | 1.00 — did not pass | 19.0% | 0.7% |
| USDJPY | 556 | 0.94 — did not pass | 17.8% | 2.2% |
No pair passes. On corrected data QuickPulse is flat to slightly negative everywhere: the low win rate this strategy accepts by design is no longer paid for by the winners. The EA remains downloadable, but we do not recommend it on any pair and we will not publish a recommendation for it until a re-worked version passes on clean data. Full EA details
DualHorizon EA — Multi-Timeframe Trend
| Pair | Trades | Profit Factor | Win Rate | Max Drawdown |
|---|---|---|---|---|
| EURUSD | 126 | 1.41 | 34.1% | 0.3% |
| GBPUSD | 145 | 0.90 — did not pass | 26.2% | 0.6% |
| USDJPY | 128 | 1.11 — did not pass | 27.3% | 0.5% |
Only EURUSD clears the gate. USDJPY is profitable over the window but below our PF > 1.3 threshold, and GBPUSD is negative — neither is recommended. Full EA details
EAs Without Published Figures
SteadyPips EA, GridMaster EA, BreakWave EA and TripleAlign EA do not yet have published backtest tables here. Where those pages show an equity curve, it is an illustrative simulation of the strategy’s shape, not a measured result set, and it is labelled as such on each page. We would rather show nothing than show a number we cannot stand behind.
Why the Drawdown Figures Look Small
The sub-1% maximum drawdowns above are a function of the position sizing used in the test, not evidence that these strategies are low-risk. The tests use a small fixed risk fraction per trade on a $10,000 starting balance with one position open at a time. Raise the risk percentage, run several EAs at once, or run the same logic on a $200 account and the drawdown percentages change completely. Drawdown is a setting, not a property of the strategy.
Testing Methodology
- Platform: a custom Python backtesting pipeline built on the open-source backtesting.py library — not the MetaTrader Strategy Tester. (This page previously named the MetaTrader Strategy Tester; that was incorrect and has been corrected. See the correction note above.)
- Data: Dukascopy hourly bid candles, downloaded and decoded directly from their public bar files, with the broker spread modelled as a per-trade cost
- Initial deposit: $10,000
- Position sizing: a fixed fraction of equity per trade in the test harness — see the drawdown note above
- Positions: as constrained by each EA’s own position cap
- Quality gate: we consider a pair/EA combination worth recommending only above a profit factor of 1.3 over the test window — a threshold we set ourselves, not an industry standard
The Python harness is a faithful but simplified model of each EA: it reproduces the entry and exit logic and the ATR-based stop and target, but it does not model every refinement in the MetaTrader builds (for example DualHorizon’s H4 filter and trailing stop). Those omissions make the test more permissive than the live EA, not less.
For how our EAs are generated, tested and released, see our editorial policy.
What We Have Not Done
- No live-account track record. We have not published verified live results, and you should treat the absence as meaningful.
- No forward-test results yet. Demo forward tests are in progress; nothing will be published here until there is a meaningful sample. Any interim claim would be noise.
- No out-of-sample guarantee. A 26-month window is short. Strategies that pass it can still fail when the market regime changes — this is the single most common way backtested edges disappear.
- No MetaTrader Strategy Tester cross-check yet. The figures above come from our own Python harness. We have not yet re-validated them inside MetaTrader, and until we do, treat them as one implementation’s answer rather than a confirmed one.
Want to run these tests yourself rather than take our word for it? Our backtesting guide walks through the exact process, including the data-quality traps that make most published EA backtests unreliable.
Try the EAs
- Download the free EAs — all seven, MT4 and MT5 builds
- Test on a demo account first — you risk no capital while you learn the settings, though demo fills are more forgiving than live ones
- Open a free XM account — required for EA activation
Hypothetical backtested results are shown throughout this page and do not indicate future performance. All trading involves substantial risk of loss. Please read our risk disclosure before trading.