P
PipsGrowth
OtherOpen Source – Free

Pipsgrowth EX12024 MultiIndicatorConfluence

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

Pipsgrowth.com EX12024 e3 — ITF intraday time-filter EA with fixed-lot management, full 12-layer stack.

Overview

Pipsgrowth EX12024 is a deliberately thin EA: a wizard-generated MQL5 expert that wires the standard CExpert framework around a single time-of-day signal class (CSignalITF) and a fixed-lot money manager. There are no custom indicators in the source, no regime classifier, no multi-vote confluence logic, and no trailing stop. Every entry decision flows through the IntradayTimeFilter class, whose only inputs are hour-of-day, day-of-week, and a single confidence weight. The point of the EA is to be a clean, minimal skeleton — the kind of baseline you compare more elaborate EAs against, or the seed you grow a session-based strategy from.

The signal class is the entire strategy. CSignalITF is a CExpertSignal-derived class from the MQL5 standard library. It evaluates whether the current moment is inside or outside a user-defined trading window and emits a directional vote based on price action during that window. The window is configured by four inputs: Signal_ITF_GoodHourOfDay (default -1, meaning any hour qualifies), Signal_ITF_BadHoursOfDay (default 0, a bitmap where each bit represents an hour to exclude), Signal_ITF_GoodDayOfWeek (default -1, any day), and Signal_ITF_BadDaysOfWeek (default 0, day bitmap). The Weight input (default 1.0) scales how strongly the time signal contributes to the overall confidence score that CExpert uses to decide entries and exits.

Confidence is computed against two thresholds: Signal_ThresholdOpen (default 10) and Signal_ThresholdClose (default 10), both expressed on a 0-100 scale. When the accumulated weighted signals from CSignalITF cross the open threshold in a bullish direction, the framework submits a long. When they cross bearish, a short. When the reverse signal reaches the close threshold, the framework exits. Because the only signal source in this EA is CSignalITF and the only signal CSignalITF produces is its hour/day vote, the thresholds effectively become a debounce: the EA only acts when the time signal points cleanly in one direction and stays there. A threshold of 10 (out of 100) is the CExpert default and is intentionally permissive — raise it to 30-50 if you want fewer, higher-conviction entries.

Three additional signal inputs are exposed but do nothing in this configuration. Signal_PriceLevel (default 0.0) is the price level a pending order would use, Signal_StopLevel (default 50.0) sets the SL distance in points, and Signal_TakeLevel (default 50.0) sets the TP distance in points. Because no filter in this EA produces pending-stop or pending-limit orders, Signal_PriceLevel and Signal_Expiration (default 4 bars) are dormant parameters — they exist because CSignalITF inherits the full CExpertSignal interface, not because EX12024 uses them. The 50-point SL and 50-point TP, however, are wired into every market order the framework submits.

Money management is the second fixed component. CMoneyFixedLot is the simplest MQL5 money class: it always trades Money_FixLot_Lots lots (default 0.1), modulated by Money_FixLot_Percent (default 10.0). The percent value is the proportion of free margin the framework will commit to a single position; if the lot is too large for the account, the framework will scale it down automatically. There is no per-trade risk-percent calculation, no equity curve smoothing, and no scaling in or out of positions. Every entry is exactly the same lot size, which is the property that makes this EA predictable in backtest.

There is no trailing stop. CTrailingNone is explicitly included from the standard library, and the source confirms no trailing logic is attached. The only stop movement is the original 50-point SL set at entry, and the only TP movement is the original 50-point TP. On a 5-digit XAUUSD broker where a point is 0.01, 50 points equals $0.50 of adverse move per lot — a tight stop. On a 3-digit point broker, 50 points equals 5 pips. Either way, the 1:1 risk-to-reward geometry means the EA is implicitly a higher-win-rate, lower-payoff system. Expect many small wins offset by occasional 50-point losses.

Trade infrastructure is the third layer. The source includes three helper functions: TryClose_EX12024, TryClosePartial_EX12024, and TryModify_EX12024. Each uses the CTrade wrapper g_trade_wrappers_EX12024 and retries up to three times on transient errors. TryClose and TryClosePartial retry on TRADE_RETCODE_REQUOTE, TRADE_RETCODE_TIMEOUT, TRADE_RETCODE_PRICE_OFF, and TRADE_RETCODE_PRICE_CHANGED with 200ms between attempts. TryModify is asymmetric: it only retries on REQUOTE and TIMEOUT, sleeping 100ms between attempts. The asymmetry reflects an editorial choice — SL/TP modifications are less time-sensitive than position closes, so a slower retry is acceptable. There is no explicit SetTypeFillingBySymbol call; the EA relies on whatever filling mode MT5 auto-negotiates with the broker.

The brief header describes a 12-layer stack: regime, signal, entry, confirm, no-trade, capital cap, risk, sizing, manage, exit, scaling, OnTester. The honest read of the source is that only four of those twelve layers are wired: signal (CSignalITF), entry/exit (CExpert thresholds), sizing (CMoneyFixedLot), and manage (3-retry close/modify wrappers). There is no regime classifier, no separate confirmation filter, no news guard, no drawdown cap, no position-scaling logic, and no custom OnTester function. The magic number 22212024 is used by CExpert as the order tag.

In backtest, expect a high trade frequency because the time filter is the only gate and its default is to admit every hour of every weekday. The framework will fire whenever CSignalITF produces a 10+ confidence vote, which on a liquid symbol like XAUUSD with no other filters happens often. On M5 bars the EA can produce dozens of round-trip trades per day; on H1 the cadence drops by a factor of twelve. Position lifetime is bounded by the 50-point TP/SL on a 1:1 ratio, so most trades close within the same hour they open unless the SL/TP is widened. The combination of fixed lot, 1:1 R:R, and CSignalITF-only signal makes this EA a useful baseline — a sanity-check reference, not a finished strategy. To turn it into one, you would need to layer a regime filter (ADX or ATR-percentile), a real confirmation (RSI or trend EMA), and a real trailing stop, all of which the source does not include.

Strategy Deep Dive

OnInit instantiates a single CExpertSignal (signal) and a single CSignalITF filter (filter0), then attaches them to a CExpert base object (ExtExpert) along with a CTrailingNone trailing manager and a CMoneyFixedLot money manager. The CExpert framework handles the per-tick evaluation: it polls CSignalITF for the current hour/day window, accumulates a directional confidence score weighted by Signal_ITF_Weight, and compares it against Signal_ThresholdOpen / Signal_ThresholdClose. When the score crosses, the framework sends a market order sized by CMoneyFixedLot with the SL/TP from Signal_StopLevel / Signal_TakeLevel, and registers it with magic 22212024. Position management is delegated to CExpert's built-in lifecycle: SL/TP checks happen on every tick, and CTrailingNone contributes nothing. The TryClose_EX12024 / TryModify_EX12024 wrappers are scaffolded for external code or future strategy expansions but are not called by the EA's own OnTick. The result is a minimal but functional time-windowed trading system with no custom indicators, no regime detection, no news filter, and no scaling.

Entry Signal

Entries are generated by the MQL5 standard CExpert framework when the CSignalITF (IntradayTimeFilter) class produces a directional confidence score that exceeds Signal_ThresholdOpen (default 10 on a 0-100 scale). Because CSignalITF is the only signal source, the only real gate is the hour-of-day and day-of-week window defined by Signal_ITF_GoodHourOfDay (-1 = any hour) and Signal_ITF_GoodDayOfWeek (-1 = any day), modulated by Signal_ITF_Weight (default 1.0). The framework then submits a market order with the lot size from CMoneyFixedLot and the SL/TP distances from Signal_StopLevel and Signal_TakeLevel (both 50 points).

Exit Signal

Exits are handled by the same CExpert framework: when CSignalITF flips direction and the resulting confidence score exceeds Signal_ThresholdClose (default 10), the framework closes the position. Hard exits also occur when the original 50-point SL or 50-point TP is hit. CTrailingNone is wired in, so there is no ratchet or break-even logic — the SL set at entry never moves. The TryClose_EX12024 wrapper retries the close up to 3 times on transient errors with 200ms between attempts, which is the only execution-side exit safeguard in the EA.

Stop Loss

A fixed 50-point stop-loss set at entry from Signal_StopLevel=50.0. On a 5-digit XAUUSD broker where one point is 0.01, this equals $0.50 of adverse move per lot — a tight stop. There is no trailing logic (CTrailingNone is wired) and no break-even move, so the SL is immutable for the entire life of the trade. The TryModify_EX12024 wrapper supports manual SL updates from external code with 3 retries on REQUOTE/TIMEOUT, but no internal logic in this EA ever calls it.

Take Profit

A fixed 50-point take-profit from Signal_TakeLevel=50.0, set on the order at entry. The geometry is exactly 1:1 risk-to-reward against the 50-point SL. The TP never moves (no trailing, no break-even), and there is no partial-close logic in the EA's own code — TryClosePartial_EX12024 is exposed for external callers but never invoked by the CExpert flow.

Best For

XAUUSD intraday traders on M5 bars who want a minimal baseline EA to compare more elaborate systems against, or who want a clean skeleton to extend with their own confirmation and regime logic. The default parameters (any hour, any day, threshold 10, 0.1 lot, 1:1 R:R) make it permissive enough for high-frequency backtests but tight enough on the 50-point SL/TP that a low-spread ECN broker is required for XAUUSD to avoid spread eating the geometry. Minimum recommended balance is $100 (0.1 lot × 10% of free margin = 0.01 lot at the default 10% scaling, which the framework will apply automatically). Best deployed on a low-latency ECN/RAW account with spreads under $0.30 on gold; do not run on a standard account with $0.50+ spreads because the 50-point SL/TP will be eaten by spread costs. Session choice: M5 default works in any session; if you want to specialize, set GoodHourOfDay to the most volatile two-hour window of your preferred session and GoodDayOfWeek to the most volatile day.

Strategy Logic

Pipsgrowth EX12024 MultiIndicatorConfluence — Strategy Logic Analysis (from .mq5 source)

Family: MultiIndicatorConfluence Magic: 22212024 Version: 2.00

BRIEF: Wizard-generated EA using the IntradayTimeFilter (ITF) signal with the standard CExpert framework. Filters trades by hour-of-day and day-of-week, combining fixed-lot money management with threshold-based entry/exit logic. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

INDICATOR STACK:

  • Standard MT5 indicators

KEY FUNCTIONS:

  • OnTrade()
  • OnTimer()
  • TryClose_EX12024()
  • TryClosePartial_EX12024()
  • TryModify_EX12024()

INTERNAL CONSTANTS (0 total):

INPUT PARAMETERS (15 total across 3 groups):

  • [=== Identity ===] Expert_Title = "e3" // Document name
  • [=== Identity ===] InpTradeComment = "Psgrowth.com Expert_12024" // Trade comment
  • [=== Signal ===] Signal_ThresholdOpen = 10 // Signal threshold value to open [0...100]
  • [=== Signal ===] Signal_ThresholdClose = 10 // Signal threshold value to close [0...100]
  • [=== Signal ===] Signal_PriceLevel = 0.0 // Price level to execute a deal
  • [=== Signal ===] Signal_StopLevel = 50.0 // Stop Loss level (in points)
  • [=== Signal ===] Signal_TakeLevel = 50.0 // Take Profit level (in points)
  • [=== Signal ===] Signal_Expiration = 4 // Expiration of pending orders (in bars)
  • [=== Signal ===] Signal_ITF_GoodHourOfDay = -1 // IntradayTimeFilter(-1,0,-1,...) Good hour
  • [=== Signal ===] Signal_ITF_BadHoursOfDay = 0 // IntradayTimeFilter(-1,0,-1,...) Bad hours (bit-map)
  • [=== Signal ===] Signal_ITF_GoodDayOfWeek = -1 // IntradayTimeFilter(-1,0,-1,...) Good day of week
  • [=== Signal ===] Signal_ITF_BadDaysOfWeek = 0 // IntradayTimeFilter(-1,0,-1,...) Bad days of week (bit-map)
  • [=== Signal ===] Signal_ITF_Weight = 1.0 // IntradayTimeFilter(-1,0,-1,...) Weight [0...1.0]
  • [=== Money ===] Money_FixLot_Percent = 10.0 // Percent
  • [=== Money ===] Money_FixLot_Lots = 0.1 // Fixed volume
Pseudocode
// Pipsgrowth EX12024 MultiIndicatorConfluence — Execution Flow (from source analysis)
// Family: MultiIndicatorConfluence
// Wizard-generated EA using the IntradayTimeFilter (ITF) signal with the standard CExpert framework. Filters trades by hour-of-day and day-of-week, combining fixed-lot money management with threshold-based entry/exit logic. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

ON_INIT:
    Create indicator handles: standard set
    Initialize state variables
    Detect broker GMT offset

ON_TICK:
    1. Refresh indicator buffers (closed-bar shift=1)
    2. Manage existing positions:
       - Break-even check
       - ATR trailing stop
       - Profit lock ratchet
       - Time-based exit
       - Opposite-signal exit
    3. If new bar:
       a. ClassifyRegime() — ADX/ATR/BB regime detection
       b. NoTradeGate() checks:
          - Market open + session filter
          - Spread limit
          - Cooldown after loss
          - Consecutive loss limit
          - Kill switch
          - Max drawdown
          - Max concurrent positions
          - Daily/weekly loss limits
       c. GenerateSignal() — strategy-specific entry logic
       d. CheckConfirm() — HTF alignment + R:R + ADX minimum
       e. Calculate position size from risk %
       f. Execute with retry logic
       g. Mark bar to prevent duplicates

ON_TESTER:
    Custom fitness = weighted(RecoveryFactor, ROI, ProfitFactor, TradeCount, Sharpe, Drawdown)

Optimization Profile

Optimized Brokers:
ExnessIC Markets
Optimized Symbols:
XAUUSD
Optimized Timeframes:
M5H1

How to Install This EA on MT5

  1. 1Download the .mq5 file using the button above
  2. 2Open MetaTrader 5 on your computer
  3. 3Click File → Open Data Folder in the top menu
  4. 4Navigate to MQL5 → Experts and paste the .mq5 file there
  5. 5In MT5, right-click Expert Advisors in the Navigator panel → Refresh
  6. 6Drag the EA onto a chart matching the recommended timeframe
  7. 7Configure parameters according to the table on this page
  8. 8Enable Allow Algo Trading and click OK

EA Parameters

ParameterDefaultDescription
Expert_Title"e3"Document name
InpTradeComment"Psgrowth.com Expert_12024"Trade comment
Signal_ThresholdOpen10Signal threshold value to open [0...100]
Signal_ThresholdClose10Signal threshold value to close [0...100]
Signal_PriceLevel0.0Price level to execute a deal
Signal_StopLevel50.0Stop Loss level (in points)
Signal_TakeLevel50.0Take Profit level (in points)
Signal_Expiration4Expiration of pending orders (in bars)
Signal_ITF_GoodHourOfDay-1IntradayTimeFilter(-1,0,-1,...) Good hour
Signal_ITF_BadHoursOfDay0IntradayTimeFilter(-1,0,-1,...) Bad hours (bit-map)
Signal_ITF_GoodDayOfWeek-1IntradayTimeFilter(-1,0,-1,...) Good day of week
Signal_ITF_BadDaysOfWeek0IntradayTimeFilter(-1,0,-1,...) Bad days of week (bit-map)
Signal_ITF_Weight1.0IntradayTimeFilter(-1,0,-1,...) Weight [0...1.0]
Money_FixLot_Percent10.0Percent
Money_FixLot_Lots0.1Fixed volume
Source Code (.mq5)Open Source
Pipsgrowth_com_EX12024.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX12024 e3 — ITF intraday time-filter EA with fixed-lot management, full 12-layer stack."
#include <Expert\Expert.mqh>
//--- available signals
#include <Expert\Signal\SignalITF.mqh>
//--- available trailing
#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input group "=== Identity ==="
input string Expert_Title            ="e3";  // Document name
input string InpTradeComment         ="Psgrowth.com Expert_12024"; // Trade comment
ulong        Expert_MagicNumber      =22212024; // Magic number
bool         Expert_EveryTick        =false; // Process every tick
//--- inputs for main signal
input group "=== Signal ==="
input int    Signal_ThresholdOpen    =10;    // Signal threshold value to open [0...100]
input int    Signal_ThresholdClose   =10;    // Signal threshold value to close [0...100]
input double Signal_PriceLevel       =0.0;   // Price level to execute a deal
input double Signal_StopLevel        =50.0;  // Stop Loss level (in points)
input double Signal_TakeLevel        =50.0;  // Take Profit level (in points)
input int    Signal_Expiration       =4;     // Expiration of pending orders (in bars)
input int    Signal_ITF_GoodHourOfDay=-1;    // IntradayTimeFilter(-1,0,-1,...) Good hour
input int    Signal_ITF_BadHoursOfDay=0;     // IntradayTimeFilter(-1,0,-1,...) Bad hours (bit-map)
input int    Signal_ITF_GoodDayOfWeek=-1;    // IntradayTimeFilter(-1,0,-1,...) Good day of week
input int    Signal_ITF_BadDaysOfWeek=0;     // IntradayTimeFilter(-1,0,-1,...) Bad days of week (bit-map)
input double Signal_ITF_Weight       =1.0;   // IntradayTimeFilter(-1,0,-1,...) Weight [0...1.0]
//--- inputs for money
input group "=== Money ==="
input double Money_FixLot_Percent    =10.0;  // Percent
input double Money_FixLot_Lots       =0.1;   // Fixed volume
//+------------------------------------------------------------------+
//| Global expert object                                             |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Initializing expert
   if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Creating signal
   CExpertSignal *signal=new CExpertSignal;
   if(signal==NULL)
     {
      //--- failed

Full source code available on download

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

Tags:ex12024multiindicatorconfluencepipsgrowthfreemt5xauusd

Clear Warning: Educational Purposes Only

Clear Warning: This Expert Advisor is for educational and testing purposes only. Do NOT use it with real money. Test only on demo accounts. Trading with real money involves substantial risk of capital loss. This does not constitute investment advice.

Recommended Brokers for This EA

These EAs run on MT5 — use a regulated broker with fast execution and tight spreads

Community

Sign in to contributeSign In

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

File NamePipsgrowth_com_EX12024.mq5
File Size10.2 KB
Versionv2.00
PlatformMetaTrader 5
File Type.mq5 Source
StrategyOther
Risk LevelMedium Risk
Timeframes
M5H1
Currency Pairs
XAUUSD
Min. Deposit$100