P
PipsGrowth
OtherOpen Source – Free

Pipsgrowth EX15014 SMC-OrderBlock

MT5 Expert Advisor (Open Source) · XAUUSD · M5

Pipsgrowth.com EX15014 XAUUSD Liquidity Trap EA v3.2 — liquidity-zone scalper with pin-bar/RSI confirmation, full 12-layer stack.

Overview

Pipsgrowth EX15014 SMC-OrderBlock is a liquidity-trap scalper built around a single thesis: when price re-enters a swing-based liquidity zone, the trapped orders on the wrong side create the energy for a fast mean-reversion. The EA doesn't predict — it watches the chart, marks the zones where stops have stacked up, and waits for a confirming surge to enter. The candidate pair and timeframe are XAUUSD on M5, and the EA is structured to react to one setup per bar at most.

The foundation of the strategy is the swing-detection engine. On every new bar of the trading timeframe, IdentifySwingPoints() calls FindSwingHigh() and FindSwingLow() against the high/low arrays using a SwingBarCount = 1 default — meaning a swing is defined as a bar that has a strictly higher high than both of its neighbors (or strictly lower low for swing lows). When a new pivot is found and it isn't a repeat of the previously recorded pivot, AddLiquidityZone() stamps the price into the upperLiquidityZone[] or lowerLiquidityZone[] array, captures the bar time, and calls MarkLiquidityZone() to draw a dashed horizontal line on the chart (crimson for upper, dodger-blue for lower) using OBJ_HLINE and STYLE_DASH. A 0.3% de-duplication threshold (MathAbs(price - zonePrice) / price < 0.003) prevents the same pivot from being added twice if price is just hovering. Each zone is born active, ages out at MaxZoneAge = 24 hours, and is CleanupInactiveZones() once every four hours.

Once zones exist, the EA evaluates them on the next bar. A buy requires the ask to fall inside a lower zone — specifically inside the band [zoneLower, zoneLower * 1.01], a 1% upward buffer above the swing low. A sell requires the bid to fall inside an upper zone — [zoneUpper * 0.99, zoneUpper], a 1% downward buffer below the swing high. After a zone is traded, it is deactivated (zoneActive[i] = false), which prevents the EA from re-entering the same trap on the same test.

The entry decision runs through a six-condition gate inside CheckBuySignals() and CheckSellSignals(). (1) CheckPriceSurge() measures two things — the absolute open-to-current percent change over the last 10 bars and the high-low range percent over the last 5 bars — and uses the larger of the two. The threshold is PriceSurgePercent * 100, which at the default 0.001 translates to 0.1%. This is a very loose floor; on a 5-minute gold bar the open-to-current drift alone almost always clears it, so surge acts more as a sanity check than a filter. (2) IsVolumeSurge() computes a 20-bar average of tick volume, and triggers when the current bar is at least VolumeSurgeMultiplier = 1.5 times that average — but only if RequireVolumeSurge = true, and that input defaults to false, so volume is bypassed by default. (3) IsZoneConfirmedByHigherTimeframe() consults DetermineTrend() on the H4 default (ConfirmationTimeframe = 6 → PERIOD_H4), which returns -1/0/+1 from the sign of MA20 vs MA50; buys need trend = +1, sells need trend = -1, and trend = 0 permissively allows the trade. This gate is also bypassed by default because UseHigherTimeframeConfirmation = false. (4) IsBullishEngulfingPattern() / IsBearishEngulfingPattern() walk back up to EngulfingLookback = 3 bars and look for a current-bar body that fully engulfs the prior opposite-color body's range — current open ≤ prior close and current close ≥ prior open for bullish, mirrored for bearish. (5) IsBullishPinBar() / IsBearishPinBar() walk back up to PinBarLookback = 3 bars and require a body/total-range ratio of PinBarRatio = 0.3 or smaller, a long shadow of at least 2× the body in the rejection direction, and a short opposite shadow of at most 0.5× the body. (6) IsRSIOversold() / IsRSIOverbought() read a 14-period RSI on the trading timeframe and return true when the value is ≤ 30 (oversold) for buys or ≥ 70 (overbought) for sells.

Three of these six gates are wired on by default — engulfing (UseEngulfingPattern = true), pin bar (UsePinBarConfirmation = true), and RSI (UseRSIConfirmation = true). The trend and volume gates are opt-in. The implication is clear: the EA's out-of-the-box behavior is to look for a sweep of a liquidity zone that is also confirmed by a reversal candle pattern and an oscillator extreme. The surge gate is the only always-on check, and it is so loose that it almost never blocks.

The stop-loss and take-profit math is mechanical. For a buy at the ask, stopLoss = zoneLower * (1 - 0.005) — half a percent below the lower zone — and takeProfit = currentPrice + (currentPrice - stopLoss) * RewardToRiskRatio. With RewardToRiskRatio = 2.0 default, the resulting TP is exactly a 1:2 risk-to-reward against the zone-edge stop. The mirror logic applies for sells: stopLoss = zoneUpper * (1 + 0.005), TP at 2× the risk distance below entry. Both levels are passed to Trade.Buy() / Trade.Sell() as broker-side SL and TP, so once the order is filled, position management is the broker's job until the trailing stop kicks in.

ApplyTrailingStop() is wired into the per-tick ManageOpenPositions() loop but is opt-in: EnableTrailingStop = false by default. When enabled, it calculates currentProfit = bid - openPrice for buys (mirror for sells), returns early if the position is not in profit, then sets trailLevel = currentPrice - (currentProfit * TrailingStopPercent / 100.0). At TrailingStopPercent = 50.0 default, the stop sits halfway back from the current price, which means the trade locks in roughly half the open profit once the move has started. The new stop is only applied if it's tighter than the existing one — a one-way ratchet that never loosens — and the modification goes through TryModify_EX15014(), a 3-attempt retry helper that re-issues the modify on TRADE_RETCODE_REQUOTE, TRADE_RETCODE_TIMEOUT, TRADE_RETCODE_PRICE_OFF, and TRADE_RETCODE_PRICE_CHANGED with a 100ms backoff. The same retry pattern is implemented in TryClose_EX15014() and TryClosePartial_EX15014() for completeness, but they are not wired into any live close path in the source — the dead-input caveat applies to those two helpers.

Sizing is honest. CalculatePositionSize() ignores the stopLossPoints argument and returns the fixed FixedLotSize = 0.01 default, clamped to the symbol's min/max/step via NormalizeLotSize(). There is no risk-percentage math, no balance-aware scaling, no Kelly fraction. The EA assumes the operator scales the lot manually. For a $100 account, 0.01 lot is 1% notional at 1:100 leverage and 0.1% at 1:1000 — well within any reasonable broker's comfort zone.

Risk controls are layered. MaxSpreadPoints = 30 rejects any tick whose spread exceeds 30 points — the EA returns early in OnTick() without even calling AnalyzeMarketState(). MaxPositions = 5 caps the open-book size. MaxConsecutiveLosses = 3 triggers pauseUntilTime = TimeCurrent() + PauseMinutes * 60 (60 minutes) inside UpdateTradeStatistics(), after which OnTick() short-circuits and just refreshes the dashboard. EnableTimeFilter = false by default, but if enabled, IsWithinTradingHours() parses TradingHoursStart = "08:00" and TradingHoursEnd = "20:00" and blocks signals outside that broker-time window. AvoidHighImpactNews = true is the most misleading input in the file: the IsHighImpactNewsTime() function does not call any news API. Instead, on first invocation it sets a single hard-coded datetime in a static array (dt.hour = 14; dt.min = 0; ... highImpactNewsTimes[0] = StructToTime(dt)) — a fake 2 PM news event for the current day — and tests proximity to that single timestamp using the 30-minute before/after buffers. The function never refreshes, never fetches, and never deletes the entry, so it's effectively a no-op in real use. Treat this input as a placeholder.

The 39 functions in the file include AnalyzeMarketState() (a 20-bar high-low range volatility print), DetermineTrend() with a 5-attempt progressive-delay retry loop (Sleep(100 * attempts) between failures, max 5 attempts, then invalidates the handle so the next call recreates it), UpdateTradeStatistics() for win/loss/drawdown bookkeeping, and UpdateDashboard() which paints 11 chart labels covering status, volatility, lot+RR, zone counts, trades, profit factor (color-coded green ≥ 2.0, yellow ≥ 1.0, red below), current signal, price+spread, swing distance, and trailing-stop state. On OnDeinit(), all five indicator handles are released and ObjectsDeleteAll(0, "EA_") removes the dashboard and the zone lines in one sweep.

The MapTimeframeInt() helper is defined five separate times in the source — lines 34, 57, 81, 112, and 139 — each with the identical switch statement. The compiler accepts this (later definitions override earlier ones) but it's a code-quality issue rather than a logic bug, and the resulting behavior is correct. If you fork the file, dedupe the helper.

What to expect on a chart: the EA will draw dashed crimson lines above recent swing highs and dashed dodger-blue lines below recent swing lows. When price returns to one of those levels and prints a reversal candle, you'll see a marker line, a buy or sell fires at the next bar open, and a broker-side SL/TP locks in the 1:2 reward. With the trailing stop off, every position is binary — either it hits TP or it hits SL. With the trailing stop on, profitable trades that move in your favor will see the stop ratchet halfway back, locking in roughly half the open profit. Backtests on M5 XAUUSD typically show the strategy working in range-bound hours (London–NY overlap is the most reliable) and struggling in fast directional news spikes. Set MaxConsecutiveLosses = 3, MaxPositions = 5, and leave UseHigherTimeframeConfirmation = false for the default behavior; the news filter, despite its true default, does not actually do anything without a real calendar feed.

Strategy Deep Dive

On every new bar of the trading timeframe, IdentifySwingPoints scans high/low arrays for 3-bar pivots (SwingBarCount = 1) and stamps each new pivot into a liquidity zone array with a 0.3% de-duplication threshold, drawing a dashed horizontal line on the chart. As price returns into a zone's 1% buffer, a six-gate decision runs: a 0.1% price surge check, an optional 20-bar volume-surge check (off by default), an optional H4 MA20 vs MA50 trend gate (off by default), a bullish or bearish engulfing pattern over a 3-bar lookback, a bullish or bearish pin bar (body ≤ 30% of range, rejection shadow ≥ 2× body), and a 14-period RSI oversold/overbought extreme. The order is fired with a hard 0.5% past-zone server-side stop and a 1:2 reward distance; an optional profit-pullback trailing stop ratchets the stop halfway back when the trade is in profit. Every 24 hours the zone array is culled, and the dashboard re-renders 11 labels covering status, zones, profit factor, and current signal.

Entry Signal

Buy entries trigger when the ask enters the 1% upper band of a tracked lower liquidity zone (built from a recent swing low) and a price surge of 0.1% or more is present together with a bullish engulfing pattern, a bullish pin bar (body ≤ 30% of range, lower shadow ≥ 2× body, upper shadow ≤ 0.5× body), and a 14-period RSI reading of 30 or below. Sell entries are the mirror at upper zones, requiring a bearish engulfing, bearish pin bar, and RSI ≥ 70. Volume and higher-timeframe trend filters default off. Each zone deactivates after one trade.

Exit Signal

Positions are exited by the broker when the broker-side stop-loss or take-profit is hit. The optional ApplyTrailingStop function can be enabled to ratchet the stop halfway back from the current price (TrailingStopPercent = 50.0 default) once the trade is in profit; the new stop only applies if tighter than the current one and is sent through the 3-attempt TryModify_EX15014 retry helper. There is no time-based exit, no opposite-signal close, and no basket close — the trade lives until SL, TP, or a manual close.

Stop Loss

Stop-loss is calculated per trade as a fixed 0.5% offset past the liquidity zone edge — zoneLower * 0.995 for buys, zoneUpper * 1.005 for sells — and submitted to the broker as a hard server-side stop the moment the order is filled. The optional ApplyTrailingStop (default off) replaces this with a 50% profit-pullback trail once the position is in profit, but the initial SL on entry is always the zone-edge offset.

Take Profit

Take-profit is a fixed 1:2 risk-to-reward against the zone-edge stop, computed as entry ± (entry - stopLoss) * RewardToRiskRatio with the default RewardToRiskRatio = 2.0. The TP is placed broker-side on the order ticket, so the broker manages the exit leg without further EA intervention unless the trailing stop is enabled.

Best For

Minimum recommended balance $100. Operates on a single symbol (XAUUSD) and a single timeframe — the header specifies M5, though the Timeframe input is editable from 1 (M1) to 7 (D1). A low-spread ECN or RAW broker is required for the spread filter (default 30 points) to clear on gold. Best session is the London–New York overlap when liquidity zones form and reversal candles tend to print; avoid thin Asian-session hours when false-swing breakouts are common. The fixed 0.01 lot assumes manual scaling — increase FixedLotSize proportionally with account size if you want to maintain a similar notional exposure on a $1,000 or $10,000 account.

Strategy Logic

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

Family: SMC-OrderBlock Magic: 22215014 Version: 2.00

BRIEF: Liquidity-trap scalper that detects swing-based liquidity zones, price surges and volume spikes, then enters on pin-bar / engulfing / RSI confirmation with R:R-based SL/TP and trailing. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

INDICATOR STACK:

  • Standard MT5 indicators

KEY FUNCTIONS:

  • CheckIndicatorHandle()
  • ReleaseIndicatorHandles()
  • AnalyzeMarketState()
  • ManageOpenPositions()
  • NormalizeLotSize()
  • CalculatePositionSize()
  • UpdateTradeStatistics()
  • UpdateLiquidityZones()
  • IdentifySwingPoints()
  • FindSwingHigh()
  • FindSwingLow()
  • AddLiquidityZone()
  • ...and 27 more

INTERNAL CONSTANTS (0 total):

INPUT PARAMETERS (35 total across 5 groups):

  • [=== General Settings ===] MagicNumber = 22215014 // Magic Number
  • [=== General Settings ===] InpTradeComment = "Psgrowth.com Expert_15014" // Trade Comment
  • [=== General Settings ===] EnableDebug = true // Enable Debug Messages
  • [=== General Settings ===] Timeframe = 4 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Trading Timeframe
  • [=== Liquidity Trap Settings ===] SwingBarCount = 1 // Number of bars for swing detection (smaller value = more swings)
  • [=== Liquidity Trap Settings ===] MaxZoneAge = 24 // Maximum zone age in hours
  • [=== Liquidity Trap Settings ===] PriceSurgePercent = 0.001 // Percent of price movement to consider as surge (0.001-0.2 recommended)
  • [=== Liquidity Trap Settings ===] RequireVolumeSurge = false // Require volume surge with price movement
  • [=== Liquidity Trap Settings ===] VolumeSurgeMultiplier = 1.5 // Volume threshold as multiplier of average
  • [=== Entry Confirmation ===] UseHigherTimeframeConfirmation = false // Use higher g_Timeframe for trend confirmation
  • [=== Entry Confirmation ===] ConfirmationTimeframe = 6 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Higher timeframe for confirmation
  • [=== Entry Confirmation ===] RequireVolumeConfirmation = false // Require volume confirmation for entry
  • [=== Entry Confirmation ===] UseEngulfingPattern = true // Use engulfing pattern as confirmation
  • [=== Entry Confirmation ===] EngulfingLookback = 3 // Number of bars to look back for engulfing pattern
  • [=== Entry Confirmation ===] UsePinBarConfirmation = true // Use pin bar as confirmation
  • [=== Entry Confirmation ===] PinBarLookback = 3 // Number of bars to look back for pin bar
  • [=== Entry Confirmation ===] PinBarRatio = 0.3 // Ratio of body to shadow for pin bar (smaller = stronger pin)
  • [=== Entry Confirmation ===] UseRSIConfirmation = true // Use RSI as additional confirmation
  • [=== Entry Confirmation ===] RSIPeriod = 14 // RSI period
  • [=== Entry Confirmation ===] RSIOversoldLevel = 30.0 // RSI oversold level for buy signals
  • [=== Entry Confirmation ===] RSIOverboughtLevel = 70.0 // RSI overbought level for sell signals
  • [=== Risk Management ===] FixedLotSize = 0.01 // Fixed lot size for all trades
  • [=== Risk Management ===] RewardToRiskRatio = 2.0 // Reward to risk ratio
  • [=== Risk Management ===] EnableTrailingStop = false // Enable trailing stop
  • [=== Risk Management ===] TrailingStopPercent = 50.0 // Trailing stop as percentage of profit
  • [=== Risk Management ===] MaxSpreadPoints = 30 // Maximum spread in points
  • [=== Risk Management ===] MaxConsecutiveLosses = 3 // Max consecutive losses before pausing
  • [=== Risk Management ===] PauseMinutes = 60 // Minutes to pause after max losses
  • [=== Risk Management ===] MaxPositions = 5 // Maximum open positions
  • [=== Trade Filters ===] EnableTimeFilter = false // Enable trading hours filter
  • [=== Trade Filters ===] TradingHoursStart = "08:00" // Trading hours start (broker time)
  • [=== Trade Filters ===] TradingHoursEnd = "20:00" // Trading hours end (broker time)
  • [=== Trade Filters ===] AvoidHighImpactNews = true // Avoid trading during high impact news
  • [=== Trade Filters ===] NewsBufferMinutesBefore = 30 // Minutes to avoid trading before news
  • [=== Trade Filters ===] NewsBufferMinutesAfter = 30 // Minutes to avoid trading after news
Pseudocode
// Pipsgrowth EX15014 SMC-OrderBlock — Execution Flow (from source analysis)
// Family: SMC-OrderBlock
// Liquidity-trap scalper that detects swing-based liquidity zones, price surges and volume spikes, then enters on pin-bar / engulfing / RSI confirmation with R:R-based SL/TP and trailing. 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:
M5

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
MagicNumber22215014Magic Number
InpTradeComment"Psgrowth.com Expert_15014"Trade Comment
EnableDebugtrueEnable Debug Messages
Timeframe4Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Trading Timeframe
SwingBarCount1Number of bars for swing detection (smaller value = more swings)
MaxZoneAge24Maximum zone age in hours
PriceSurgePercent0.001Percent of price movement to consider as surge (0.001-0.2 recommended)
RequireVolumeSurgefalseRequire volume surge with price movement
VolumeSurgeMultiplier1.5Volume threshold as multiplier of average
UseHigherTimeframeConfirmationfalseUse higher g_Timeframe for trend confirmation
ConfirmationTimeframe6Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Higher timeframe for confirmation
RequireVolumeConfirmationfalseRequire volume confirmation for entry
UseEngulfingPatterntrueUse engulfing pattern as confirmation
EngulfingLookback3Number of bars to look back for engulfing pattern
UsePinBarConfirmationtrueUse pin bar as confirmation
PinBarLookback3Number of bars to look back for pin bar
PinBarRatio0.3Ratio of body to shadow for pin bar (smaller = stronger pin)
UseRSIConfirmationtrueUse RSI as additional confirmation
RSIPeriod14RSI period
RSIOversoldLevel30.0RSI oversold level for buy signals
RSIOverboughtLevel70.0RSI overbought level for sell signals
FixedLotSize0.01Fixed lot size for all trades
RewardToRiskRatio2.0Reward to risk ratio
EnableTrailingStopfalseEnable trailing stop
TrailingStopPercent50.0Trailing stop as percentage of profit
MaxSpreadPoints30Maximum spread in points
MaxConsecutiveLosses3Max consecutive losses before pausing
PauseMinutes60Minutes to pause after max losses
MaxPositions5Maximum open positions
EnableTimeFilterfalseEnable trading hours filter
TradingHoursStart"08:00"Trading hours start (broker time)
TradingHoursEnd"20:00"Trading hours end (broker time)
AvoidHighImpactNewstrueAvoid trading during high impact news
NewsBufferMinutesBefore30Minutes to avoid trading before news
NewsBufferMinutesAfter30Minutes to avoid trading after news
Source Code (.mq5)Open Source
Pipsgrowth_com_EX15014.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX15014 XAUUSD Liquidity Trap EA v3.2 — liquidity-zone scalper with pin-bar/RSI confirmation, full 12-layer stack."

#include <Trade/Trade.mqh>
#include <Trade/SymbolInfo.mqh>

// Input parameters: General 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_TIMEFRAMES g_Timeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_ConfirmationTimeframe = PERIOD_H1;
input group "=== General Settings ==="
input int    MagicNumber = 22215014;           // Magic Number
input string InpTradeComment = "Psgrowth.com Expert_15014"; // Trade Comment
input bool   EnableDebug = true;               // Enable Debug Messages
input int Timeframe = 4; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)   // Trading Timeframe

// Input parameters: Liquidity Trap 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_TIMEFRAMES g_Timeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_ConfirmationTimeframe = PERIOD_H1;
input group "=== Liquidity Trap Settings ==="
input int    SwingBarCount = 1;                // Number of bars for swing detection (smaller value = more swings)
input int    MaxZoneAge = 24;                  // Maximum zone age in hours
input double PriceSurgePercent = 0.001;        // Percent of price movement to consider as surge (0.001-0.2 recommended)
input bool   RequireVolumeSurge = false;       // Require volume surge with price movement
input double VolumeSurgeMultiplier = 1.5;      // Volume threshold as multiplier of average

// Input parameters: Entry Confirmation
ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
   switch(tf)

Full source code available on download

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

Tags:ex15014smc-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_EX15014.mq5
File Size90.7 KB
Versionv2.00
PlatformMetaTrader 5
File Type.mq5 Source
StrategyOther
Risk LevelMedium Risk
Timeframes
M5
Currency Pairs
XAUUSD
Min. Deposit$100