P
PipsGrowth
OtherOpen Source – Free

Pipsgrowth EX15017 SMC-OrderBlock

MT5 Expert Advisor (Open Source) · XAUUSD · M5, H1

Pipsgrowth.com EX15017 LiquidityTrap — swing-zone scalper with DLP ratchet and pause guards, full 12-layer stack.

Overview

Pipsgrowth EX15017 is a liquidity-trap scalper that hunts for stop-runs beneath swing lows and above swing highs on XAUUSD. Where most SMC-flavored EAs wrap their entries in five or six stacked confirmations, this one trims everything to a single mandatory check (price surge) and three optional ones (volume surge, higher-timeframe trend, engulfing pattern) — all three of which ship turned OFF by default. The result is a deliberately conservative bar to clear: only setups with a real displacement through a freshly-printed swing high or low qualify, and the trader decides whether to layer additional filtering on top.

The zone detection routine runs once per new bar. It pulls the last MathMax(20, SwingBarCount*2+5) bars — at the default SwingBarCount=1 that is 20 bars — and asks FindSwingHigh() / FindSwingLow() to find the first bar whose high (or low) strictly exceeds both neighbors within the bar count. Each confirmed swing is registered as a LiquidityZone struct stored in a global array, drawn on the chart as a dashed horizontal line (crimson for upper, dodger blue for lower) when DrawZonesOnChart=true, and tagged with a 24-hour expiry through MaxZoneAgeHours=24. New zones within 0.3% of an existing zone of the same side are silently dropped, which keeps the chart from stacking redundant levels when a swing retests the same price.

Entry checks fire from EvaluateSignalsAndTrade() after the zone list has been refreshed. For every active lower zone, the EA asks whether the current Ask price sits inside the 1% band above the zone level — that is, ask >= z AND ask <= z * 1.01. For upper zones the band is mirrored: bid <= z AND bid >= z * 0.99. The 1% band is intentionally generous because liquidity sweeps frequently spike through the level before reversing; a tight band would filter most legitimate traps out. When price is in band, four confirmations run in sequence: CheckPriceSurge() measures the move of the current price away from the midpoint of the most recent three-bar range, divided by the range itself, and demands it be at least PriceSurgeFraction=0.001 (0.1%). IsVolumeSurge() compares current tick volume to a 5-bar average and demands VolumeSurgeMultiplier=1.1 (1.1× average) — but only when RequireVolumeSurge=true, which is OFF by default. HTFTrendConfirms() reads the MA(20) vs MA(50) relationship on the higher timeframe (H4 by default) and aligns direction with the zone — also OFF by default via UseHigherTFConfirmation=false. IsBullishEngulfing() / IsBearishEngulfing() scan up to EngulfingLookback=3 candles for an engulfing body, OFF by default via UseEngulfingPattern=false. With the stock configuration, only the price-surge gate actually filters — the other three return true immediately, so a trade triggers whenever Ask is in the 1% band and the price has displaced at least 0.1% of its 3-bar range from the midpoint.

Stop loss is placed at zone * 0.995 for buys (0.5% below the lower zone) and zone * 1.005 for sells (0.5% above the upper zone). Take profit is computed from the live Ask/Bid minus the stop distance, scaled by the ratio DefaultTPPoints / DefaultSLPoints = 600 / 300 = 2.0, so TP is exactly 2:1 against the zone-anchored stop. ValidateStops() then pushes the SL/TP outward if the broker's SYMBOL_TRADE_STOPS_LEVEL minimum would otherwise be violated, which prevents rejects on tight-spread gold setups. After a fill, the zone is deactivated (g_zones[i].active = false) so the same level can only fire one trade per detection cycle.

Position sizing follows a two-mode RiskMode enum. In RISK_FIXED_LOT (default), every order is FixedLot=0.10. In RISK_PERCENT, CalcLotsByRisk() computes the lot size that risks exactly RiskPerTradePercent=1.0% of the account balance at the configured SL distance, using g_tickValue and the broker-declared tick size to convert the stop distance into account currency. The result is clamped to the symbol's SYMBOL_VOLUME_MIN / MAX / STEP via NormalizeLots(). The fixed-lot default is unusually large for a $100 minimum-deposit account; traders should plan to drop FixedLot to 0.01 or switch to RISK_PERCENT before any live deployment.

The management layer is where EX15017 differs most from its EX15 cousins. The DLP (Dynamic Lock Profit) system is the headline feature and is enabled by default. ApplyDynamicLockProfitToPosition() runs on every tick for every open position. It computes the favorable move in points (Bid - entry for buys, entry - Ask for sells), floors that to a step count via (int)MathFloor(movedPts / InpLockProfitEveryXPoints), and only acts when the count is ≥ 1. The new stop is then entry + steps * 150 - 20 points for buys, with InpLockProfitEveryXPoints=150 and InpLockMinusYPointsBuffer=20 being the defaults. The buffer means the lock fires 20 points shy of the level, not at the level itself — useful for keeping the order from getting stopped by spread noise on gold. The ratchet is strictly one-directional: for buys, the new SL is applied only if it is greater than the current SL, and for sells only if it is less. The level is also pushed back to respect SYMBOL_TRADE_STOPS_LEVEL, and ModifySL() has its own 2-attempt retry with linear backoff.

The second distinctive design choice is the initial-vs-additional trade tagging. TryEnter() checks CountOpenPositions(dir) to decide whether the new order is the first in its direction (tagged Initial BUY / Initial SELL in the comment) or an addition (tagged Add#1, Add#2, etc., with separate counters per direction tracked in g_nextAddIndexBuy and g_nextAddIndexSell). When AllowOnlyProfitableAdditions=true (the default), additions are blocked unless every existing same-direction trade is sitting on at least MinProfitPerTradeToAdd=5.0 points of profit. This means the EA will not pyramid into a losing position — it requires the existing trade to be working before it adds to it. MaxOpenTrades=5 caps the total per magic across both directions.

The third distinguishing feature is a pair of pause guards wired through OnTradeTransaction(). PauseOnConsecutiveLosses (OFF by default) tracks every closed-out loss for this magic in g_lossStreakCount, and when the count reaches PauseConsecutiveLossesCount=3, the EA sets g_tradePauseUntil to now + 60 minutes and refuses all entries until the timer expires. PauseOnLossAmount (OFF by default) accumulates the loss in dollars in g_lossStreakAmt and triggers the same 60-minute pause when the running total reaches PauseLossAmount=100. Either trigger resets on the next profitable (or breakeven) close. These two pause modes are unique to EX15017 in the EX15 family — none of the swing cousins (EX15011/12/13/15/16) implement the loss-amount path at all.

A few code-level notes worth knowing. The file has a code-quality issue: MapTimeframeInt() is declared 5 separate times in the source, all with the same switch on tf 1–7, which the MQL5 compiler accepts as long as no conflicts arise. Three retry helpers — TryClose_EX15017, TryClosePartial_EX15017, TryModify_EX15017 — are defined at the bottom of the file but are not called from the live OnTick / ModifySL / SendOrder path; the actual close and modify operations use the inline retry loops inside ModifySL() and SendOrder() instead. The header advertises Version: 2.00 but the OnInit log string reads LiquidityTrap_DLP_Additions_Pause_v3.1 — a version-label mismatch inherited from upstream. The native iMA handles (g_ma20Main, g_ma50Main, g_ma20HTF, g_ma50HTF) are the only indicator allocations; g_ma20HTF and g_ma50HTF are only created when UseHigherTFConfirmation=true is set.

A realistic backtest expectation: with all four confirmation gates off, the EA fires on any 1% zone retest with at least 0.1% displacement. On XAUUSD M30 that means a handful of trades per London session and another handful through New York. Hit rate will be modest because there is no pattern filter, but the 2:1 RR and the DLP ratchet should keep the equity curve positive on trending weeks. The pause guards, once enabled, will be the single most effective safety switch: 3 losses in a row or $100 of cumulative loss both stop the EA cold for an hour, which is enough time for a wild session to settle without permanently disabling the strategy.

Strategy Deep Dive

On every new bar of the configured timeframe (M30 by default, mapping to InpTimeframe=4), UpdateLiquidityZones() pulls the last 20 highs and lows, runs them through FindSwingHigh() and FindSwingLow() to locate 3-bar fractals, and registers each new swing as a LiquidityZone struct in a global array — drawn on chart as dashed horizontal lines and tagged with a 24-hour expiry. EvaluateSignalsAndTrade() then walks the active zone list and asks whether the current Ask (or Bid for sells) sits inside a 1% band above lower zones or a 1% band below upper zones. When in band, CheckPriceSurge() measures the current price's displacement from the midpoint of the last 3-bar range and demands at least 0.1% — the only default-on filter. The other three confirmation gates (volume surge, H4 MA-trend alignment, engulfing candle patterns) are off by default and pass through as TRUE. The Dynamic Lock Profit system runs on every tick, not just per-bar: ApplyDynamicLockProfitToPosition() floors the favorable move to a step count of 150 points and tightens the stop by one step per reached level with a 20-point buffer below the threshold, never loosening it. Initial vs additional entries are tagged in the trade comment, and AllowOnlyProfitableAdditions blocks new pyramid entries unless every existing same-direction trade is sitting on at least 5 points of profit. The pause guards hook into OnTradeTransaction: 3 consecutive losses or $100 of cumulative loss both set a 60-minute entry lockdown that resets on the next profitable close.

Entry Signal

Buy entries trigger when the Ask price is inside the 1% band above an active lower swing liquidity zone AND the price has displaced at least 0.1% (PriceSurgeFraction) of the recent 3-bar range from its midpoint. Sell entries mirror this on the upper zone. By default, the three other confirmation gates (volume surge, higher-timeframe trend, engulfing pattern) are all disabled and pass through as TRUE, so the price-surge check is the sole active filter at stock settings.

Exit Signal

Exits come from three paths: take-profit hits at the 2:1 RR target derived from DefaultTPPoints/DefaultSLPoints (600/300), stop-loss hits at the zone-anchored 0.5% level beyond the liquidity zone, or the Dynamic Lock Profit ratchet tightening the stop every 150 points of favorable move. Each filled zone is deactivated so the same level cannot re-trigger — the EA does not hold a position against its own swing zone.

Stop Loss

Stop loss is zone-anchored at 0.5% beyond the liquidity zone — for buys at zone * 0.995, for sells at zone * 1.005. DefaultSLPoints=300 points is used as a fallback when the zone-derived stop is unavailable, and ValidateStops() pushes the level further out if the broker's SYMBOL_TRADE_STOPS_LEVEL would otherwise be violated. The DLP ratchet then tightens this stop every 150 points of profit, never loosens it, and respects freeze-level on every modify.

Take Profit

Take profit is computed from the live Ask/Bid minus the zone-anchored stop distance, scaled by the ratio DefaultTPPoints/DefaultSLPoints (defaults 600/300 = 2.0), giving a clean 2:1 reward-to-risk. ValidateStops() ensures the level clears the broker's minimum stop distance, and the DLP ratchet can lock profit along the way before the target is hit.

Best For

Recommended for traders running XAUUSD on the M30 timeframe with $100+ account minimum, ECN/Raw-spread broker with slippage tolerance of 5 points or less, and a willingness to selectively turn on the optional confirmations (volume surge, H4 MA trend, or bullish/bearish engulfing) one at a time. Best deployed during the 08:00-20:00 broker-time window where most liquidity sweeps occur, with the PauseOnConsecutiveLosses and PauseOnLossAmount guards both flipped on as the only meaningful safety switches — without them, the EA has no drawdown cap and will keep trading through losing streaks.

Strategy Logic

Pipsgrowth EX15017 SMC-OrderBlock — Strategy Logic Analysis (from .mq5 source)

Family: SMC-OrderBlock Magic: 22215017 Version: 2.00

BRIEF: Liquidity-trap scalper using swing-derived liquidity zones with surge & pattern confirmations, dynamic lock-profit ratchet, initial vs additional trade tagging, and pause-guard protection. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

INDICATOR STACK:

  • Standard MT5 indicators

KEY FUNCTIONS:

  • Log()
  • NormalizePrice()
  • Clamp()
  • NormalizeLots()
  • IsWithinTradingHours()
  • MedianIndex()
  • GetSpreadCapPoints()
  • RefreshSymbolData()
  • DiscoverFillingModes()
  • CountOpenPositions()
  • OwnsPosition()
  • IsAllSameDirProfitableAtLeast()
  • ...and 24 more

INTERNAL CONSTANTS (0 total):

INPUT PARAMETERS (38 total across 11 groups):

  • [=== BASIC SETTINGS ===] MagicNumber = 22215017 // 2220 + Expert ID
  • [=== BASIC SETTINGS ===] InpTradeComment = "Psgrowth.com Expert_15017" // Trade Comment
  • [=== BASIC SETTINGS ===] InpTimeframe = 4 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Chart timeframe for analysis
  • [=== LIQUIDITY ZONE DETECTION ===] SwingBarCount = 1 // Bars each side to confirm swing
  • [=== LIQUIDITY ZONE DETECTION ===] MaxZoneAgeHours = 24 // Max zone age before deactivation (hours)
  • [=== LIQUIDITY ZONE DETECTION ===] PriceSurgeFraction = 0.001 // Min price surge (0.001 = 0.1% - more reasonable)
  • [=== ENTRY CONFIRMATIONS ===] RequireVolumeSurge = false // Require volume surge confirmation
  • [=== ENTRY CONFIRMATIONS ===] VolumeSurgeMultiplier = 1.1 // Volume multiplier vs average (1.1 = 10% above avg)
  • [=== ENTRY CONFIRMATIONS ===] VolumeLookbackBars = 5 // Bars to calculate volume average (shorter = more responsive)
  • [=== ENTRY CONFIRMATIONS ===] UseEngulfingPattern = false // Use engulfing candle patterns (often too restrictive)
  • [=== ENTRY CONFIRMATIONS ===] EngulfingLookback = 3 // Bars to scan for engulfing patterns
  • [=== ENTRY CONFIRMATIONS ===] UseHigherTFConfirmation = false // Use higher timeframe trend filter
  • [=== ENTRY CONFIRMATIONS ===] ConfirmationTF = 6 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Higher timeframe for confirmation
  • [=== POSITION SIZING ===] RiskMode = RISK_FIXED_LOT // Position sizing method
  • [=== POSITION SIZING ===] FixedLot = 0.10 // Fixed lot size (if RISK_FIXED_LOT)
  • [=== POSITION SIZING ===] RiskPerTradePercent = 1.0 // Risk per trade % of balance
  • [=== STOP LOSS & TAKE PROFIT ===] DefaultSLPoints = 300 // Default SL distance (points)
  • [=== STOP LOSS & TAKE PROFIT ===] DefaultTPPoints = 600 // Default TP distance (points)
  • [=== STOP LOSS & TAKE PROFIT ===] SlippagePoints = 5 // Max slippage tolerance (points)
  • [=== TIME & SESSION FILTER ===] EnableTimeFilter = true // Enable trading time restrictions
  • [=== TIME & SESSION FILTER ===] TradingHoursStart = "08:00" // Trading start time (broker time)
  • [=== TIME & SESSION FILTER ===] TradingHoursEnd = "20:00" // Trading end time (broker time)
  • [=== SPREAD CONTROL ===] UseDynamicSpreadCap = true // Use dynamic spread cap (3x median)
  • [=== SPREAD CONTROL ===] SpreadMedianWindow = 50 // Bars for spread median calculation
  • [=== SPREAD CONTROL ===] ManualMaxSpreadPoints = 60 // Manual max spread (if dynamic disabled)
  • [=== DYNAMIC LOCK PROFIT ===] InpEnableDynamicLockProfit = true // Enable trailing stop-loss ratchet
  • [=== DYNAMIC LOCK PROFIT ===] InpLockProfitEveryXPoints = 150 // Lock profit every X points
  • [=== DYNAMIC LOCK PROFIT ===] InpLockMinusYPointsBuffer = 20 // Buffer below profit lock level
  • [=== MULTIPLE POSITIONS ===] MaxOpenTrades = 5 // Maximum concurrent positions
  • [=== MULTIPLE POSITIONS ===] AllowOnlyProfitableAdditions = true // Only add if existing trades profitable
  • [=== MULTIPLE POSITIONS ===] MinProfitPerTradeToAdd = 5.0 // Min profit per trade to allow additions
  • [=== PAUSE PROTECTION ===] PauseOnConsecutiveLosses = false // Pause after consecutive losses
  • [=== PAUSE PROTECTION ===] PauseConsecutiveLossesCount = 3 // Number of losses to trigger pause
  • [=== PAUSE PROTECTION ===] PauseConsecutiveLossesMinutes = 60 // Pause duration (minutes)
  • [=== PAUSE PROTECTION ===] PauseOnLossAmount = false // Pause after loss amount threshold
  • [=== PAUSE PROTECTION ===] PauseLossAmount = 100.0 // Loss amount to trigger pause
  • [=== PAUSE PROTECTION ===] PauseLossAmountMinutes = 60 // Pause duration for loss amount
  • [=== VISUAL & DEBUG ===] DrawZonesOnChart = true // Draw liquidity zones on chart
Pseudocode
// Pipsgrowth EX15017 SMC-OrderBlock — Execution Flow (from source analysis)
// Family: SMC-OrderBlock
// Liquidity-trap scalper using swing-derived liquidity zones with surge & pattern confirmations, dynamic lock-profit ratchet, initial vs additional trade tagging, and pause-guard protection. 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

Optimized Brokers:
ExnessIC Markets
Optimized Symbols:
XAUUSD
Optimized Timeframes:
M5H1

How to Install This EA on MT5

  1. 1Download the .mq5 file using the button above
  2. 2Open MetaTrader 5 on your computer
  3. 3Click File → Open Data Folder in the top menu
  4. 4Navigate to MQL5 → Experts and paste the .mq5 file there
  5. 5In MT5, right-click Expert Advisors in the Navigator panel → Refresh
  6. 6Drag the EA onto a chart matching the recommended timeframe
  7. 7Configure parameters according to the table on this page
  8. 8Enable Allow Algo Trading and click OK

EA Parameters

ParameterDefaultDescription
MagicNumber222150172220 + Expert ID
InpTradeComment"Psgrowth.com Expert_15017"Trade Comment
InpTimeframe4Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Chart timeframe for analysis
SwingBarCount1Bars each side to confirm swing
MaxZoneAgeHours24Max zone age before deactivation (hours)
PriceSurgeFraction0.001Min price surge (0.001 = 0.1% - more reasonable)
RequireVolumeSurgefalseRequire volume surge confirmation
VolumeSurgeMultiplier1.1Volume multiplier vs average (1.1 = 10% above avg)
VolumeLookbackBars5Bars to calculate volume average (shorter = more responsive)
UseEngulfingPatternfalseUse engulfing candle patterns (often too restrictive)
EngulfingLookback3Bars to scan for engulfing patterns
UseHigherTFConfirmationfalseUse higher timeframe trend filter
ConfirmationTF6Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Higher timeframe for confirmation
RiskModeRISK_FIXED_LOTPosition sizing method
FixedLot0.10Fixed lot size (if RISK_FIXED_LOT)
RiskPerTradePercent1.0Risk per trade % of balance
DefaultSLPoints300Default SL distance (points)
DefaultTPPoints600Default TP distance (points)
SlippagePoints5Max slippage tolerance (points)
EnableTimeFiltertrueEnable trading time restrictions
TradingHoursStart"08:00"Trading start time (broker time)
TradingHoursEnd"20:00"Trading end time (broker time)
UseDynamicSpreadCaptrueUse dynamic spread cap (3x median)
SpreadMedianWindow50Bars for spread median calculation
ManualMaxSpreadPoints60Manual max spread (if dynamic disabled)
InpEnableDynamicLockProfittrueEnable trailing stop-loss ratchet
InpLockProfitEveryXPoints150Lock profit every X points
InpLockMinusYPointsBuffer20Buffer below profit lock level
MaxOpenTrades5Maximum concurrent positions
AllowOnlyProfitableAdditionstrueOnly add if existing trades profitable
MinProfitPerTradeToAdd5.0Min profit per trade to allow additions
PauseOnConsecutiveLossesfalsePause after consecutive losses
PauseConsecutiveLossesCount3Number of losses to trigger pause
PauseConsecutiveLossesMinutes60Pause duration (minutes)
PauseOnLossAmountfalsePause after loss amount threshold
PauseLossAmount100.0Loss amount to trigger pause
PauseLossAmountMinutes60Pause duration for loss amount
DrawZonesOnCharttrueDraw liquidity zones on chart
Source Code (.mq5)Open Source
Pipsgrowth_com_EX15017.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX15017 LiquidityTrap — swing-zone scalper with DLP ratchet and pause guards, full 12-layer stack."
#include <Trade\Trade.mqh>

//------------------------------ INPUTS ------------------------------

//┌─────────────────────────────────────────────────────────────────┐
//│                         BASIC SETTINGS                         │
//└─────────────────────────────────────────────────────────────────┘
ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
   switch(tf)
   {
      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;
      default: return PERIOD_H1;
   }
}

ENUM_APPLIED_PRICE MapAppliedPriceInt(int ap)
{
   switch(ap)
   {
      case 1: return PRICE_CLOSE;
      case 2: return PRICE_OPEN;
      case 3: return PRICE_HIGH;
      case 4: return PRICE_LOW;
      case 5: return PRICE_MEDIAN;
      case 6: return PRICE_TYPICAL;
      case 7: return PRICE_WEIGHTED;
      default: return PRICE_CLOSE;
   }
}
ENUM_TIMEFRAMES g_InpTimeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_ConfirmationTF = PERIOD_H1;
input group "=== BASIC SETTINGS ==="
input long   MagicNumber         = 22215017;       // 2220 + Expert ID
input string InpTradeComment     = "Psgrowth.com Expert_15017"; // Trade Comment
input int InpTimeframe = 4; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)   // Chart timeframe for analysis

//┌─────────────────────────────────────────────────────────────────┐
//│                     LIQUIDITY TRAP STRATEGY                    │
//└─────────────────────────────────────────────────────────────────┘
ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
   switch(tf)
   {
      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;

Full source code available on download

Educational purposes only. Do NOT use with real money. Test on demo accounts only.

Tags:ex15017smc-orderblockpipsgrowthfreemt5xauusd

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

Community

Sign in to contributeSign In

Educational purposes only. Do NOT use with real money. Test on demo accounts only.

File NamePipsgrowth_com_EX15017.mq5
File Size47.7 KB
Versionv2.00
PlatformMetaTrader 5
File Type.mq5 Source
StrategyOther
Risk LevelMedium Risk
Timeframes
M5H1
Currency Pairs
XAUUSD
Min. Deposit$100