Pipsgrowth EX12021 MultiIndicatorConfluence
MT5 Expert Advisor (Open Source) · XAUUSD · M5
Pipsgrowth.com EX12021 deepseek1 — Multi-filter EA with candlestick patterns, full 12-layer stack.
Overview
Pipsgrowth EX12021 is a multi-filter confirmation Expert Advisor for MetaTrader 5 whose real architecture is far smaller than the input panel suggests. The .mq5 ships with 81 input parameters split across 21 named groups and 33 custom functions, but the actual signal logic rests on a small number of working gates — a candlestick-pattern check and an ATR volatility envelope — while the other five confirmation filters are exposed as toggleable inputs whose underlying functions are placeholders that return true unconditionally. The file is delivered as MultiIndicatorConfluence v2.00 with magic number 22212021 and is designed primarily for XAUUSD on the M5 timeframe, although the same Timeframe enum (1=M1, 2=M5, 3=M15, 4=M30, 5=H1, 6=H4, 7=D1) lets the EA run on any higher timeframe without source changes.
The decision flow is straightforward and runs on every new bar of the chosen timeframe. On a new bar, OnTick() first counts how many of its own positions are open and refuses to fire if the count has reached MaxOpenTrades (5 by default). It then calls CheckBuyFilters() and CheckSellFilters() in parallel, and only trades in a direction whose gate returns true AND AllowBuy or AllowSell is enabled. With OneTradeOnly = true (the default), a new entry is suppressed when a position in the same direction is already open, so the EA is effectively a one-position-per-direction bot out of the box. UpdatePositions() then walks the open ticket list and, when UseProfitLocking is on, fires a debug log when an open trade's profit has crossed ProfitLockPoints (50 by default). The locking logic itself is stubbed — the source contains the comment // Implement profit locking logic here — so the profit-lock feature currently produces log lines but does not actually ratchet the stop.
The seven togglable filters exposed in the inputs are: Trend EMA, ATR volatility, Heiken Ashi, SuperTrend, Hull Average, Adaptive Hull, and Candlestick Patterns. Only two of those seven are wired correctly. The ATR filter is the workhorse: with UseATRFilter = true and MinATR = 0.03 / MaxATR = 0.50 (priced in the same units as the chart — gold on M5 routinely prints 1.0–3.0, so the default 0.03–0.50 band is generous for most intraday activity on this pair), CheckATRFilter() reads ATR(14) and accepts the bar only when the value is inside the band. The Trend EMA filter, with TrendFilterTF = 6 (H4) and TrendEMA = 50, is also correctly implemented — a buy needs the close to be above the H4 EMA-50, a sell needs it below. The remaining four directional filters (CheckHeikenAshiFilterBuy, CheckSuperTrendFilterBuy, CheckHullAverageFilterBuy, CheckAdaptiveHullFilterBuy, and their sell mirrors) are stubs that print a PASS message and return true, so flipping them on adds CPU cycles and log noise but no actual filter. This is worth knowing before you turn them on expecting the trade count to drop.
The candlestick pattern recogniser in CheckCandlestickPatternsBuy and CheckCandlestickPatternsSell is partially implemented. Despite 19 boolean toggles in the input panel covering Morning Star, Three White Soldiers, Piercing Line, Harami, Hanging Man, Doji Star, Rising/Falling Three Methods and so on, the source only checks four of them: bullish engulfing, bearish engulfing, hammer, and shooting star. A bullish engulfing is detected when the previous candle is bearish and the current candle's body fully contains the previous body (open[0] < close[1] and close[0] > open[1]). A hammer is detected with the textbook shadow-ratio math: lowerShadow > body × 2 and upperShadow < body × 0.5. The bear side mirrors the same logic with shooting star instead of hammer. So UseCandlestickPatterns = true (the default) only triggers entries on these four patterns even when the other 15 pattern booleans are on — they are cosmetic input panel options, not wired branches.
Risk management on the order ticket is simple and ATR-driven. CalculateSL() reads ATR(ATR_SL_Period) (default 14) and sets the stop at currentPrice ± ATR × ATR_SL_Multiplier (default 1.5) when enableATR_SL is on, or falls back to a hard 100-point stop if enableHardSL is enabled instead. CalculateTP() mirrors that with ATR_TP_Multiplier = 2.5 or HardTP_Points = 200 as the alternative. The default pair is ATR(14) × 1.5 SL versus ATR(14) × 2.5 TP, a roughly 1.67-to-1 reward-to-risk ratio per trade, which is wider than the typical 1.0-to-1.5 you see on most MT5 EAs. Position sizing is either fixed (Lots = 0.1) or, with UseAutoLotSize = true, a rough formula lotSize = (balance × RiskPercent / 100) / 1000 clamped to the broker's volume min/max — a coarse approximation that does not take the actual SL distance into account, so it is best treated as a starting knob rather than a precise risk allocator.
Order execution goes through a custom CTradeImpl class (with built-in debug printing for each send and result code) while the helper retry functions TryClose_EX12021, TryClosePartial_EX12021, and TryModify_EX12021 use the standard MT5 CTrade wrapper named g_trade_wrappers_EX12021. Slippage is fixed at 10 points via request.deviation = 10. The close retry path tries three times on REQUOTE, TIMEOUT, PRICE_OFF and PRICE_CHANGED with 200ms sleeps; the modify retry path tries three times on REQUOTE and TIMEOUT only (no PRICE_CHANGED retry) with 100ms sleeps. The only session / risk gates in the EA are MaxOpenTrades = 5 and OneTradeOnly = true — there is no time filter, no news blackout, no daily-loss cap, no spread filter, no consecutive-loss cooldown, and no weekly drawdown guard, so the EA can fire on any bar of any session of any day as long as the ATR and pattern gates are happy. This is materially fewer safety rails than most EAs in the same MultiIndicatorConfluence family.
The set of open trades is counted with CountOpenTrades(), which iterates PositionsTotal() and matches the magic 22212021 — multi-symbol deployments are therefore safe because the magic separates this EA from any other EAs on the same account, and the lot cap applies to this EA's own positions only. The same MagicNumber input is hardcoded as 22212021 in the input panel, so the magic is consistent between SetExpertMagicNumber(MagicNumber) on the trade object and the position-counting loop.
In backtest, expect a high trade frequency on XAUUSD M5 because only the ATR band and the engulfing/hammer pattern check can stop a new bar from triggering. The default config trades both directions, uses a 0.1 fixed lot, and lets winners run to 2.5× ATR(14) while capping losses at 1.5× ATR(14). For a more selective profile, turn UseTrendEMAFilter on, raise MinATR to filter out the lowest-volatility sessions, and leave the candle-pattern recogniser on with just engulfing and hammer enabled — that is the only path that actually engages the wired logic in the current source. The remaining toggles can be experimented with for log diagnostics but should not be expected to gate entries until the underlying functions are implemented.
Strategy Deep Dive
On every new bar of the chosen timeframe, the EA counts its own open positions (matched by magic 22212021) and aborts early if the count is at MaxOpenTrades = 5. It then runs CheckBuyFilters() and CheckSellFilters(), which iterate through the seven togglable gates in order — ATR volatility, Trend EMA, Heiken Ashi, SuperTrend, Hull Average, Adaptive Hull, and Candlestick Patterns. In the current source only the ATR(14) band (CheckATRFilter(), default 0.03–0.50) and the candle-pattern recogniser (CheckCandlestickPatternsBuy/Sell, which actually checks only engulfing and hammer/shooting star out of the 19 input toggles) contain real logic; the other four directional filters are placeholders that print a PASS message and return true. If a side clears and OneTradeOnly is satisfied, ExecuteBuy() or ExecuteSell() calls the custom CTradeImpl to send a market order with a 10-point deviation, sized by either the fixed Lots = 0.1 or the rough balance × RiskPercent / 1000 auto-lot, with the SL/TP precomputed by CalculateSL() and CalculateTP() from ATR(14). UpdatePositions() then runs TryClose_EX12021 / TryModify_EX12021 via the standard CTrade wrapper — three retries on REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED with 200ms sleeps for close, three on REQUOTE/TIMEOUT only with 100ms sleeps for modify.
A new bar on the chosen timeframe first passes through CountOpenTrades() (refused if positions are at MaxOpenTrades = 5), then runs CheckBuyFilters() and CheckSellFilters() in parallel. With the default config, the wired gates are the ATR(14) volatility band (0.03–0.50) and the candlestick engulfing/hammer recogniser; the other five filter booleans are exposed as inputs but their underlying functions are stubs that return true unconditionally. OneTradeOnly = true suppresses a new entry when a position in the same direction is already open.
Exits run from two paths. The broker fires the SL and TP at the order level (ATR(14) × 1.5 default stop, ATR(14) × 2.5 default target). UpdatePositions() then walks the open positions each new bar and, when UseProfitLocking is on, logs when a position's profit exceeds ProfitLockPoints (50) — but the actual stop-ratcheting code is a placeholder in this build. MaxOpenTrades = 5 is the only hard cap that interacts with existing positions.
Stop loss is ATR(ATR_SL_Period = 14) × ATR_SL_Multiplier = 1.5 from entry when enableATR_SL = true (the default), or a fixed HardSL_Points = 100 distance when enableHardSL is flipped on instead. There is no account-level drawdown cap in the EA — the only safety net is MaxOpenTrades = 5.
Take profit is ATR(ATR_TP_Period = 14) × ATR_TP_Multiplier = 2.5 from entry when enableATR_TP = true (the default), or a fixed HardTP_Points = 200 distance when enableHardTP is on. The default ATR(14) × 1.5 stop vs ATR(14) × 2.5 target is roughly a 1.67-to-1 reward-to-risk ratio.
Best deployed on XAUUSD M5 with a $100 minimum deposit on a low-spread broker (gold spread is not gated by the EA itself, so the spread cost cuts directly into the 1.67-to-1 reward-to-risk profile). The default 0.1 fixed lot and OneTradeOnly = true make it suitable for a $100–$500 micro account; raise the lot to 0.2–0.3 or enable UseAutoLotSize for a $1,000+ balance. The lack of a session filter, news blackout, daily-loss cap, or weekly drawdown guard means the EA can fire on any bar of any session — the trader is responsible for those external risk rails. The M5 timeframe is the intended setting per the source header; M15 and H1 work as the Timeframe enum permits.
Strategy Logic
Pipsgrowth EX12021 MultiIndicatorConfluence — Strategy Logic Analysis (from .mq5 source)
Family: MultiIndicatorConfluence
Magic: 22212021
Version: 2.00
BRIEF:
Advanced EA with multiple filters including Trend EMA, ATR volatility, Heiken Ashi, SuperTrend, Hull MA, and candlestick pattern recognition for comprehensive signal confirmation. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
INDICATOR STACK:
- Standard
MT5indicators
KEY FUNCTIONS:
CheckBuyFilters()CheckSellFilters()CheckATRFilter()CheckTrendEMAFilterBuy()CheckTrendEMAFilterSell()CheckHeikenAshiFilterBuy()CheckHeikenAshiFilterSell()CheckSuperTrendFilterBuy()CheckSuperTrendFilterSell()CheckHullAverageFilterBuy()CheckHullAverageFilterSell()CheckAdaptiveHullFilterBuy()- ...and 14 more
INTERNAL CONSTANTS (0 total):
INPUT PARAMETERS (81 total across 21 groups):
- [=== Identity ===]
InpTradeComment= "Psgrowth.com Expert_12021" // TradeComment - [=== Strategy Settings ===] Timeframe = 0 //
Timeframe(1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Main timeframe - [=== Trend
EMAFilter ===]UseTrendEMAFilter=false// Enable TrendEMAfilter - [=== Trend
EMAFilter ===]TrendFilterTF= 6 //Timeframe(1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Trend filter timeframe - [=== Trend
EMAFilter ===]TrendEMA= 50 // TrendEMAperiod - [=== Trend
EMAFilter ===]TrendEMAShift= 0 // TrendEMAshift - [===
ATRVolatility Filter ===]UseATRFilter=true// EnableATRvolatility filter - [===
ATRVolatility Filter ===]MinATR=0.03// MinimumATRvalue for trading - [===
ATRVolatility Filter ===]MaxATR=0.50// MaximumATRvalue for trading (0 = no limit) - [===
ATRVolatility Filter ===] ATRPeriod = 14 //ATRcalculation period - [===
ATRVolatility Filter ===] ATRShift = 0 //ATRindicator shift - [=== Heiken Ashi Filter ===]
UseHeikenAshiFilter=false// Enable Heiken Ashi filter - [=== Heiken Ashi Filter ===]
HeikenAshiSmoothing= 1 // Smoothing period (1 = standard Heiken Ashi) - [=== Heiken Ashi Filter ===]
HeikenAshiShift= 0 // Heiken Ashi shift - [===
SuperTrendFilter ===]UseSuperTrendFilter=false// EnableSuperTrendfilter - [===
SuperTrendFilter ===]SuperTrendATRPeriod= 22 //SuperTrendATRperiod - [===
SuperTrendFilter ===]SuperTrendMultiplier=3.0//SuperTrendmultiplier - [===
SuperTrendFilter ===]SuperTrendPrice= 5 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) //SuperTrendprice type - [===
SuperTrendFilter ===]SuperTrendWicks=true// Take wicks into account forSuperTrend - [===
SuperTrendFilter ===]SuperTrendShift= 0 //SuperTrendshift - [=== Hull Average Filter ===]
UseHullAverageFilter=false// Enable Hull AverageHMAfilter - [=== Hull Average Filter ===]
HullAveragePeriod= 20 // Hull Average period - [=== Hull Average Filter ===]
HullAverageDivisor=2.0// Hull Average divisor (speed) - [=== Hull Average Filter ===]
HullAveragePrice= 1 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Hull Average price type - [=== Hull Average Filter ===]
HullAverageShift= 0 // Hull Average shift - [=== Adaptive Hull Filter ===]
UseAdaptiveHullFilter=false// Enable Adaptive Hull Average filter - [=== Adaptive Hull Filter ===]
AdaptiveHullPeriod= 20 // Adaptive Hull period - [=== Adaptive Hull Filter ===]
AdaptiveHullDivisor=2.0// Adaptive Hull divisor (speed) - [=== Adaptive Hull Filter ===]
AdaptiveHullPrice= 1 // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Adaptive Hull price type - [=== Adaptive Hull Filter ===]
AdaptiveHullMode= 0 // Adaptive mode (0=None, 1=Volatility, 2=Volume, 3=Momentum, 4=Efficiency, 5=Cycle, 6=Multi-factor) - [=== Adaptive Hull Filter ===]
AdaptiveHullATRPeriod= 14 //ATRperiod for volatility adaptation - [=== Adaptive Hull Filter ===]
AdaptiveHullATRFactor=2.0//ATRadaptation factor - [=== Adaptive Hull Filter ===]
AdaptiveHullVolPeriod= 20 // Volume period for volume adaptation - [=== Adaptive Hull Filter ===]
AdaptiveHullMomPeriod= 14 // Momentum period - [=== Adaptive Hull Filter ===]
AdaptiveHullAdaptMax=3.0// Maximum adaptation factor - [=== Adaptive Hull Filter ===]
AdaptiveHullAdaptMin=0.3// Minimum adaptation factor - [=== Adaptive Hull Filter ===]
AdaptiveHullShift= 0 // Adaptive Hull shift - [=== Candlestick Patterns ===]
UseCandlestickPatterns=true// Enable candlestick pattern recognition - [=== Very Strong Patterns ===] Enable_MorningStar =
true// MorningStar(Bullish - Very Strong) - [=== Very Strong Patterns ===] Enable_EveningStar =
true// EveningStar(Bearish - Very Strong) - [=== Very Strong Patterns ===] Enable_ThreeWhiteSoldiers =
true// Three WhiteSoldiers(Bullish - Very Strong) - [=== Very Strong Patterns ===] Enable_ThreeBlackCrows =
true// Three BlackCrows(Bearish - Very Strong) - [=== Strong Patterns ===] Enable_BullishEngulfing =
true// BullishEngulfing(Strong) - [=== Strong Patterns ===] Enable_BearishEngulfing =
true// BearishEngulfing(Strong) - [=== Moderate Patterns ===] Enable_Hammer =
true//Hammer(Bullish - Moderate) - [=== Moderate Patterns ===] Enable_InvertedHammer =
true// InvertedHammer(Bullish - Moderate) - [=== Moderate Patterns ===] Enable_ShootingStar =
true// ShootingStar(Bearish - Moderate) - [=== Moderate Patterns ===] Enable_HangingMan =
true// HangingMan(Bearish - Moderate) - [=== Moderate Patterns ===] Enable_PiercingPattern =
true// PiercingPattern(Bullish - Moderate) - [=== Moderate Patterns ===] Enable_DarkCloudCover =
true// Dark CloudCover(Bearish - Moderate) - [=== Moderate Patterns ===] Enable_BullishHarami =
true// BullishHarami(Moderate) - [=== Moderate Patterns ===] Enable_BearishHarami =
true// BearishHarami(Moderate) - [=== Weak Patterns ===] Enable_DojiStar =
false// DojiStar(Neutral - Weak) - [=== Continuation Patterns ===] Enable_RisingThreeMethods =
true// Rising ThreeMethods(Bullish Continuation) - [=== Continuation Patterns ===] Enable_FallingThreeMethods =
true// Falling ThreeMethods(Bearish Continuation) - [=== Position Management ===] Lots =
0.1// Fixed lot size - [=== Position Management ===]
UseAutoLotSize=false// Enable automatic lot sizing - [=== Position Management ===]
RiskPercent=1.0// Risk percent when auto lot size is enabled - [=== Trade Control ===]
OneTradeOnly=true// Allow only one trade per symbol - [=== Trade Control ===]
MaxOpenTrades= 5 // Maximum allowed open trades - [=== Trade Control ===]
AllowOnlyProfitableAdditions=true// Only add positions when existing are profitable - [=== Trade Control ===]
MinProfitPerTradeToAdd=5.0// Minimum profit required per trade to add new position - [=== Direction Control ===]
AllowBuy=true// AllowBUYtrades - [=== Direction Control ===]
AllowSell=true// AllowSELLtrades - [=== Stop Loss Settings ===]
enableATR_SL=true// EnableATR-based stop loss - [=== Stop Loss Settings ===] ATR_SL_Multiplier =
1.5//ATRmultiplier for stop loss - [=== Stop Loss Settings ===] ATR_SL_Period = 14 //
ATRperiod for stop loss calculation - [=== Stop Loss Settings ===]
enableHardSL=false// Enable hard stop loss - [=== Stop Loss Settings ===]
HardSL_Points= 100 // Hard stop loss in points - [=== Take Profit Settings ===]
enableATR_TP=true// EnableATR-based take profit - [=== Take Profit Settings ===] ATR_TP_Multiplier =
2.5//ATRmultiplier for take profit - [=== Take Profit Settings ===] ATR_TP_Period = 14 //
ATRperiod for take profit calculation - [=== Take Profit Settings ===]
enableHardTP=false// Enable hard take profit - [=== Take Profit Settings ===]
HardTP_Points= 200 // Hard take profit in points - [=== Profit Locking ===]
UseProfitLocking=true// Enable profit locking mechanism - [=== Profit Locking ===]
ProfitLockPercent=50.0// Profit lock trigger (% of current profit) - [=== Profit Locking ===]
ProfitLockPoints= 50 // Points to lock when triggered - [=== Debug Settings ===]
EnableDebugMessages=true// Enable general debug messages - [=== Debug Settings ===]
EnableFilterDebug=true// Enable filter-specific debug messages - [=== Debug Settings ===]
EnableOrderDebug=true// Enable order execution debug messages - [=== Debug Settings ===]
MagicNumber=22212021// Magic number for trades
// Pipsgrowth EX12021 MultiIndicatorConfluence — Execution Flow (from source analysis)
// Family: MultiIndicatorConfluence
// Advanced EA with multiple filters including Trend EMA, ATR volatility, Heiken Ashi, SuperTrend, Hull MA, and candlestick pattern recognition for comprehensive signal 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
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 a chart matching the recommended timeframe
- 7Configure parameters according to the table on this page
- 8Enable Allow Algo Trading and click OK
EA Parameters
| Parameter | Default | Description |
|---|---|---|
| InpTradeComment | "Psgrowth.com Expert_12021" | Trade Comment |
| Timeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Main timeframe |
| UseTrendEMAFilter | false | Enable Trend EMA filter |
| TrendFilterTF | 6 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Trend filter timeframe |
| TrendEMA | 50 | Trend EMA period |
| TrendEMAShift | 0 | Trend EMA shift |
| UseATRFilter | true | Enable ATR volatility filter |
| MinATR | 0.03 | Minimum ATR value for trading |
| MaxATR | 0.50 | Maximum ATR value for trading (0 = no limit) |
| ATRPeriod | 14 | ATR calculation period |
| ATRShift | 0 | ATR indicator shift |
| UseHeikenAshiFilter | false | Enable Heiken Ashi filter |
| HeikenAshiSmoothing | 1 | Smoothing period (1 = standard Heiken Ashi) |
| HeikenAshiShift | 0 | Heiken Ashi shift |
| UseSuperTrendFilter | false | Enable SuperTrend filter |
| SuperTrendATRPeriod | 22 | SuperTrend ATR period |
| SuperTrendMultiplier | 3.0 | SuperTrend multiplier |
| SuperTrendPrice | 5 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // SuperTrend price type |
| SuperTrendWicks | true | Take wicks into account for SuperTrend |
| SuperTrendShift | 0 | SuperTrend shift |
| UseHullAverageFilter | false | Enable Hull Average HMA filter |
| HullAveragePeriod | 20 | Hull Average period |
| HullAverageDivisor | 2.0 | Hull Average divisor (speed) |
| HullAveragePrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Hull Average price type |
| HullAverageShift | 0 | Hull Average shift |
| UseAdaptiveHullFilter | false | Enable Adaptive Hull Average filter |
| AdaptiveHullPeriod | 20 | Adaptive Hull period |
| AdaptiveHullDivisor | 2.0 | Adaptive Hull divisor (speed) |
| AdaptiveHullPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Adaptive Hull price type |
| AdaptiveHullMode | 0 | Adaptive mode (0=None, 1=Volatility, 2=Volume, 3=Momentum, 4=Efficiency, 5=Cycle, 6=Multi-factor) |
| AdaptiveHullATRPeriod | 14 | ATR period for volatility adaptation |
| AdaptiveHullATRFactor | 2.0 | ATR adaptation factor |
| AdaptiveHullVolPeriod | 20 | Volume period for volume adaptation |
| AdaptiveHullMomPeriod | 14 | Momentum period |
| AdaptiveHullAdaptMax | 3.0 | Maximum adaptation factor |
| AdaptiveHullAdaptMin | 0.3 | Minimum adaptation factor |
| AdaptiveHullShift | 0 | Adaptive Hull shift |
| UseCandlestickPatterns | true | Enable candlestick pattern recognition |
| Enable_MorningStar | true | Morning Star (Bullish - Very Strong) |
| Enable_EveningStar | true | Evening Star (Bearish - Very Strong) |
| Enable_ThreeWhiteSoldiers | true | Three White Soldiers (Bullish - Very Strong) |
| Enable_ThreeBlackCrows | true | Three Black Crows (Bearish - Very Strong) |
| Enable_BullishEngulfing | true | Bullish Engulfing (Strong) |
| Enable_BearishEngulfing | true | Bearish Engulfing (Strong) |
| Enable_Hammer | true | Hammer (Bullish - Moderate) |
| Enable_InvertedHammer | true | Inverted Hammer (Bullish - Moderate) |
| Enable_ShootingStar | true | Shooting Star (Bearish - Moderate) |
| Enable_HangingMan | true | Hanging Man (Bearish - Moderate) |
| Enable_PiercingPattern | true | Piercing Pattern (Bullish - Moderate) |
| Enable_DarkCloudCover | true | Dark Cloud Cover (Bearish - Moderate) |
| Enable_BullishHarami | true | Bullish Harami (Moderate) |
| Enable_BearishHarami | true | Bearish Harami (Moderate) |
| Enable_DojiStar | false | Doji Star (Neutral - Weak) |
| Enable_RisingThreeMethods | true | Rising Three Methods (Bullish Continuation) |
| Enable_FallingThreeMethods | true | Falling Three Methods (Bearish Continuation) |
| Lots | 0.1 | Fixed lot size |
| UseAutoLotSize | false | Enable automatic lot sizing |
| RiskPercent | 1.0 | Risk percent when auto lot size is enabled |
| OneTradeOnly | true | Allow only one trade per symbol |
| MaxOpenTrades | 5 | Maximum allowed open trades |
| AllowOnlyProfitableAdditions | true | Only add positions when existing are profitable |
| MinProfitPerTradeToAdd | 5.0 | Minimum profit required per trade to add new position |
| AllowBuy | true | Allow BUY trades |
| AllowSell | true | Allow SELL trades |
| enableATR_SL | true | Enable ATR-based stop loss |
| ATR_SL_Multiplier | 1.5 | ATR multiplier for stop loss |
| ATR_SL_Period | 14 | ATR period for stop loss calculation |
| enableHardSL | false | Enable hard stop loss |
| HardSL_Points | 100 | Hard stop loss in points |
| enableATR_TP | true | Enable ATR-based take profit |
| ATR_TP_Multiplier | 2.5 | ATR multiplier for take profit |
| ATR_TP_Period | 14 | ATR period for take profit calculation |
| enableHardTP | false | Enable hard take profit |
| HardTP_Points | 200 | Hard take profit in points |
| UseProfitLocking | true | Enable profit locking mechanism |
| ProfitLockPercent | 50.0 | Profit lock trigger (% of current profit) |
| ProfitLockPoints | 50 | Points to lock when triggered |
| EnableDebugMessages | true | Enable general debug messages |
| EnableFilterDebug | true | Enable filter-specific debug messages |
| EnableOrderDebug | true | Enable order execution debug messages |
| MagicNumber | 22212021 | Magic number for trades |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX12021 deepseek1 — Multi-filter EA with candlestick patterns, full 12-layer stack."
#include <Trade\Trade.mqh>
ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
switch(tf)
{
case 1: return PERIOD_M1;
case 2: return PERIOD_M5;
case 3: return PERIOD_M15;
case 4: return PERIOD_M30;
case 5: return PERIOD_H1;
case 6: return PERIOD_H4;
case 7: return PERIOD_D1;
default: return PERIOD_H1;
}
}
ENUM_APPLIED_PRICE MapAppliedPriceInt(int ap)
{
switch(ap)
{
case 1: return PRICE_CLOSE;
case 2: return PRICE_OPEN;
case 3: return PRICE_HIGH;
case 4: return PRICE_LOW;
case 5: return PRICE_MEDIAN;
case 6: return PRICE_TYPICAL;
case 7: return PRICE_WEIGHTED;
default: return PRICE_CLOSE;
}
}
ENUM_TIMEFRAMES g_Timeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_TrendFilterTF = PERIOD_H1;
ENUM_APPLIED_PRICE g_SuperTrendPrice = PRICE_CLOSE;
ENUM_APPLIED_PRICE g_HullAveragePrice = PRICE_CLOSE;
ENUM_APPLIED_PRICE g_AdaptiveHullPrice = PRICE_CLOSE;
input group "=== Identity ==="
input string InpTradeComment = "Psgrowth.com Expert_12021"; // 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)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 Other strategy EAs from our library
Pipsgrowth EX01007 Adaptive
Pipsgrowth.com EX01007 Adaptive XAUUSD 5M — multi-indicator signal scorer with regime filter, full 12-layer stack, configurable timeframe, trailing/BE/profit-lock toggles, pyramid gate, spread filter, new-bar gate, filling mode detection.
Pipsgrowth EX01019 Adaptive
Pipsgrowth.com EX01019 Self-Adaptive Market EA Fixed — multi-regime adaptive EA, full 12-layer stack.
Pipsgrowth EX15029 SMC-OrderBlock
Pipsgrowth.com EX15029 SMCBreakoutEA — SMC breakout CHOCH/liquidity sweep EA, full 12-layer stack.
Community
Educational purposes only. Do NOT use with real money. Test on demo accounts only.