Pipsgrowth EX12054 MultiIndicatorConfluence
MT5 Expert Advisor (Open Source) · XAUUSD · M5, H1
Pipsgrowth.com EX12054 EX21v1_1 — TrendCatcher v1.1 with HTF confirmations and HA filters, full 12-layer stack.
Overview
Pipsgrowth EX12054 is a trend-following EA that gates every entry through a Heikin-Ashi direction vote on the live chart, then stacks an EMA(21/50) regime, MACD(12/26/9) cross, and a higher-timeframe (H1) trend filter on top. The result is a multi-tiered confirmation pipeline that only fires when the base timeframe, the higher timeframe, and the smoothed HA direction all agree on the same side.
The decision runs on every new M5 bar. GenerateSignal() reads the closed bar at shift=1 from g_handleEMAfast (EMA 21, MODE_EMA on PRICE_CLOSE), g_handleEMAslow (EMA 50), and g_handleMACD (12/26/9 on PRICE_CLOSE). It then computes a single Heikin-Ashi candle for the same bar via GetHeikinAshiOnBar() — pulling 200 historical rates, running the HA recursion closeHA = (O+H+L+C)/4 and openHA = 0.5×(prevOpen + prevClose), and reading the last HA open and close. The directional vote is haBull = haClose > haOpen or haBear = haClose < haOpen. A long signal requires: HA bull, fast EMA above slow EMA, MACD main above signal AND positive (macdUp), the EMASlopeOK() function confirming at least MinEMASlopeBars-1 = 2 of the last 3 EMA21 slope comparisons are rising, and (when HTF_UseEMA = true) the H1 fast EMA above the H1 slow EMA. A short signal mirrors those conditions in the opposite direction.
The Heikin-Ashi layer is the real differentiator. Even when the EMAs have crossed and the MACD line is hot, a HA bear candle on the trigger bar blocks the BUY — the smoothed-candle direction acts as a final consensus check against the raw-price indicators. The HA Filters layer goes deeper when EnableHA_Filters = true: EvaluateHAFilters() builds a window of HA bars on the configured HA timeframe (default H1), then scans the last HA_LookbackBars = 2 closed HA bars for confirm signals (strong bull / strong bear body, no-shadow bars, consecutive color runs) and the last HA_Reject_WithinBars = 1 bars for reject signals (doji, color flip, inside bar, long opposite shadow). A user who wants a strict multi-timeframe confirmation can flip HTF_UseMACD = true and HA_Confirm_ColorRun = true with HA_Confirm_MinRunLen = 2 to require two consecutive same-color HA bars before the entry goes through.
Position sizing follows UseRiskPercent (default false → fixed 0.10 lot). When enabled, LotsByRisk() divides RiskPercent × balance by the SL distance in points and the per-point per-lot tick value, then clamps the result against the broker's volume step, minimum, and maximum via ClampVolume(). The default 300/600 points SL/TP gives a clean 1:2 risk-reward. If AllowOnlyProfitableAdditions = true and a same-direction position already exists, the EA calls IsAllSameDirProfitableAtLeast() and refuses the addition unless every same-direction ticket is at least MinProfitPerTradeToAdd = 5.0 points in the money. A counter g_addCountBuy / g_addCountSell tags the additional trades as Add#1, Add#2, etc. in the comment field so post-trade analysis can separate them from the initial entry, and MaxOpenTrades = 5 enforces the scaling cap.
Risk management after entry is handled by ApplyDynamicLockProfitToPosition(). The Dynamic Lock Profit ratchet steps the stop loss up every InpLockProfitEveryXPoints = 150 of favorable movement, keeping an InpLockMinusYPointsBuffer = 20 buffer behind the entry-plus-step arithmetic. The ratchet only ever tightens — the function checks that the proposed newSL is at least half a point above the current curSL for buys (or below for sells) before issuing the modify. The SymbolInfoInteger calls on SYMBOL_TRADE_STOPS_LEVEL and SYMBOL_TRADE_FREEZE_LEVEL clamp the modification inside the broker's permitted band, and the function refuses to modify if the new SL would land inside the freeze zone.
Two pause guards sit on top of the loss-tracking state. PauseOnConsecutiveLosses (default off, threshold 3) and PauseOnLossAmount (default off, threshold 100 USD) are both updated from OnTradeTransaction whenever an OUT deal closes with negative PnL. The cumulative g_lossStreakCount and g_lossStreakAmt reset to zero on the next profitable close. When a guard fires, g_tradePauseUntil is pushed forward by PauseConsecutiveLossesMinutes = 60 or PauseLossAmountMinutes = 60 — and PreflightAllowsEntry() blocks every new entry while the timer is in the future, with a throttled 15-second log so the Experts tab does not flood.
The session gate InSession() limits entries to server hours 7-22 by default, but the comparison is bidirectional — SessionStartHour > SessionEndHour produces a wrap-around window that crosses midnight. The UseSpreadCap filter with SpreadMedianWindow = 20 and SpreadCapMultiplier = 3.0 builds a rolling median of the last 20 spreads and rejects any tick where the current spread exceeds three times that median. The ring buffer is hand-rolled with ArrayResize and an insertion sort inside MedianSpread() — no library dependency. MaxOpenTrades = 5 caps the position count in PreflightAllowsEntry() before any new order reaches SendMarketOrder().
SendMarketOrder() walks three filling modes (FOK → IOC → RETURN) and retries up to MaxRetries = 3 with a 250ms Sleep(RetryDelayMs) between attempts. On a successful return, it loops the open positions and forces a modify if the broker ignored the inline SL/TP (a common ECN behavior). The standalone CTrade wrapper functions TryClose_EX12054, TryClosePartial_EX12054, and TryModify_EX12054 are present for any external manager but are not called from OnTick in the main flow. The optional RSI filter (EnableRSI = false by default) adds RSI_BuyMin = 45 and RSI_SellMax = 55 thresholds; turning it on without changing those values gives a very mild confirmation that the bar is not in extreme territory.
An optional daily close (EnableDailyClose = false by default) calls RunDailyCloseIfDue() at 23:40 server time, optionally filtering to profitable-only positions via DailyCloseOnlyProfitable, then — if DailyCloseStopNewTrades = true — pushes g_tradePauseUntil to the next midnight so no fresh entries fire until the trading day rolls over. The YMDKey() helper (year10000 + month100 + day) dedupes the close so a tick storm after 23:40 cannot re-trigger the routine on the same day.
The OnTester() slot is empty in this build, so the MetaTrader strategy tester applies its default fitness — balance max with drawdown penalty. For a portfolio tester the user will want to add a custom criterion.
Realistic expectations: with MinEMASlopeBars = 3 and the default HTF EMA on, the EA enters late in trends and rides them. On XAUUSD M5 with $100 and 0.10 lots, the 300/600 SL/TP targets produce a trade frequency in the 1-5 per day range on the London + New York overlap, with most of the signals clustering when both M5 and H1 EMAs align. Below M5 the M5 indicators become too noisy for the 150-point DLP step to make sense; above H1 the daily trade count drops to a handful and the daily close at 23:40 dominates the session boundaries.
Strategy Deep Dive
GenerateSignal() is the only entry decision point and reads from three sources: the base-timeframe EMA(21), EMA(50), and MACD(12/26/9) handles; a one-bar Heikin-Ashi value computed inline from the rates array via the haClose = (O+H+L+C)/4 recursion; and the optional H1 EMA and H1 MACD handles for multi-timeframe confirmation. The signal fires only on a new M5 bar — IsNewBar() blocks all in-bar duplicate evaluations. PreflightAllowsEntry() runs three gates before the order reaches the broker: the 7-22 server-time session window, the spread cap (current spread ≤ 3 × rolling 20-tick median), and the MaxOpenTrades ceiling plus the loss-streak pause timer. After the order fills, the DLP ratchet walks every owned position on every tick and tightens the stop loss as price moves in favor, leaving the take profit untouched. The loss-tracking state in OnTradeTransaction watches every DEAL_ENTRY_OUT and updates g_lossStreakCount / g_lossStreakAmt, which can push g_tradePauseUntil forward if the consecutive-loss or loss-amount threshold is enabled.
Long entries require the Heikin-Ashi candle on the trigger bar to be bullish (close > open) AND the M5 EMA(21) above EMA(50) with at least 2 of the last 3 slope comparisons rising AND the MACD(12/26/9) main line above its signal and above zero AND (when enabled) the H1 EMA fast above slow. Short entries mirror those conditions. The signal fires only on a new-bar tick via IsNewBar() after the indicators refresh from the closed bar at shift=1.
Exits run on three paths: the static 600-point TakeProfit closes the trade at a 1:2 risk-reward, the initial 300-point stop loss caps downside, and the DLP ratchet in ApplyDynamicLockProfitToPosition() locks profit by moving the stop to entry + (n × 150) − 20 every 150 points of favorable move. The optional daily close at 23:40 server time force-closes all open positions and pauses new entries until the next midnight.
The initial stop loss is the static 300-point distance (3.0 pips on 5-digit XAUUSD) applied at order entry, then progressively tightened by the DLP ratchet every 150 points of favorable movement, keeping a 20-point buffer behind the entry-plus-step arithmetic. There is no portfolio-level drawdown cap; risk is bound by the per-trade stop and the MaxOpenTrades = 5 ceiling.
Take profit is the static 600-point target (1:2 risk-reward) set at order entry. There is no partial-close, no trailing TP, and no basket exit — the position either hits the 600-point TP, the DLP-tightened SL, the optional 23:40 daily close fire, or the static 300-point initial stop.
Best paired with a $100 minimum deposit on XAUUSD M5, with UseRiskPercent = true and RiskPercent = 1.0 to size from balance rather than the fixed 0.10 lot fallback. The default 7-22 server-time window assumes a GMT+2 or GMT+3 broker and covers the London + New York sessions; brokers with different server offsets will need SessionStartHour and SessionEndHour adjusted. The ECN/RAW spread requirement is light because the spread cap is a 3× median ratio, but a sub-50-point XAUUSD median is still preferred for clean DLP step-tightening.
Strategy Logic
Pipsgrowth EX12054 MultiIndicatorConfluence — Strategy Logic Analysis (from .mq5 source)
Family: MultiIndicatorConfluence
Magic: 22212054
Version: 2.00
BRIEF:
TrendCatcher EA v1.1 with Heikin-Ashi direction + EMA regime + MACD cross, HTF EMA/MACD confirmation, RSI filter, HA candle filters, DLP step-ratchet, initial vs additional trade gating, pause guards, and daily close protection. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
INDICATOR STACK:
andleEMAfastandleEMAslowandleMACDandleRSIandleEMAfast_HTFandleEMAslow_HTFandleMACD_HTF
KEY FUNCTIONS:
NormalizePriceToTick()IsNewBar()InSession()PushSpreadSample()MedianSpread()SpreadOkay()CountOpenPositions()CountAllOpenPositions()OwnsPosition()OwnsDeal()IsAllSameDirProfitableAtLeast()ClampVolume()- ...and 23 more
INTERNAL CONSTANTS (0 total):
INPUT PARAMETERS (49 total across 14 groups):
- [===
CORE===]MagicNumber=22212054// 2220 + ExpertID(322) - [===
CORE===]InpTradeComment= "Psgrowth.com Expert_12054" // ----DYNAMICLOCKPROFIT(DLP) - [===
DYNAMICLOCKPROFIT===]InpLockMinusYPointsBuffer= 20 // ----INITIALvsADDITIONAL - [===
INITIALvsADDITIONAL===]MinProfitPerTradeToAdd=5.0// points - [===
PAUSEGUARDS===]PauseConsecutiveLossesMinutes= 60 // Pause by loss amount (deposit currency) across the current loss streak - [===
PAUSEGUARDS===]PauseLossAmount=100.0// e.g., 100 = 100USD - [===
PAUSEGUARDS===]PauseLossAmountMinutes= 60 // ----ENTRY&FILTERS - [===
ENTRY&FILTERS===]SessionStartHour= 7 // server time - [===
ENTRY&FILTERS===]SessionEndHour= 22 // server time - [===
ENTRY&FILTERS===]SpreadMedianWindow= 20 // last N ticks median - [===
ENTRY&FILTERS===]MinEMASlopeBars= 3 //EMA21slope check length - [===
HTFEMA===] EMAHTF_Timeframe = 8 //Timeframe(1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // defaultH1 - [===
HTFEMA===] HTF_EMA_Slow = 50 // ----HTFMACD - [===
MACDEMA===] MACDHTF_Timeframe = 8 //Timeframe(1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // defaultH1 - [===
MACDEMA===] HTF_MACD_Signal = 9 // ----RSI - [===
RSI===]EnableRSI=false// Disabled by default (Opt:false, -,true) - [===
RSI===] RSIPeriod = 14 // (Opt: 5,1,50) - [===
RSI===] RSI_BuyMin = 45 // MinRSIforBuys(Opt: 10,1,90) - [===
RSI===] RSI_SellMax = 55 // MaxRSIforSells(Opt: 10,1,90) - [=== HA
FILTERS-CORE===]EnableHA_Filters=false// master toggle - [=== HA
FILTERS-CORE===]HA_TF= 0 //Timeframe(1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // HA timeframe to evaluate - [=== HA
FILTERS-CORE===] HA_LookbackBars = 2 // scan last N closed HA bars - [=== HA
FILTERS-CORE===] HA_MinRangePoints = 40 // ignore tiny/noisy bars - [=== HA
FILTERS-CORE===] HA_BodyPctForDoji = 10 // body <= X% range => doji - [=== HA
FILTERS-CORE===] HA_BodyPctMinStrong = 60 // body >= X% range => strong - [=== HA
FILTERS-CORE===] HA_ShadowPctMaxStrong = 10 // each wick <= X% range for strong - [=== HA
FILTERS-CORE===] HA_OppShadowToBodyMin =2.0// long opposite wick ratio threshold - [=== HA
CONFIRM===] HA_Confirm_StrongBull =true//BUY: strong bull (big body, small wicks) - [=== HA
CONFIRM===] HA_Confirm_StrongBear =true//SELL: strong bear - [=== HA
CONFIRM===] HA_Confirm_NoLowerShadow =false//BUY: HA bar without lower shadow - [=== HA
CONFIRM===] HA_Confirm_NoUpperShadow =false//SELL: HA bar without upper shadow - [=== HA
CONFIRM===] HA_Confirm_ColorRun =false// require a color run - [=== HA
CONFIRM===] HA_Confirm_MinRunLen = 2 // consecutive same-color HA bars - [=== HA
REJECT===] HA_Reject_Doji =false// indecision - [=== HA
REJECT===] HA_Reject_ColorFlip =false// recent bull↔bear flip - [=== HA
REJECT===] HA_Reject_LongUpperShadow =false// blocksBUYif long upper wick - [=== HA
REJECT===] HA_Reject_LongLowerShadow =false// blocksSELLif long lower wick - [=== HA
REJECT===] HA_Reject_InsideBar =false// inside vs previous HA bar - [=== HA
REJECT===] HA_Reject_WithinBars = 1 // scan window for rejects - [===
RISK&STOPS===]RiskPercent=1.0// ifUseRiskPercent=true - [===
RISK&STOPS===]TakeProfitPoints= 600 // ----EXECUTION - [===
EXECUTION===]AllowBothDirections=true// iffalse, only trend-per regime - [===
EXECUTION===]AllowBuy=true// enableBUYentries - [===
EXECUTION===]AllowSell=true// enableSELLentries - [===
DAILYCLOSE===]EnableDailyClose=false// master toggle - [===
DAILYCLOSE===]DailyCloseHour= 23 // server time hour - [===
DAILYCLOSE===]DailyCloseMinute= 40 // server time minute - [===
DAILYCLOSE===]DailyCloseOnlyProfitable=false// iftrue, close only profitable positions; else close all - [===
DAILYCLOSE===]DailyCloseStopNewTrades=true// iftrue, stop new trades after close until next day
// Pipsgrowth EX12054 MultiIndicatorConfluence — Execution Flow (from source analysis)
// Family: MultiIndicatorConfluence
// TrendCatcher EA v1.1 with Heikin-Ashi direction + EMA regime + MACD cross, HTF EMA/MACD confirmation, RSI filter, HA candle filters, DLP step-ratchet, initial vs additional trade gating, pause guards, and daily close protection. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
ON_INIT:
Create indicator handles: andleEMAfast, andleEMAslow, andleMACD, andleRSI, andleEMAfast_HTF, andleEMAslow_HTF, andleMACD_HTF
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 |
|---|---|---|
| MagicNumber | 22212054 | 2220 + Expert ID (322) |
| InpTradeComment | "Psgrowth.com Expert_12054" | ---- DYNAMIC LOCK PROFIT (DLP) |
| InpLockMinusYPointsBuffer | 20 | ---- INITIAL vs ADDITIONAL |
| MinProfitPerTradeToAdd | 5.0 | points |
| PauseConsecutiveLossesMinutes | 60 | Pause by loss amount (deposit currency) across the current loss streak |
| PauseLossAmount | 100.0 | e.g., 100 = 100 USD |
| PauseLossAmountMinutes | 60 | ---- ENTRY & FILTERS |
| SessionStartHour | 7 | server time |
| SessionEndHour | 22 | server time |
| SpreadMedianWindow | 20 | last N ticks median |
| MinEMASlopeBars | 3 | EMA21 slope check length |
| EMAHTF_Timeframe | 8 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // default H1 |
| HTF_EMA_Slow | 50 | ---- HTF MACD |
| MACDHTF_Timeframe | 8 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // default H1 |
| HTF_MACD_Signal | 9 | ---- RSI |
| EnableRSI | false | Disabled by default (Opt: false, -, true) |
| RSIPeriod | 14 | (Opt: 5,1,50) |
| RSI_BuyMin | 45 | Min RSI for Buys (Opt: 10,1,90) |
| RSI_SellMax | 55 | Max RSI for Sells (Opt: 10,1,90) |
| EnableHA_Filters | false | master toggle |
| HA_TF | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // HA timeframe to evaluate |
| HA_LookbackBars | 2 | scan last N closed HA bars |
| HA_MinRangePoints | 40 | ignore tiny/noisy bars |
| HA_BodyPctForDoji | 10 | body <= X% range => doji |
| HA_BodyPctMinStrong | 60 | body >= X% range => strong |
| HA_ShadowPctMaxStrong | 10 | each wick <= X% range for strong |
| HA_OppShadowToBodyMin | 2.0 | long opposite wick ratio threshold |
| HA_Confirm_StrongBull | true | BUY: strong bull (big body, small wicks) |
| HA_Confirm_StrongBear | true | SELL: strong bear |
| HA_Confirm_NoLowerShadow | false | BUY: HA bar without lower shadow |
| HA_Confirm_NoUpperShadow | false | SELL: HA bar without upper shadow |
| HA_Confirm_ColorRun | false | require a color run |
| HA_Confirm_MinRunLen | 2 | consecutive same-color HA bars |
| HA_Reject_Doji | false | indecision |
| HA_Reject_ColorFlip | false | recent bull↔bear flip |
| HA_Reject_LongUpperShadow | false | blocks BUY if long upper wick |
| HA_Reject_LongLowerShadow | false | blocks SELL if long lower wick |
| HA_Reject_InsideBar | false | inside vs previous HA bar |
| HA_Reject_WithinBars | 1 | scan window for rejects |
| RiskPercent | 1.0 | if UseRiskPercent=true |
| TakeProfitPoints | 600 | ---- EXECUTION |
| AllowBothDirections | true | if false, only trend-per regime |
| AllowBuy | true | enable BUY entries |
| AllowSell | true | enable SELL entries |
| EnableDailyClose | false | master toggle |
| DailyCloseHour | 23 | server time hour |
| DailyCloseMinute | 40 | server time minute |
| DailyCloseOnlyProfitable | false | if true, close only profitable positions; else close all |
| DailyCloseStopNewTrades | true | if true, stop new trades after close until next day |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX12054 EX21v1_1 — TrendCatcher v1.1 with HTF confirmations and HA filters, full 12-layer stack."
#include <Trade\Trade.mqh>
//============================== INPUTS ==============================//
//---- CORE
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_TIMEFRAMES g_EMAHTF_Timeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_MACDHTF_Timeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_HA_TF = PERIOD_H1;
input group "=== CORE ==="
input long MagicNumber = 22212054; // 2220 + Expert ID (322)
input string InpTradeComment = "Psgrowth.com Expert_12054";
//---- DYNAMIC LOCK PROFIT (DLP)
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_TIMEFRAMES g_EMAHTF_Timeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_MACDHTF_Timeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_HA_TF = PERIOD_H1;
input group "=== DYNAMIC LOCK PROFIT ==="
input bool InpEnableDynamicLockProfit = true;
input int InpLockProfitEveryXPoints = 150;
input int InpLockMinusYPointsBuffer = 20;
//---- INITIAL vs ADDITIONAL
ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
switch(tf)
{
case 1: return PERIOD_M1;
case 2: return PERIOD_M5;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.