Pipsgrowth EX16085 Trend
MT5 Expert Advisor (Open Source) · XAUUSD · M5, H1
Pipsgrowth.com EX16085 mu — Multi-indicator Hull MA trend EA, full 12-layer stack.
Overview
Pipsgrowth EX16085 is a build-your-own voting framework for MT5. The .mq5 ships with every entry and exit indicator turned off, so what lands on your chart is a registry of fourteen pluggable modules and a vote-tallying engine that converts their per-bar directions into a single long/short call. The fourteen entry modules are ATR Adaptive JMA, Zero-Lag T3, Zero-Lag TEMA, Jurik Moving Average, JMA Standard Deviation, JMA TRIX Log, JMA Z-Score, JP Oscillator, i-Movement, JP Trend, Kalman Filter, Heiken Ashi on AMA, Heiken Ashi Zone Trade, and a candlestick pattern recogniser. Each gets its own enable toggle and its own parameter block — JMA entry length and phase, Kalman period and applied price, the AMA fast/slow EMA pair for Heiken Ashi, the K1/K2 coefficients for the JMA StdDev bands — and the EA allocates an indicator handle per module inside RegisterIndicator(). Once you tick the boxes, BuildSignalSnapshot() walks the g_indicatorRegistry, calls each enabled adapter's EvaluateDirection() at the resolved signal bar shift, and totals the bullish, bearish, and neutral votes into an SDirectionCounts struct. The 14 exit modules mirror this layout one-for-one, so you can run a different indicator pack on the close logic than the one driving entries.
The vote tally turns into a trade through one of two gates selected by InpEntryVotingMode. ENTRY_VOTING_MIN_COUNT (the default) requires InpMinIndicatorsAgreeForInitialTrades=3 modules to agree on direction before the first position, and InpMinIndicatorsAgreeForAdditonalTrades=2 before any subsequent scaling-in. InpEntryMinOppositeIndicatorsReject=1 acts as a tripwire: a single opposite-direction indicator vetoes the entry outright, which is how the EA prevents a hairline 3-against-1 vote from sneaking through. ENTRY_VOTING_PERCENTAGE converts the same logic into ratios — 65% agreement of the considered set with the opposite side capped under 20%. Whichever mode you run, the signal must persist for InpEntryMinPersistenceBars=2 consecutive closed bars before TryOpenPositions() will route the order, and InpEntryUseClosedBarSignals=true forces ResolveEntrySignalShift() to read bar 1 instead of bar 0 so the vote is taken on a fully closed candle. A separate confirmation stack — Adaptive RSI, Adaptive Volume, Adaptive ATR, and CCI — runs alongside the entry vote. Each confirmation adapter has its own time frame, period, and threshold inputs (Adaptive RSI uses a 14-period base with 5/5 offsets modulated by a 14/50 ATR pair and a 3.0 ATR influence; CCI uses 18-period with 140/-140 extremes, slope lookback of 3 bars, and a 5-bar divergence veto). InpMinConfirmationsAgreeEntry=1 of the enabled confirmations must agree with the entry direction, so a bare-indicator vote can be promoted to a trade even with no confirmation, but a single-confirmation requirement keeps the door open for an additional sanity check.
Order routing follows a strict one-direction-at-a-time policy. CountSymbolPositions() checks the existing ticket count; if it equals InpMaxOpenPositions=2, TryOpenPositions() returns immediately. The hasBuy / hasSell flags then block new longs while a short is open and vice versa, so the registry never pyramids against itself. Lot sizing runs through CalculateLotSize(), which uses InpMoneyManagementMode (FIXED_LOTS=0 or PERCENT_RISK=1, the default) to read InpRiskPerTradePercent=0.5% of the current balance. The resulting volume passes through RoundLotsToStep() to align with the broker's volume step, NormalizeLot() to clean the value, and EnsureMarginAffordable() to bail out if the account can't cover the minimum lot at the current margin level. IsMarginLevelAcceptable() enforces the 250% margin floor from InpMinMarginLevelPerc before any new order, and ProfitGateAllowsEntries() walks the open positions and refuses to add a new one until every existing ticket is sitting on at least InpProfitGatePoints=5 points of unrealised gain. SL and TP come from CalculateStopLossPrice() and CalculateTakeProfitPrice() against InpStopLossPoints=90 and InpTakeProfitPoints=150 raw points, applied to the ask for buys and the bid for sells so the risk is always measured from the spread-realised entry side. CTrade wraps every fill with the magic 22216085 and the comment Psgrowth.com Expert_16085 for downstream journal filtering, and the slippage tolerance is set to InpSlippagePoints=10.
Position management is split into three independent passes that all run on every tick from ManageOpenPositions(). ApplyTrailingStop() ratchets the stop to currentPrice minus InpTrailingStepPts=40 once price has moved InpTrailingTriggerPts=25 in profit, only ever pulling the stop tighter, never loosening it. ApplyBreakEven() moves the stop to entry plus InpBreakEvenOffset=3 once price has travelled InpBreakEvenTrigger=25, locking the position in scratch-or-better territory. ApplyProfitLock() is wired but disabled by default; when enabled, it would move the stop to currentPrice minus InpProfitLockStep=15 every InpProfitLockIncrement=40 points of additional progress, creating a stepped ratchet. All three modify calls funnel through TryModify_EX16085(), which retries up to three times on requote, timeout, or price-change errors with a 100ms pause between attempts, and they all use the same InpMinDistanceFromPrice-style guard against a stop that would land on the wrong side of the entry.
The exit side has its own indicator engine in HandleIndicatorClosings(). After BuildExitSnapshot() and BuildExitConfirmationSnapshot() collect the exit vote and the exit confirmation tally, the function walks the open positions and, when the opposite-direction vote clears InpMinIndicatorsAgreeCloseLoss=2 and InpCloseOnOppositeEvenIfInLose=true (the default), closes the position even if it is at a loss. InpCloseOnOpposite toggles the more conservative mode where the position is only closed if it is in profit by at least InpCloseProfitPoints=6 points. A separate HandleEndOfDayActions() pass fires at InpEndOfDayCloseHour=23:InpEndOfDayCloseMinute=45, force-closes every symbol position (skipping losers if InpEndOfDayProfitOnly is set), and sets g_blockNewTradesForDay so no new entries are routed for the rest of the session. ResetDailyStateIfNeeded() rolls a day-key on each new calendar day to clear that flag at the next session open.
The session filter is the most configurable part of the framework. IsTradingSessionOpen() ORs the result of four independent windows — Asian (InpAsianSessionEnabled=true, default 00:00–08:00), European (true, 07:00–16:00), US (true, 12:00–21:00), and a Custom window (false by default, 22:00–23:59 if you turn it on). GetAdjustedMinutesOfDay() applies InpSessionUtcOffsetHours (default 0) plus InpSessionAdditionalOffsetMinutes (default 0) to the GMT clock so the windows can be aligned to your broker's server time without recompiling, and IsWithinSession() handles the wrap-around case where a session crosses midnight by switching from a start<=end check to a start>=end check. The whole layer is bypassed when InpEnableSessionFilters=false, so you can run the EA 24/7 by leaving the toggle off.
Two final details are worth knowing. First, the three Try*_EX16085 helpers at the bottom of the source — TryClose_EX16085, TryClosePartial_EX16085, and TryModify_EX16085 — are defined for code completeness but only TryModify is wired into the live OnTick path; the close helpers are dead code from the prior utility-EA pattern that the template is derived from. Second, every indicator the registry references is held in a CIndicatorAdapter pointer array, so adding or removing a module does not require recompiling the engine — you just set InpEnableAtrJmaForEntry, InpEnableKalmanForEntry, and so on in the inputs panel, restart the EA, and the new vote composition takes effect on the next new bar. The recommended starting configuration on a 5-minute gold chart is to enable 3-4 fast-responding modules (Zero-Lag T3, Jurik Moving Average, JMA Z-Score, and Kalman Filter) with a 3-of-N MIN_COUNT gate, Adaptive RSI as the lone confirmation, the European+US session windows active, and percent-risk money management at 0.5% per entry — and to leave the 14 exit modules off at first so the SL/TP and trailing stop drive the close logic on their own.
Strategy Deep Dive
EX16085 runs as a registry-driven vote engine where the user enables any subset of fourteen entry modules and a parallel confirmation stack of four, then the EA tallies their per-bar directions into bullish and bearish vote counts on every new bar. Two voting modes — MIN_COUNT (default 3-of-N with a 1-opposite veto) and PERCENTAGE (65% agreement, 20% opposite veto) — collapse the count into a single directional call that must persist for two consecutive closed bars. TryOpenPositions() then enforces a 2-position cap, blocks entries in the direction opposite to any existing trade, requires a 250% margin level, and refuses to add unless the existing ticket is in profit. ManageOpenPositions() layers three independent stop-management passes (trailing, break-even, and the optional profit-lock ratchet) around every open position on every tick, while HandleIndicatorClosings closes on opposite vote once the confirmation stack also flips. Four configurable session windows (Asian, European, US, Custom) with a UTC offset gate the entire signal flow, and a 23:45 end-of-day pass force-closes whatever is left.
Each closed bar the EA iterates the entry indicator registry, asks every enabled module for a bullish/bearish/neutral direction, and converts the tally into a trade via ENTRY_VOTING_MIN_COUNT (default 3-of-N agreement with a 1-opposite veto) or ENTRY_VOTING_PERCENTAGE (65% agreement, 20% opposite veto). The resulting direction must persist for InpEntryMinPersistenceBars=2 consecutive bars and pass the parallel confirmation vote (InpMinConfirmationsAgreeEntry of Adaptive RSI/Volume/ATR/CCI agreeing). A new BUY or SELL is dispatched only when no opposite position is open on the symbol, the total position count is under InpMaxOpenPositions=2, the margin level exceeds 250%, and the ProfitGate confirms any existing ticket is at least 5 points in profit.
Exit logic runs on three tracks. The trade-management track applies ApplyTrailingStop (trigger 25 points, step 40), ApplyBreakEven (trigger 25 points, offset 3 points), and the optional ApplyProfitLock (increment 40, step 15). The indicator-driven HandleIndicatorClosings track closes on opposite vote when the opposite-direction indicator count clears InpMinIndicatorsAgreeCloseLoss=2 and the confirmation vote flips too — either unconditionally (InpCloseOnOppositeEvenIfInLose=true) or only when in profit by InpCloseProfitPoints=6. HandleEndOfDayActions then force-closes every position at 23:45 server time, with an option to skip losers.
Every entry is dispatched with a fixed stop loss of InpStopLossPoints=90 raw points (on XAUUSD with point=0.01 this is 900 ticks / $0.9 per lot of room), and the stop is then ratcheted by ApplyTrailingStop to current-price minus 40 points once the trade is 25 points in profit and by ApplyBreakEven to entry plus 3 points once the trade is 25 points in profit. The optional ApplyProfitLock ratchet (disabled by default) would step the stop to current-price minus 15 every 40 points of further progress, and HandleEndOfDayActions force-closes the remainder at 23:45.
Each entry places a fixed take profit of InpTakeProfitPoints=150 raw points, calculated by CalculateTakeProfitPrice() against the bid/ask at fill time and held in the position's TP field for the lifetime of the ticket. The indicator-driven exit can close the position earlier when the opposite vote clears InpMinIndicatorsAgreeCloseProfit and the trade is in profit by at least InpCloseProfitPoints=6, and the 23:45 end-of-day pass provides a hard daily cut that captures any open P&L before the broker rollover.
Best deployed on XAUUSD M5 or H1 with a low-spread ECN broker (raw spreads under 25 points on gold are recommended since the SL/TP/trailing/break-even thresholds are measured in raw points), and the suggested minimum balance of $100 reflects the 0.5% default per-trade risk plus the 2-position cap. The session defaults are tuned to the European and US cash hours (07:00–16:00 and 12:00–21:00 server), and every window is UTC-offset adjustable so the EA can be aligned to your broker's server time without code changes. The MEDIUM risk rating reflects the 0.5% risk per trade, the 2-position cap, the 250% margin guard, and the ProfitGate — together they prevent the EA from doubling into a losing position and keep a single bad session from cascading. Because the EA ships with all 14 entry modules and all 14 exit modules disabled, it suits a trader who wants to test which indicator combination fits their symbol and timeframe before committing real capital.
Strategy Logic
Pipsgrowth EX16085 Trend — Strategy Logic Analysis (from .mq5 source)
Family: Trend
Magic: 22216085
Version: 2.00
BRIEF:
Multi-indicator trend EA using four Hull MA variants with JMA, T3, TEMA, Kalman filter, and pattern recognition entries. Features voting-based entry/exit, session filters, trailing, break-even, and profit lock management. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
INDICATOR STACK:
- Standard
MT5indicators
KEY FUNCTIONS:
ResetDailyStateIfNeeded()UpdateBarState()BuildEntrySnapshot()BuildExitSnapshot()BuildEntryConfirmationSnapshot()BuildExitConfirmationSnapshot()BuildConfirmationSnapshot()IsTradingSessionOpen()IsWithinSession()GetAdjustedMinutesOfDay()HandleEndOfDayActions()ManageOpenPositions()- ...and 36 more
INTERNAL CONSTANTS (0 total):
INPUT PARAMETERS (249 total across 44 groups):
- [=== Trade Settings ===]
InpLots=0.10// Fixed lot size (0.01,0.01,50.0) - [=== Trade Settings ===]
InpSlippagePoints= 10 // Max slippage (points) (0,1,100) - [=== Trade Settings ===]
InpMagicNumber=22216085// Magic number (1,1,99999999) - [=== Trade Settings ===]
InpTradeComment= "Psgrowth.com Expert_16085" // Trade comment for new positions - [=== Money Management ===]
InpMoneyManagementMode=MM_MODE_PERCENT_RISK// Money management mode - [=== Money Management ===]
InpRiskPerTradePercent=0.5// Risk per trade (% of balance) (0.1,0.1,10.0) - [=== Money Management ===]
InpLotRoundingMode=LOT_ROUND_DOWN// Lot rounding mode - [=== Risk Management ===]
InpStopLossPoints=90.0// Initial stop loss (points) (10.0,1.0,5000.0) - [=== Risk Management ===]
InpTakeProfitPoints=150.0// Initial take profit (points) (10.0,1.0,10000.0) - [=== Risk Management ===]
InpEnableMarginGuard=true// Enforce minimum marginlevelbefore new trades - [=== Risk Management ===]
InpMinMarginLevelPerc=250.0// Minimum marginlevel(%) (100.0,1.0,1000.0) - [=== Trailing Management ===]
InpEnableTrailingStop=true// Master toggle for trailing stop management - [=== Trailing Management ===]
InpTrailingTriggerPts=25.0// Trailing stop trigger (points) (5.0,1.0,500.0) - [=== Trailing Management ===]
InpTrailingStepPts=40.0// Trailing stop step (points) (10.0,1.0,2000.0) - [=== Break-Even ===]
InpEnableBreakEven=true// Move SL to break-even - [=== Break-Even ===]
InpBreakEvenTrigger=25.0// Profit trigger (points) (5.0,1.0,500.0) - [=== Break-Even ===]
InpBreakEvenOffset=3.0// Offset from entry (points) (0.0,1.0,100.0) - [=== Lock Profit ===]
InpEnableProfitLock=false// Lock profits - [=== Lock Profit ===]
InpProfitLockIncrement=40.0// Lock every X points (10.0,1.0,500.0) - [=== Lock Profit ===]
InpProfitLockStep=15.0// Distance from current price (1.0,1.0,200.0) - [=== Additional Trade Controls ===]
InpEnableProfitGate=true// Require existing trades be in profit - [=== Additional Trade Controls ===]
InpProfitGatePoints=5.0// Minimum profit (points) per trade (1.0,1.0,500.0) - [=== Additional Trade Controls ===]
InpMaxOpenPositions= 2 // Maximum open positions (0=unlimited) (0,1,100) - [=== Trading Sessions Control ===]
InpEnableSessionFilters=true// Enable session-based trading - [=== Trading Sessions Control ===]
InpSessionUtcOffsetHours=0.0// Session timezone offset fromUTC(-14.0,0.25,14.0) - [=== Trading Sessions Control ===]
InpSessionAdditionalOffsetMinutes= 0 // Extra manual offset minutes forDST(-180,1,180) - [=== Trading Sessions Control ===]
InpAsianSessionEnabled=true// Enable trading during Asian session - [=== Trading Sessions Control ===]
InpAsianSessionStartHour= 0 // Asian session start hour (0,1,23) - [=== Trading Sessions Control ===]
InpAsianSessionStartMinute= 0 // Asian session start minute (0,1,59) - [=== Trading Sessions Control ===]
InpAsianSessionEndHour= 8 // Asian session end hour (0,1,23) - [=== Trading Sessions Control ===]
InpAsianSessionEndMinute= 0 // Asian session end minute (0,1,59) - [=== Trading Sessions Control ===]
InpEuropeanSessionEnabled=true// Enable trading during European session - [=== Trading Sessions Control ===]
InpEuropeanSessionStartHour= 7 // European session start hour (0,1,23) - [=== Trading Sessions Control ===]
InpEuropeanSessionStartMinute= 0 // European session start minute (0,1,59) - [=== Trading Sessions Control ===]
InpEuropeanSessionEndHour= 16 // European session end hour (0,1,23) - [=== Trading Sessions Control ===]
InpEuropeanSessionEndMinute= 0 // European session end minute (0,1,59) - [=== Trading Sessions Control ===]
InpUSSessionEnabled=true// Enable trading during US session - [=== Trading Sessions Control ===]
InpUSSessionStartHour= 12 // US session start hour (0,1,23) - [=== Trading Sessions Control ===]
InpUSSessionStartMinute= 0 // US session start minute (0,1,59) - [=== Trading Sessions Control ===]
InpUSSessionEndHour= 21 // US session end hour (0,1,23) - [=== Trading Sessions Control ===]
InpUSSessionEndMinute= 0 // US session end minute (0,1,59) - [=== Trading Sessions Control ===]
InpCustomSessionEnabled=false// Enable trading during custom session - [=== Trading Sessions Control ===]
InpCustomSessionStartHour= 22 // Custom session start hour (0,1,23) - [=== Trading Sessions Control ===]
InpCustomSessionStartMinute= 0 // Custom session start minute (0,1,59) - [=== Trading Sessions Control ===]
InpCustomSessionEndHour= 23 // Custom session end hour (0,1,23) - [=== Trading Sessions Control ===]
InpCustomSessionEndMinute= 59 // Custom session end minute (0,1,59) - [=== Trading Sessions Control ===]
InpEnableEndOfDayClose=false// Close all trades at specific time - [=== Trading Sessions Control ===]
InpEndOfDayCloseHour= 23 // Close hour (0,1,23) - [=== Trading Sessions Control ===]
InpEndOfDayCloseMinute= 45 // Close minute (0,1,59) - [=== Trading Sessions Control ===]
InpEndOfDayProfitOnly=false// Only close profitable positions - [=== Trading Sessions Control ===]
InpEndOfDayBlockNewTrades=true// Block new trades after close time - [=== Signal Entry Settings ===]
InpSignalBarShift= 1 // Signal bar shift base (0=current,1=closed) - [=== Signal Entry Settings ===]
InpEntryUseClosedBarSignals=true// Force using closed bar signals - [=== Signal Entry Settings ===]
InpEntryVotingMode=ENTRY_VOTING_MIN_COUNT// Entry voting evaluation mode - [=== Signal Entry Settings ===]
InpMinIndicatorsAgreeForInitialTrades= 3 // Minimum indicators agreeing for initial entries (1,1,8) - [=== Signal Entry Settings ===]
InpMinIndicatorsAgreeForAdditonalTrades= 2 // Minimum indicators agreeing for additional entries (1,1,8) - [=== Signal Entry Settings ===]
InpEntryMinOppositeIndicatorsReject= 1 // Minimum opposite indicators to reject entry (0,1,8) - [=== Signal Entry Settings ===]
InpEntryAgreePercentThreshold=65.0// Percent of agreeing indicators required (percentage mode) - [=== Signal Entry Settings ===]
InpEntryOppositeRejectPercent=20.0// Percent of opposite indicators to reject (percentage mode) - [=== Signal Entry Settings ===]
InpEntryMinPersistenceBars= 2 // Required consecutive bars meeting criteria (1,1,10) - [=== Entry:
ATRAdaptiveJMA===]InpEnableAtrJmaForEntry=false// UseATRadaptiveJMAfor entries - [=== Entry:
ATRAdaptiveJMA===]InpAtrJmaEntryPeriod= 10 //ATRadaptiveJMAentry period - [=== Entry:
ATRAdaptiveJMA===]InpAtrJmaEntryPhase=0.0//ATRadaptiveJMAentry phase - [=== Entry:
ATRAdaptiveJMA===]InpAtrJmaEntryPrice= 1 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) //ATRadaptiveJMAentry price source - [=== Entry: Zero Lag T3 ===]
InpEnableZlT3ForEntry=false// Use Zero lag T3 for entries - [=== Entry: Zero Lag T3 ===]
InpZlT3EntryPeriod=14.0// Zero lag T3 entry period - [=== Entry: Zero Lag T3 ===]
InpZlT3EntryHot=0.7// Zero lag T3 entry hot - [=== Entry: Zero Lag T3 ===]
InpZlT3EntryType=T3_FULKSMAT// Zero lag T3 entry calculation type - [=== Entry: Zero Lag T3 ===]
InpZlT3EntryPrice= 5 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Zero lag T3 entry price source - [=== Entry: Zero Lag
TEMA===]InpEnableZlTemaForEntry=false// Use Zero lagTEMAfor entries - [=== Entry: Zero Lag
TEMA===]InpZlTemaEntryPeriod=20.0// Zero lagTEMAentry period - [=== Entry: Zero Lag
TEMA===]InpZlTemaEntryPrice= 5 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Zero lagTEMAentry price source - [=== Entry: Jurik Moving Average ===]
InpEnableJmaForEntry=false// UseJMAfor entries - [=== Entry: Jurik Moving Average ===]
InpJmaEntryLength= 7 //JMAentry length - [=== Entry: Jurik Moving Average ===]
InpJmaEntryPhase= 100 //JMAentry phase (-100..100) - [=== Entry: Jurik Moving Average ===]
InpJmaEntryShift= 0 //JMAentry horizontal shift (bars) - [=== Entry: Jurik Moving Average ===]
InpJmaEntryPriceShift= 0 //JMAentry vertical shift (points) - [=== Entry: Jurik Moving Average ===]
InpJmaEntryPrice=JMA_PRICE_CLOSE//JMAentry price source - [=== Entry:
JMAStandard Deviation ===]InpEnableJmaStDevForEntry=false// UseJMAStdDevfor entries - [=== Entry:
JMAStandard Deviation ===]InpJmaStDevEntryLength= 7 //StdDevJMAentry length - [=== Entry:
JMAStandard Deviation ===]InpJmaStDevEntryPhase= 100 //StdDevJMAentry phase - [=== Entry:
JMAStandard Deviation ===]InpJmaStDevEntryK1=1.5//StdDeventry coefficient 1 - [=== Entry:
JMAStandard Deviation ===]InpJmaStDevEntryK2=2.5//StdDeventry coefficient 2 - [=== Entry:
JMAStandard Deviation ===]InpJmaStDevEntryPeriod= 9 //StdDeventry period - [=== Entry:
JMAStandard Deviation ===]InpJmaStDevEntryShift= 0 //StdDeventry horizontal shift - [=== Entry:
JMAStandard Deviation ===]InpJmaStDevEntryPriceShift= 0 //StdDeventry vertical shift - [=== Entry:
JMAStandard Deviation ===]InpJmaStDevEntryPrice=JMA_PRICE_CLOSE//StdDeventry price source - [=== Entry:
JMATRIXLog ===]InpEnableJmaTrixForEntry=false// UseJMATRIXfor entries - [=== Entry:
JMATRIXLog ===]InpJmaTrixEntryPeriod= 14 //JMATRIXentry period - [=== Entry:
JMATRIXLog ===]InpJmaTrixEntryPrice= 1 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) //JMATRIXentry price source - [=== Entry:
JMAZ-Score ===]InpEnableJmaZScoreForEntry=false// UseJMAZ-Score for entries - [=== Entry:
JMAZ-Score ===]InpJmaZScoreEntryPeriod= 14 //JMAZ-Score entry smooth period - [=== Entry:
JMAZ-Score ===]InpJmaZScoreEntryPhase=0.0//JMAZ-Score entry phase - [=== Entry:
JMAZ-Score ===]InpJmaZScoreEntryZsPeriod= 30 //JMAZ-Score entry Z-score period - [=== Entry:
JMAZ-Score ===]InpJmaZScoreEntryPrice= 1 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) //JMAZ-Score entry price source - [=== Entry: JP Oscillator ===]
InpEnableJpOscForEntry=false// Use JP Oscillator for entries - [=== Entry: JP Oscillator ===]
InpJpOscEntryPeriod= 5 // JP Oscillator entry period - [=== Entry: JP Oscillator ===]
InpJpOscEntryMethod=MODE_SMA// JP Oscillator entry smoothing method - [=== Entry: JP Oscillator ===]
InpJpOscEntrySmoothing=true// JP Oscillator entry smoothing flag - [=== Entry: i-Movment ===]
InpEnableIMovmentForEntry=false// Use i-Movment for entries - [=== Entry: i-Movment ===]
InpIMovmentEntryMovement= 70 // Movement threshold (points) - [=== Entry: i-Movment ===]
InpIMovmentEntryUpColor=clrBlue// Uptrend candle color - [=== Entry: i-Movment ===]
InpIMovmentEntryUpBackColor=clrWhite// Uptrend retracement color - [=== Entry: i-Movment ===]
InpIMovmentEntryDownColor=clrRed// Downtrend candle color - [=== Entry: i-Movment ===]
InpIMovmentEntryDownBackColor=clrWhite// Downtrend retracement color - [=== Entry: i-Movment ===]
InpIMovmentEntryAuto5Digits=true// Auto-scale for 5/3 digit symbols - [=== Entry: JP Trend ===]
InpEnableJpTrendForEntry=false// Use JP Trend for entries - [=== Entry: JP Trend ===]
InpJpTrendEntryDimMaxPos= 150 // JP Trend max bars analyzed - [=== Entry: JP Trend ===]
InpJpTrendEntryAlertAuto=false// Enable JP Trend auto alerts - [=== Entry: JP Trend ===]
InpJpTrendEntryAlertThreshold=0.0002// JP Trend alert threshold - [=== Entry: JP Trend ===]
InpJpTrendEntrySupportColor=clrRed// JP Trend support color - [=== Entry: JP Trend ===]
InpJpTrendEntryResistanceColor=clrBlue// JP Trend resistance color - [=== Entry: Kalman Filter ===]
InpEnableKalmanForEntry=false// Use Kalman filter for entries - [=== Entry: Kalman Filter ===]
InpKalmanEntryTimeframe=KALMAN_TF_CURRENT// Kalman timeframe option - [=== Entry: Kalman Filter ===]
InpKalmanEntryPeriod=1.0// Kalman filter period - [=== Entry: Kalman Filter ===]
InpKalmanEntryPrice= 1 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Kalman filter price source - [=== Entry: Kalman Filter ===]
InpKalmanEntryInterpolate=true// Kalman interpolation flag - [=== Entry: Heiken Ashi on
AMA===]InpEnableHaAmaForEntry=false// Use Heiken Ashi onAMAfor entries - [=== Entry: Heiken Ashi on
AMA===]InpHaAmaEntryAmaPeriod= 8 //AMAperiod for Heiken Ashi entries - [=== Entry: Heiken Ashi on
AMA===]InpHaAmaEntryFastEma= 2 // FastEMAforAMAsmoothing (entry) - [=== Entry: Heiken Ashi on
AMA===]InpHaAmaEntrySlowEma= 24 // SlowEMAforAMAsmoothing (entry) - [=== Entry: Heiken Ashi on
AMA===]InpHaAmaEntryAmaShift= 0 //AMAshift applied to HeikenAshi(entry) - [=== Entry: Heiken Ashi Zone Trade ===]
InpEnableHaZoneForEntry=false// Use Heiken Ashi zone trade for entries - [=== Entry: Heiken Ashi Zone Trade ===]
InpHaZoneEntryAcTimeframe= 0 //Timeframe(1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Accelerator Oscillator timeframe (entry) - [=== Entry: Heiken Ashi Zone Trade ===]
InpHaZoneEntryAoTimeframe= 0 //Timeframe(1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Awesome Oscillator timeframe (entry) - [=== Entry: Pattern Recognition ===]
InpEnablePatternForEntry=false// Use pattern recognition for entries - [=== Entry: Pattern Recognition ===]
InpPatternEntryUseExtraDigit=false// Pattern recognition extra digit mode - [=== Entry: Pattern Recognition ===]
InpPatternEntryShowAlert=false// Allow indicator alerts when used for entries - [=== Confirmation Voting ===]
InpEnableConfirmationVoting=true// Enable confirmation-based voting - [=== Confirmation Voting ===]
InpMinConfirmationsAgreeEntry= 1 // Minimum confirmations required for entries (1,1,3) - [=== Confirmation Voting ===]
InpMinConfirmationsAgreeExit= 1 // Minimum confirmations required for exits (1,1,3) - [=== - Confirmation: Adaptive
RSI===]InpEnableAdaptiveRsiConfirm=false// Enable adaptiveRSIconfirmation for entries - [=== - Confirmation: Adaptive
RSI===]InpEnableAdaptiveRsiConfirmForExit=false// Enable adaptiveRSIconfirmation for exits - [=== - Confirmation: Adaptive
RSI===]InpConfirmRsiTimeframe= 0 //Timeframe(1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for adaptiveRSI - [=== - Confirmation: Adaptive
RSI===]InpConfirmRsiPeriod= 14 // AdaptiveRSIperiod - [=== - Confirmation: Adaptive
RSI===]InpConfirmRsiUpperOffset=5.0// AdaptiveRSIbullish offset from 50 - [=== - Confirmation: Adaptive
RSI===]InpConfirmRsiLowerOffset=5.0// AdaptiveRSIbearish offset from 50 - [=== - Confirmation: Adaptive
RSI===]InpConfirmRsiAtrFastPeriod= 14 // FastATRperiod forRSIadaptation - [=== - Confirmation: Adaptive
RSI===]InpConfirmRsiAtrSlowPeriod= 50 // SlowATRperiod forRSIadaptation - [=== - Confirmation: Adaptive
RSI===]InpConfirmRsiAtrInfluence=3.0//ATRinfluence onRSIthresholds - [=== - Confirmation: Adaptive Volume ===]
InpEnableAdaptiveVolumeConfirm=false// Enable adaptive volume confirmation for entries - [=== - Confirmation: Adaptive Volume ===]
InpEnableAdaptiveVolumeConfirmForExit=false// Enable adaptive volume confirmation for exits - [=== - Confirmation: Adaptive Volume ===]
InpConfirmVolumeTimeframe= 0 //Timeframe(1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for adaptive volume - [=== - Confirmation: Adaptive Volume ===]
InpConfirmVolumeLookback= 20 // Volume lookback for adaptation - [=== - Confirmation: Adaptive Volume ===]
InpConfirmVolumeMultiplier=1.2// Required volume multiplier over average - [=== - Confirmation: Adaptive
ATR===]InpEnableAdaptiveAtrConfirm=false// Enable adaptiveATRconfirmation for entries - [=== - Confirmation: Adaptive
ATR===]InpEnableAdaptiveAtrConfirmForExit=false// Enable adaptiveATRconfirmation for exits - [=== - Confirmation: Adaptive
ATR===]InpConfirmAtrTimeframe= 0 //Timeframe(1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for adaptiveATR - [=== - Confirmation: Adaptive
ATR===]InpConfirmAtrFastPeriod= 14 // FastATRperiod - [=== - Confirmation: Adaptive
ATR===]InpConfirmAtrSlowPeriod= 50 // SlowATRperiod - [=== - Confirmation: Adaptive
ATR===]InpConfirmAtrMinRatio=1.2// MinimumATRratio fast/slow - [=== - Confirmation: Adaptive
ATR===]InpConfirmAtrTrendPeriod= 50 // Trend MA period forATRconfirmation - [=== - Confirmation: Adaptive
ATR===]InpConfirmAtrTrendPrice= 1 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted)// Price source for trend MA - [=== - Confirmation:
CCI===]InpEnableCCIConfirm=false// EnableCCIconfirmation for entries - [=== - Confirmation:
CCI===]InpEnableCCIConfirmForExit=false// EnableCCIconfirmation for exits - [=== - Confirmation:
CCI===]InpConfirmCCITimeframe= 4 //Timeframe(1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) //CCIconfirmation timeframe - [=== - Confirmation:
CCI===]InpConfirmCCIPeriod= 18 //CCIconfirmation period (10,1,50) - [=== - Confirmation:
CCI===]InpConfirmCCIPrice= 6 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Applied price forCCIconfirmation - [=== - Confirmation:
CCI===]InpConfirmCCIOverbought=140.0// Overbought threshold for confirmation (100.0,10.0,300.0) - [=== - Confirmation:
CCI===]InpConfirmCCIOversold= -140.0// Oversold threshold for confirmation (-300.0,10.0,-100.0) - [=== - Confirmation:
CCI===]InpConfirmCCIVetoExtremes=true// Veto entries at extremes - [=== - Confirmation:
CCI===]InpConfirmCCICheckSlope=true// RequireCCIslope alignment - [=== - Confirmation:
CCI===]InpConfirmCCISlopeLookback= 3 // Slope lookback bars (1,1,5) - [=== - Confirmation:
CCI===]InpConfirmCCIUseDivergence=true// Block trades onCCIdivergence - [=== - Confirmation:
CCI===]InpConfirmCCIDivergenceBars= 5 // Divergence lookback bars (3,1,20) - [=== Signal Exit Settings using Indicators ===]
InpCloseOnOpposite=false// Close trades on opposite agreement if in profit - [=== Signal Exit Settings using Indicators ===]
InpMinIndicatorsAgreeCloseProfit= 1 // Minimum Indicators to close in profit (1,1,4) - [=== Signal Exit Settings using Indicators ===]
InpCloseProfitPoints=6.0// Minimum profit (points) to close on opposite (0.0,1.0,200.0) - [=== Signal Exit Settings using Indicators ===]
InpCloseOnOppositeEvenIfInLose=true// Close trades on opposite agreement even if losing - [=== Signal Exit Settings using Indicators ===]
InpMinIndicatorsAgreeCloseLoss= 2 // Minimum Indicators to close even if losing (1,1,4) - [=== - Exit:
ATRAdaptiveJMA===]InpEnableAtrJmaForExit=false// UseATRadaptiveJMAfor exits - [=== - Exit:
ATRAdaptiveJMA===]InpAtrJmaExitPeriod= 10 //ATRadaptiveJMAexit period - [=== - Exit:
ATRAdaptiveJMA===]InpAtrJmaExitPhase=0.0//ATRadaptiveJMAexit phase - [=== - Exit:
ATRAdaptiveJMA===]InpAtrJmaExitPrice= 1 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) //ATRadaptiveJMAexit price source - [=== - Exit: Zero Lag T3 ===]
InpEnableZlT3ForExit=false// Use Zero lag T3 for exits - [=== - Exit: Zero Lag T3 ===]
InpZlT3ExitPeriod=14.0// Zero lag T3 exit period - [=== - Exit: Zero Lag T3 ===]
InpZlT3ExitHot=0.7// Zero lag T3 exit hot - [=== - Exit: Zero Lag T3 ===]
InpZlT3ExitType=T3_FULKSMAT// Zero lag T3 exit calculation type - [=== - Exit: Zero Lag T3 ===]
InpZlT3ExitPrice= 5 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Zero lag T3 exit price source - [=== - Exit: Zero Lag
TEMA===]InpEnableZlTemaForExit=false// Use Zero lagTEMAfor exits - [=== - Exit: Zero Lag
TEMA===]InpZlTemaExitPeriod=20.0// Zero lagTEMAexit period - [=== - Exit: Zero Lag
TEMA===]InpZlTemaExitPrice= 5 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Zero lagTEMAexit price source - [=== - Exit: Jurik Moving Average ===]
InpEnableJmaForExit=false// UseJMAfor exits - [=== - Exit: Jurik Moving Average ===]
InpJmaExitLength= 7 //JMAexit length - [=== - Exit: Jurik Moving Average ===]
InpJmaExitPhase= 100 //JMAexit phase (-100..100) - [=== - Exit: Jurik Moving Average ===]
InpJmaExitShift= 0 //JMAexit horizontal shift (bars) - [=== - Exit: Jurik Moving Average ===]
InpJmaExitPriceShift= 0 //JMAexit vertical shift (points) - [=== - Exit: Jurik Moving Average ===]
InpJmaExitPrice=JMA_PRICE_CLOSE//JMAexit price source - [=== - Exit:
JMAStandard Deviation ===]InpEnableJmaStDevForExit=false// UseJMAStdDevfor exits - [=== - Exit:
JMAStandard Deviation ===]InpJmaStDevExitLength= 7 //StdDevJMAexit length - [=== - Exit:
JMAStandard Deviation ===]InpJmaStDevExitPhase= 100 //StdDevJMAexit phase - [=== - Exit:
JMAStandard Deviation ===]InpJmaStDevExitK1=1.5//StdDevexit coefficient 1 - [=== - Exit:
JMAStandard Deviation ===]InpJmaStDevExitK2=2.5//StdDevexit coefficient 2 - [=== - Exit:
JMAStandard Deviation ===]InpJmaStDevExitPeriod= 9 //StdDevexit period - [=== - Exit:
JMAStandard Deviation ===]InpJmaStDevExitShift= 0 //StdDevexit horizontal shift - [=== - Exit:
JMAStandard Deviation ===]InpJmaStDevExitPriceShift= 0 //StdDevexit vertical shift - [=== - Exit:
JMAStandard Deviation ===]InpJmaStDevExitPrice=JMA_PRICE_CLOSE//StdDevexit price source - [=== - Exit:
JMATRIXLog ===]InpEnableJmaTrixForExit=false// UseJMATRIXfor exits - [=== - Exit:
JMATRIXLog ===]InpJmaTrixExitPeriod= 14 //JMATRIXexit period - [=== - Exit:
JMATRIXLog ===]InpJmaTrixExitPrice= 1 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) //JMATRIXexit price source - [=== - Exit:
JMAZ-Score ===]InpEnableJmaZScoreForExit=false// UseJMAZ-Score for exits - [=== - Exit:
JMAZ-Score ===]InpJmaZScoreExitPeriod= 14 //JMAZ-Score exit smooth period - [=== - Exit:
JMAZ-Score ===]InpJmaZScoreExitPhase=0.0//JMAZ-Score exit phase - [=== - Exit:
JMAZ-Score ===]InpJmaZScoreExitZsPeriod= 30 //JMAZ-Score exit Z-score period - [=== - Exit:
JMAZ-Score ===]InpJmaZScoreExitPrice= 1 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) //JMAZ-Score exit price source - [=== - Exit: JP Oscillator ===]
InpEnableJpOscForExit=false// Use JP Oscillator for exits - [=== - Exit: JP Oscillator ===]
InpJpOscExitPeriod= 5 // JP Oscillator exit period - [=== - Exit: JP Oscillator ===]
InpJpOscExitMethod=MODE_SMA// JP Oscillator exit smoothing method - [=== - Exit: JP Oscillator ===]
InpJpOscExitSmoothing=true// JP Oscillator exit smoothing flag - [=== - Exit: i-Movment ===]
InpEnableIMovmentForExit=false// Use i-Movment for exits - [=== - Exit: i-Movment ===]
InpIMovmentExitMovement= 70 // Movement threshold (points) - [=== - Exit: i-Movment ===]
InpIMovmentExitUpColor=clrBlue// Uptrend candle color (exit) - [=== - Exit: i-Movment ===]
InpIMovmentExitUpBackColor=clrWhite// Uptrend retracement color (exit) - [=== - Exit: i-Movment ===]
InpIMovmentExitDownColor=clrRed// Downtrend candle color (exit) - [=== - Exit: i-Movment ===]
InpIMovmentExitDownBackColor=clrWhite// Downtrend retracement color (exit) - [=== - Exit: i-Movment ===]
InpIMovmentExitAuto5Digits=true// Auto-scale for exits - [=== - Exit: JP Trend ===]
InpEnableJpTrendForExit=false// Use JP Trend for exits - [=== - Exit: JP Trend ===]
InpJpTrendExitDimMaxPos= 150 // JP Trend max bars analyzed (exit) - [=== - Exit: JP Trend ===]
InpJpTrendExitAlertAuto=false// Enable JP Trend auto alerts (exit) - [=== - Exit: JP Trend ===]
InpJpTrendExitAlertThreshold=0.0002// JP Trend alert threshold (exit) - [=== - Exit: JP Trend ===]
InpJpTrendExitSupportColor=clrRed// JP Trend support color (exit) - [=== - Exit: JP Trend ===]
InpJpTrendExitResistanceColor=clrBlue// JP Trend resistance color (exit) - [=== - Exit: Kalman Filter ===]
InpEnableKalmanForExit=false// Use Kalman filter for exits - [=== - Exit: Kalman Filter ===]
InpKalmanExitTimeframe=KALMAN_TF_CURRENT// Kalman timeframe option (exit) - [=== - Exit: Kalman Filter ===]
InpKalmanExitPeriod=1.0// Kalman filter period (exit) - [=== - Exit: Kalman Filter ===]
InpKalmanExitPrice= 1 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Kalman filter price source (exit) - [=== - Exit: Kalman Filter ===]
InpKalmanExitInterpolate=true// Kalman interpolation flag (exit) - [=== - Exit: Heiken Ashi on
AMA===]InpEnableHaAmaForExit=false// Use Heiken Ashi onAMAfor exits - [=== - Exit: Heiken Ashi on
AMA===]InpHaAmaExitAmaPeriod= 8 //AMAperiod for Heiken Ashi exits - [=== - Exit: Heiken Ashi on
AMA===]InpHaAmaExitFastEma= 2 // FastEMAforAMAsmoothing (exit) - [=== - Exit: Heiken Ashi on
AMA===]InpHaAmaExitSlowEma= 24 // SlowEMAforAMAsmoothing (exit) - [=== - Exit: Heiken Ashi on
AMA===]InpHaAmaExitAmaShift= 0 //AMAshift applied to HeikenAshi(exit) - [=== - Exit: Heiken Ashi Zone Trade ===]
InpEnableHaZoneForExit=false// Use Heiken Ashi zone trade for exits - [=== - Exit: Heiken Ashi Zone Trade ===]
InpHaZoneExitAcTimeframe= 0 //Timeframe(1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Accelerator Oscillator timeframe (exit) - [=== - Exit: Heiken Ashi Zone Trade ===]
InpHaZoneExitAoTimeframe= 0 //Timeframe(1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Awesome Oscillator timeframe (exit) - [=== - Exit:
CCIExhaustion ===]InpEnableCCIForExit=false// UseCCIexhaustion for exits - [=== - Exit:
CCIExhaustion ===]InpCCIExitTimeframe= 0 //Timeframe(1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) //CCItimeframe for exits - [=== - Exit:
CCIExhaustion ===]InpCCIExitPeriod= 18 //CCIperiod for exits (10,1,50) - [=== - Exit:
CCIExhaustion ===]InpCCIExitPrice= 6 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) //CCIapplied price for exits - [=== - Exit:
CCIExhaustion ===]InpCCIExitOverbought=140.0// Overbought threshold for exits (100.0,10.0,300.0) - [=== - Exit:
CCIExhaustion ===]InpCCIExitOversold= -140.0// Oversold threshold for exits (-300.0,10.0,-100.0) - [=== - Exit:
CCIExhaustion ===]InpCCIExitUseDivergence=true// Detect divergence for exits - [=== - Exit:
CCIExhaustion ===]InpCCIExitDivergenceBars= 5 // Divergence lookback bars (3,1,20) - [=== - Exit:
CCIExhaustion ===]InpCCIExitCloseProfit=true// Allow closing profitable positions viaCCI - [=== - Exit:
CCIExhaustion ===]InpCCIExitCloseLoss=false// Allow closing losing positions viaCCI - [=== - Exit:
CCIExhaustion ===]InpCCIExitMinProfitPoints=6.0// Minimum profit before closing (0.0,1.0,100.0) - [=== - Exit: Pattern Recognition ===]
InpEnablePatternForExit=false// Use pattern recognition for exits - [=== - Exit: Pattern Recognition ===]
InpPatternExitUseExtraDigit=false// Pattern recognition extra digit mode (exit) - [=== - Exit: Pattern Recognition ===]
InpPatternExitShowAlert=false// Allow indicator alerts when used for exits
// Pipsgrowth EX16085 Trend — Execution Flow (from source analysis)
// Family: Trend
// Multi-indicator trend EA using four Hull MA variants with JMA, T3, TEMA, Kalman filter, and pattern recognition entries. Features voting-based entry/exit, session filters, trailing, break-even, and profit lock management. 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
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 |
|---|---|---|
| InpLots | 0.10 | Fixed lot size (0.01,0.01,50.0) |
| InpSlippagePoints | 10 | Max slippage (points) (0,1,100) |
| InpMagicNumber | 22216085 | Magic number (1,1,99999999) |
| InpTradeComment | "Psgrowth.com Expert_16085" | Trade comment for new positions |
| InpMoneyManagementMode | MM_MODE_PERCENT_RISK | Money management mode |
| InpRiskPerTradePercent | 0.5 | Risk per trade (% of balance) (0.1,0.1,10.0) |
| InpLotRoundingMode | LOT_ROUND_DOWN | Lot rounding mode |
| InpStopLossPoints | 90.0 | Initial stop loss (points) (10.0,1.0,5000.0) |
| InpTakeProfitPoints | 150.0 | Initial take profit (points) (10.0,1.0,10000.0) |
| InpEnableMarginGuard | true | Enforce minimum margin level before new trades |
| InpMinMarginLevelPerc | 250.0 | Minimum margin level (%) (100.0,1.0,1000.0) |
| InpEnableTrailingStop | true | Master toggle for trailing stop management |
| InpTrailingTriggerPts | 25.0 | Trailing stop trigger (points) (5.0,1.0,500.0) |
| InpTrailingStepPts | 40.0 | Trailing stop step (points) (10.0,1.0,2000.0) |
| InpEnableBreakEven | true | Move SL to break-even |
| InpBreakEvenTrigger | 25.0 | Profit trigger (points) (5.0,1.0,500.0) |
| InpBreakEvenOffset | 3.0 | Offset from entry (points) (0.0,1.0,100.0) |
| InpEnableProfitLock | false | Lock profits |
| InpProfitLockIncrement | 40.0 | Lock every X points (10.0,1.0,500.0) |
| InpProfitLockStep | 15.0 | Distance from current price (1.0,1.0,200.0) |
| InpEnableProfitGate | true | Require existing trades be in profit |
| InpProfitGatePoints | 5.0 | Minimum profit (points) per trade (1.0,1.0,500.0) |
| InpMaxOpenPositions | 2 | Maximum open positions (0=unlimited) (0,1,100) |
| InpEnableSessionFilters | true | Enable session-based trading |
| InpSessionUtcOffsetHours | 0.0 | Session timezone offset from UTC (-14.0,0.25,14.0) |
| InpSessionAdditionalOffsetMinutes | 0 | Extra manual offset minutes for DST (-180,1,180) |
| InpAsianSessionEnabled | true | Enable trading during Asian session |
| InpAsianSessionStartHour | 0 | Asian session start hour (0,1,23) |
| InpAsianSessionStartMinute | 0 | Asian session start minute (0,1,59) |
| InpAsianSessionEndHour | 8 | Asian session end hour (0,1,23) |
| InpAsianSessionEndMinute | 0 | Asian session end minute (0,1,59) |
| InpEuropeanSessionEnabled | true | Enable trading during European session |
| InpEuropeanSessionStartHour | 7 | European session start hour (0,1,23) |
| InpEuropeanSessionStartMinute | 0 | European session start minute (0,1,59) |
| InpEuropeanSessionEndHour | 16 | European session end hour (0,1,23) |
| InpEuropeanSessionEndMinute | 0 | European session end minute (0,1,59) |
| InpUSSessionEnabled | true | Enable trading during US session |
| InpUSSessionStartHour | 12 | US session start hour (0,1,23) |
| InpUSSessionStartMinute | 0 | US session start minute (0,1,59) |
| InpUSSessionEndHour | 21 | US session end hour (0,1,23) |
| InpUSSessionEndMinute | 0 | US session end minute (0,1,59) |
| InpCustomSessionEnabled | false | Enable trading during custom session |
| InpCustomSessionStartHour | 22 | Custom session start hour (0,1,23) |
| InpCustomSessionStartMinute | 0 | Custom session start minute (0,1,59) |
| InpCustomSessionEndHour | 23 | Custom session end hour (0,1,23) |
| InpCustomSessionEndMinute | 59 | Custom session end minute (0,1,59) |
| InpEnableEndOfDayClose | false | Close all trades at specific time |
| InpEndOfDayCloseHour | 23 | Close hour (0,1,23) |
| InpEndOfDayCloseMinute | 45 | Close minute (0,1,59) |
| InpEndOfDayProfitOnly | false | Only close profitable positions |
| InpEndOfDayBlockNewTrades | true | Block new trades after close time |
| InpSignalBarShift | 1 | Signal bar shift base (0=current,1=closed) |
| InpEntryUseClosedBarSignals | true | Force using closed bar signals |
| InpEntryVotingMode | ENTRY_VOTING_MIN_COUNT | Entry voting evaluation mode |
| InpMinIndicatorsAgreeForInitialTrades | 3 | Minimum indicators agreeing for initial entries (1,1,8) |
| InpMinIndicatorsAgreeForAdditonalTrades | 2 | Minimum indicators agreeing for additional entries (1,1,8) |
| InpEntryMinOppositeIndicatorsReject | 1 | Minimum opposite indicators to reject entry (0,1,8) |
| InpEntryAgreePercentThreshold | 65.0 | Percent of agreeing indicators required (percentage mode) |
| InpEntryOppositeRejectPercent | 20.0 | Percent of opposite indicators to reject (percentage mode) |
| InpEntryMinPersistenceBars | 2 | Required consecutive bars meeting criteria (1,1,10) |
| InpEnableAtrJmaForEntry | false | Use ATR adaptive JMA for entries |
| InpAtrJmaEntryPeriod | 10 | ATR adaptive JMA entry period |
| InpAtrJmaEntryPhase | 0.0 | ATR adaptive JMA entry phase |
| InpAtrJmaEntryPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // ATR adaptive JMA entry price source |
| InpEnableZlT3ForEntry | false | Use Zero lag T3 for entries |
| InpZlT3EntryPeriod | 14.0 | Zero lag T3 entry period |
| InpZlT3EntryHot | 0.7 | Zero lag T3 entry hot |
| InpZlT3EntryType | T3_FULKSMAT | Zero lag T3 entry calculation type |
| InpZlT3EntryPrice | 5 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Zero lag T3 entry price source |
| InpEnableZlTemaForEntry | false | Use Zero lag TEMA for entries |
| InpZlTemaEntryPeriod | 20.0 | Zero lag TEMA entry period |
| InpZlTemaEntryPrice | 5 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Zero lag TEMA entry price source |
| InpEnableJmaForEntry | false | Use JMA for entries |
| InpJmaEntryLength | 7 | JMA entry length |
| InpJmaEntryPhase | 100 | JMA entry phase (-100..100) |
| InpJmaEntryShift | 0 | JMA entry horizontal shift (bars) |
| InpJmaEntryPriceShift | 0 | JMA entry vertical shift (points) |
| InpJmaEntryPrice | JMA_PRICE_CLOSE | JMA entry price source |
| InpEnableJmaStDevForEntry | false | Use JMA StdDev for entries |
| InpJmaStDevEntryLength | 7 | StdDev JMA entry length |
| InpJmaStDevEntryPhase | 100 | StdDev JMA entry phase |
| InpJmaStDevEntryK1 | 1.5 | StdDev entry coefficient 1 |
| InpJmaStDevEntryK2 | 2.5 | StdDev entry coefficient 2 |
| InpJmaStDevEntryPeriod | 9 | StdDev entry period |
| InpJmaStDevEntryShift | 0 | StdDev entry horizontal shift |
| InpJmaStDevEntryPriceShift | 0 | StdDev entry vertical shift |
| InpJmaStDevEntryPrice | JMA_PRICE_CLOSE | StdDev entry price source |
| InpEnableJmaTrixForEntry | false | Use JMA TRIX for entries |
| InpJmaTrixEntryPeriod | 14 | JMA TRIX entry period |
| InpJmaTrixEntryPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // JMA TRIX entry price source |
| InpEnableJmaZScoreForEntry | false | Use JMA Z-Score for entries |
| InpJmaZScoreEntryPeriod | 14 | JMA Z-Score entry smooth period |
| InpJmaZScoreEntryPhase | 0.0 | JMA Z-Score entry phase |
| InpJmaZScoreEntryZsPeriod | 30 | JMA Z-Score entry Z-score period |
| InpJmaZScoreEntryPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // JMA Z-Score entry price source |
| InpEnableJpOscForEntry | false | Use JP Oscillator for entries |
| InpJpOscEntryPeriod | 5 | JP Oscillator entry period |
| InpJpOscEntryMethod | MODE_SMA | JP Oscillator entry smoothing method |
| InpJpOscEntrySmoothing | true | JP Oscillator entry smoothing flag |
| InpEnableIMovmentForEntry | false | Use i-Movment for entries |
| InpIMovmentEntryMovement | 70 | Movement threshold (points) |
| InpIMovmentEntryUpColor | clrBlue | Uptrend candle color |
| InpIMovmentEntryUpBackColor | clrWhite | Uptrend retracement color |
| InpIMovmentEntryDownColor | clrRed | Downtrend candle color |
| InpIMovmentEntryDownBackColor | clrWhite | Downtrend retracement color |
| InpIMovmentEntryAuto5Digits | true | Auto-scale for 5/3 digit symbols |
| InpEnableJpTrendForEntry | false | Use JP Trend for entries |
| InpJpTrendEntryDimMaxPos | 150 | JP Trend max bars analyzed |
| InpJpTrendEntryAlertAuto | false | Enable JP Trend auto alerts |
| InpJpTrendEntryAlertThreshold | 0.0002 | JP Trend alert threshold |
| InpJpTrendEntrySupportColor | clrRed | JP Trend support color |
| InpJpTrendEntryResistanceColor | clrBlue | JP Trend resistance color |
| InpEnableKalmanForEntry | false | Use Kalman filter for entries |
| InpKalmanEntryTimeframe | KALMAN_TF_CURRENT | Kalman timeframe option |
| InpKalmanEntryPeriod | 1.0 | Kalman filter period |
| InpKalmanEntryPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Kalman filter price source |
| InpKalmanEntryInterpolate | true | Kalman interpolation flag |
| InpEnableHaAmaForEntry | false | Use Heiken Ashi on AMA for entries |
| InpHaAmaEntryAmaPeriod | 8 | AMA period for Heiken Ashi entries |
| InpHaAmaEntryFastEma | 2 | Fast EMA for AMA smoothing (entry) |
| InpHaAmaEntrySlowEma | 24 | Slow EMA for AMA smoothing (entry) |
| InpHaAmaEntryAmaShift | 0 | AMA shift applied to Heiken Ashi (entry) |
| InpEnableHaZoneForEntry | false | Use Heiken Ashi zone trade for entries |
| InpHaZoneEntryAcTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Accelerator Oscillator timeframe (entry) |
| InpHaZoneEntryAoTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Awesome Oscillator timeframe (entry) |
| InpEnablePatternForEntry | false | Use pattern recognition for entries |
| InpPatternEntryUseExtraDigit | false | Pattern recognition extra digit mode |
| InpPatternEntryShowAlert | false | Allow indicator alerts when used for entries |
| InpEnableConfirmationVoting | true | Enable confirmation-based voting |
| InpMinConfirmationsAgreeEntry | 1 | Minimum confirmations required for entries (1,1,3) |
| InpMinConfirmationsAgreeExit | 1 | Minimum confirmations required for exits (1,1,3) |
| InpEnableAdaptiveRsiConfirm | false | Enable adaptive RSI confirmation for entries |
| InpEnableAdaptiveRsiConfirmForExit | false | Enable adaptive RSI confirmation for exits |
| InpConfirmRsiTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for adaptive RSI |
| InpConfirmRsiPeriod | 14 | Adaptive RSI period |
| InpConfirmRsiUpperOffset | 5.0 | Adaptive RSI bullish offset from 50 |
| InpConfirmRsiLowerOffset | 5.0 | Adaptive RSI bearish offset from 50 |
| InpConfirmRsiAtrFastPeriod | 14 | Fast ATR period for RSI adaptation |
| InpConfirmRsiAtrSlowPeriod | 50 | Slow ATR period for RSI adaptation |
| InpConfirmRsiAtrInfluence | 3.0 | ATR influence on RSI thresholds |
| InpEnableAdaptiveVolumeConfirm | false | Enable adaptive volume confirmation for entries |
| InpEnableAdaptiveVolumeConfirmForExit | false | Enable adaptive volume confirmation for exits |
| InpConfirmVolumeTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for adaptive volume |
| InpConfirmVolumeLookback | 20 | Volume lookback for adaptation |
| InpConfirmVolumeMultiplier | 1.2 | Required volume multiplier over average |
| InpEnableAdaptiveAtrConfirm | false | Enable adaptive ATR confirmation for entries |
| InpEnableAdaptiveAtrConfirmForExit | false | Enable adaptive ATR confirmation for exits |
| InpConfirmAtrTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for adaptive ATR |
| InpConfirmAtrFastPeriod | 14 | Fast ATR period |
| InpConfirmAtrSlowPeriod | 50 | Slow ATR period |
| InpConfirmAtrMinRatio | 1.2 | Minimum ATR ratio fast/slow |
| InpConfirmAtrTrendPeriod | 50 | Trend MA period for ATR confirmation |
| InpConfirmAtrTrendPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted)// Price source for trend MA |
| InpEnableCCIConfirm | false | Enable CCI confirmation for entries |
| InpEnableCCIConfirmForExit | false | Enable CCI confirmation for exits |
| InpConfirmCCITimeframe | 4 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // CCI confirmation timeframe |
| InpConfirmCCIPeriod | 18 | CCI confirmation period (10,1,50) |
| InpConfirmCCIPrice | 6 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Applied price for CCI confirmation |
| InpConfirmCCIOverbought | 140.0 | Overbought threshold for confirmation (100.0,10.0,300.0) |
| InpConfirmCCIOversold | -140.0 | Oversold threshold for confirmation (-300.0,10.0,-100.0) |
| InpConfirmCCIVetoExtremes | true | Veto entries at extremes |
| InpConfirmCCICheckSlope | true | Require CCI slope alignment |
| InpConfirmCCISlopeLookback | 3 | Slope lookback bars (1,1,5) |
| InpConfirmCCIUseDivergence | true | Block trades on CCI divergence |
| InpConfirmCCIDivergenceBars | 5 | Divergence lookback bars (3,1,20) |
| InpCloseOnOpposite | false | Close trades on opposite agreement if in profit |
| InpMinIndicatorsAgreeCloseProfit | 1 | Minimum Indicators to close in profit (1,1,4) |
| InpCloseProfitPoints | 6.0 | Minimum profit (points) to close on opposite (0.0,1.0,200.0) |
| InpCloseOnOppositeEvenIfInLose | true | Close trades on opposite agreement even if losing |
| InpMinIndicatorsAgreeCloseLoss | 2 | Minimum Indicators to close even if losing (1,1,4) |
| InpEnableAtrJmaForExit | false | Use ATR adaptive JMA for exits |
| InpAtrJmaExitPeriod | 10 | ATR adaptive JMA exit period |
| InpAtrJmaExitPhase | 0.0 | ATR adaptive JMA exit phase |
| InpAtrJmaExitPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // ATR adaptive JMA exit price source |
| InpEnableZlT3ForExit | false | Use Zero lag T3 for exits |
| InpZlT3ExitPeriod | 14.0 | Zero lag T3 exit period |
| InpZlT3ExitHot | 0.7 | Zero lag T3 exit hot |
| InpZlT3ExitType | T3_FULKSMAT | Zero lag T3 exit calculation type |
| InpZlT3ExitPrice | 5 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Zero lag T3 exit price source |
| InpEnableZlTemaForExit | false | Use Zero lag TEMA for exits |
| InpZlTemaExitPeriod | 20.0 | Zero lag TEMA exit period |
| InpZlTemaExitPrice | 5 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Zero lag TEMA exit price source |
| InpEnableJmaForExit | false | Use JMA for exits |
| InpJmaExitLength | 7 | JMA exit length |
| InpJmaExitPhase | 100 | JMA exit phase (-100..100) |
| InpJmaExitShift | 0 | JMA exit horizontal shift (bars) |
| InpJmaExitPriceShift | 0 | JMA exit vertical shift (points) |
| InpJmaExitPrice | JMA_PRICE_CLOSE | JMA exit price source |
| InpEnableJmaStDevForExit | false | Use JMA StdDev for exits |
| InpJmaStDevExitLength | 7 | StdDev JMA exit length |
| InpJmaStDevExitPhase | 100 | StdDev JMA exit phase |
| InpJmaStDevExitK1 | 1.5 | StdDev exit coefficient 1 |
| InpJmaStDevExitK2 | 2.5 | StdDev exit coefficient 2 |
| InpJmaStDevExitPeriod | 9 | StdDev exit period |
| InpJmaStDevExitShift | 0 | StdDev exit horizontal shift |
| InpJmaStDevExitPriceShift | 0 | StdDev exit vertical shift |
| InpJmaStDevExitPrice | JMA_PRICE_CLOSE | StdDev exit price source |
| InpEnableJmaTrixForExit | false | Use JMA TRIX for exits |
| InpJmaTrixExitPeriod | 14 | JMA TRIX exit period |
| InpJmaTrixExitPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // JMA TRIX exit price source |
| InpEnableJmaZScoreForExit | false | Use JMA Z-Score for exits |
| InpJmaZScoreExitPeriod | 14 | JMA Z-Score exit smooth period |
| InpJmaZScoreExitPhase | 0.0 | JMA Z-Score exit phase |
| InpJmaZScoreExitZsPeriod | 30 | JMA Z-Score exit Z-score period |
| InpJmaZScoreExitPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // JMA Z-Score exit price source |
| InpEnableJpOscForExit | false | Use JP Oscillator for exits |
| InpJpOscExitPeriod | 5 | JP Oscillator exit period |
| InpJpOscExitMethod | MODE_SMA | JP Oscillator exit smoothing method |
| InpJpOscExitSmoothing | true | JP Oscillator exit smoothing flag |
| InpEnableIMovmentForExit | false | Use i-Movment for exits |
| InpIMovmentExitMovement | 70 | Movement threshold (points) |
| InpIMovmentExitUpColor | clrBlue | Uptrend candle color (exit) |
| InpIMovmentExitUpBackColor | clrWhite | Uptrend retracement color (exit) |
| InpIMovmentExitDownColor | clrRed | Downtrend candle color (exit) |
| InpIMovmentExitDownBackColor | clrWhite | Downtrend retracement color (exit) |
| InpIMovmentExitAuto5Digits | true | Auto-scale for exits |
| InpEnableJpTrendForExit | false | Use JP Trend for exits |
| InpJpTrendExitDimMaxPos | 150 | JP Trend max bars analyzed (exit) |
| InpJpTrendExitAlertAuto | false | Enable JP Trend auto alerts (exit) |
| InpJpTrendExitAlertThreshold | 0.0002 | JP Trend alert threshold (exit) |
| InpJpTrendExitSupportColor | clrRed | JP Trend support color (exit) |
| InpJpTrendExitResistanceColor | clrBlue | JP Trend resistance color (exit) |
| InpEnableKalmanForExit | false | Use Kalman filter for exits |
| InpKalmanExitTimeframe | KALMAN_TF_CURRENT | Kalman timeframe option (exit) |
| InpKalmanExitPeriod | 1.0 | Kalman filter period (exit) |
| InpKalmanExitPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Kalman filter price source (exit) |
| InpKalmanExitInterpolate | true | Kalman interpolation flag (exit) |
| InpEnableHaAmaForExit | false | Use Heiken Ashi on AMA for exits |
| InpHaAmaExitAmaPeriod | 8 | AMA period for Heiken Ashi exits |
| InpHaAmaExitFastEma | 2 | Fast EMA for AMA smoothing (exit) |
| InpHaAmaExitSlowEma | 24 | Slow EMA for AMA smoothing (exit) |
| InpHaAmaExitAmaShift | 0 | AMA shift applied to Heiken Ashi (exit) |
| InpEnableHaZoneForExit | false | Use Heiken Ashi zone trade for exits |
| InpHaZoneExitAcTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Accelerator Oscillator timeframe (exit) |
| InpHaZoneExitAoTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Awesome Oscillator timeframe (exit) |
| InpEnableCCIForExit | false | Use CCI exhaustion for exits |
| InpCCIExitTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // CCI timeframe for exits |
| InpCCIExitPeriod | 18 | CCI period for exits (10,1,50) |
| InpCCIExitPrice | 6 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // CCI applied price for exits |
| InpCCIExitOverbought | 140.0 | Overbought threshold for exits (100.0,10.0,300.0) |
| InpCCIExitOversold | -140.0 | Oversold threshold for exits (-300.0,10.0,-100.0) |
| InpCCIExitUseDivergence | true | Detect divergence for exits |
| InpCCIExitDivergenceBars | 5 | Divergence lookback bars (3,1,20) |
| InpCCIExitCloseProfit | true | Allow closing profitable positions via CCI |
| InpCCIExitCloseLoss | false | Allow closing losing positions via CCI |
| InpCCIExitMinProfitPoints | 6.0 | Minimum profit before closing (0.0,1.0,100.0) |
| InpEnablePatternForExit | false | Use pattern recognition for exits |
| InpPatternExitUseExtraDigit | false | Pattern recognition extra digit mode (exit) |
| InpPatternExitShowAlert | false | Allow indicator alerts when used for exits |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX16085 mu — Multi-indicator Hull MA trend EA, full 12-layer stack."
#include <Trade/Trade.mqh>
#include <Trade/PositionInfo.mqh>
enum ENUM_MM_MODE
{
MM_MODE_FIXED_LOTS = 0,
MM_MODE_PERCENT_RISK = 1
};
enum ENUM_LOT_ROUNDING
{
LOT_ROUND_DOWN = 0,
LOT_ROUND_NEAREST = 1,
LOT_ROUND_UP = 2
};
enum ENUM_ENTRY_VOTING_MODE
{
ENTRY_VOTING_MIN_COUNT = 0,
ENTRY_VOTING_PERCENTAGE = 1
};
enum ENUM_JMA_PRICE_SOURCE
{
JMA_PRICE_CLOSE = 1,
JMA_PRICE_OPEN = 2,
JMA_PRICE_HIGH = 3,
JMA_PRICE_LOW = 4,
JMA_PRICE_MEDIAN = 5,
JMA_PRICE_TYPICAL = 6,
JMA_PRICE_WEIGHTED = 7,
JMA_PRICE_SIMPLE = 8,
JMA_PRICE_QUARTER = 9,
JMA_PRICE_TRENDFOLLOW0 = 10,
JMA_PRICE_TRENDFOLLOW1 = 11,
JMA_PRICE_DEMARK = 12
};
enum ENUM_KALMAN_TF_OPTION
{
KALMAN_TF_CURRENT = PERIOD_CURRENT,
KALMAN_TF_M1 = PERIOD_M1,
KALMAN_TF_M2 = PERIOD_M2,
KALMAN_TF_M3 = PERIOD_M3,
KALMAN_TF_M4 = PERIOD_M4,
KALMAN_TF_M5 = PERIOD_M5,
KALMAN_TF_M6 = PERIOD_M6,
KALMAN_TF_M10 = PERIOD_M10,
KALMAN_TF_M12 = PERIOD_M12,
KALMAN_TF_M15 = PERIOD_M15,
KALMAN_TF_M20 = PERIOD_M20,
KALMAN_TF_M30 = PERIOD_M30,
KALMAN_TF_H1 = PERIOD_H1,
KALMAN_TF_H2 = PERIOD_H2,
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.