Pipsgrowth EX11002 MultiFilterScalper
MT5 Expert Advisor (Open Source) · XAUUSD · M5
Pipsgrowth.com EX11002 MultiFilter_XAUUSD_5M — multi-indicator confluence scalper with EMA/ATR/HA/SuperTrend/Hull filters, full 12-layer stack.
Overview
EX11002 MultiFilterScalper is built around a single architectural decision that sets it apart from typical indicator confluence EAs: instead of requiring every filter to agree (an AND-gate) or triggering on any single filter (an OR-gate), it tallies votes from each enabled filter and only fires when a majority of the active filters point in the same direction. With the default configuration — EMA trend, ATR range gate, Heiken Ashi, and SuperTrend all enabled, Hull MA disabled — that means the EA waits for three of the three directional filters (EMA, HA, SuperTrend) to all agree on a buy or sell before it commits capital. This majority-vote structure trades a small amount of trade frequency for a meaningful reduction in false triggers, because the EA is structurally incapable of entering on a one-filter flicker.
Each filter contributes a single integer vote on every closed bar (shift=1 to prevent repainting). The EMA filter reads the close of the previous bar against a 50-period exponential moving average and votes +1 if price is above the EMA, -1 if below. The Heiken Ashi filter rebuilds the synthetic HA candles inline and requires two consecutive bullish HA closes for a buy vote, two consecutive bearish for a sell vote, with the count controlled by InpHaConsecutive. The SuperTrend filter computes the classic upper/lower band — high-low midpoint plus or minus three ATR multiples — over a 10-bar ATR window and votes +1 if the current and previous closes are both above the lower band, -1 if both are below the upper band. The Hull MA filter, disabled by default and activated by setting InpUseHullFilter = true, builds the standard Hull construction (2×WMA(half-period) minus WMA(full-period)) and votes on the direction of the Hull value from one bar to the next.
The ATR filter is structurally different from the other three. It does not cast a directional vote — instead it acts as a range gate. The EA reads the current ATR(14) in points and refuses to trade when ATR is below InpMinAtr (default 0.5 points, meaning the market is too quiet) or above InpMaxAtr (default 50.0 points, meaning volatility has spiked into a regime the EA does not want to participate in). Setting InpMaxAtr = 0 disables the upper bound. This is the EA's primary environment filter, and it does not contribute to the vote count; it simply returns from OnTick before the voting logic runs.
The required vote threshold scales with the number of enabled directional filters. With Hull off, the EA counts EMA, HA, and SuperTrend (three filters) and needs at least total/2 + 1 = two of the three to agree. With Hull on, that becomes three of four. Crucially, the EA also checks that the majority direction strictly exceeds the minority — so two buy votes and one sell vote on a three-filter configuration will not fire on a buy. This is the difference between "majority agrees" and "majority is decisive."
When a signal does fire, the EA computes the stop and target as multiples of the current ATR. InpStopLossAtr = 1.5 and InpTakeProfitAtr = 2.0 give a stop-to-target ratio of 1.5:2.0 (R-multiple of 1.33), with a hard floor of 50 points on the stop distance to keep the broker's SYMBOL_TRADE_STOPS_LEVEL constraint from rejecting the order. GetLotSize() then sizes the position to risk InpRiskPercent = 1.0% of effective capital against that stop distance, with InpFixedLot = 0.01 as the fallback when risk-percent is set to zero, capped at InpMaxLotSize = 10.0. The capital base passed to the lot calculation is GetEffectiveCapital(), which by default returns the full account equity but can be clamped to InpCapitalCapAmount when that input is non-zero — a deliberate opt-in for traders who want to ring-fence a portion of their balance to this EA only.
The execution path is straightforward: the EA requests a buy at the current Ask or a sell at the current Bid with the ATR-derived SL and TP, checks that the order's required margin does not exceed the free margin, then attempts the order in a three-iteration retry loop with 150ms sleeps on REQUOTE, TIMEOUT, and PRICE_OFF returns. The CTrade instance is configured to use the broker's preferred filling mode selected in FOK > IOC > RETURN order from the SYMBOL_FILLING_MODE mask at init time. The slippage tolerance is 30 points (InpSlippage).
Position management runs on every tick, not just on new-bar logic. ManageProfitLock() walks every open position for this EA's magic number and, once profit exceeds InpLockTrigger = 300 points, sets a new stop at the current price minus InpLockDistance = 100 points — but only advances the stop in discrete 50-point steps via InpLockStep, never backwards, which prevents the stop from loosening during a pullback. The same function handles both long and short positions. This step-ratchet style is intentionally simpler than a continuous trail: it produces fewer order modifications, which means fewer re-quote risks and less broker load.
Pyramiding is on by default (InpUsePyramid = true) and supports up to InpMaxPyramidTrades = 3 open positions. The CheckPyramidSafety() function blocks any add-on when the new signal would reverse the existing direction (a buy while a sell is open, or vice versa), and crucially it measures secured profit — the distance between the current stop and the entry price — not floating profit. A new position is only added when the existing position's stop has already been advanced at least InpPyramidMinProfit = 100 points into profit, ensuring every pyramid addition is into a trade that has already proven itself. With InpUsePyramid = false, the EA falls back to a strict one-position-at-a-time mode.
The hardening stack is unusually comprehensive for a single-MA-filter scalper. IsSafeToTrade() returns false when any of the following conditions hold: equity is at or above the capital cap, equity has dropped below the InpCapitalCapFloor = $50 floor, equity has fallen below 95% of the initial balance, daily realized loss exceeds 3% of effective capital, weekly realized loss exceeds 6%, the consecutive-loss counter has hit 3 and the cooldown timer is still active, the daily trade count has reached 50, the market is closed, the current GMT-derived time is outside the configured session windows, or the optional news filter is on and the time is within 15 minutes of a London or New York open. Realized PnL is fed into these counters through OnTradeTransaction, which walks the deal history on every DEAL_TRANSACTION_DEAL_ADD event and updates g_realizedToday, g_realizedWeek, g_tradesToday, and g_consecLosses from the actual fill records, not from EA bookkeeping. After three consecutive losses, a 30-minute cooldown (InpCooldownMinutes) blocks all new entries regardless of signal strength.
The session filter is GMT-based, not server-time-based. DetectGMTOffset() walks back up to 100 H1 bars at init looking for the weekend gap (the jump from Friday 22:00 to Sunday 22:00 or Sunday 23:00) and computes the broker's offset from GMT, or accepts the manual override via InpServerGMTOffset. The active session is then computed in real GMT: London 7-16, New York 12-21, and Asian 0-7. With InpAvoidAsia = true (the default), the EA refuses to trade during pure Asian hours, but it will still trade the London and New York overlap, which is the session XAUUSD scalpers typically want.
Time-based exits are not built into this EA in the conventional sense — there is no InpMaxHoldBars input. The mechanism that closes positions is the profit-lock ratchet (which guarantees that any trade that moves 300+ points in profit will eventually close on a pullback) combined with the optional InpCloseAtEnd = true flag, which closes all positions for this magic number when the server time crosses the end of the configured trading window. The default time window is 08:00-20:00 server time, which roughly brackets the London and New York sessions depending on broker offset.
The OnTester() fitness function for strategy optimizer runs is (net × pf) / (1 + dd) with a minimum of 30 trades required for a non-zero result, and it short-circuits to zero when the trade count is below that floor. The divisor protects against degenerate results on small samples. This is the same fitness family used across the EX11 family.
In backtesting and live deployment, this EA is a slow-twitch, high-conviction XAUUSD M5 scalper. The vote structure means it will not fire on every 5-minute bar, even in clean trends — it will fire only when at least two of EMA, HA, and SuperTrend agree on direction, with ATR confirming the environment is neither dead nor chaotic. The profit-lock ratchet means that winning trades routinely give back the last 100 points before exiting, which is the price of the simple-step trailing design. The hardening stack is the main reason to consider this EA on a live account: the daily and weekly loss caps, the cooldown, and the equity floor are all running automatically and cannot be overridden by signal strength.
Strategy Deep Dive
Each closed M5 bar is read by up to three directional filters and one non-voting range gate, and the directional filters each cast a buy or sell vote that gets tallied into a running score. The range gate is purely a volatility filter — it reads ATR(14) in points and silently returns from OnTick when ATR is below InpMinAtr (0.5 points, the dead-market floor) or above InpMaxAtr (50.0 points, the chaos ceiling). The three directional filters by default are a 50-period EMA slope check, a Heiken Ashi two-consecutive-bars same-color check built inline from raw OHLC, and a SuperTrend upper/lower band check using a 10-period ATR with a 3.0 multiplier; Hull MA is a fourth optional directional filter, disabled in the shipped defaults. A signal fires only when a strict majority of the directional filters agree on the same side. Position size comes from a 1% risk model against the ATR-derived stop, and trade management is handled by a step-ratchet profit lock that advances the stop in 50-point increments once profit exceeds 300 points. The hardening stack enforces a 3% daily loss cap, a 6% weekly loss cap, a 30-minute cooldown after three consecutive losses, a 50-trade daily limit, and a 95% equity floor, all driven from the OnTradeTransaction deal feed rather than from EA bookkeeping.
The EA tallies one buy or sell vote from each enabled directional filter on every closed M5 bar: EMA(50) compares the previous close to the EMA, Heiken Ashi requires two consecutive same-color synthetic candles, SuperTrend checks whether the close sits above or below its ATR-derived bands, and Hull (off by default) compares the current Hull value to the prior bar. The ATR(14) range gate is non-voting and blocks entries when volatility is below 0.5 or above 50.0 points. A signal fires only when a strict majority of the directional filters agree on the same side — that is two of three with Hull off, or three of four with Hull on.
The profit-lock ratchet in ManageProfitLock() advances the stop in 50-point steps once a position is more than 300 points in profit, keeping the stop 100 points behind the current price and never loosening. With InpCloseAtEnd enabled, all positions close when the server clock crosses the configured end-of-session time (default 20:00). The EA has no traditional time-based exit, no partial-close, and no break-even — exit happens entirely through the ratchet and the optional end-of-session flush.
Stop loss is ATR(14) × InpStopLossAtr (default 1.5), with a hard minimum of 50 points to respect the broker's SYMBOL_TRADE_STOPS_LEVEL. There is no fixed-pip stop — the stop scales with the current volatility of the instrument, so it widens automatically when ATR expands and tightens when ATR contracts.
Take profit is ATR(14) × InpTakeProfitAtr (default 2.0), giving a 1.5:2.0 stop-to-target ratio and a 1.33 R-multiple on every entry. The TP does not move or partial-close — it is set at entry and remains static, with all in-trade management done by the profit-lock ratchet rather than by trailing the target.
Designed for XAUUSD M5 with a $100 minimum recommended balance and HIGH risk classification. The majority-vote filter and the strict GMT-based session window (London 7-16, New York 12-21, Asia avoided by default) mean this EA should only be deployed on a broker offering low-spread gold execution during the London and New York overlap, with the optional 15-minute news filter switched on for traders running through high-impact releases. The capital allocation cap input is the natural single-account deployment lever: set InpCapitalCapAmount to the dollar amount you want this EA to manage and leave InpCapitalCapFloor at $50, and the EA will stop opening new positions once that ceiling is reached even if the rest of the account has more equity.
Strategy Logic
Pipsgrowth EX11002 MultiFilterScalper — Strategy Logic Analysis (from .mq5 source)
Family: MultiFilterScalper
Magic: 22211002
Version: 2.00
BRIEF:
Multi-filter EA combining EMA trend, ATR volatility, Heiken Ashi, SuperTrend and Hull MA filters — requires majority agreement to trigger entries. ATR-based SL/TP, safe pyramiding, profit-lock trailing, time filter and risk-based lot sizing. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
INDICATOR STACK:
- Standard
MT5indicators
KEY FUNCTIONS:
GetHADirection()CalculateSuperTrend()CalculateHullDirection()CalculateWMA()CheckPyramidSafety()ManageProfitLock()GetLotSize()GetEffectiveCapital()RefreshRates()IsTradingTime()StrToTime()CloseAllPositions()- ...and 11 more
INTERNAL CONSTANTS (0 total):
INPUT PARAMETERS (51 total across 13 groups):
- [===
EMATrend Filter ===]InpUseEmaFilter=true// UseEMAFilter - [===
EMATrend Filter ===]InpEmaPeriod= 50 //EMAPeriod - [===
ATRVolatility Filter ===]InpUseAtrFilter=true// UseATRFilter - [===
ATRVolatility Filter ===]InpAtrPeriod= 14 //ATRPeriod - [===
ATRVolatility Filter ===]InpMinAtr=0.5// MinATR(Points) - [===
ATRVolatility Filter ===]InpMaxAtr=50.0// MaxATR(Points, 0=no limit) - [=== Heiken Ashi Filter ===]
InpUseHaFilter=true// Use Heiken Ashi Filter - [=== Heiken Ashi Filter ===]
InpHaConsecutive= 2 // Consecutive HA Bars Required - [===
SuperTrendFilter ===]InpUseStFilter=true// UseSuperTrendFilter - [===
SuperTrendFilter ===]InpStAtrPeriod= 10 //SuperTrendATRPeriod - [===
SuperTrendFilter ===]InpStMultiplier=3.0//SuperTrendMultiplier - [=== Hull MA Filter ===]
InpUseHullFilter=false// Use Hull MA Filter - [=== Hull MA Filter ===]
InpHullPeriod= 20 // Hull Period - [=== Money Management ===]
InpRiskPercent=1.0// Risk per trade (% of Balance) - [=== Money Management ===]
InpFixedLot=0.01// FixedLot(if Risk=0) - [=== Money Management ===]
InpMaxLotSize=10.0// Max Lot Size per trade - [=== Money Management ===]
InpStopLossAtr=1.5// Stop LossATRMultiplier - [=== Money Management ===]
InpTakeProfitAtr=2.0// Take ProfitATRMultiplier - [=== Trade Management ===]
InpSlippage= 30 // MaxSlippage(Points) - [=== Trade Management ===]
InpMaxSpread= 200 // MaxSpread(Points) - [=== Trade Management ===]
InpMagicNumber=22211002// Magic Number - [=== Trade Management ===]
InpTradeComment= "Psgrowth.com Expert_11002" // TradeComment - [=== Pyramid / Scaling ===]
InpUsePyramid=true// Enable Safe Pyramiding - [=== Pyramid / Scaling ===]
InpMaxPyramidTrades= 3 // Max Open Positions - [=== Pyramid / Scaling ===]
InpPyramidMinProfit= 100 // Min SecuredProfit(Points) for Next Add - [=== Profit Lock & Trail ===]
InpUseProfitLock=true// Enable Profit Lock / Trailing - [=== Profit Lock & Trail ===]
InpLockTrigger= 300 // TriggerDistance(Points in Profit) - [=== Profit Lock & Trail ===]
InpLockStep= 50 // Step to advanceSL(Points) - [=== Profit Lock & Trail ===]
InpLockDistance= 100 // Distance to keep SL fromPrice(Points) - [=== Time Management ===]
InpUseTimeFilter=true// Enable Time Filter - [=== Time Management ===]
InpStartTime= "08:00" // Start TradingTime(Server) - [=== Time Management ===]
InpEndTime= "20:00" // End TradingTime(Server) - [=== Time Management ===]
InpCloseAtEnd=false// Close all at end time - [=== Hardening: Risk Management ===]
InpMaxConsecLosses= 3 // Max consecutive losses before cooldown (0=disabled) - [=== Hardening: Risk Management ===]
InpCooldownMinutes= 30 // Cooldown minutes after consec losses (0=disabled) - [=== Hardening: Risk Management ===]
InpMaxTradesPerDay= 50 // Maximum trades per day - [=== Hardening: Risk Management ===]
InpMinEquityPercent=95.0// Stop trading if equity falls below this % of initial balance - [=== Hardening: Risk Management ===]
InpDailyLossLimitPct=3.0// Daily loss limit (% of effective capital) - [=== Hardening: Risk Management ===]
InpWeeklyLossLimitPct=6.0// Weekly loss limit (% of effective capital) - [=== Hardening: Capital Allocation Cap ===]
InpCapitalCapAmount=0.0// Cap amount ($ real money equity) - [=== Hardening: Capital Allocation Cap ===]
InpCapitalCapFloor=50.0//Floor($); block entries below this - [=== Hardening:
GMTSessions ===]InpServerGMTOffset= 0 // ServerGMToffset in hours (0=auto-detect via weekend gap) - [=== Hardening:
GMTSessions ===]InpLondonStartHour= 7 // London session start (GMT) - [=== Hardening:
GMTSessions ===]InpLondonEndHour= 16 // London session end (GMT) - [=== Hardening:
GMTSessions ===]InpNYStartHour= 12 // New York session start (GMT) - [=== Hardening:
GMTSessions ===]InpNYEndHour= 21 // New York session end (GMT) - [=== Hardening:
GMTSessions ===]InpAvoidAsia=true// Avoid Asian session - [=== Hardening:
GMTSessions ===]InpAsiaStartHour= 0 // Asian session start (GMT) - [=== Hardening:
GMTSessions ===]InpAsiaEndHour= 7 // Asian session end (GMT) - [=== Hardening:
GMTSessions ===]InpNewsFilter=false// Avoid trading near news session opens - [=== Hardening:
GMTSessions ===]InpNewsFilterMinutes= 15 // Minutes to avoid around news
// Pipsgrowth EX11002 MultiFilterScalper — Execution Flow (from source analysis)
// Family: MultiFilterScalper
// Multi-filter EA combining EMA trend, ATR volatility, Heiken Ashi, SuperTrend and Hull MA filters — requires majority agreement to trigger entries. ATR-based SL/TP, safe pyramiding, profit-lock trailing, time filter and risk-based lot sizing. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
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 from the Navigator onto any chart (M1 or M5 recommended)
- 7In the EA dialog, enable Allow Algo Trading and set your lot size
- 8Click OK — the EA will begin trading automatically
EA Parameters
| Parameter | Default | Description |
|---|---|---|
| InpUseEmaFilter | true | Use EMA Filter |
| InpEmaPeriod | 50 | EMA Period |
| InpUseAtrFilter | true | Use ATR Filter |
| InpAtrPeriod | 14 | ATR Period |
| InpMinAtr | 0.5 | Min ATR (Points) |
| InpMaxAtr | 50.0 | Max ATR (Points, 0=no limit) |
| InpUseHaFilter | true | Use Heiken Ashi Filter |
| InpHaConsecutive | 2 | Consecutive HA Bars Required |
| InpUseStFilter | true | Use SuperTrend Filter |
| InpStAtrPeriod | 10 | SuperTrend ATR Period |
| InpStMultiplier | 3.0 | SuperTrend Multiplier |
| InpUseHullFilter | false | Use Hull MA Filter |
| InpHullPeriod | 20 | Hull Period |
| InpRiskPercent | 1.0 | Risk per trade (% of Balance) |
| InpFixedLot | 0.01 | Fixed Lot (if Risk=0) |
| InpMaxLotSize | 10.0 | Max Lot Size per trade |
| InpStopLossAtr | 1.5 | Stop Loss ATR Multiplier |
| InpTakeProfitAtr | 2.0 | Take Profit ATR Multiplier |
| InpSlippage | 30 | Max Slippage (Points) |
| InpMaxSpread | 200 | Max Spread (Points) |
| InpMagicNumber | 22211002 | Magic Number |
| InpTradeComment | "Psgrowth.com Expert_11002" | Trade Comment |
| InpUsePyramid | true | Enable Safe Pyramiding |
| InpMaxPyramidTrades | 3 | Max Open Positions |
| InpPyramidMinProfit | 100 | Min Secured Profit (Points) for Next Add |
| InpUseProfitLock | true | Enable Profit Lock / Trailing |
| InpLockTrigger | 300 | Trigger Distance (Points in Profit) |
| InpLockStep | 50 | Step to advance SL (Points) |
| InpLockDistance | 100 | Distance to keep SL from Price (Points) |
| InpUseTimeFilter | true | Enable Time Filter |
| InpStartTime | "08:00" | Start Trading Time (Server) |
| InpEndTime | "20:00" | End Trading Time (Server) |
| InpCloseAtEnd | false | Close all at end time |
| InpMaxConsecLosses | 3 | Max consecutive losses before cooldown (0=disabled) |
| InpCooldownMinutes | 30 | Cooldown minutes after consec losses (0=disabled) |
| InpMaxTradesPerDay | 50 | Maximum trades per day |
| InpMinEquityPercent | 95.0 | Stop trading if equity falls below this % of initial balance |
| InpDailyLossLimitPct | 3.0 | Daily loss limit (% of effective capital) |
| InpWeeklyLossLimitPct | 6.0 | Weekly loss limit (% of effective capital) |
| InpCapitalCapAmount | 0.0 | Cap amount ($ real money equity) |
| InpCapitalCapFloor | 50.0 | Floor ($); block entries below this |
| InpServerGMTOffset | 0 | Server GMT offset in hours (0=auto-detect via weekend gap) |
| InpLondonStartHour | 7 | London session start (GMT) |
| InpLondonEndHour | 16 | London session end (GMT) |
| InpNYStartHour | 12 | New York session start (GMT) |
| InpNYEndHour | 21 | New York session end (GMT) |
| InpAvoidAsia | true | Avoid Asian session |
| InpAsiaStartHour | 0 | Asian session start (GMT) |
| InpAsiaEndHour | 7 | Asian session end (GMT) |
| InpNewsFilter | false | Avoid trading near news session opens |
| InpNewsFilterMinutes | 15 | Minutes to avoid around news |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX11002 MultiFilter_XAUUSD_5M — multi-indicator confluence scalper with EMA/ATR/HA/SuperTrend/Hull filters, full 12-layer stack."
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\AccountInfo.mqh>
// --- Global Objects ---
CTrade m_trade;
CSymbolInfo m_symbol;
CPositionInfo m_position;
CAccountInfo m_account;
// --- Inputs ---
input group "=== EMA Trend Filter ==="
input bool InpUseEmaFilter = true; // Use EMA Filter
input int InpEmaPeriod = 50; // EMA Period
input group "=== ATR Volatility Filter ==="
input bool InpUseAtrFilter = true; // Use ATR Filter
input int InpAtrPeriod = 14; // ATR Period
input double InpMinAtr = 0.5; // Min ATR (Points)
input double InpMaxAtr = 50.0; // Max ATR (Points, 0=no limit)
input group "=== Heiken Ashi Filter ==="
input bool InpUseHaFilter = true; // Use Heiken Ashi Filter
input int InpHaConsecutive = 2; // Consecutive HA Bars Required
input group "=== SuperTrend Filter ==="
input bool InpUseStFilter = true; // Use SuperTrend Filter
input int InpStAtrPeriod = 10; // SuperTrend ATR Period
input double InpStMultiplier = 3.0; // SuperTrend Multiplier
input group "=== Hull MA Filter ==="
input bool InpUseHullFilter = false; // Use Hull MA Filter
input int InpHullPeriod = 20; // Hull Period
input group "=== Money Management ==="
input double InpRiskPercent = 1.0; // Risk per trade (% of Balance)
input double InpFixedLot = 0.01; // Fixed Lot (if Risk=0)
input double InpMaxLotSize = 10.0; // Max Lot Size per trade
input double InpStopLossAtr = 1.5; // Stop Loss ATR Multiplier
input double InpTakeProfitAtr = 2.0; // Take Profit ATR Multiplier
input group "=== Trade Management ==="
input int InpSlippage = 30; // Max Slippage (Points)
input int InpMaxSpread = 200; // Max Spread (Points)
input ulong InpMagicNumber = 22211002; // Magic Number
input string InpTradeComment = "Psgrowth.com Expert_11002"; // Trade Comment
input group "=== Pyramid / Scaling ==="
input bool InpUsePyramid = true; // Enable Safe Pyramiding
input int InpMaxPyramidTrades = 3; // Max Open Positions
input int InpPyramidMinProfit = 100; // Min Secured Profit (Points) for Next Add
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 Scalping strategy EAs from our library
Pipsgrowth EX14020 Scalper
Pipsgrowth.com EX14020 AIXAUUSDScalper — AI-assisted XAUUSD scalper, full 12-layer stack.
Pipsgrowth EX10006 Momentum-Scalper
Pipsgrowth.com EX10006 USDJPY Scalper — USDJPY pullback momentum scalper, full 12-layer stack.
Pipsgrowth EX14021 Scalper
Pipsgrowth.com EX14021 EURUSDScalper — BB + MACD divergence scalper, full 12-layer stack.
Community
Educational purposes only. Do NOT use with real money. Test on demo accounts only.