P
PipsGrowth
Trend FollowingOpen Source – Free

Pipsgrowth EX16106 Trend

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

Pipsgrowth.com EX16106 HullEA — four Hull indicator trend EA with ATR risk management, full 12-layer stack.

Overview

Pipsgrowth EX16106 is a four-Hull consensus EA built on the legacy hull-averageNew indicator, packaged with composite scoring, ATR-adaptive risk controls, and an optional additional-entries stack. The four Hulls each carry their own period, divisor, MA method, price, source timeframe, flat-sensitivity, and ADX/ATR/momentum/volume/slope sub-filters, so what looks like one decision is really a 30+ parameter matrix collapsed into a single long or short vote. By default the EA demands three of four enabled Hulls agree (InpMinIndicatorsAgree=3) and the prevailing color vote must dominate the opposing color — partial agreement is not enough.

The decision pipeline on each new bar starts in RefreshHullData(). It walks the four enabled handles, copies buffer 0 (Hull value) and buffer 1 (color) for both the signal bar and the bar before, and stores the four values plus the four colors. EvaluateSignal() then counts bullish colors (1) and bearish colors (2) across the active set, gates the count against InpMinIndicatorsAgree, and optionally checks IsMonotonicOrder() to confirm the Hull values are stacked in trend order when InpRequireHullAlignment=true. The result is HULL_SIGNAL_BUY, HULL_SIGNAL_SELL, or HULL_SIGNAL_NONE. The signal bar itself is offset by InpSignalBarShift (default 1, the just-closed bar) so the EA never acts on an in-progress candle.

Each Hull is a hull-averageNew instance with its own settings. Hull #1 runs on period 160 with divisor 17.6, an EMA basis, a flat-sensitivity of 10.5 points, an ADX filter at 26.0 on a 100-bar lookback, a momentum threshold of 16.5 points over 5 bars, and an ATR filter at 1.5× ATR(14) plus a 50-bar Z-score minimum of 1.0 and a slope-percentile gate of 70. Hull #2 shares the 160 period but uses a tighter 9.8 divisor, no ADX filter, and a higher 34-point momentum threshold. Hulls #3 and #4 follow the same scaffold with their own knobs, all pre-grouped in the inputs panel. The composite score is opt-in per Hull: it weights ADX × ATR × momentum (and optionally volume) and only counts a vote when the weighted score clears the configured minimum. When the composite is disabled the Hull contributes a raw color vote.

Position management runs on a static 300 / 300 stop / target grid by default — a clean 1:1 R:R. Both legs can be replaced with ATR-driven values by enabling InpUseAtrStopLoss (1.5× ATR(14)) or InpUseAtrTakeProfit (3.0× ATR(14)) in the ATR-based Risk Management group. DetermineStopLossPoints() and DetermineTakeProfitPoints() pull ATR in points via GetAtrPoints(), multiply by the configured coefficient, and fall back to the static 300 when the ATR handle fails to load. The trailing logic in ApplyTrailingStop() only kicks in after the position is 150 points in profit, then drags the stop 210 points behind price on every favorable tick using TryModify_EX16106() (3 retries, 100ms between attempts on requote/timeout).

The additional-entries stack is an opt-in feature. When InpEnableAdditionalEntries=true and the open position of the same direction is already 20 points in profit (gated by AllPositionsProfitBy() and InpAdditionalEntryProfitPoints), and at least InpMinHullAgreement (default 2) Hulls agree on the side, the EA opens a stacked entry with comment Add#<index>. GetNextAdditionalIndex() walks the existing comments to find the next free index. InpMaxPositionsPerDirection is the cap (0 = unlimited). This is a controlled, signal-gated add — not a martingale — but the EA does not average down into a loss; the 20-point minimum-profit gate keeps entries on the right side of the move.

The exit logic has two paths. The first is the static/ATR stop and target. The second is HandleOppositeClose(): when the consensus flips to the opposing color, the EA closes profitable open positions in the old direction (gated by InpMinIndicatorsAgreeCloseProfit=1 and InpCloseProfitPoints=0 so any profit qualifies). With InpCloseOnOppositeEvenIfInLose=true it will also cut losing trades when the opposing consensus is strong enough. Position changes are routed through TryClose_EX16106(), which retries 3 times with 200ms between attempts on requotes, timeouts, and price-change events.

The chart gets all four Hull indicators attached as visual panels through AttachHullIndicator() and ChartIndicatorAdd(), so you can see the colors flipping alongside the EA's decisions. The risk layer is the static SL/TP grid plus the spread filter (25 points maximum by default, enforced by IsSpreadAcceptable()) and the new-bar gate (NeedProcessTick()) that prevents intra-bar signal evaluation. There is no daily-drawdown cap, no equity-curve filter, no correlation check, and no news blackout — the risk surface is exactly the SL/TP grid plus the trailing ratchet. On a $100 minimum deposit with 0.01 lots, a 300-point loss on XAUUSD is roughly $3 — sized to fit inside the recommended minimum. The EA runs cleanly on M5 and H1 across FX majors and gold/metals per the header note.

The position-side bookkeeping is intentionally simple. CountPositionsByType() scans PositionsTotal(), filters by magic (InpMagicNumber=22216106) and by the current symbol, and returns the buy or sell count. ClosePositionsByType() collects the matching tickets into an array and walks them through TryClose_EX16106() one at a time so a single broker rejection cannot strand the other closes. CalculateVolume() takes the SL in points and either returns the fixed InpLots (default 0.01) or, when InpUseRiskPercentage is on, computes a balance-proportional size from SYMBOL_TRADE_TICK_VALUE and SYMBOL_TRADE_TICK_SIZE so 1% of equity rides the configured stop. NormalizeVolume() snaps the result to the symbol's lot step, clamps to min/max, and rounds the digits per the broker's lot precision before OpenPosition() submits. The trade object is configured with SetExpertMagicNumber(InpMagicNumber) and a 10-point deviation cap in OnInit, so the magic stays pinned even across reloads.

What separates EX16106 from a vanilla four-Hull crossover is the depth of the composite sub-scoring. Each Hull's vote is not just a color check; the indicator returns a value, a flat-state flag, and a weighted score that the EA can use to suppress votes that are barely threshold-meeting. With all four Hulls enabled and composite scoring active, the effective vote count is a four-dimensional dot product against your ADX/ATR/momentum/volume weights, so the consensus you see on the chart is the surface result of a much noisier decision underneath. The 167 inputs grouped in the panel are not all meant to be touched — the ATR-based Risk Management group and the Additional Entries group are deliberately off by default so the EA behaves as a clean 1:1 trend follower until you opt into the heavier modes.

Strategy Deep Dive

On every new bar, RefreshHullData() pulls the current and previous value and color of four hull-averageNew instances, each parameterized with its own period, divisor, MA method, source timeframe, and ADX/ATR/momentum/volume/slope sub-filters. EvaluateSignal() counts bullish versus bearish color votes across the active set and demands at least InpMinIndicatorsAgree (default 3) dominate the opposing side, optionally checking IsMonotonicOrder() to confirm the Hull values are stacked in trend order. Once consensus resolves to long or short, OpenPosition() routes the entry through g_trade.Buy() or g_trade.Sell() with a static 300/300 SL/TP or, when ATR mode is enabled, with DetermineStopLossPoints() returning 1.5x ATR(14) and DetermineTakeProfitPoints() returning 3.0x ATR(14). HandleOppositeClose() watches the consensus on every tick: when the opposing color vote reaches the configured close threshold, it liquidates open positions of the old direction, only cutting losing trades when InpCloseOnOppositeEvenIfInLose is true. ApplyTrailingStop() ratchets the stop 210 points behind price after the position is 150 points in profit, retrying on requotes through TryModify_EX16106().

Entry Signal

Long entry fires when at least 3 of 4 enabled Hull indicators (hull-averageNew) print a bullish color (1) on the just-closed bar AND bearish colors do not match the threshold, optionally gated by monotonic ordering. Mirror logic for short. Additional entries stack on the same direction when the existing position is 20+ points in profit and at least 2 Hulls agree.

Exit Signal

Exits run on the static 300-point stop and 300-point target by default, or on the optional ATR-based 1.5x/3.0x multiples when enabled. Opposite-direction consensus closes profitable positions (1 opposing Hull is enough), and can also cut losing trades when InpCloseOnOppositeEvenIfInLose is true. Trailing ratchets stop 210 points behind price after 150 points in profit.

Stop Loss

Static 300-point stop loss by default (InpStopLossPoints). Optional ATR-based stop loss replaces it with 1.5x ATR(14) points when InpUseAtrStopLoss is enabled, falling back to the static value if the ATR handle fails to load.

Take Profit

Static 300-point take profit by default (InpTakeProfitPoints), giving a 1:1 risk-reward with the matching stop. Optional ATR-based target at 3.0x ATR(14) when InpUseAtrTakeProfit is enabled.

Best For

Recommended for XAUUSD on M5 with a $100 minimum account and 0.01 lot sizing. Best paired with a low-spread ECN broker (the 25-point spread filter assumes execution under typical gold conditions). The London and New York sessions provide the cleanest Hull trends for gold, with the additional-entries stack sized to ride clean directional moves rather than choppy ranges. The static 1:1 grid and tight trailing ratchet make it a fit for traders who want an explicit stop/target framework rather than a discretionary exit.

Strategy Logic

Pipsgrowth EX16106 Trend — Strategy Logic Analysis (from .mq5 source)

Family: Trend Magic: 22216106 Version: 2.00

BRIEF: Hull EA trades using four Hull indicators with ATR-based risk management, additional entries and multi-filter confirmation. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

INDICATOR STACK:

  • Standard MT5 indicators

KEY FUNCTIONS:

  • CreateHullHandle()
  • ReleaseHullHandles()
  • AttachHullIndicator()
  • DetachHullIndicator()
  • CreateAtrHandle()
  • ReleaseAtrHandles()
  • GetAtrPoints()
  • DetermineStopLossPoints()
  • DetermineTakeProfitPoints()
  • CountPositionsByType()
  • ClosePositionsByType()
  • AllPositionsProfitBy()
  • ...and 17 more

INTERNAL CONSTANTS (0 total):

INPUT PARAMETERS (167 total across 8 groups):

  • [] InpAllowBuy = true // Allow buy trades
  • [] InpAllowSell = true // Allow sell trades
  • [] InpHullTimeframe = 0 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)// Indicator timeframe
  • [] InpUseNewBarSignals = true // Evaluate signals on new bar only
  • [] InpTrailingStepPoints = 210.0 // Trailing step (points)
  • [] InpTrailingStartPoints = 150.0 // Trailing start (points)
  • [] InpStopLossPoints = 300.0 // Static stop loss (points)
  • [] InpTakeProfitPoints = 300.0 // Static take profit (points)
  • [] InpMaxSpreadPoints = 25.0 // Maximum spread allowed (points)
  • [] InpLots = 0.01 // Fixed lot size
  • [] InpUseRiskPercentage = false // Use risk percentage for lot sizing
  • [] InpRiskPercentage = 1.0 // Risk percentage of balance
  • [] InpEnableDebugLogging = false // Enable debug logging
  • [] InpRequireHullAlignment = false // Require hull values to be aligned
  • [] InpMagicNumber = 22216106 // Magic number
  • [] InpTradeComment = "Psgrowth.com Expert_16106" // Trade comment
  • [=== ATR-based Risk Management ===] InpUseAtrStopLoss = false // Use ATR-based stop loss
  • [=== ATR-based Risk Management ===] InpAtrStopLossTf = 0 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)// ATR stop-loss timeframe
  • [=== ATR-based Risk Management ===] InpAtrStopLossPeriod = 14 // ATR stop-loss period
  • [=== ATR-based Risk Management ===] InpAtrStopLossMultiplier = 1.5 // ATR stop-loss multiplier
  • [=== ATR-based Risk Management ===] InpUseAtrTakeProfit = false // Use ATR-based take profit
  • [=== ATR-based Risk Management ===] InpAtrTakeProfitTf = 0 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)// ATR take-profit timeframe
  • [=== ATR-based Risk Management ===] InpAtrTakeProfitPeriod = 14 // ATR take-profit period
  • [=== ATR-based Risk Management ===] InpAtrTakeProfitMultiplier = 3.0 // ATR take-profit multiplier
  • [=== Additional Entries ===] InpEnableAdditionalEntries = false // Allow additional entries
  • [=== Additional Entries ===] InpMinHullAgreement = 2 // Minimum agreeing Hull indicators
  • [=== Additional Entries ===] InpMaxPositionsPerDirection = 0 // Max open positions per direction (0 = unlimited)
  • [=== Additional Entries ===] InpAdditionalEntryProfitPoints = 20.0 // Required profit per existing position (points)
  • [=== Signal Settings ===] InpSignalBarShift = 1 // Signal bar shift (0=current,1=closed)
  • [=== Signal Settings ===] InpMinIndicatorsAgree = 3 // Minimum Hulls agreeing
  • [=== Signal Settings ===] InpCloseOnOpposite = true // Close trades on opposite agreement if in profit
  • [=== Signal Settings ===] InpMinIndicatorsAgreeCloseProfit = 1 // Minimum Hulls to close in profit
  • [=== Signal Settings ===] InpCloseProfitPoints = 0.0 // Minimum profit (points) to close on opposite
  • [=== Signal Settings ===] InpCloseOnOppositeEvenIfInLose = false // Close trades on opposite agreement even if losing
  • [=== Signal Settings ===] InpMinIndicatorsAgreeCloseLoss = 1 // Minimum Hulls to close even if losing
  • [=== Hull #1 Indicator ===] InpHull1Enabled = true // Enable Hull #1
  • [=== Hull #1 Indicator ===] InpHull1Period = 160 // Hull #1 period
  • [=== Hull #1 Indicator ===] InpHull1Divisor = 17.6 // Hull #1 divisor (speed)
  • [=== Hull #1 Indicator ===] InpHull1Price = 5 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Hull #1 price
  • [=== Hull #1 Indicator ===] InpHull1Method = MODE_EMA // Hull #1 MA method
  • [=== Hull #1 Indicator ===] InpHull1Timeframe = 7 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #1 source timeframe
  • [=== Hull #1 Indicator ===] InpHull1FlatSensitivity = 10.5 // Hull #1 flat sensitivity (points)
  • [=== Hull #1 Indicator ===] InpHull1FlatBars = 3 // Hull #1 flat bars
  • [=== Hull #1 Indicator ===] InpHull1UseAdxFilter = true // Hull #1 use ADX filter
  • [=== Hull #1 Indicator ===] InpHull1AdxTimeframe = 5 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #1 ADX timeframe
  • [=== Hull #1 Indicator ===] InpHull1AdxPeriod = 20 // Hull #1 ADX period
  • [=== Hull #1 Indicator ===] InpHull1AdxThreshold = 26.0 // Hull #1 ADX threshold
  • [=== Hull #1 Indicator ===] InpHull1MomentumLookback = 5 // Hull #1 momentum lookback
  • [=== Hull #1 Indicator ===] InpHull1MomentumPoints = 16.5 // Hull #1 momentum threshold (points)
  • [=== Hull #1 Indicator ===] InpHull1UseAtrFilter = true // Hull #1 use ATR filter
  • [=== Hull #1 Indicator ===] InpHull1AtrTimeframe = 0 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #1 ATR timeframe
  • [=== Hull #1 Indicator ===] InpHull1AtrPeriod = 14 // Hull #1 ATR period
  • [=== Hull #1 Indicator ===] InpHull1AtrMultiplier = 1.5 // Hull #1 ATR multiplier (points)
  • [=== Hull #1 Indicator ===] InpHull1SlopePoints = 0.0 // Hull #1 slope threshold (points)
  • [=== Hull #1 Indicator ===] InpHull1AtrZScoreLookback = 50 // Hull #1 ATR Z-score lookback
  • [=== Hull #1 Indicator ===] InpHull1AtrZScoreMinimum = 1.0 // Hull #1 ATR Z-score minimum
  • [=== Hull #1 Indicator ===] InpHull1SlopePercentLookback = 50 // Hull #1 slope percentile lookback
  • [=== Hull #1 Indicator ===] InpHull1SlopePercentile = 70.0 // Hull #1 slope percentile
  • [=== Hull #1 Indicator ===] InpHull1UseCompositeScore = true // Hull #1 use composite score
  • [=== Hull #1 Indicator ===] InpHull1CompositeWeightAdx = 1.0 // Hull #1 composite weight ADX
  • [=== Hull #1 Indicator ===] InpHull1CompositeWeightAtr = 1.0 // Hull #1 composite weight ATR
  • [=== Hull #1 Indicator ===] InpHull1CompositeWeightMomentum = 1.0 // Hull #1 composite weight momentum
  • [=== Hull #1 Indicator ===] InpHull1CompositeMinScore = 1.0 // Hull #1 composite minimum score
  • [=== Hull #1 Indicator ===] InpHull1UseVolumeFilter = true // Hull #1 use volume filter
  • [=== Hull #1 Indicator ===] InpHull1UseRealVolume = false // Hull #1 use real volume
  • [=== Hull #1 Indicator ===] InpHull1VolumeLookback = 50 // Hull #1 volume lookback
  • [=== Hull #1 Indicator ===] InpHull1VolumePercentile = 70.0 // Hull #1 volume percentile
  • [=== Hull #1 Indicator ===] InpHull1CompositeWeightVolume = 0.0 // Hull #1 composite weight volume
  • [=== Hull #2 Indicator ===] InpHull2Enabled = true // Enable Hull #2
  • [=== Hull #2 Indicator ===] InpHull2Period = 160 // Hull #2 period
  • [=== Hull #2 Indicator ===] InpHull2Divisor = 9.8 // Hull #2 divisor (speed)
  • [=== Hull #2 Indicator ===] InpHull2Price = 7 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Hull #2 price
  • [=== Hull #2 Indicator ===] InpHull2Method = MODE_EMA // Hull #2 MA method
  • [=== Hull #2 Indicator ===] InpHull2Timeframe = 7 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #2 source timeframe
  • [=== Hull #2 Indicator ===] InpHull2FlatSensitivity = 3.0 // Hull #2 flat sensitivity (points)
  • [=== Hull #2 Indicator ===] InpHull2FlatBars = 21 // Hull #2 flat bars
  • [=== Hull #2 Indicator ===] InpHull2UseAdxFilter = false // Hull #2 use ADX filter
  • [=== Hull #2 Indicator ===] InpHull2AdxTimeframe = 7 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #2 ADX timeframe
  • [=== Hull #2 Indicator ===] InpHull2AdxPeriod = 100 // Hull #2 ADX period
  • [=== Hull #2 Indicator ===] InpHull2AdxThreshold = 60.0 // Hull #2 ADX threshold
  • [=== Hull #2 Indicator ===] InpHull2MomentumLookback = 50 // Hull #2 momentum lookback
  • [=== Hull #2 Indicator ===] InpHull2MomentumPoints = 34.0 // Hull #2 momentum threshold (points)
  • [=== Hull #2 Indicator ===] InpHull2UseAtrFilter = false // Hull #2 use ATR filter
  • [=== Hull #2 Indicator ===] InpHull2AtrTimeframe = 0 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #2 ATR timeframe
  • [=== Hull #2 Indicator ===] InpHull2AtrPeriod = 14 // Hull #2 ATR period
  • [=== Hull #2 Indicator ===] InpHull2AtrMultiplier = 1.5 // Hull #2 ATR multiplier (points)
  • [=== Hull #2 Indicator ===] InpHull2SlopePoints = 0.0 // Hull #2 slope threshold (points)
  • [=== Hull #2 Indicator ===] InpHull2AtrZScoreLookback = 50 // Hull #2 ATR Z-score lookback
  • [=== Hull #2 Indicator ===] InpHull2AtrZScoreMinimum = 1.0 // Hull #2 ATR Z-score minimum
  • [=== Hull #2 Indicator ===] InpHull2SlopePercentLookback = 50 // Hull #2 slope percentile lookback
  • [=== Hull #2 Indicator ===] InpHull2SlopePercentile = 70.0 // Hull #2 slope percentile
  • [=== Hull #2 Indicator ===] InpHull2UseCompositeScore = false // Hull #2 use composite score
  • [=== Hull #2 Indicator ===] InpHull2CompositeWeightAdx = 1.0 // Hull #2 composite weight ADX
  • [=== Hull #2 Indicator ===] InpHull2CompositeWeightAtr = 1.0 // Hull #2 composite weight ATR
  • [=== Hull #2 Indicator ===] InpHull2CompositeWeightMomentum = 1.0 // Hull #2 composite weight momentum
  • [=== Hull #2 Indicator ===] InpHull2CompositeMinScore = 1.0 // Hull #2 composite minimum score
  • [=== Hull #2 Indicator ===] InpHull2UseVolumeFilter = false // Hull #2 use volume filter
  • [=== Hull #2 Indicator ===] InpHull2UseRealVolume = false // Hull #2 use real volume
  • [=== Hull #2 Indicator ===] InpHull2VolumeLookback = 50 // Hull #2 volume lookback
  • [=== Hull #2 Indicator ===] InpHull2VolumePercentile = 70.0 // Hull #2 volume percentile
  • [=== Hull #2 Indicator ===] InpHull2CompositeWeightVolume = 0.0 // Hull #2 composite weight volume
  • [=== Hull #3 Indicator ===] InpHull3Enabled = true // Enable Hull #3
  • [=== Hull #3 Indicator ===] InpHull3Period = 245 // Hull #3 period
  • [=== Hull #3 Indicator ===] InpHull3Divisor = 12.2 // Hull #3 divisor (speed)
  • [=== Hull #3 Indicator ===] InpHull3Price = 6 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Hull #3 price
  • [=== Hull #3 Indicator ===] InpHull3Method = MODE_SMMA // Hull #3 MA method
  • [=== Hull #3 Indicator ===] InpHull3Timeframe = 7 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #3 source timeframe
  • [=== Hull #3 Indicator ===] InpHull3FlatSensitivity = 29.7 // Hull #3 flat sensitivity (points)
  • [=== Hull #3 Indicator ===] InpHull3FlatBars = 10 // Hull #3 flat bars
  • [=== Hull #3 Indicator ===] InpHull3UseAdxFilter = false // Hull #3 use ADX filter
  • [=== Hull #3 Indicator ===] InpHull3AdxTimeframe = 7 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #3 ADX timeframe
  • [=== Hull #3 Indicator ===] InpHull3AdxPeriod = 55 // Hull #3 ADX period
  • [=== Hull #3 Indicator ===] InpHull3AdxThreshold = 28.0 // Hull #3 ADX threshold
  • [=== Hull #3 Indicator ===] InpHull3MomentumLookback = 21 // Hull #3 momentum lookback
  • [=== Hull #3 Indicator ===] InpHull3MomentumPoints = 47.0 // Hull #3 momentum threshold (points)
  • [=== Hull #3 Indicator ===] InpHull3UseAtrFilter = false // Hull #3 use ATR filter
  • [=== Hull #3 Indicator ===] InpHull3AtrTimeframe = 0 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #3 ATR timeframe
  • [=== Hull #3 Indicator ===] InpHull3AtrPeriod = 14 // Hull #3 ATR period
  • [=== Hull #3 Indicator ===] InpHull3AtrMultiplier = 1.5 // Hull #3 ATR multiplier (points)
  • [=== Hull #3 Indicator ===] InpHull3SlopePoints = 0.0 // Hull #3 slope threshold (points)
  • [=== Hull #3 Indicator ===] InpHull3AtrZScoreLookback = 50 // Hull #3 ATR Z-score lookback
  • [=== Hull #3 Indicator ===] InpHull3AtrZScoreMinimum = 1.0 // Hull #3 ATR Z-score minimum
  • [=== Hull #3 Indicator ===] InpHull3SlopePercentLookback = 50 // Hull #3 slope percentile lookback
  • [=== Hull #3 Indicator ===] InpHull3SlopePercentile = 70.0 // Hull #3 slope percentile
  • [=== Hull #3 Indicator ===] InpHull3UseCompositeScore = false // Hull #3 use composite score
  • [=== Hull #3 Indicator ===] InpHull3CompositeWeightAdx = 1.0 // Hull #3 composite weight ADX
  • [=== Hull #3 Indicator ===] InpHull3CompositeWeightAtr = 1.0 // Hull #3 composite weight ATR
  • [=== Hull #3 Indicator ===] InpHull3CompositeWeightMomentum = 1.0 // Hull #3 composite weight momentum
  • [=== Hull #3 Indicator ===] InpHull3CompositeMinScore = 1.0 // Hull #3 composite minimum score
  • [=== Hull #3 Indicator ===] InpHull3UseVolumeFilter = false // Hull #3 use volume filter
  • [=== Hull #3 Indicator ===] InpHull3UseRealVolume = false // Hull #3 use real volume
  • [=== Hull #3 Indicator ===] InpHull3VolumeLookback = 50 // Hull #3 volume lookback
  • [=== Hull #3 Indicator ===] InpHull3VolumePercentile = 70.0 // Hull #3 volume percentile
  • [=== Hull #3 Indicator ===] InpHull3CompositeWeightVolume = 0.0 // Hull #3 composite weight volume
  • [=== Hull #4 Indicator ===] InpHull4Enabled = false // Enable Hull #4
  • [=== Hull #4 Indicator ===] InpHull4Period = 536 // Hull #4 period
  • [=== Hull #4 Indicator ===] InpHull4Divisor = 2.0 // Hull #4 divisor (speed)
  • [=== Hull #4 Indicator ===] InpHull4Price = 1 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Hull #4 price
  • [=== Hull #4 Indicator ===] InpHull4Method = MODE_LWMA // Hull #4 MA method
  • [=== Hull #4 Indicator ===] InpHull4Timeframe = 0 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #4 source timeframe
  • [=== Hull #4 Indicator ===] InpHull4FlatSensitivity = 3.0 // Hull #4 flat sensitivity (points)
  • [=== Hull #4 Indicator ===] InpHull4FlatBars = 3 // Hull #4 flat bars
  • [=== Hull #4 Indicator ===] InpHull4UseAdxFilter = false // Hull #4 use ADX filter
  • [=== Hull #4 Indicator ===] InpHull4AdxTimeframe = 0 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #4 ADX timeframe
  • [=== Hull #4 Indicator ===] InpHull4AdxPeriod = 14 // Hull #4 ADX period
  • [=== Hull #4 Indicator ===] InpHull4AdxThreshold = 20.0 // Hull #4 ADX threshold
  • [=== Hull #4 Indicator ===] InpHull4MomentumLookback = 5 // Hull #4 momentum lookback
  • [=== Hull #4 Indicator ===] InpHull4MomentumPoints = 5.0 // Hull #4 momentum threshold (points)
  • [=== Hull #4 Indicator ===] InpHull4UseAtrFilter = false // Hull #4 use ATR filter
  • [=== Hull #4 Indicator ===] InpHull4AtrTimeframe = 0 // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #4 ATR timeframe
  • [=== Hull #4 Indicator ===] InpHull4AtrPeriod = 14 // Hull #4 ATR period
  • [=== Hull #4 Indicator ===] InpHull4AtrMultiplier = 1.5 // Hull #4 ATR multiplier (points)
  • [=== Hull #4 Indicator ===] InpHull4SlopePoints = 0.0 // Hull #4 slope threshold (points)
  • [=== Hull #4 Indicator ===] InpHull4AtrZScoreLookback = 50 // Hull #4 ATR Z-score lookback
  • [=== Hull #4 Indicator ===] InpHull4AtrZScoreMinimum = 1.0 // Hull #4 ATR Z-score minimum
  • [=== Hull #4 Indicator ===] InpHull4SlopePercentLookback = 50 // Hull #4 slope percentile lookback
  • [=== Hull #4 Indicator ===] InpHull4SlopePercentile = 70.0 // Hull #4 slope percentile
  • [=== Hull #4 Indicator ===] InpHull4UseCompositeScore = false // Hull #4 use composite score
  • [=== Hull #4 Indicator ===] InpHull4CompositeWeightAdx = 1.0 // Hull #4 composite weight ADX
  • [=== Hull #4 Indicator ===] InpHull4CompositeWeightAtr = 1.0 // Hull #4 composite weight ATR
  • [=== Hull #4 Indicator ===] InpHull4CompositeWeightMomentum = 1.0 // Hull #4 composite weight momentum
  • [=== Hull #4 Indicator ===] InpHull4CompositeMinScore = 1.0 // Hull #4 composite minimum score
  • [=== Hull #4 Indicator ===] InpHull4UseVolumeFilter = false // Hull #4 use volume filter
  • [=== Hull #4 Indicator ===] InpHull4UseRealVolume = false // Hull #4 use real volume
  • [=== Hull #4 Indicator ===] InpHull4VolumeLookback = 50 // Hull #4 volume lookback
  • [=== Hull #4 Indicator ===] InpHull4VolumePercentile = 70.0 // Hull #4 volume percentile
  • [=== Hull #4 Indicator ===] InpHull4CompositeWeightVolume = 0.0 // Hull #4 composite weight volume
Pseudocode
// Pipsgrowth EX16106 Trend — Execution Flow (from source analysis)
// Family: Trend
// Hull EA trades using four Hull indicators with ATR-based risk management, additional entries and multi-filter confirmation. 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 an H4 or Daily chart for best results
  7. 7Configure EMA periods, ADX threshold, and lot size in the dialog
  8. 8Enable Allow Algo Trading and click OK

EA Parameters

ParameterDefaultDescription
InpAllowBuytrueAllow buy trades
InpAllowSelltrueAllow sell trades
InpHullTimeframe0Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)// Indicator timeframe
InpUseNewBarSignalstrueEvaluate signals on new bar only
InpTrailingStepPoints210.0Trailing step (points)
InpTrailingStartPoints150.0Trailing start (points)
InpStopLossPoints300.0Static stop loss (points)
InpTakeProfitPoints300.0Static take profit (points)
InpMaxSpreadPoints25.0Maximum spread allowed (points)
InpLots0.01Fixed lot size
InpUseRiskPercentagefalseUse risk percentage for lot sizing
InpRiskPercentage1.0Risk percentage of balance
InpEnableDebugLoggingfalseEnable debug logging
InpRequireHullAlignmentfalseRequire hull values to be aligned
InpMagicNumber22216106Magic number
InpTradeComment"Psgrowth.com Expert_16106"Trade comment
InpUseAtrStopLossfalseUse ATR-based stop loss
InpAtrStopLossTf0Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)// ATR stop-loss timeframe
InpAtrStopLossPeriod14ATR stop-loss period
InpAtrStopLossMultiplier1.5ATR stop-loss multiplier
InpUseAtrTakeProfitfalseUse ATR-based take profit
InpAtrTakeProfitTf0Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)// ATR take-profit timeframe
InpAtrTakeProfitPeriod14ATR take-profit period
InpAtrTakeProfitMultiplier3.0ATR take-profit multiplier
InpEnableAdditionalEntriesfalseAllow additional entries
InpMinHullAgreement2Minimum agreeing Hull indicators
InpMaxPositionsPerDirection0Max open positions per direction (0 = unlimited)
InpAdditionalEntryProfitPoints20.0Required profit per existing position (points)
InpSignalBarShift1Signal bar shift (0=current,1=closed)
InpMinIndicatorsAgree3Minimum Hulls agreeing
InpCloseOnOppositetrueClose trades on opposite agreement if in profit
InpMinIndicatorsAgreeCloseProfit1Minimum Hulls to close in profit
InpCloseProfitPoints0.0Minimum profit (points) to close on opposite
InpCloseOnOppositeEvenIfInLosefalseClose trades on opposite agreement even if losing
InpMinIndicatorsAgreeCloseLoss1Minimum Hulls to close even if losing
InpHull1EnabledtrueEnable Hull #1
InpHull1Period160Hull #1 period
InpHull1Divisor17.6Hull #1 divisor (speed)
InpHull1Price5Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Hull #1 price
InpHull1MethodMODE_EMAHull #1 MA method
InpHull1Timeframe7Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #1 source timeframe
InpHull1FlatSensitivity10.5Hull #1 flat sensitivity (points)
InpHull1FlatBars3Hull #1 flat bars
InpHull1UseAdxFiltertrueHull #1 use ADX filter
InpHull1AdxTimeframe5Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #1 ADX timeframe
InpHull1AdxPeriod20Hull #1 ADX period
InpHull1AdxThreshold26.0Hull #1 ADX threshold
InpHull1MomentumLookback5Hull #1 momentum lookback
InpHull1MomentumPoints16.5Hull #1 momentum threshold (points)
InpHull1UseAtrFiltertrueHull #1 use ATR filter
InpHull1AtrTimeframe0Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #1 ATR timeframe
InpHull1AtrPeriod14Hull #1 ATR period
InpHull1AtrMultiplier1.5Hull #1 ATR multiplier (points)
InpHull1SlopePoints0.0Hull #1 slope threshold (points)
InpHull1AtrZScoreLookback50Hull #1 ATR Z-score lookback
InpHull1AtrZScoreMinimum1.0Hull #1 ATR Z-score minimum
InpHull1SlopePercentLookback50Hull #1 slope percentile lookback
InpHull1SlopePercentile70.0Hull #1 slope percentile
InpHull1UseCompositeScoretrueHull #1 use composite score
InpHull1CompositeWeightAdx1.0Hull #1 composite weight ADX
InpHull1CompositeWeightAtr1.0Hull #1 composite weight ATR
InpHull1CompositeWeightMomentum1.0Hull #1 composite weight momentum
InpHull1CompositeMinScore1.0Hull #1 composite minimum score
InpHull1UseVolumeFiltertrueHull #1 use volume filter
InpHull1UseRealVolumefalseHull #1 use real volume
InpHull1VolumeLookback50Hull #1 volume lookback
InpHull1VolumePercentile70.0Hull #1 volume percentile
InpHull1CompositeWeightVolume0.0Hull #1 composite weight volume
InpHull2EnabledtrueEnable Hull #2
InpHull2Period160Hull #2 period
InpHull2Divisor9.8Hull #2 divisor (speed)
InpHull2Price7Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Hull #2 price
InpHull2MethodMODE_EMAHull #2 MA method
InpHull2Timeframe7Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #2 source timeframe
InpHull2FlatSensitivity3.0Hull #2 flat sensitivity (points)
InpHull2FlatBars21Hull #2 flat bars
InpHull2UseAdxFilterfalseHull #2 use ADX filter
InpHull2AdxTimeframe7Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #2 ADX timeframe
InpHull2AdxPeriod100Hull #2 ADX period
InpHull2AdxThreshold60.0Hull #2 ADX threshold
InpHull2MomentumLookback50Hull #2 momentum lookback
InpHull2MomentumPoints34.0Hull #2 momentum threshold (points)
InpHull2UseAtrFilterfalseHull #2 use ATR filter
InpHull2AtrTimeframe0Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #2 ATR timeframe
InpHull2AtrPeriod14Hull #2 ATR period
InpHull2AtrMultiplier1.5Hull #2 ATR multiplier (points)
InpHull2SlopePoints0.0Hull #2 slope threshold (points)
InpHull2AtrZScoreLookback50Hull #2 ATR Z-score lookback
InpHull2AtrZScoreMinimum1.0Hull #2 ATR Z-score minimum
InpHull2SlopePercentLookback50Hull #2 slope percentile lookback
InpHull2SlopePercentile70.0Hull #2 slope percentile
InpHull2UseCompositeScorefalseHull #2 use composite score
InpHull2CompositeWeightAdx1.0Hull #2 composite weight ADX
InpHull2CompositeWeightAtr1.0Hull #2 composite weight ATR
InpHull2CompositeWeightMomentum1.0Hull #2 composite weight momentum
InpHull2CompositeMinScore1.0Hull #2 composite minimum score
InpHull2UseVolumeFilterfalseHull #2 use volume filter
InpHull2UseRealVolumefalseHull #2 use real volume
InpHull2VolumeLookback50Hull #2 volume lookback
InpHull2VolumePercentile70.0Hull #2 volume percentile
InpHull2CompositeWeightVolume0.0Hull #2 composite weight volume
InpHull3EnabledtrueEnable Hull #3
InpHull3Period245Hull #3 period
InpHull3Divisor12.2Hull #3 divisor (speed)
InpHull3Price6Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Hull #3 price
InpHull3MethodMODE_SMMAHull #3 MA method
InpHull3Timeframe7Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #3 source timeframe
InpHull3FlatSensitivity29.7Hull #3 flat sensitivity (points)
InpHull3FlatBars10Hull #3 flat bars
InpHull3UseAdxFilterfalseHull #3 use ADX filter
InpHull3AdxTimeframe7Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #3 ADX timeframe
InpHull3AdxPeriod55Hull #3 ADX period
InpHull3AdxThreshold28.0Hull #3 ADX threshold
InpHull3MomentumLookback21Hull #3 momentum lookback
InpHull3MomentumPoints47.0Hull #3 momentum threshold (points)
InpHull3UseAtrFilterfalseHull #3 use ATR filter
InpHull3AtrTimeframe0Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #3 ATR timeframe
InpHull3AtrPeriod14Hull #3 ATR period
InpHull3AtrMultiplier1.5Hull #3 ATR multiplier (points)
InpHull3SlopePoints0.0Hull #3 slope threshold (points)
InpHull3AtrZScoreLookback50Hull #3 ATR Z-score lookback
InpHull3AtrZScoreMinimum1.0Hull #3 ATR Z-score minimum
InpHull3SlopePercentLookback50Hull #3 slope percentile lookback
InpHull3SlopePercentile70.0Hull #3 slope percentile
InpHull3UseCompositeScorefalseHull #3 use composite score
InpHull3CompositeWeightAdx1.0Hull #3 composite weight ADX
InpHull3CompositeWeightAtr1.0Hull #3 composite weight ATR
InpHull3CompositeWeightMomentum1.0Hull #3 composite weight momentum
InpHull3CompositeMinScore1.0Hull #3 composite minimum score
InpHull3UseVolumeFilterfalseHull #3 use volume filter
InpHull3UseRealVolumefalseHull #3 use real volume
InpHull3VolumeLookback50Hull #3 volume lookback
InpHull3VolumePercentile70.0Hull #3 volume percentile
InpHull3CompositeWeightVolume0.0Hull #3 composite weight volume
InpHull4EnabledfalseEnable Hull #4
InpHull4Period536Hull #4 period
InpHull4Divisor2.0Hull #4 divisor (speed)
InpHull4Price1Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Hull #4 price
InpHull4MethodMODE_LWMAHull #4 MA method
InpHull4Timeframe0Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #4 source timeframe
InpHull4FlatSensitivity3.0Hull #4 flat sensitivity (points)
InpHull4FlatBars3Hull #4 flat bars
InpHull4UseAdxFilterfalseHull #4 use ADX filter
InpHull4AdxTimeframe0Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #4 ADX timeframe
InpHull4AdxPeriod14Hull #4 ADX period
InpHull4AdxThreshold20.0Hull #4 ADX threshold
InpHull4MomentumLookback5Hull #4 momentum lookback
InpHull4MomentumPoints5.0Hull #4 momentum threshold (points)
InpHull4UseAtrFilterfalseHull #4 use ATR filter
InpHull4AtrTimeframe0Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Hull #4 ATR timeframe
InpHull4AtrPeriod14Hull #4 ATR period
InpHull4AtrMultiplier1.5Hull #4 ATR multiplier (points)
InpHull4SlopePoints0.0Hull #4 slope threshold (points)
InpHull4AtrZScoreLookback50Hull #4 ATR Z-score lookback
InpHull4AtrZScoreMinimum1.0Hull #4 ATR Z-score minimum
InpHull4SlopePercentLookback50Hull #4 slope percentile lookback
InpHull4SlopePercentile70.0Hull #4 slope percentile
InpHull4UseCompositeScorefalseHull #4 use composite score
InpHull4CompositeWeightAdx1.0Hull #4 composite weight ADX
InpHull4CompositeWeightAtr1.0Hull #4 composite weight ATR
InpHull4CompositeWeightMomentum1.0Hull #4 composite weight momentum
InpHull4CompositeMinScore1.0Hull #4 composite minimum score
InpHull4UseVolumeFilterfalseHull #4 use volume filter
InpHull4UseRealVolumefalseHull #4 use real volume
InpHull4VolumeLookback50Hull #4 volume lookback
InpHull4VolumePercentile70.0Hull #4 volume percentile
InpHull4CompositeWeightVolume0.0Hull #4 composite weight volume
Source Code (.mq5)Open Source
Pipsgrowth_com_EX16106.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16106 HullEA — four Hull indicator trend EA with ATR risk management, full 12-layer stack."

#include <Trade/Trade.mqh>

enum EHullSignal
{
   HULL_SIGNAL_NONE = 0,
   HULL_SIGNAL_BUY  = 1,
   HULL_SIGNAL_SELL = -1
};
//--- general trading inputs
input bool              InpAllowBuy              = true;          // Allow buy trades
input bool              InpAllowSell             = true;          // Allow sell trades
input int InpHullTimeframe = 0; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)// Indicator timeframe
input bool              InpUseNewBarSignals      = true;          // Evaluate signals on new bar only
input double            InpTrailingStepPoints    = 210.0;         // Trailing step (points)
input double            InpTrailingStartPoints   = 150.0;         // Trailing start (points)
input double            InpStopLossPoints        = 300.0;         // Static stop loss (points)
input double            InpTakeProfitPoints      = 300.0;         // Static take profit (points)
input double            InpMaxSpreadPoints       = 25.0;          // Maximum spread allowed (points)
input double            InpLots                  = 0.01;          // Fixed lot size
input bool              InpUseRiskPercentage     = false;         // Use risk percentage for lot sizing
input double            InpRiskPercentage        = 1.0;           // Risk percentage of balance
input bool              InpEnableDebugLogging    = false;         // Enable debug logging
input bool              InpRequireHullAlignment  = false;         // Require hull values to be aligned
input uint              InpMagicNumber           = 22216106;      // Magic number
input string            InpTradeComment          = "Psgrowth.com Expert_16106"; // Trade comment

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;
   }

Full source code available on download

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

Tags:ex16106trendpipsgrowthfreemt5xauusd

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_EX16106.mq5
File Size67.7 KB
Versionv2.00
PlatformMetaTrader 5
File Type.mq5 Source
StrategyTrend Following
Risk LevelMedium Risk
Timeframes
M5H1
Currency Pairs
XAUUSD
Min. Deposit$100