P
PipsGrowth
OtherOpen Source – Free

Pipsgrowth EX12057 MultiIndicatorConfluence

MT5 Expert Advisor (Open Source) · EURUSD, GBPUSD, XAUUSD · M1

Pipsgrowth.com EX12057 Multi_Symbol_GaussDonchTrap — Gaussian+Donchian+Liquidity Trap multi-symbol, full 12-layer stack.

Overview

Pipsgrowth EX12057 is a multi-symbol portfolio EA that runs three independent signal engines — a true Gaussian-smoothed trend filter, a Donchian breakout, and a liquidity-trap detector — and only fires when at least K of a small set of confirmations agree. The header lists EURUSD, GBPUSD, and XAUUSD as the suggested pair set, and the InpSymbolsCSV input accepts up to 20 comma-separated tickers, each of which gets its own state struct (last-bar-traded, last-buy/sell timestamps, loss-streak counters, spread ring buffer, indicator handles). The default signal timeframe is M1 but is mapped from a 1..7 integer that translates to M1/M5/M15/M30/H1/H4/D1 inside OnInit. Capital caps are global: MaxOpenTradesPerSymbol defaults to 3 and MaxTotalOpenTrades defaults to 8, so the EA behaves like a small portfolio of three pairs with a soft cap of twenty-four tickets that the defaults pull down to eight.

The Gaussian engine is implemented as an actual kernel smoother, not a single EMA. BuildGaussianKernel() builds a normalized Gaussian of radius ceil(3*InpGaussianSigma) and length 2r+1 using the closed-form exp(-k²/(2σ²)) weights, and GaussianSmoothed() walks the last r+shift…shift-r closes on the signal timeframe, weights them, and returns the smoothed value. TryEntriesSymbol() reads the smoothed value at shift and shift+1 and takes the difference as a slope: slope>0 is the long regime, slope<0 the short regime. The radius caps at 50 to keep the static-weight buffer at 121 cells. Sigma defaults to 2.0; with the default radius of ceil(3σ)=6, the kernel is 13 cells wide.

The Donchian engine is a 20-period channel on the high/low series (iHighest/iLowest) measured at shift+1, so the breakout test reads close > donHi (long) or close < donLo (short) on the last closed bar. InpDonchianPeriod defaults to 20. The liquidity-trap engine is the most distinctive piece: DetectLiquidityTrapLong() finds the lowest low over the last InpTrapLookbackBars=30 bars (shift+1 onwards) and asks two questions about the current bar at shift — did its low sweep under that range low by at least InpTrapSweepPts=12 points, and did its close re-enter back above the range low by at least InpTrapReentryPts=8 points? A symmetrical DetectLiquidityTrapShort() mirrors the logic against the highest high. Both detectors also call CandleWickCheck(), which verifies the rejection wick is at least InpTrapWickRatio=0.30 of the bar's range, and BarQualityOK(), which enforces a minimum body/range of InpMinBodyToRange=0.18. The three engines are OR'd: long requires slope>0 AND (Donchian up breakout OR liquidity-trap-long), and short is the mirror.

Once a base direction is locked in, the EA runs the confirmation count. CountConfirmations() tallies up to four independent slots: RSI(14) recapture across the 50-line, Bollinger Bands(20, 2.0) re-entry (close back inside from outside the lower/upper band), volume spike ≥1.3× the 20-bar simple average of tick volume, and a higher-timeframe EMA alignment (M30 EMA-200 by default) requiring the close to sit on the right side of the EMA and the EMA slope to point the same way. InpNeedConfirmationsK defaults to 2 and is clamped to [0, ActiveConfirmationSlots()], which is 4 with MTF enabled and 3 without. If both buy and sell base signals fire on the same bar — a real possibility on a doji at the boundary — the EA picks the side with the higher confirmation count; a tie returns no trade, which is a deliberate chop filter.

Risk is sized two ways. InpUseAutoMinLot=true makes every entry use the symbol's SYMBOL_VOLUME_MIN, snapped to SYMBOL_VOLUME_STEP and floored at min and ceiling at max; toggled off, the lot is the InpFixedLot=0.10 default. The send path is the standard 3-fill-mode / 5-retry flow: DetermineAllowedFillings() builds a preference list of IOC > RETURN > FOK from SYMBOL_FILLING_MODE, and SendOrder_AllFillings() walks up to five outer tries, walking the three inner filling modes each time and increasing deviation by 3 points per attempt up to InpMaxAdaptiveDeviation=20. If the broker returns INVALID_STOPS or REQUOTE, the same wrapper retries the entry once with sl=0/tp=0 and then calls ModifyPositionSLTP() to attach the stops on the just-opened ticket.

SL/TP defaults are ATR-based: InpUseATRforSLTP=true, InpATRPeriod=14, InpATR_SL_Mult=3.0, InpATR_TP_Mult=6.0, giving a 1:2 risk-to-reward once you set both multipliers and the per-side CalcSLTP() reads ATR(14) on the signal timeframe at bar 1. Toggle the ATR off and the static fallback is InpSL_Points=250 / InpTP_Points=500. The dynamic lock-profit ratchet, ApplyDynamicLockProfitToPosition(), runs every tick: when bid (or ask) is at least InpLockProfitEveryXPoints=120 points past entry in the favourable direction, the EA floors the moved points, subtracts InpLockMinusYPointsBuffer=18 as a cushion, and tightens the stop to entry + (steps*120 − 18). It never widens — the function returns early if newSL<=curSL — and it respects SYMBOL_TRADE_FREEZE_LEVEL by refusing to push a stop inside the freeze distance of the current bid/ask.

Scaling is a 1-N pyramid, not a grid. The first ticket in a direction is tagged "Initial" in the comment, and every additional ticket in the same direction is tagged "Add#1", "Add#2", etc. with separate per-direction counters g_addCountBuy and g_addCountSell. Adds are gated by AllowOnlyProfitableAdditions=true and MinProfitPerTradeToAdd=4.0, which calls IsAllSameDirProfitableAtLeast() to verify that every existing same-direction ticket on that symbol is at least 4 points in the money before another is allowed. Cooldown adds a per-direction 20-second debounce, InpCooldownSecondsDir=20. The pause-guard pair (PauseOnConsecutiveLosses and PauseOnLossAmount) is OFF by default; when on, the OnTradeTransaction handler listens for DEAL_ENTRY_OUT deals belonging to this magic, sums the deal's profit+swap+commission, increments lossStreakCount on losses, and stacks tradePauseUntil forward using MathMax so a fresh trigger can never shorten an existing pause.

The micro filters worth flagging on a backtest: InpUseDynamicSpreadCap=true builds a 200-tick ring buffer per symbol (MAX_SPREAD_BUF=256) and accepts the trade only if the current spread is at most median + InpSpreadMADMult=3.0 × MAD — an absolute InpSpreadCapAbsPoints ceiling of 0 disables the cap and the median-only path; InpUseBarQualityFilter=true rejects bars where the body is <18% of the range, which kills the worst dojis; InpOneEntryPerBar=true prevents re-entries on the same bar from the timer. Combined, these filters are what make an M1 multi-symbol portfolio tractable — without them, the same Gaussian+Donchian+Trap core would over-fire on noisy ticks.

What to expect in practice. EX12057 is built to spread risk across two or three correlated pairs and let the math of independent signals smooth the equity curve, so a backtest on a single symbol under-represents the design intent. Default config needs an account that allows M1 trading on at least EURUSD and GBPUSD simultaneously with the broker's minimum lot (typically 0.01 on both), so the practical floor is closer to $300-500 than the $100 minDeposit metadata — the metadata reflects the EA's ability to trade a single micro lot, not the recommended multi-symbol starting balance. For a quieter profile, disable the MTF EMA slot by setting InpUseMTFEMA=false (drops the active slots from 4 to 3 and InpNeedConfirmationsK=2 then becomes a stricter 2-of-3 test) and consider widening the Donchian period to 30 or 40 on slower pairs. The Gaussian-Donchian-Trap triplet is the EA's signature; turning any one off (Sigma=0 effectively neutralizes the kernel slope test, InpDonchianPeriod pushed past the bar window disables breakout) materially changes the trade shape.

Strategy Deep Dive

EX12057 runs three independent signal engines per symbol and OR's them under a Gaussian slope filter. BuildGaussianKernel() + GaussianSmoothed() compute a kernel-smoothed close with a normalized Gaussian of radius ceil(3σ) and length 2r+1, and the slope between shift and shift+1 is the regime gate. On top of that gate, the EA fires a long when either Donchian(20) breaks above its upper channel OR DetectLiquidityTrapLong() confirms a sweep+reentry of the 30-bar swing low with a rejection wick ≥0.30 and bar body ≥0.18; the short side mirrors with Donchian lower-band break or liquidity-trap-short. The four-slot confirmation count (RSI-50 recapture, Bollinger(20,2.0) re-entry, 1.3× volume spike, optional MTF EMA-200 alignment with same-direction slope) must clear InpNeedConfirmationsK before a base direction becomes a real entry. A 200-tick median+MAD spread cap, a body/range bar-quality filter, a 20-second directional cooldown, an InpOneEntryPerBar guard, and the tradePauseUntil pause-guard pair all gate the actual send. Entries go through SendOrder_AllFillings()'s 5×3 IOC>RETURN>FOK retry grid, with INVALID_STOPS/REQUOTE triggering a SL/TP-less resend followed by ModifyPositionSLTP() to attach the stops. Per-ticket SL/TP is set from ATR(14) at 3×/6×, and the DLP ratchet runs on every tick to tighten the stop by 120-step minus 18-buffer increments without ever widening it.

Entry Signal

Entries are evaluated on the last closed bar of the signal timeframe (M1 default). A base direction requires Gaussian-slope agreement — kernel-smoothed close at shift minus kernel-smoothed close at shift+1 > 0 for long or < 0 for short — combined with either a Donchian 20-period breakout beyond the channel, or a confirmed liquidity-trap sweep-and-reentry candle with rejection wick ≥0.30 of range and bar body ≥0.18 of range. The base signal is then promoted to a trade only when CountConfirmations() ≥ InpNeedConfirmationsK (default 2) across the active slots: RSI(14) recapture of 50, Bollinger(20, 2.0) re-entry, 1.3× volume spike, and optional H1/M30 EMA-200 alignment with same-direction slope.

Exit Signal

Exits are bracket-driven: each entry gets an SL and TP at send time (ATR-based by default at 3.0× and 6.0× ATR(14), 1:2 risk:reward, or static 250/500 if ATR is disabled). ApplyDynamicLockProfitToPosition() runs on every tick and ratchets the stop to entry + (steps*120 − 18) points whenever bid/ask has moved 120, 240, 360 … points in the favourable direction, never widening and never crossing SYMBOL_TRADE_FREEZE_LEVEL. There is no signal-based exit — the EA holds until SL or TP is hit, and the pause-guard layer can stack tradePauseUntil forward after consecutive losses or aggregate loss amount when those toggles are on.

Stop Loss

Stop loss defaults to 3.0× ATR(14) on the signal timeframe, snap-rounded to SYMBOL_TRADE_TICK_SIZE and set in points via CalcSLTP(); the static fallback is 250 points. The DLP ratchet (every 120 points of favorable move minus an 18-point buffer) tightens the stop monotonically but never widens it.

Take Profit

Take profit defaults to 6.0× ATR(14), giving a 1:2 risk-to-reward against the 3.0× ATR SL; static fallback is 500 points. TP is set in the same CalcSLTP() call as the SL and is not adjusted by the DLP ratchet — only the stop is moved.

Best For

Best deployed on a multi-symbol ECN account running M1 charts on at least two of the suggested tickers (EURUSD, GBPUSD, XAUUSD) with $300-500 starting balance to support the default 3-per-symbol, 8-total ticket budget. The M1 default with InpNeedConfirmationsK=2 and the 200-tick median+MAD spread cap makes it a London + New York overlap EA — the active session on M1 forex comes from raw tick density, not a time window, so brokers with sub-50ms quote latency on EURUSD/GBPUSD are required. XAUUSD works but should be traded as a third symbol only after verifying the broker's gold spread at the 1.3× volume-spike threshold, because the gold M1 ATR is large and a fixed 0.10 lot will be aggressive on that volatility.

Strategy Logic

Pipsgrowth EX12057 MultiIndicatorConfluence — Strategy Logic Analysis (from .mq5 source)

Family: MultiIndicatorConfluence Magic: 22212057 Version: 2.00

BRIEF: Multi-symbol EA combining True Gaussian trend filter, Donchian breakout, and Liquidity Trap (sweep & re-entry). Dynamic lock profit ratchet, ATR-based SL/TP, multi-confirmation gating, dynamic spread cap, and bar-quality filters. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

INDICATOR STACK:

  • Standard MT5 indicators

KEY FUNCTIONS:

  • Trim()
  • SplitCSV()
  • FindSymIndex()
  • SymPoint()
  • SymTickSize()
  • NormalizePriceToTick()
  • SymBid()
  • SymAsk()
  • SymbolMinVolume()
  • SymbolVolumeStep()
  • NormalizeVol()
  • TotalOpenPositionsAll()
  • ...and 42 more

INTERNAL CONSTANTS (0 total):

INPUT PARAMETERS (46 total across 8 groups):

  • [=== CORE ===] MagicNumber = 22212057 // Magic number
  • [=== CORE ===] InpTradeComment = "Psgrowth.com Expert_12057" // Trade comment
  • [=== CORE ===] SymbolsCSV = "EURUSD,GBPUSD" // Symbols list (CSV)
  • [=== CORE ===] InpSignalsTF = 1 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Signal timeframe
  • [=== DYNAMIC LOCK PROFIT ===] InpEnableDynamicLockProfit = true // Enable dynamic lock profit ratchet
  • [=== DYNAMIC LOCK PROFIT ===] InpLockProfitEveryXPoints = 120 // Lock step size (points)
  • [=== DYNAMIC LOCK PROFIT ===] InpLockMinusYPointsBuffer = 18 // Lock buffer subtract (points)
  • [=== INITIAL vs ADDITIONAL ===] MaxOpenTradesPerSymbol = 3 // Max positions per symbol
  • [=== INITIAL vs ADDITIONAL ===] MaxTotalOpenTrades = 8 // Global max positions
  • [=== INITIAL vs ADDITIONAL ===] AllowOnlyProfitableAdditions = true // Add only if direction profitable
  • [=== INITIAL vs ADDITIONAL ===] MinProfitPerTradeToAdd = 4.0 // Min unrealized pts per position to add
  • [=== PAUSE GUARDS ===] PauseOnConsecutiveLosses = false // Enable pause after X losses
  • [=== PAUSE GUARDS ===] PauseConsecutiveLossesCount = 3 // Loss streak threshold
  • [=== PAUSE GUARDS ===] PauseConsecutiveLossesMinutes = 60 // Pause duration (minutes)
  • [=== PAUSE GUARDS ===] PauseOnLossAmount = false // Enable pause after loss amount
  • [=== PAUSE GUARDS ===] PauseLossAmount = 100.0 // Loss amount threshold (currency)
  • [=== PAUSE GUARDS ===] PauseLossAmountMinutes = 60 // Pause duration after loss amount
  • [=== TRADE & RISK ===] InpUseAutoMinLot = true // Use symbol min lot automatically
  • [=== TRADE & RISK ===] InpFixedLot = 0.10 // Fixed lot if auto-min disabled
  • [=== TRADE & RISK ===] InpUseATRforSLTP = true // Use ATR-based SL/TP
  • [=== TRADE & RISK ===] InpATRPeriod = 14 // ATR period
  • [=== TRADE & RISK ===] InpATR_SL_Mult = 3.0 // ATR SL multiplier
  • [=== TRADE & RISK ===] InpATR_TP_Mult = 6.0 // ATR TP multiplier
  • [=== TRADE & RISK ===] InpSL_Points = 250 // Static SL if ATR disabled (points)
  • [=== TRADE & RISK ===] InpTP_Points = 500 // Static TP if ATR disabled (points)
  • [=== TRADE & RISK ===] InpSlippagePoints = 5 // Initial allowed slippage
  • [=== TRADE & RISK ===] InpMaxAdaptiveDeviation = 20 // Max adaptive deviation (points)
  • [=== TRADE & RISK ===] InpOneEntryPerBar = true // Restrict one entry per bar
  • [=== TRADE & RISK ===] InpCooldownSecondsDir = 20 // Directional cooldown seconds
  • [=== SIGNAL LOGIC (FEW KNOBS) ===] InpGaussianSigma = 2.0 // Gaussian sigma
  • [=== SIGNAL LOGIC (FEW KNOBS) ===] InpGaussianRadius = 0 // Gaussian radius (0=auto ceil(3σ))
  • [=== SIGNAL LOGIC (FEW KNOBS) ===] InpDonchianPeriod = 20 // Donchian breakout period
  • [=== SIGNAL LOGIC (FEW KNOBS) ===] InpTrapLookbackBars = 30 // Liquidity trap lookback bars
  • [=== SIGNAL LOGIC (FEW KNOBS) ===] InpTrapSweepPts = 12 // Trap sweep buffer (points)
  • [=== SIGNAL LOGIC (FEW KNOBS) ===] InpTrapReentryPts = 8 // Trap re-entry buffer (points)
  • [=== SIGNAL LOGIC (FEW KNOBS) ===] InpTrapWickRatio = 0.30 // Min wick ratio for trap candle
  • [=== SIGNAL LOGIC (FEW KNOBS) ===] InpNeedConfirmationsK = 2 // Required confirmations K
  • [=== CONFIRM/MTF (minimal) ===] InpUseMTFEMA = true // Use higher timeframe EMA alignment
  • [=== CONFIRM/MTF (minimal) ===] InpMTF_TF = 4 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Higher timeframe for EMA
  • [=== CONFIRM/MTF (minimal) ===] InpMTF_EMAPeriod = 200 // Higher timeframe EMA period
  • [=== AUTO FILTERS ===] InpUseDynamicSpreadCap = true // Enable dynamic spread cap
  • [=== AUTO FILTERS ===] InpSpreadLookbackTicks = 200 // Spread sampling window (ticks)
  • [=== AUTO FILTERS ===] InpSpreadMADMult = 3.0 // Spread cap multiplier (median+k*MAD)
  • [=== AUTO FILTERS ===] InpSpreadCapAbsPoints = 0 // Absolute spread cap (0=off)
  • [=== AUTO FILTERS ===] InpUseBarQualityFilter = true // Use bar quality filter
  • [=== AUTO FILTERS ===] InpMinBodyToRange = 0.18 // Min body/range ratio
Pseudocode
// Pipsgrowth EX12057 MultiIndicatorConfluence — Execution Flow (from source analysis)
// Family: MultiIndicatorConfluence
// Multi-symbol EA combining True Gaussian trend filter, Donchian breakout, and Liquidity Trap (sweep & re-entry). Dynamic lock profit ratchet, ATR-based SL/TP, multi-confirmation gating, dynamic spread cap, and bar-quality filters. 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:
EURUSDGBPUSDXAUUSD
Optimized Timeframes:
M1

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
MagicNumber22212057Magic number
InpTradeComment"Psgrowth.com Expert_12057"Trade comment
SymbolsCSV"EURUSD,GBPUSD"Symbols list (CSV)
InpSignalsTF1Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Signal timeframe
InpEnableDynamicLockProfittrueEnable dynamic lock profit ratchet
InpLockProfitEveryXPoints120Lock step size (points)
InpLockMinusYPointsBuffer18Lock buffer subtract (points)
MaxOpenTradesPerSymbol3Max positions per symbol
MaxTotalOpenTrades8Global max positions
AllowOnlyProfitableAdditionstrueAdd only if direction profitable
MinProfitPerTradeToAdd4.0Min unrealized pts per position to add
PauseOnConsecutiveLossesfalseEnable pause after X losses
PauseConsecutiveLossesCount3Loss streak threshold
PauseConsecutiveLossesMinutes60Pause duration (minutes)
PauseOnLossAmountfalseEnable pause after loss amount
PauseLossAmount100.0Loss amount threshold (currency)
PauseLossAmountMinutes60Pause duration after loss amount
InpUseAutoMinLottrueUse symbol min lot automatically
InpFixedLot0.10Fixed lot if auto-min disabled
InpUseATRforSLTPtrueUse ATR-based SL/TP
InpATRPeriod14ATR period
InpATR_SL_Mult3.0ATR SL multiplier
InpATR_TP_Mult6.0ATR TP multiplier
InpSL_Points250Static SL if ATR disabled (points)
InpTP_Points500Static TP if ATR disabled (points)
InpSlippagePoints5Initial allowed slippage
InpMaxAdaptiveDeviation20Max adaptive deviation (points)
InpOneEntryPerBartrueRestrict one entry per bar
InpCooldownSecondsDir20Directional cooldown seconds
InpGaussianSigma2.0Gaussian sigma
InpGaussianRadius0Gaussian radius (0=auto ceil(3σ))
InpDonchianPeriod20Donchian breakout period
InpTrapLookbackBars30Liquidity trap lookback bars
InpTrapSweepPts12Trap sweep buffer (points)
InpTrapReentryPts8Trap re-entry buffer (points)
InpTrapWickRatio0.30Min wick ratio for trap candle
InpNeedConfirmationsK2Required confirmations K
InpUseMTFEMAtrueUse higher timeframe EMA alignment
InpMTF_TF4Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Higher timeframe for EMA
InpMTF_EMAPeriod200Higher timeframe EMA period
InpUseDynamicSpreadCaptrueEnable dynamic spread cap
InpSpreadLookbackTicks200Spread sampling window (ticks)
InpSpreadMADMult3.0Spread cap multiplier (median+k*MAD)
InpSpreadCapAbsPoints0Absolute spread cap (0=off)
InpUseBarQualityFiltertrueUse bar quality filter
InpMinBodyToRange0.18Min body/range ratio
Source Code (.mq5)Open Source
Pipsgrowth_com_EX12057.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX12057 Multi_Symbol_GaussDonchTrap — Gaussian+Donchian+Liquidity Trap multi-symbol, full 12-layer stack."
#include <Trade\Trade.mqh>

//==================================================================//
//                            INPUTS                                //
//==================================================================//

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_InpSignalsTF = PERIOD_H1;
ENUM_TIMEFRAMES g_InpMTF_TF = PERIOD_H1;
input group "=== CORE ==="
input long      MagicNumber           = 22212057; // Magic number
input string    InpTradeComment       = "Psgrowth.com Expert_12057"; // Trade comment
input string    SymbolsCSV            = "EURUSD,GBPUSD";  // Symbols list (CSV)
input int InpSignalsTF = 1; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Signal timeframe

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;

Full source code available on download

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

Tags:ex12057multiindicatorconfluencepipsgrowthfreemt5eurusdgbpusdxauusd

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_EX12057.mq5
File Size43.3 KB
Versionv2.00
PlatformMetaTrader 5
File Type.mq5 Source
StrategyOther
Risk LevelMedium Risk
Timeframes
M1
Currency Pairs
EURUSDGBPUSDXAUUSD
Min. Deposit$100