Spreader
Spreader is a statistical arbitrage Expert Advisor that trades the price spread between two correlated instruments. It opens opposing positions on two symbols when the spread deviates from its historical mean, profiting from convergence back to equilibrium. The EA monitors the spread ratio, enters when deviation exceeds a threshold, and exits when the spread normalizes or hits stop-loss levels.
Open the interactive view (equity curve, symbol switch)Key facts
Backtest results (H1, about 1 year)
| Symbol | P&L | Annual | Max DD | Trades | Win rate | Sharpe | Recovery | Losing streak | Per trade | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
Why this EA never traded: no entry rule survived the conversion.
Converted from MQL5 to Python and run with the same rules for every EA. Positions use MT5 lot sizes (100,000 units per FX lot, 100 oz per gold lot) with 1:100 leverage, one order at a time, and a stop-out below 10% of the starting balance. Sharpe is computed from the equity curve. Results marked as unreliable are shown for completeness only.
Blow-up risk: Elevated
- Has no stop loss or trailing stop
- Can hold up to 2 positions at once
High: stopped out in our backtest, or martingale/grid sizing without a stop loss. Elevated: martingale or grid sizing with a stop loss, or several positions at once without a stop loss. What the label means and what we found →
Strategy analysis
Spreader employs a Pairs Trading strategy falling under the statistical arbitrage category. The core concept identifies two historically correlated financial instruments, calculates the spread between them, and assumes mean-reverting properties of that spread. Entry conditions trigger when the spread deviates beyond a configurable threshold (standard deviation multiplier) from its moving average, opening opposing positions — short on the overvalued instrument and long on the undervalued one — forming a hedged pair. Exit conditions include profitable closure when the spread reverts to its mean, and stop-loss closure when the spread continues to diverge beyond the stop level. Position sizing supports opening separate positions on each symbol, with the ability to adjust lot ratios based on instrument volatility differences to achieve delta-neutral hedging. Money management provides user-configurable lot size parameters but lacks dynamic position sizing based on account equity or volatility. The overall strategy logic relies on the persistence of cointegration relationships; a structural break in correlation between instruments could lead to losses on both legs.
Strengths
- Market-neutral strategy that is independent of overall market direction, functioning in both trending and ranging environments
- Hedged positions reduce directional risk exposure, with each leg providing protection for the other
- Grounded in statistical principles with clear mean-reversion logic and quantified entry/exit conditions
- High extensibility allows users to customize instrument pairs and threshold parameters for different market conditions
Weaknesses
- Over-reliance on historical correlation assumptions; structural breaks in cointegration between instruments can lead to simultaneous losses on both legs
- Lacks dynamic position sizing; fixed lot sizes cannot adapt to changes in account equity or instrument volatility
- Does not account for transaction costs (spreads, commissions, slippage) eroding spread-trading profits; small mean-reversion gains may be consumed by costs
- Missing new bar check mechanism, potentially allowing repeated entries on the same bar
Possible improvements
- Add cointegration testing (e.g., ADF test) to dynamically monitor the stability of the correlation and pause trading when the relationship decays
- Introduce ATR-based or risk-based dynamic position sizing to replace fixed lot sizes
- Add a transaction cost filter to ensure expected profit exceeds the sum of spread and commission before executing trades
- Add new bar detection logic to prevent repeated entries within the same bar
Risk assessment
Overall risk: Medium
- Structural break in inter-instrument correlation can invalidate the hedge and cause losses on both legs
- Lack of dynamic position management may expose the account to excessive risk during extreme market conditions
- Stop-loss parameter defaults to zero, providing no protection if the user does not configure it
- No new bar check creates risk of repeated position openings
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
Symbol1 | First pair symbol | |
Symbol2 | Second pair symbol | |
LotSize | 0.1 | Fixed lot size, used when MMRec is disabled |
SpreadPeriod | 20 | Spread moving average calculation period |
EntryThreshold | 2.0 | Entry threshold (standard deviation multiplier) |
ExitThreshold | 0.5 | Exit threshold (spread reversion level near mean) |
StopLoss | 0 | Stop loss in points |
MagicNumber | 12345 | EA magic number for identifying its own orders |
Similar Statistical Arbitrage EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.