MetaTrader 5 mean-reversion scalping EAs for gold (XAUUSD / GOLD) on M1 — Z-Score entries, cost-aware exits, and dynamic risk tiers.
Built for aggressive small-account growth on XM Global–style micro accounts. Multiple variants share the same core idea: trade statistical extremes when the market is ranging, and defend against Every-Tick noise, spread, and news.
| EA | File | Focus |
|---|---|---|
| TickRobust | XAU_Quant_Reversion_TickRobust.mq5 |
Once-per-bar decisions; survives Every Tick testing |
| M1 OHLC | XAU_Quant_Reversion_m1_OLHC.mq5 |
Full-featured mean reversion (OHLC-oriented) |
| M1 EveryTick | XAU_Quant_Reversion_m1_EveryTick.mq5 |
Tick-path variant |
| Dual Strategy | XAU_Quant_Reversion_Breakout.mq5 |
Mean reversion + Donchian trend breakout |
All target GOLD / XAUUSD on M1. Magic numbers keep strategies independent (e.g. 777555 TickRobust, 777333 MR, 777444 breakout).
Mean-reversion EA rebuilt to survive Every Tick backtesting, not just M1 OHLC. Earlier designs decided on individual ticks — fine under sparse synthetic OHLC ticks, but losing under real ticks where noise hits the Z-exit at the worst price and spread eats thin snap-backs.
- Once-per-bar decisions on closed-bar data — entry, exits, breakeven, and TP retargeting run once at each bar open from shift-1 values. Only server-side SL/TP act intra-bar.
- Cost gate — trade only when StdDev and distance to the mean are clear multiples of full round-trip cost (spread +
InpExtraCostPts). Defaults: StdDev ≥ 3× cost, TP distance ≥ 4× cost. - Server-side limit TP at the mean — SMA as broker TP (limit exit, no spread on fill); retargeted each bar (“gravity”), floored so a fill still covers cost.
- Turn confirmation — last closed bar must stop extending the stretch (
Close[1]vsClose[2]). - Wide, volatility-aware SL —
max(800 pts, 2.5×ATR)so intra-bar spikes that OHLC hides don’t become surprise stop-outs.
- Closed-bar Z beyond ±2.2 (
InpEntryZ) - Turn confirmation (
InpRequireTurn) - Closed-bar ADX ≤ 22
- ATR between 0.4× and 2.0× of its 50-bar average
- Cost gate passes; spread ≤ 50 pts
- Session 10:00–20:00; no red-folder USD news; loss cooldown elapsed
- Optional H1 SMA alignment (closed H1, no repaint)
- Server-side limit TP at the mean
- Closed-bar Z backup (
|Z| ≤ 0.2) - Time exit — 40 bars (
InpMaxHoldBars) - Breakeven after 1×ATR in profit
- Server-side SL —
max(800 pts, 2.5×ATR)
Shared with the other EAs: risk tiers, news filter, daily loss limit, Friday/weekend close, loss cooldown. Magic 777555.
- Prefer Every Tick (real ticks). OHLC and tick results should stay close; large divergence usually means spread/symbol setup issues.
- Set
InpExtraCostPtsto round-trip commission in gold points if the broker charges commission. - Expect fewer trades than older EAs — the cost gate skips marginal setups that only looked good on OHLC.
Pure Z-Score scalper: deviations from an SMA mark extremes; trade the snap-back.
- Z < -2.4 → BUY
- Z > +2.4 → SELL
| Filter | Typical value | Purpose |
|---|---|---|
| Z-Score | > 2.4 | Statistical extreme |
| ADX | < 20 | Ranging, not trending |
| Spread | < 50 pts | Avoid illiquid fills |
| Volatility | ATR ratio 0.5–2.0× | Skip dead or spike markets |
| Session | 10:00–20:00 | London + NY overlap |
| News | No high-impact USD | Avoid red-folder spikes |
- Z-Score TP — close near ±0.3
- Trailing stop — ATR-based on new bar closes
- Hard SL — fixed points, server-side
- Hard TP — server-side safety net
| Equity | Risk / trade | Daily loss limit |
|---|---|---|
| < $500 | 10% | 25% |
| $500 – $2,000 | 7% | 20% |
| $2,000 – $5,000 | 5% | 15% |
| $5,000 – $20,000 | 3% | 10% |
| $20,000+ | 1.5% | 7% |
Lot size from SL distance and risk %. Toggle with InpUseDynamicRisk for fixed risk instead.
MQL5 economic calendar, high importance USD only (Forex Factory–style red folder):
- Block new entries 60 minutes before and after
- Optional close of open trades before the event
Moderate calendar events are intentionally ignored (too much noise for gold).
Two independent strategies on one chart, separate magic numbers.
| Strategy | Magic | Logic |
|---|---|---|
| Mean reversion | 777333 | Z-Score when ADX < 20; SL 800 / hard TP 1500 / trail 1.5× ATR |
| Trend breakout | 777444 | Donchian 30 break when ADX > 30; EMA 50 + DI spread ≥ 5; SL 1000 / hard TP 2000 / trail 2.0× ATR; 10-bar loss cooldown |
Shared: session, spread, news, volatility filter, daily loss limit.
- Copy the
.mq5files intoMQL5/Experts/. - Compile in MetaEditor (
F7). - Attach to a GOLD / XAUUSD M1 chart.
- Enable AutoTrading.
--- N30 GOLD REVERSION ---
Equity: $52.30
Risk: 10.0% | DLL: 25.0%
Z-Score: -1.45
ADX: 16.3
ATR: 4.82
Spread: 25.0 pts
News Block: no
Vol Filter: OK
Daily P/L: +4.60% / -25.0% limit
- Fixed-point SL — ATR stops get clipped by gold spikes; fixed points survive better.
- Z / mean TP — mean reversion targets the average, not an arbitrary pip count.
- Hard TP — server-side backup if the VPS drops.
- Dynamic risk — aggressive on micro equity, tighter as the account grows.
- New-bar trailing — fewer modify requests, less noise-driven exit.
- Separate magics — dual EA strategies manage positions independently.
For educational and research use. Leveraged gold trading can lose the entire account. 10% risk per trade is aggressive. Demo thoroughly before live capital. Past results do not guarantee future performance.
This project is licensed under the MIT License.
Neo Malesa — n30dyn4m1c