Pipsgrowth EX02028 Breakout
MT5 Expert Advisor (Open Source) · EURUSD, USDJPY, GBPUSD, AUDUSD · M1
Pipsgrowth.com EX02028 EX8 Multi-Symbol VWAP+KAMA Donchian — multi-symbol scalper with ADX regime switch, full 12-layer stack.
Overview
Pipsgrowth EX02028 is a multi-symbol M1 scalper that runs the same engine across a CSV-defined basket and switches behaviour depending on the ADX regime it observes on each pair. Up to twenty symbols can be configured via the SymbolsCSV input, defaulting to EURUSD,USDJPY,GBPUSD,EURJPY,AUDUSD. The XAUUSD comment is explicit: add it only if the broker's raw spread on gold is tight. Each symbol owns its own SymState struct that caches four indicator handles (KAMA(10,2,30), RSI(2), ADX(14), ATR(InpATRPeriod=14)), a 256-slot rolling spread buffer, a lastBarTraded timestamp, a per-direction cooldown clock, a tradePauseUntil timer, and counters for loss-streak adds. The OnTimer pass walks all symbols in order, calls SpreadPush(si, CurrentSpreadPts(...)) to update the rolling spread, then runs TryEntriesSymbol(si), so a slow EURUSD tick and a fast USDJPY tick share the same scan logic without cross-symbol bleed.
The regime classifier inside TryEntriesSymbol is one line of state: it reads iADX(g_tf, 14) at closed-bar shift=1 and sets isMR = (adx < InpADXSwitch) where InpADXSwitch=18. Below 18 the EA treats the tape as range-bound and runs a mean-reversion playbook; at or above 18 it flips to a breakout playbook. There is no separate volatility bucket, no ADX slope, no DI+-DI- directionality. Regime is purely a 1:1 threshold, which is why the rest of the file is partitioned into two parallel branches (buyMR/sellMR and buyBO/sellBO).
In MR mode, ComputeSessionVWAP(s, shift, vwap, sigma) rebuilds the day's volume-weighted average price from the broker session start (00:00 server time) using typical price (H+L+C)/3 and tick volume, then runs a Welford pass to compute the standard deviation of typical price around that VWAP over InpVWAP_StdLookback=60 bars. That gives two bands: inner at InpVWAP_SigmaInner=1.5σ and outer at InpVWAP_SigmaOuter=2.0σ. The MR long fires when the closed bar's close has touched or breached the outer lower band (close <= vwap − 2.0·σ) and RSI2_Recapture(true,...) confirms a bounce: RSI(2)[shift=1] <= 10 and RSI(2)[shift=0] > 10. The MR short mirrors it on the upper band with thresholds 90/10. KAMA slope agreement (KAMA_SlopeAgree) is a required confirmation in both directions — KAMA(10,2,30) must be rising for a long MR and falling for a short MR — and BarQualityOK enforces body/range >= InpMinBodyToRange=0.18 so dojis are filtered out before the signal is even counted.
In BO mode, the EA rebuilds a Donchian channel of InpDonchianPeriod=20 bars and a SuperTrend(ATR period InpST_ATR_Period=10, multiplier InpST_Mult=2.0) in ComputeSuperTrend(). A long breakout requires close > DonchianUpper, SuperTrend bullish (isBull==true), and KAMA slope ≥ 0; a short breakout mirrors the conditions. The VWAP acts as a veto in BO mode: if MathAbs((close − vwap)/sigma) > 1.5, the breakout is rejected. That filter is unusual — it explicitly suppresses breakouts that have already run too far from the day's fair value, even if they satisfy every other condition. The intent is to avoid chasing parabolic extensions on the M1 chart.
After a raw buy/sell flag is set, the EA accumulates confirmations. A scoring counter increments for each of: VolumeSpikeOK (current bar volume ≥ 1.30× the 20-bar SMA), KAMA slope agreement, and VWAP availability (sigma > 0). InpNeedConfirmationsK=2 is the hard gate: if the total confirmation count is below 2, the signal is dropped. A daily ATR-percentile gate (ATRPercentileOK) then checks whether the current ATR(14) sits between the 30th and 85th percentile of the day's distribution of ATR values; outside that range both directions are killed. The function sorts up to 1440 ATR samples via insertion sort and compares the live ATR to arr[idxLo] and arr[idxHi]. With fewer than 20 samples the gate is permissive (returns true), so the EA doesn't choke at session open.
Position sizing and SL/TP are split. NormalizeVol snaps to the broker's SYMBOL_VOLUME_STEP and SYMBOL_VOLUME_MIN/MAX, with InpUseAutoMinLot=true (the default) meaning the EA picks the broker's minimum lot when InpFixedLot=0.10 would be below it — the comment calls it cent-safe. SL/TP comes from CalcSLTP, which branches on isMR: in MR mode the SL is max(0.8, 1.0)·ATR and TP is max(1.6, 2.0)·ATR; in BO mode SL is max(1.0, 1.0)·ATR and TP is max(2.0, 2.0)·ATR. The asymmetric MR legs (wider TP, tighter SL ceiling) reflect the higher mean-reversion hit rate vs. the smaller per-trade drift. When InpUseATRforSLTP=false, the EA falls back to InpSL_Points=250 and InpTP_Points=500 raw point distances.
Adds to existing positions are gated by IsAllSameDirProfitableAtLeast(s, dir, MinProfitPerTradeToAdd=4.0 points). With AllowOnlyProfitableAdditions=true (default), the EA refuses to scale into a losing direction; every same-direction open must already be at least 4 points in the green. MaxOpenTradesPerSymbol=2 and MaxTotalOpenTrades=6 cap the basket. The InpCooldownSecondsDir=20 setting throttles the same direction for 20 seconds after a fill, and InpOneEntryPerBar=true blocks re-entry on the same M1 bar that was already traded.
Position management runs on every tick via OnTick → MaintainPositionsAll, which calls ApplyDynamicLockProfitToPosition on every open. The ratchet is parameterised by InpLockProfitEveryXPoints=120 and InpLockMinusYPointsBuffer=18. Every 120 points of favourable excursion from entry, the EA pushes the SL to (entry + 120·k − 18)·points (long) or the mirror for short. The buffer is what gives the trade 18 points of breathing room past the ratchet step; a frozen-level check via SYMBOL_TRADE_FREEZE_LEVEL prevents the modification from being rejected when price is too close. The lock only ratchets forward — curSL > 0 && newSL <= curSL returns early — so a retreat never loosens the stop. The original TP is preserved verbatim.
Three risk overlays sit on top of the engine. PauseOnConsecutiveLosses and PauseOnLossAmount (both default off) trigger per-symbol pauses: after 3 consecutive losses on a symbol, that symbol is paused for 60 minutes; if cumulative loss on a symbol reaches PauseLossAmount=100.0 (account currency), that symbol is paused for 60 minutes. The global safety gate in IsSafeToTrade_EX02028 runs every timer tick: it checks market open via the auto-detected GMT offset, optional session filter (London 7–16, NY 12–21, both default off), news buffer (±30 minutes around CALENDAR_IMPORTANCE_HIGH events, default on), capital cap (InpCapAmount=0 disables, otherwise equity must be ≥ InpCapFloor=1000), min equity percentage (InpMinEquityPct=70 of g_initialBalance), max trades per day (InpMaxTradesPerDay=20), and a g_cooldownUntil timer that OnTradeTransaction sets whenever the global g_consecLosses reaches InpMaxConsecLosses=5 — that pauses all new entries for InpCooldownHours=4. Daily realized PnL is tracked in g_realizedToday and compared to g_initialBalance × InpDailyLossLimitPct=5%.
The order router (SendOrder_AllFillings) probes up to three filling modes per symbol — ORDER_FILLING_IOC, ORDER_FILLING_RETURN, ORDER_FILLING_FOK, chosen by inspecting the broker's SYMBOL_FILLING_MODE mask — and retries up to 5 times with adaptive deviation stepping (InpSlippagePoints=5 start, InpMaxAdaptiveDeviation=20 cap). If a request is rejected with TRADE_RETCODE_INVALID_STOPS or TRADE_RETCODE_REQUOTE, the EA retries the entry without SL/TP and then post-modifies the position via ModifyPositionSLTP (3 attempts at 200ms). The OnTester formula is profit × profitFactor / maxDD with a trades < 10 → 0 hard floor, so optimisations below 10 trades score zero.
The OnTradeTransaction handler is the only PnL-recognition path: it filters TRADE_TRANSACTION_DEAL_ADD for deals with DEAL_ENTRY_OUT and the EA's magic, then updates both the global g_realizedToday / g_realizedWeek and the per-symbol lossStreakCount / lossStreakAmt. Spread is sampled once per timer pass (1-second cadence from EventSetTimer(1)) and pushed into the rolling buffer; with 200 samples and 3.0× MAD multiplier, the spread cap adapts to whatever regime the symbol is in without ever blocking on a constant threshold.
Recommended broker: low-spread ECN or RAW on at least the five default symbols. EURJPY in the default CSV is the highest-pip pair in the basket and is the most sensitive to spread widening at the Asian rollover — the dynamic spread cap will pause it on its own if quotes deteriorate, but a cent account with a 3-pip minimum on USDJPY will feel the lock-profit ratchet much less than the same setup on a 0.1-pip EURUSD broker. Backtests should use tick data with Model: Every tick because the regime switch and ratchet decisions are tick-aware, not bar-aware.
Strategy Deep Dive
EX02028 reads a CSV of up to 20 symbols and runs the same pipeline on each: a 1 Hz OnTimer loop samples spread into a per-symbol 256-slot buffer, classifies ADX(14) at closed bar to pick a mean-reversion or breakout arm, and feeds the chosen arm through three confirmation counters (volume spike, KAMA slope, VWAP availability) before InpNeedConfirmationsK=2 lets the signal through. In MR mode the VWAP outer band at 2.0σ plus RSI(2) recapture from 10/90 is the trigger; in BO mode a Donchian(20) break plus SuperTrend(10, 2.0) direction is the trigger, vetoed if price has run more than 1.5σ from VWAP. SL/TP is ATR(14) × 1.0/2.0 in BO mode and 0.8/1.6 floor in MR mode; the dynamic lock-profit ratchet at 120 points / 18 buffer steps the SL forward without ever loosening it. Position sizing uses the broker's minimum lot by default (cent-safe), with up to 2 per symbol and 6 basket-wide, and adds are blocked unless all same-direction positions are at least 4 points in profit. Global gates — 5% daily loss, 70% min equity, 5-consecutive-losses → 4h cooldown, news ±30 min, and an optional London/NY session filter — run every timer tick via IsSafeToTrade_EX02028.
Each symbol is classified by ADX(14) on the closed M1 bar. If ADX < 18 the EA runs a mean-reversion playbook: VWAP outer band (2.0σ) touch plus RSI(2) recapture from 10 (long) or 90 (short) plus KAMA(10,2,30) slope agreement. If ADX ≥ 18 it runs a Donchian(20) breakout gated by SuperTrend(10, 2.0) direction, KAMA slope, and a VWAP-distance veto at |z|>1.5. Both arms require 2 of 3 confirmations (volume spike 1.3× SMA20, KAMA slope, VWAP availability) and a daily ATR-percentile gate in [30, 85].
Three exit paths: (1) the original ATR-based TP at 1.6–2.0×ATR for MR or 2.0×ATR for BO is preserved on every position; (2) the dynamic lock-profit ratchet moves the SL forward every 120 points of favourable move, leaving an 18-point buffer behind the ratchet step; (3) the regime classifier and the MR/BO arm logic re-evaluate on every timer tick — when a closed-bar cross against the active direction appears, the EA closes via SendOrder_AllFillings with the opposite type. There is also a hard global circuit breaker: 5 consecutive losses → 4-hour g_cooldownUntil enforced by OnTradeTransaction.
SL is computed from ATR(14) × 1.0 (with a 0.8 floor in MR mode), rounded to tick and offset from the entry bid/ask; falls back to 250 raw points when InpUseATRforSLTP=false. After open, the dynamic lock-profit ratchet moves the SL to (entry + 120·k − 18) points every 120 points of favourable excursion, and never loosens. There is no fixed account-level SL — drawdown is controlled by the 5% daily loss gate, the 5-consecutive-losses → 4h cooldown, and the 70% min-equity kill switch.
TP is ATR(14) × 2.0 (with a 1.6 floor in MR mode), giving roughly 1:2 risk:reward. In BO mode the TP multiplier is held to 2.0; in MR mode it can stretch to 2.0·ATR for wider targets. When ATR is disabled, TP falls back to 500 raw points. TP is set at entry and never modified by the ratchet — the lock-profit step only ever moves the SL, leaving the original target intact.
Best deployed on a low-spread ECN or RAW broker (Exness, IC Markets, Pepperstone) covering at least EURUSD, USDJPY, GBPUSD, EURJPY, and AUDUSD on M1, with a minimum recommended balance of $100. The EA's M1 cadence and the per-symbol 1-second timer mean the host should be a VPS with broker-server latency under 30 ms — the dynamic spread cap and tick-aware lock ratchet both react at tick speed. The 5-symbol default basket is the cleanest test profile; XAUUSD should only be added when the broker's gold spread stays under 15 points at all hours. Capital-cap mode (InpCapAmount > 0) is recommended for live use to keep risk proportional regardless of account growth.
Strategy Logic
Pipsgrowth EX02028 Breakout — Strategy Logic Analysis (from .mq5 source)
Family: Breakout
Magic: 22202028
Version: 2.00
BRIEF:
Multi-symbol VWAP+KAMA Donchian/SuperTrend scalper with ADX regime switching between mean-reversion and breakout modes, session VWAP sigma bands, RSI(2) recapture, dynamic lock profit
INDICATOR STACK:
- Standard
MT5indicators
KEY FUNCTIONS:
Trim()SplitCSV()FindSymIndex()SymPoint()SymTickSize()NormalizePriceToTick()SymBid()SymAsk()SymbolMinVolume()SymbolVolumeStep()NormalizeVol()TotalOpenPositionsAll()- ...and 43 more
INTERNAL CONSTANTS (0 total):
INPUT PARAMETERS (34 total across 10 groups):
- [=== Core ===]
MagicNumber=22202028// 2220 + ExpertID(334) - [=== Core ===]
SymbolsCSV= "EURUSD,USDJPY,GBPUSD,EURJPY,AUDUSD" // addXAUUSDonly if spreads are tight - [=== Core ===]
InpTF= 1 // Working timeframe (0=current,1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1,8=W1,9=MN1) - [=== Dynamic Lock Profit ===]
InpLockMinusYPointsBuffer= 18 // --------------INITIALvsADDITIONAL(adds gating) ----------------- - [=== Initial vs Additional ===]
MinProfitPerTradeToAdd=4.0// points - [=== Pause Guards ===]
PauseLossAmountMinutes= 60 // ----------------------TRADE/RISK/EXECUTION-------------------- - [=== Trade and Risk ===]
InpUseAutoMinLot=true// cent-safe - [=== Trade and Risk ===]
InpFixedLot=0.10// used if auto-min disabled - [=== Trade and Risk ===]
InpATR_SL_Mult=1.0// default MR/BO SL multipliers below; these are base - [=== Trade and Risk ===]
InpATR_TP_Mult=2.0// base TP multiplier (BO ~2–3; MR ~1.6–2) - [=== Trade and Risk ===]
InpSL_Points= 250 // fallback whenATRdisabled - [=== Trade and Risk ===]
InpCooldownSecondsDir= 20 // ----------------------LOGIC(few knobs) --------------------------- - [===
Logic(Few Knobs) ===]InpADXSwitch= 18 //ADX<switch => MR else BO - [===
Logic(Few Knobs) ===]InpDonchianPeriod= 20 // breakout window - [===
Logic(Few Knobs) ===]InpST_ATR_Period= 10 //SuperTrendATR - [===
Logic(Few Knobs) ===]InpST_Mult=2.0//SuperTrendmultiplier - [===
Logic(Few Knobs) ===]InpRSI2_LevelLow= 10 // MR recapture threshold (BUY) - [===
Logic(Few Knobs) ===]InpRSI2_LevelHigh= 90 // MR recapture threshold (SELL) - [===
Logic(Few Knobs) ===]InpVWAP_SigmaInner=1.5// inner band - [===
Logic(Few Knobs) ===]InpVWAP_SigmaOuter=2.0// outer band (MR touch) - [===
Logic(Few Knobs) ===]InpVWAP_StdLookback= 60 // sigma calc window (bars) - [===
Logic(Few Knobs) ===]InpNeedConfirmationsK= 2 // confirmations needed - [=== Auto Filters ===]
InpUseDynamicSpreadCap=true// Median+MADper symbol - [=== Auto Filters ===]
InpSpreadMADMult=3.0// cap = med + k*MAD - [=== Auto Filters ===]
InpSpreadCapAbsPoints= 0 // 0=off; else absolute cap - [=== Auto Filters ===]
InpMinTicksPerMin= 18 // activity floor - [=== Auto Filters ===]
InpMinBodyToRange=0.18// avoid dojis - [=== Auto Filters ===]
InpUseATRPercentileFilter=true// dailyATRpercentile gate - [=== Auto Filters ===]
InpATRPctlLow= 30 // trade only if pctl in [low,high] - [=== Auto Filters ===]
InpATRPctlHigh= 85 // --- Hardening:GMTSession Filter --- - [===
GMTSessionFilter(Hardening) ===]InpNewYorkEndGMT= 21 // --- Hardening: Capital Protection --- - [=== Capital
Protection(Hardening) ===]InpCapAmount=0.0// Capital cap amount (0=disabled) - [=== Capital
Protection(Hardening) ===]InpDailyLossLimitPct=5.0// --- Hardening: Trade Safety --- - [=== Trade
Safety(Hardening) ===]InpNewsBufferMinutes= 30 // ==================================================================//
// Pipsgrowth EX02028 Breakout — Execution Flow (from source analysis)
// Family: Breakout
// Multi-symbol VWAP+KAMA Donchian/SuperTrend scalper with ADX regime switching between mean-reversion and breakout modes, session VWAP sigma bands, RSI(2) recapture, dynamic lock profit
ON_INIT:
Create indicator handles: standard set
Initialize state variables
Detect broker GMT offset
ON_TICK:
1. Refresh indicator buffers (closed-bar shift=1)
2. Manage existing positions:
- Break-even check
- ATR trailing stop
- Profit lock ratchet
- Time-based exit
- Opposite-signal exit
3. If new bar:
a. ClassifyRegime() — ADX/ATR/BB regime detection
b. NoTradeGate() checks:
- Market open + session filter
- Spread limit
- Cooldown after loss
- Consecutive loss limit
- Kill switch
- Max drawdown
- Max concurrent positions
- Daily/weekly loss limits
c. GenerateSignal() — strategy-specific entry logic
d. CheckConfirm() — HTF alignment + R:R + ADX minimum
e. Calculate position size from risk %
f. Execute with retry logic
g. Mark bar to prevent duplicates
ON_TESTER:
Custom fitness = weighted(RecoveryFactor, ROI, ProfitFactor, TradeCount, Sharpe, Drawdown)Optimization Profile
How to Install This EA on MT5
- 1Download the .mq5 file using the button above
- 2Open MetaTrader 5 on your computer
- 3Click File → Open Data Folder in the top menu
- 4Navigate to MQL5 → Experts and paste the .mq5 file there
- 5In MT5, right-click Expert Advisors in the Navigator panel → Refresh
- 6Drag the EA onto an H1 or H4 chart
- 7Set the range detection period, breakout buffer, and lot size in the EA dialog
- 8Enable Allow Algo Trading and click OK
EA Parameters
| Parameter | Default | Description |
|---|---|---|
| MagicNumber | 22202028 | 2220 + Expert ID (334) |
| SymbolsCSV | "EURUSD,USDJPY,GBPUSD,EURJPY,AUDUSD" | add XAUUSD only if spreads are tight |
| InpTF | 1 | Working timeframe (0=current,1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1,8=W1,9=MN1) |
| InpLockMinusYPointsBuffer | 18 | -------------- INITIAL vs ADDITIONAL (adds gating) ----------------- |
| MinProfitPerTradeToAdd | 4.0 | points |
| PauseLossAmountMinutes | 60 | ---------------------- TRADE / RISK / EXECUTION -------------------- |
| InpUseAutoMinLot | true | cent-safe |
| InpFixedLot | 0.10 | used if auto-min disabled |
| InpATR_SL_Mult | 1.0 | default MR/BO SL multipliers below; these are base |
| InpATR_TP_Mult | 2.0 | base TP multiplier (BO ~2–3; MR ~1.6–2) |
| InpSL_Points | 250 | fallback when ATR disabled |
| InpCooldownSecondsDir | 20 | ---------------------- LOGIC (few knobs) --------------------------- |
| InpADXSwitch | 18 | ADX<switch => MR else BO |
| InpDonchianPeriod | 20 | breakout window |
| InpST_ATR_Period | 10 | SuperTrend ATR |
| InpST_Mult | 2.0 | SuperTrend multiplier |
| InpRSI2_LevelLow | 10 | MR recapture threshold (BUY) |
| InpRSI2_LevelHigh | 90 | MR recapture threshold (SELL) |
| InpVWAP_SigmaInner | 1.5 | inner band |
| InpVWAP_SigmaOuter | 2.0 | outer band (MR touch) |
| InpVWAP_StdLookback | 60 | sigma calc window (bars) |
| InpNeedConfirmationsK | 2 | confirmations needed |
| InpUseDynamicSpreadCap | true | Median+MAD per symbol |
| InpSpreadMADMult | 3.0 | cap = med + k*MAD |
| InpSpreadCapAbsPoints | 0 | 0=off; else absolute cap |
| InpMinTicksPerMin | 18 | activity floor |
| InpMinBodyToRange | 0.18 | avoid dojis |
| InpUseATRPercentileFilter | true | daily ATR percentile gate |
| InpATRPctlLow | 30 | trade only if pctl in [low,high] |
| InpATRPctlHigh | 85 | --- Hardening: GMT Session Filter --- |
| InpNewYorkEndGMT | 21 | --- Hardening: Capital Protection --- |
| InpCapAmount | 0.0 | Capital cap amount (0=disabled) |
| InpDailyLossLimitPct | 5.0 | --- Hardening: Trade Safety --- |
| InpNewsBufferMinutes | 30 | ==================================================================// |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX02028 EX8 Multi-Symbol VWAP+KAMA Donchian — multi-symbol scalper with ADX regime switch, full 12-layer stack."
//==================================================================//
// TIMEFRAME MAPPING //
//==================================================================//
ENUM_TIMEFRAMES MapTimeframe_EX02028(int tf)
{
switch(tf)
{
case 0: return (ENUM_TIMEFRAMES)Period();
case 1: return PERIOD_M1;
case 2: return PERIOD_M5;
case 3: return PERIOD_M15;
case 4: return PERIOD_M30;
case 5: return PERIOD_H1;
case 6: return PERIOD_H4;
case 7: return PERIOD_D1;
case 8: return PERIOD_W1;
case 9: return PERIOD_MN1;
default: return PERIOD_M1;
}
}
ENUM_TIMEFRAMES g_tf = PERIOD_M1;
//==================================================================//
// INPUTS //
//==================================================================//
input group "=== Core ==="
input long MagicNumber = 22202028; // 2220 + Expert ID (334)
input string InpTradeComment = "Psgrowth.com Expert_02028";
input string SymbolsCSV = "EURUSD,USDJPY,GBPUSD,EURJPY,AUDUSD"; // add XAUUSD only if spreads are tight
input int InpTF = 1; // Working timeframe (0=current,1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1,8=W1,9=MN1)
//------------------ DYNAMIC LOCK PROFIT (Ratchet) -------------------
input group "=== Dynamic Lock Profit ==="
input bool InpEnableDynamicLockProfit = true;
input int InpLockProfitEveryXPoints = 120;
input int InpLockMinusYPointsBuffer = 18;
//-------------- INITIAL vs ADDITIONAL (adds gating) -----------------
input group "=== Initial vs Additional ==="
input int MaxOpenTradesPerSymbol = 2;
input int MaxTotalOpenTrades = 6;
input bool AllowOnlyProfitableAdditions = true;
input double MinProfitPerTradeToAdd = 4.0; // points
//--------------------------- PAUSE GUARDS ---------------------------
input group "=== Pause Guards ==="
input bool PauseOnConsecutiveLosses = false;
input int PauseConsecutiveLossesCount = 3;
input int PauseConsecutiveLossesMinutes = 60;
input bool PauseOnLossAmount = false;
input double PauseLossAmount = 100.0;
input int PauseLossAmountMinutes = 60;
Full source code available on download
Educational purposes only. Do NOT use with real money. Test on demo accounts only.
Clear Warning: Educational Purposes Only
Clear Warning: This Expert Advisor is for educational and testing purposes only. Do NOT use it with real money. Test only on demo accounts. Trading with real money involves substantial risk of capital loss. This does not constitute investment advice.
Recommended Brokers for This EA
These EAs run on MT5 — use a regulated broker with fast execution and tight spreads
Markets.com
Exness
IC Markets
Similar Expert Advisors
View All Expert AdvisorsMore Breakout strategy EAs from our library
Pipsgrowth EX02026 Breakout
Pipsgrowth.com EX02026 XAUUSD_M5_Donchian_EA — Donchian breakout with RSI and speed filter, full 12-layer stack.
Pipsgrowth EX02001 Breakout
Pipsgrowth.com EX02001 HFS NS92 XAUUSD 5M — fractal Donchian breakout with RSI extreme filter, full 12-layer stack.
Pipsgrowth EX02027 Breakout
Pipsgrowth.com EX02027 EX8 Multi-Symbol VWAP+KAMA Donchian — multi-symbol scalper with ADX regime switch, full 12-layer stack.
Community
Educational purposes only. Do NOT use with real money. Test on demo accounts only.