Pipsgrowth EX18080 TrendFollow
MT5 Expert Advisor (Open Source) · XAGUSD, XAUUSD, EURUSD, USDJPY, GBPUSD · M5, H1
Pipsgrowth.com EX18080 MTF_TrueHull_EA — Multi-TF Hull MA trend-lock with dual entry modes, full 12-layer stack.
Overview
The MTF True Hull EA inside Pipsgrowth EX18080 TrendFollow locks entries to a three-timeframe trend agreement using inline Hull moving averages computed on M1, M5, and M15. The Hull values are derived in UpdateHullState() by subtracting a full-period WMA from double a half-period WMA, then running a final weighted average of length sqrt(n) over the difference — a textbook Hull reconstruction that needs no iCustom call. The M1 Hull uses period 14, the M5 uses period 21, the M15 uses 34, a slow stack of periods that mirrors a Fibonacci-like sequence traders frequently tune trend-following systems around.
A new bar on the execution timeframe (M1) triggers OnTick to call UpdateHullState for each timeframe, then GetSignal() to choose between the two entry modes set by InpStrategyMode. In the default Color-Change mode the EA requires all three Hulls to be aligned in the same direction AND the M1 Hull to have just flipped direction on the most recent bar — a one-bar transition that catches the leading edge of a multi-timeframe trend after confirmation has already built up. In Pullback mode the EA waits for the M5 and M15 Hulls to be aligned, then triggers on the M1 Hull flipping to match the higher-timeframe direction, but only if the current bid is within InpPullbackATRMult × ATR(14) of the M5 Hull line, which produces a re-entry at the trend midline rather than at a fresh extreme.
Heiken Ashi M1 confirmation runs through UpdateHeikenAshi() and CheckHAConfirmation() — the EA calculates the smoothed M1 candle inline ((o+c)/2 for HA open, (o+h+l+c)/4 for HA close) and only allows signals whose direction matches the HA direction. With InpUseHAConfirm=true (default), this adds a momentum-quality gate on top of the structural trend lock. The M15 trend must also have at least InpMinTrendBars=3 bars in its current direction, preventing entries during the first two bars of a freshly flipped slow Hull.
Seven market filters run inside CheckMarketFilters() and the panel shows a live check/cross status for each. The ADX filter (period 14, threshold 20) blocks entries when the average directional index drops below 20 — meaning range-bound conditions. The Hull Separation filter requires the M5 and M15 Hulls to be at least 0.3 ATR apart (InpHullSepATR), ensuring the trend lock is real and not a near-tie crossover. The optional ATR Volatility filter (off by default) requires the current ATR(14) to be at least 80% of its 50-bar average; the optional ADX Rising filter requires the ADX to be increasing bar-over-bar, an anti-exhaustion guard. The Max Trend Bars filter (off by default) caps late entries in mature M15 trends. The Max Price Distance filter rejects entries when the bid is more than 2 ATRs from the M5 Hull. The Candle Range filter inspects the average high-low range of the last 5 bars and blocks if the range exceeds 3 ATRs (news spike) or falls below 0.15 ATRs (chop).
The risk layer in CalculateLotSize() defaults to 1% of balance per trade with InpRiskPercent=1.0 in LOT_MODE_RISK, or a fixed 0.01 lots in LOT_MODE_FIXED. The maximum per-trade lot is InpMaxLotPerTrade=1.0 — a gap protection that prevents a single signal from oversizing on low-margin accounts. NormalizeLot floors the result to the symbol's SYMBOL_VOLUME_STEP and clamps to InpMaxLotSize=5.0.
Stop loss sits at a fixed InpStopLoss=500 points; take profit sits at InpTakeProfit=1500 points, a 1:3 reward-to-risk ratio with no ATR or distance scaling per trade. The static pip values stay constant across symbols and timeframes, so changing pair means recomputing the dollar value of those 500/1500 point stops relative to the new contract size and tick value.
Position management in ManageOpenPositions() runs on every tick and applies a strict monotonic ratchet in three stages. Stage 1 moves the stop to breakeven plus 30 points (InpBEOffset) once the position has 200 points of profit (InpBEStart). Stage 2 begins trailing at 300 points of profit with a 150-point trail distance (InpTrailDistance). Stage 3 — the Tighten stage — engages at 600 points of profit with an 80-point distance, pulling the stop tight behind the candle as the move matures. Each stage is one-way only; the EA never loosens a stop once ratcheted.
Two discretionary exits live alongside the SL/TP machinery. CheckOppositeAlignment() closes any open position when all three Hulls flip in the opposite direction, marking the chart with the MTF exit label. CheckSwingExit() watches the previous InpSwingBars=5 bars; if the bid breaks the 5-bar low while a buy is open (or the ask breaks the 5-bar high while a sell is open), the position closes with a SWING label, unless the ADX is above InpSwingIgnoreADX=30 (strong trend override).
Drawdown protection runs through CheckDrawdownLimits() and tracks two values: daily loss as a percentage of g_dailyStartBalance (set by CheckNewDay() at the first tick of each server day), and equity loss as a percentage of g_peakEquity (ratcheted up on every tick where equity exceeds the prior peak). The defaults are 3% daily / 10% equity-from-peak; a breach sets g_ddLimitHit=true, fires an Alert, and — if InpCloseOnDDLimit=true — calls CloseAllPositions().
The chart gets three colored Hull lines drawn by DrawHullLine() (M1 dodger blue, M5 orange, M15 magenta), the standard Heiken Ashi indicator attached via ChartIndicatorAdd(), and trade-event arrows + circles + text labels via DrawEntryArrow, DrawExitCircle, and DrawExitText. The info panel (CreateInfoPanel) is a 200×110 dark slate rectangle in the top-left corner with an MTF Hull Trend-Lock title and four live lines: Trend, MTF status, position counts, and DD status.
Order routing uses SetProperFillingMode() to pick FOK > IOC > RETURN based on the broker's SYMBOL_FILLING_MODE flags, with 30 points of slippage (InpSlippage) and 3 retry attempts (InpMaxRetries) on requotes, price-changed, price-off, and timeout retcodes. A spread filter caps entries at 300 points (InpMaxSpread, set to 0 to disable).
Backtest expectations: at the default 1% risk and 1:3 R:R with three-stage ratchet management, this EA produces wider swings in equity than the lower-period Hull peers in the same family because the 34-period M15 Hull resists whipsaw but enters later. Expect higher win rates on M5 and H1, longer flat patches in between, and a noticeably better outcome when the ADX filter is left enabled at the default threshold of 20.
Strategy Deep Dive
Each new M1 bar, OnTick calls UpdateHullState() three times to refresh inline Hull values for M1 (14), M5 (21), and M15 (34), each computed as 2*WMA(n/2) − WMA(n) then smoothed by WMA(sqrt(n)). GetSignal() then routes to GetSignalColorChange() (default — all 3 TFs aligned AND M1 just flipped) or GetSignalPullback() (M5+M15 aligned, M1 turns to match, bid within 1× ATR(14) of M5 Hull). CheckHAConfirmation() enforces a Heiken Ashi M1 direction match. CheckMarketFilters() runs 7 gates: ADX ≥ 20, M5–M15 Hull separation ≥ 0.3 ATR, optional ATR volatility ≥ 0.8× 50-bar average, optional ADX-rising, optional max M15 trend bars, max 2 ATR from M5 Hull, and candle-range filter (0.15–3.0 ATR over 5 bars). Tick-based ManageOpenPositions() applies the 3-stage monotonic SL ratchet (BE at +200+30, trail at +300@150, tighten at +600@80). CheckOppositeAlignment() closes on full Hull flip; CheckSwingExit() closes on 5-bar swing break unless ADX > 30. CheckDrawdownLimits() trips at 3% daily or 10% equity-from-peak and closes everything via g_ddLimitHit. Order routing uses FOK > IOC > RETURN filling, 30-point slippage, 3 retry attempts, and a 300-point spread cap.
Triple-timeframe Hull MA trend lock with inline Hull (M1 period 14, M5 period 21, M15 period 34) computed as 2*WMA(n/2) − WMA(n) smoothed by WMA(sqrt(n)). In the default Color-Change mode the EA fires a long when all three Hulls align bullish AND the M1 Hull flips bullish on the most recent bar; the mirror produces a short. In Pullback mode the M5+M15 Hulls must align, the M1 Hull must flip to match, and the bid must be within 1× ATR(14) of the M5 Hull. Heiken Ashi M1 confirmation (InpUseHAConfirm=true) and a minimum of 3 M15 trend bars (InpMinTrendBars=3) are required.
Stop loss and take profit hit at 500/1500 fixed points; full opposite-alignment close triggered by CheckOppositeAlignment() when all three Hulls flip to the opposite direction; 5-bar swing low/high break exit from CheckSwingExit() (skipped if ADX > 30 via InpSwingIgnoreADX); optional Friday close at 20:00 server when InpUseTimeFilter is on; drawdown-limit forced close when CheckDrawdownLimits() trips the 3% daily or 10% equity-from-peak breach.
Static 500-point stop loss set at entry (InpStopLoss=500), then ratcheted monotonically: at +200 points of profit (InpBEStart) the stop moves to entry+30 points (InpBEOffset); at +300 points (InpTrailStart) it trails at 150 points (InpTrailDistance); at +600 points (InpTightenStart) it tightens to 80 points (InpTightenDist). The ratchet never loosens.
Static 1500-point take profit set at entry (InpTakeProfit=1500) — a 1:3 reward-to-risk ratio against the 500-point stop. Setting InpTakeProfit=0 disables the take profit entirely.
Best for $100+ micro accounts on XAUUSD, XAGUSD, EURUSD, USDJPY, and GBPUSD at M5 and H1. The 1% default risk and 1:3 R:R profile suit swing traders running H1 cycles who want a slow M15 Hull (34) to filter M1 noise, and M5 trend followers who prefer fewer but higher-conviction entries. Requires a low-spread broker — the 300-point spread cap is generous, but consistent execution below 200 points is recommended for the 500/1500 static stops. Heiken Ashi rendering and the optional indicator pane work best on FOK or IOC filling-mode brokers.
Strategy Logic
Pipsgrowth EX18080 TrendFollow — Strategy Logic Analysis (from .mq5 source)
Family: TrendFollow
Magic: 22218080
Version: 2.00
BRIEF:
Multi-Timeframe True Hull MA Trend-Lock EA using M1, M5, M15 Hull Moving Averages for trend confluence. Entry only when ALL timeframes align. Two entry modes: Hull Color Change or Pullback. 3-stage profit protection: Breakeven, Trailing, and Tighten. Includes ADX filter, spread filter, and DD protection. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
INDICATOR STACK:
aHandle
KEY FUNCTIONS:
InitHullState()SetProperFillingMode()OnTradeTransaction()UpdateHullState()DrawHullLine()UpdateMTFStatus()IsMTFAligned()UpdateHeikenAshi()CheckHAConfirmation()GetSignal()GetSignalColorChange()GetSignalPullback()- ...and 22 more
INTERNAL CONSTANTS (0 total):
INPUT PARAMETERS (62 total across 9 groups):
- [=== Trade Execution ===]
InpMagicNumber=22218080// Magic Number - [=== Trade Execution ===]
InpSlippage= 30 // MaxSlippage(points) - [=== Trade Execution ===]
InpMaxSpread= 300 // MaxSpread(points, 0=disable) - [=== Trade Execution ===]
InpMaxRetries= 3 // Order Retry Attempts - [=== Trade Execution ===]
InpTradeComment= "Psgrowth.com Expert_18080" // TradeComment - [=== Money Management ===]
InpLotMode=LOT_MODE_RISK// Lot Sizing Mode - [=== Money Management ===]
InpFixedLotSize=0.01// Fixed Lot Size - [=== Money Management ===]
InpRiskPercent=1.0// RiskPercent(%) - [=== Money Management ===]
InpMaxLotSize=5.0// Maximum Lot Size - [=== Money Management ===]
InpMaxLotPerTrade=1.0// Gap Protection: Max Lot Per Trade - [=== SL/TP Settings ===]
InpStopLoss= 500 // StopLoss(points) - [=== SL/TP Settings ===]
InpTakeProfit= 1500 // TakeProfit(points, 0=disable) - [=== Strategy:
MTFHull ===]InpHullPeriodM1= 14 // HullM1Period(fast) - [=== Strategy:
MTFHull ===]InpHullPeriodM5= 21 // HullM5Period(medium) - [=== Strategy:
MTFHull ===]InpHullPeriodM15= 34 // HullM15Period(slow) - [=== Strategy:
MTFHull ===]InpStrategyMode=STRATEGY_COLOR_CHANGE// Entry Strategy Mode - [=== Strategy:
MTFHull ===]InpMinTrendBars= 3 // Min Trend Bars onM15(filter) - [=== Strategy:
MTFHull ===]InpPullbackATRMult= 1 // Pullback: MaxDistance(ATRmult) - [=== Strategy:
MTFHull ===]InpUseHAConfirm=true// Use Heiken AshiM1Confirmation - [=== Market Filters ===]
InpUseADXFilter=true// EnableADXTrend Filter - [=== Market Filters ===]
InpADXPeriod= 14 //ADXPeriod - [=== Market Filters ===]
InpADXThreshold= 20 //ADXMinThreshold(15-30) - [=== Market Filters ===]
InpUseHullSepFilter=true// Enable Hull Separation Filter - [=== Market Filters ===]
InpHullSepATR=0.3// HullSeparation(ATRmult) - [=== Market Filters ===]
InpUseATRFilter=false// EnableATRVolatility Filter - [=== Market Filters ===]
InpMinATRMult=0.8// MinATRvs 50-bar Average - [=== Market Filters ===]
InpUseADXRising=false// RequireADXRising(anti-exhaustion) - [=== Market Filters ===]
InpMaxTrendBarsEntry= 0 // MaxM15Trend Bars forEntry(0=off) - [=== Market Filters ===]
InpMaxPriceDistATR=2.0// Max Price Distance fromHull(ATR, 0=off) - [=== Market Filters ===]
InpUseRangeFilter=true// Enable Candle Range Filter - [=== Market Filters ===]
InpRangeBars= 5 // Range Filter: Bars to Check - [=== Market Filters ===]
InpRangeMaxATR=3.0// Max Avg CandleRange(ATRmult, news filter) - [=== Market Filters ===]
InpRangeMinATR=0.15// Min Avg CandleRange(ATRmult, chop filter) - [=== Time Filter ===]
InpUseTimeFilter=false// Enable Time Filter - [=== Time Filter ===]
InpStartHour= 8 // StartHour(Server Time) - [=== Time Filter ===]
InpEndHour= 20 // EndHour(Server Time) - [=== Time Filter ===]
InpTradeFriday=true// Trade on Friday - [=== Time Filter ===]
InpFridayCloseHour= 20 // Friday: Close All After Hour - [=== Trade Management ===]
InpUseBreakeven=true// Enable Breakeven - [=== Trade Management ===]
InpBEStart= 200 // BEStart(points profit) - [=== Trade Management ===]
InpBEOffset= 30 // BEOffset(points above entry) - [=== Trade Management ===]
InpUseTrailing=true// Enable Trailing Stop - [=== Trade Management ===]
InpTrailStart= 300 // TrailStart(points profit) - [=== Trade Management ===]
InpTrailDistance= 150 // TrailDistance(points) - [=== Trade Management ===]
InpUseTighten=true// Enable Tighten SL - [=== Trade Management ===]
InpTightenStart= 600 // TightenStart(points profit) - [=== Trade Management ===]
InpTightenDist= 80 // TightenDistance(points) - [=== Trade Management ===]
InpCloseOnOpposite=true// Close on Full Opposite Alignment - [=== Trade Management ===]
InpUseSwingExit=true// Enable Swing Low/High Exit - [=== Trade Management ===]
InpSwingBars= 5 // Swing Exit: N Bars to Check - [=== Trade Management ===]
InpSwingIgnoreADX= 30 // Swing Exit: Ignore ifADX> (0=never ignore) - [=== Drawdown Protection ===]
InpUseDDProtection=true// Enable Drawdown Protection - [=== Drawdown Protection ===]
InpMaxDailyLoss=3.0// Max Daily Loss % (0=disabled) - [=== Drawdown Protection ===]
InpMaxEquityLoss=10.0// Max Equity Loss % fromPeak(0=disabled) - [=== Drawdown Protection ===]
InpCloseOnDDLimit=true// Close All When DD Limit Hit - [=== Display ===]
InpShowPanel=true// Show Info Panel - [=== Display ===]
InpPanelX= 10 // Panel X Position - [=== Display ===]
InpPanelY= 30 // Panel Y Position - [=== Display ===]
InpDrawHullLines=true// Draw Hull MA Lines on Chart - [=== Display ===]
InpDrawHACandles=true// Draw Heiken Ashi Candles on Chart - [=== Display ===]
InpHABarsToShow= 100 // Heiken Ashi Bars to Display - [=== Display ===]
InpDrawSignalLines=true// Draw Vertical Lines on Trade Events
// Pipsgrowth EX18080 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// Multi-Timeframe True Hull MA Trend-Lock EA using M1, M5, M15 Hull Moving Averages for trend confluence. Entry only when ALL timeframes align. Two entry modes: Hull Color Change or Pullback. 3-stage profit protection: Breakeven, Trailing, and Tighten. Includes ADX filter, spread filter, and DD protection. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
ON_INIT:
Create indicator handles: aHandle
Initialize state variables
Detect broker GMT offset
ON_TICK:
1. Refresh indicator buffers (closed-bar shift=1)
2. Manage existing positions:
- Break-even check
- ATR trailing stop
- Profit lock ratchet
- Time-based exit
- Opposite-signal exit
3. If new bar:
a. ClassifyRegime() — ADX/ATR/BB regime detection
b. NoTradeGate() checks:
- Market open + session filter
- Spread limit
- Cooldown after loss
- Consecutive loss limit
- Kill switch
- Max drawdown
- Max concurrent positions
- Daily/weekly loss limits
c. GenerateSignal() — strategy-specific entry logic
d. CheckConfirm() — HTF alignment + R:R + ADX minimum
e. Calculate position size from risk %
f. Execute with retry logic
g. Mark bar to prevent duplicates
ON_TESTER:
Custom fitness = weighted(RecoveryFactor, ROI, ProfitFactor, TradeCount, Sharpe, Drawdown)Optimization Profile
How to Install This EA on MT5
- 1Download the .mq5 file using the button above
- 2Open MetaTrader 5 on your computer
- 3Click File → Open Data Folder in the top menu
- 4Navigate to MQL5 → Experts and paste the .mq5 file there
- 5In MT5, right-click Expert Advisors in the Navigator panel → Refresh
- 6Drag the EA onto an H4 or Daily chart for best results
- 7Configure EMA periods, ADX threshold, and lot size in the dialog
- 8Enable Allow Algo Trading and click OK
EA Parameters
| Parameter | Default | Description |
|---|---|---|
| InpMagicNumber | 22218080 | Magic Number |
| InpSlippage | 30 | Max Slippage (points) |
| InpMaxSpread | 300 | Max Spread (points, 0=disable) |
| InpMaxRetries | 3 | Order Retry Attempts |
| InpTradeComment | "Psgrowth.com Expert_18080" | Trade Comment |
| InpLotMode | LOT_MODE_RISK | Lot Sizing Mode |
| InpFixedLotSize | 0.01 | Fixed Lot Size |
| InpRiskPercent | 1.0 | Risk Percent (%) |
| InpMaxLotSize | 5.0 | Maximum Lot Size |
| InpMaxLotPerTrade | 1.0 | Gap Protection: Max Lot Per Trade |
| InpStopLoss | 500 | Stop Loss (points) |
| InpTakeProfit | 1500 | Take Profit (points, 0=disable) |
| InpHullPeriodM1 | 14 | Hull M1 Period (fast) |
| InpHullPeriodM5 | 21 | Hull M5 Period (medium) |
| InpHullPeriodM15 | 34 | Hull M15 Period (slow) |
| InpStrategyMode | STRATEGY_COLOR_CHANGE | Entry Strategy Mode |
| InpMinTrendBars | 3 | Min Trend Bars on M15 (filter) |
| InpPullbackATRMult | 1 | Pullback: Max Distance (ATR mult) |
| InpUseHAConfirm | true | Use Heiken Ashi M1 Confirmation |
| InpUseADXFilter | true | Enable ADX Trend Filter |
| InpADXPeriod | 14 | ADX Period |
| InpADXThreshold | 20 | ADX Min Threshold (15-30) |
| InpUseHullSepFilter | true | Enable Hull Separation Filter |
| InpHullSepATR | 0.3 | Hull Separation (ATR mult) |
| InpUseATRFilter | false | Enable ATR Volatility Filter |
| InpMinATRMult | 0.8 | Min ATR vs 50-bar Average |
| InpUseADXRising | false | Require ADX Rising (anti-exhaustion) |
| InpMaxTrendBarsEntry | 0 | Max M15 Trend Bars for Entry (0=off) |
| InpMaxPriceDistATR | 2.0 | Max Price Distance from Hull (ATR, 0=off) |
| InpUseRangeFilter | true | Enable Candle Range Filter |
| InpRangeBars | 5 | Range Filter: Bars to Check |
| InpRangeMaxATR | 3.0 | Max Avg Candle Range (ATR mult, news filter) |
| InpRangeMinATR | 0.15 | Min Avg Candle Range (ATR mult, chop filter) |
| InpUseTimeFilter | false | Enable Time Filter |
| InpStartHour | 8 | Start Hour (Server Time) |
| InpEndHour | 20 | End Hour (Server Time) |
| InpTradeFriday | true | Trade on Friday |
| InpFridayCloseHour | 20 | Friday: Close All After Hour |
| InpUseBreakeven | true | Enable Breakeven |
| InpBEStart | 200 | BE Start (points profit) |
| InpBEOffset | 30 | BE Offset (points above entry) |
| InpUseTrailing | true | Enable Trailing Stop |
| InpTrailStart | 300 | Trail Start (points profit) |
| InpTrailDistance | 150 | Trail Distance (points) |
| InpUseTighten | true | Enable Tighten SL |
| InpTightenStart | 600 | Tighten Start (points profit) |
| InpTightenDist | 80 | Tighten Distance (points) |
| InpCloseOnOpposite | true | Close on Full Opposite Alignment |
| InpUseSwingExit | true | Enable Swing Low/High Exit |
| InpSwingBars | 5 | Swing Exit: N Bars to Check |
| InpSwingIgnoreADX | 30 | Swing Exit: Ignore if ADX > (0=never ignore) |
| InpUseDDProtection | true | Enable Drawdown Protection |
| InpMaxDailyLoss | 3.0 | Max Daily Loss % (0=disabled) |
| InpMaxEquityLoss | 10.0 | Max Equity Loss % from Peak (0=disabled) |
| InpCloseOnDDLimit | true | Close All When DD Limit Hit |
| InpShowPanel | true | Show Info Panel |
| InpPanelX | 10 | Panel X Position |
| InpPanelY | 30 | Panel Y Position |
| InpDrawHullLines | true | Draw Hull MA Lines on Chart |
| InpDrawHACandles | true | Draw Heiken Ashi Candles on Chart |
| InpHABarsToShow | 100 | Heiken Ashi Bars to Display |
| InpDrawSignalLines | true | Draw Vertical Lines on Trade Events |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX18080 MTF_TrueHull_EA — Multi-TF Hull MA trend-lock with dual entry modes, full 12-layer stack."
#include <Trade\Trade.mqh>
//+------------------------------------------------------------------+
//| ENUMS |
//+------------------------------------------------------------------+
enum ENUM_LOT_MODE
{
LOT_MODE_FIXED = 0, // Fixed Lot Size
LOT_MODE_RISK = 1 // Risk % of Balance
};
enum ENUM_STRATEGY_MODE
{
STRATEGY_COLOR_CHANGE = 0, // A: All TFs Aligned + M1 Hull Flip
STRATEGY_PULLBACK = 1 // B: Pullback Entry when Higher TFs Aligned
};
//+------------------------------------------------------------------+
//| INPUT GROUP: Trade Execution |
//+------------------------------------------------------------------+
input group "=== Trade Execution ==="
input int InpMagicNumber = 22218080; // Magic Number
input int InpSlippage = 30; // Max Slippage (points)
input int InpMaxSpread = 300; // Max Spread (points, 0=disable)
input int InpMaxRetries = 3; // Order Retry Attempts
input string InpTradeComment = "Psgrowth.com Expert_18080"; // Trade Comment
//+------------------------------------------------------------------+
//| INPUT GROUP: Money Management |
//+------------------------------------------------------------------+
input group "=== Money Management ==="
input ENUM_LOT_MODE InpLotMode = LOT_MODE_RISK; // Lot Sizing Mode
input double InpFixedLotSize = 0.01; // Fixed Lot Size
input double InpRiskPercent = 1.0; // Risk Percent (%)
input double InpMaxLotSize = 5.0; // Maximum Lot Size
input double InpMaxLotPerTrade = 1.0; // Gap Protection: Max Lot Per Trade
//+------------------------------------------------------------------+
//| INPUT GROUP: Stop Loss & Take Profit |
//+------------------------------------------------------------------+
input group "=== SL/TP Settings ==="
input int InpStopLoss = 500; // Stop Loss (points)
input int InpTakeProfit = 1500; // Take Profit (points, 0=disable)
//+------------------------------------------------------------------+
//| INPUT GROUP: MTF Hull Strategy |
//+------------------------------------------------------------------+
input group "=== Strategy: MTF Hull ==="
input int InpHullPeriodM1 = 14; // Hull M1 Period (fast)
input int InpHullPeriodM5 = 21; // Hull M5 Period (medium)
input int InpHullPeriodM15 = 34; // Hull M15 Period (slow)
input ENUM_STRATEGY_MODE InpStrategyMode = STRATEGY_COLOR_CHANGE; // Entry Strategy Mode
input int InpMinTrendBars = 3; // Min Trend Bars on M15 (filter)
input int InpPullbackATRMult = 1; // Pullback: Max Distance (ATR mult)
input bool InpUseHAConfirm = true; // Use Heiken Ashi M1 Confirmation
Full source code available on download
Educational purposes only. Do NOT use with real money. Test on demo accounts only.
Clear Warning: Educational Purposes Only
Clear Warning: This Expert Advisor is for educational and testing purposes only. Do NOT use it with real money. Test only on demo accounts. Trading with real money involves substantial risk of capital loss. This does not constitute investment advice.
Recommended Brokers for This EA
These EAs run on MT5 — use a regulated broker with fast execution and tight spreads
Markets.com
Exness
IC Markets
Similar Expert Advisors
View All Expert AdvisorsMore Trend Following strategy EAs from our library
Pipsgrowth EX16080 Trend
Pipsgrowth.com EX16080 EURUSDTrendFollower — triple-EMA H4 trend follower, full 12-layer stack.
Pipsgrowth EX16081 Trend
Pipsgrowth.com EX16081 GoldTrendEA — XAUUSD H4 EMA cross with Fib targets, full 12-layer stack.
Pipsgrowth EX16033 Trend
Pipsgrowth.com EX16033 EA_Price_Action — price-action grid scalper, full 12-layer stack.
Community
Educational purposes only. Do NOT use with real money. Test on demo accounts only.