P
PipsGrowth
أخرىمفتوح المصدر - مجاني

Pipsgrowth EX12010 MultiIndicatorConfluence — إكسبرت أدفايزر إكسبرت أدفايزر

إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5

Pipsgrowth EX12010 MultiIndicatorConfluence — Volatility Gaussian Bands EA with multi-g_Timeframe Gaussian filter, slope detection and band-breakout entries. Confirme. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

إكسبرت EX12010 من PipsGrowth هو روبوت تداول MT5 مبني على فلتر غاوسي رباعي الأقطاب (4-pole Ehlers) بدلاً من نطاقات بولينجر المعتادة. دالة GaussianFilterAdvanced() في الكود المصدري تستخدم معاملات الكاسكيد القياسية لمتوسطين — alpha = 2/(1+length)، a1 = exp(-sqrt(2)pi/length)، b1 = 2a1*cos(sqrt(2)*pi/length)، c1 = 1 - b1 + a1² — وتزرع العودية بأسعار أول ثلاث شموع حتى لا يظهر تشوه في بداية السلسلة. الإعدادات معرّفة لكل إطار زمني على حدة: M1 بطول 6، M5 بطول 8، M15 بطول 10، H1 بطول 12؛ وعتبات الميل 0.00005 و 0.00007 و 0.0001 و 0.00015 على التوالي. الاختراق يعتمد على DistanceMultiplier = 1.1، مع خيار UseDifferentBandsForBuySell = false افتراضياً، أي أن الشراء والبيع يستخدمان نفس النطاق ما لم يفعل المستخدم إعدادات مستقلة (Length_Sell = 6 و DistanceMultiplier_Sell = 1.1).

الفلتر الأول هو ميل الفلتر الغاوسي نفسه: دالة GetGaussianSlope() ترجع الفرق بين قيمة الفلتر الحالي والسابق، فيتطلب الشراء ميلاً موجباً يتجاوز عتبة الإطار، والبيع ميلاً سالباً يتجاوزها في الاتجاه المعاكس. الفلتر الثاني هو المتوسط المتحرك الأسي للإطار الأعلى — افتراضياً TrendFilterTF = 6 أي PERIOD_H4 و TrendEMA = 50، فيتطلب الشراء أن يكون سعر العرض أعلى من EMA-50 على H4 والبيع عكسه. الفلتر الثالث هو EMA(8) على الإطار الزمني الحالي (ConfirmEMA = 8) للتأكيد اللحظي. الفلاتر من الرابع إلى السابع (RSI 14 و ADX 14 و الحجم و MACD) معطلة افتراضياً، أي أن الإكسبرت في الإعداد الافتراضي لا يطبق إلا ثلاثة فلاتر فقط من السبع المذكورة في وصف «12 طبقة». المستخدم الذي يريد تفعيل الفلاتر الإضافية يفعّلها يدوياً عبر enum لكل فلتر.

حجم الصفقة الافتراضي 0.1 لوت مع EnableAutoRisk = false. متغير MoneyManagementMode يمكنه إعادة توجيه الحجم عبر خمسة أوضاع: حجم ثابت، نسبة من الرصيد، نسبة من الإ equity، نسبة من الهامش الحر، أو نسبة من مستوى الهامش — كلها تستخدم 0.10 لوت افتراضياً ما لم يغير المستخدم الوضع. وقف الخسارة وجني الأرباح مشتقان من ATR(14) عبر دالة GetCurrentATR(). ATR_MultiplierSL = 1.5 يضع وقف الخسارة على بُعد 1.5 ضعف ATR من سعر الدخول. TP1_Multiplier = 1.5 و TP2_Multiplier = 2.5 ينتجان هدفين للربح: الأول عند 1.5× ATR والثاني عند 2.5× ATR. مع TradeSplitMode = TRADE_SPLIT_TP1_TP2 يطلق الإكسبرت صفقتين بنصف لوت بدلاً من صفقة واحدة بلوت كامل، فتنغلق الأولى عند TP1 وتستمر الثانية حتى TP2. أما TRADE_FULL_SINGLE فيضع اللوت الكامل على TP1 فقط. فلتر MinATR = 0.03 يمنع الفتح عندما يكون ATR منخفضاً جداً، حتى لو كانت جميع الإشارات الأخرى متوافقة.

إدارة المراكز في ManageOpenPositions() تشغّل خمسة أنواع من أوامر الإغلاق على كل تيكت. وقف الخسارة المتعقب — TrailLookbackCandles = 3 افتراضياً — لا يستخدم مسافة ثابتة بل يمشي على آخر ثلاث قيعان لشموع سابقة (للشراء) أو آخر ثلاث قمم (للبيع) ويسحب الوقف إلى أشد المستويات حمايةً كلما ظهر مستوى أقرب إلى السعر. نقطة التعادل تُفعَّل عند BreakevenATRMultiplier = 1.5× ATR ربح، فيُزحَح الوقف إلى سعر الدخول مع هامش بسيط. TimeBasedExit يغلق أي صفقة عمرها أكثر من MaxTradeDurationMinutes = 120 دقيقة (معطل افتراضياً). وضعا الخروج الاختياريان — ExitIfTrendWeakens (انعكاس ميل الفلتر الغاوسي) و ExitOnHeikenAshiReversal (انقلاب لون شمعة هيكن آشي) — معطلان افتراضياً.

بوابات الأمان في RiskGuardCheck() تعمل على أساس خط أساس الإ equity اليومي مع سقوف صلبة: MaxDrawdownPercent = 10% خلال اليوم، و MinEquityProtection = 100 دولار (أي حساب أقل من 100 دولار يتوقف عن الفتح). دالة CanTradeNow() تعيد ضبط العداد اليومي عند DailyResetHour = 0 وترفض أي دخول جديد بعد MaxTradesPerSymbolPerDay = 5 صفقات. لا يوجد حد خسارة أسبوعي ولا حد يومي للصفقات الإجمالي — هذه الطبقات المذكورة في الوصف طموحية وليست مطبقة. فلتر الأخبار يسحب XML الأسبوعي لـ ForexFactory عبر WebRequest بمهلة 5 ثوانٍ، ويمنع الدخول 15 دقيقة قبل وبعد أي حدث عالي التأثير لعملة الرمز (FilterNewsBySymbol = true). وهو نافذة زمنية نظيفة لكل حدث دون استثناء خاص لبيانات NFP.

التنفيذ يستخدم CTrade مع SetDeviationInPoints(MaxSlippagePoints = 5) و SetExpertMagicNumber(22212010). دوال TryClose_EX12010 و TryModify_EX12010 تعيد المحاولة حتى ثلاث مرات: الإغلاق يعيد المحاولة عند REQUOTE و TIMEOUT و PRICE_OFF و PRICE_CHANGED مع سكون 200 مللي ثانية؛ التعديل يعيد المحاولة عند REQUOTE و TIMEOUT فقط مع سكون 100 مللي ثانية ولا يعيد المحاولة عند PRICE_CHANGED، لذا في الأسواق السريعة قد يتأخر تعديل الوقف. شرط OnlyNewBarEntry وختم الوقت lastTradeCandleTime يجعلان الإكسبرت يقيّم الإشارة مرة واحدة لكل شمعة M5، ما يحد من تكرار الصفقات على الذهب. OppositeCloseMode = CLOSE_OPPOSITE_ON_SIGNAL هو الافتراضي، فعند ظهور إشارة بيع جديدة يُغلق الإكسبرت أي شراء قائم قبل فتح البيع. في الباك تيست على XAUUSD M5، يجب أن يُظهر الإكسبرت عدد صفقات معتدلاً (بضع صفقات أسبوعياً كحد أقصى)، مع معظم الأرباح من نصف TP1 وأحياناً تمتد الصفقة إلى TP2.

تفاصيل الاستراتيجية

في كل تيكت على شمعة M5 يحسب الإكسبرت قيمة الفلتر الغاوسي، ثم يحسب الميل كفرق بين القيمة الحالية والسابقة، ويقارنه بأرضية الإطار (0.00007 على M5 افتراضياً). عند تجاوز الميل للأرضية، يتحقق الإكسبرت من اتجاه H4 EMA-50 ومن تأكيد EMA-8 على الإطار الحالي، ثم يضيف الفلاتر الاختيارية (RSI و ADX و الحجم و MACD و SuperTrend) عبر موزِّع ConfirmAllFilters(). عند اجتياز كل البوابات المفعّلة — بما في ذلك سبريد ≤ 30 نقطة و ATR0.03 وعدم وجود حدث إخباري في نافذة الحظر وصفقة واحدة لكل شمعة — تستدعي ExecuteBuyOrders أو ExecuteSellOrders أمر السوق بحجم تحسبه CalculateLotSize(). بعدها تُشغّل ManageOpenPositions() تتابع الوقف المتعاقب ونقطة التعادل والمخارج الاختيارية على كل تيكت لاحق حتى TP1 أو TP2 أو يُفعَّل أي وقف.

إشارة الدخول

تُولَّد الإشارات عبر اختراقات نطاق غاوسي في اتجاه ميل فلتر إهلرز، مع بوابة من متوسط H4 EMA-50 للاتجاه ومن EMA-8 على الإطار الحالي للتأكيد اللحظي. افتراضياً لا يعمل إلا ثلاثة فلاتر فقط؛ الفلاتر الاختيارية (RSI و ADX و الحجم و MACD و SuperTrend و هيكن آشي) معطلة ولا تُفعَّل إلا بطلب المستخدم عبر مفاتيح التشغيل الخاصة بكل فلتر. تُقيَّم الصفقة مرة واحدة لكل شمعة M5 ولا تُفتح إلا إذا كان السبريد أقل من 30 نقطة ولم يكن هناك حدث إخباري في نافذة الحظر البالغة 15 دقيقة.

إشارة الخروج

تعمل المخارج عبر تتابع من خمسة أوامر إدارة في ManageOpenPositions() على كل تيكت. الوقف المتعقب ينسحب إلى أشد مستويات آخر ثلاث قيعان (للشراء) أو قمم (للبيع) حمايةً؛ نقطة التعادل تُزحَح إلى سعر الدخول عند ربح 1.5× ATR؛ الخيار الزمني يغلق الصفقات الأقدم من 120 دقيقة؛ خيار انعكاس ميل الفلتر الغاوسي يتفعّل عند انقلاب الميل؛ وخيار انعكاس هيكن آشي يُغلق عند تغير لون الشمطة المحسوبة. إشارات الاتجاه المعاكس تغلق أيضاً أي مركز معاكس مفتوح عبر TryClose_EX12010.

وقف الخسارة

يُحسب وقف الخسارة في ExecuteBuyOrders و ExecuteSellOrders كـ 1.5× ATR(14) عند شمعة الدخول، ويشدّه الوقف المتعاقب وقف نقطة التعادل عند 1.5× ATR ربح في ManageOpenPositions() عادة قبل أن يصل السعر إليه. سقف السحب العام عند 10% من خط أساس الإ equity اليومي وأرضية 100 دولار يوقفان كل الفتحات الجديدة في حال الاختراق.

جني الأرباح

هدفا ربح عند 1.5× و 2.5× ATR يُوضعان افتراضياً. TradeSplitMode = TRADE_SPLIT_TP1_TP2 يقسّم الدخول إلى صفقتين بنصف لوت، الأولى تُغلق عند TP1 والثانية تستمر حتى TP2؛ التحويل إلى TRADE_FULL_SINGLE يركّز اللوت الكامل على TP1 فقط. الوقف المتعاقب ونقطة التعادل يغلقان عادة قبل بلوغ TP2 في المتوسط.

الأنسب لـ

مناسب لـ XAUUSD على M5 بحد أدنى 100 دولار على حساب ECN/Raw منخفض السبريد (السبريد أقل من 30 نقطة هو البوابة الصلبة)، ويعمل بأفضل شكل عندما يكون ميل الفلتر الغاوسي على M5 ذا اتجاه واضح. الإعداد الافتراضي RiskPercent = 1.0% مع EnableAutoRisk = false (0.10 لوت ثابت) مُعاير لحساب ميكرو 1,000–5,000 دولار؛ ارفع حجم اللوت أو فعّل EnableAutoRisk للأرصدة الأكبر. موصى به للمتداولين الذين يفضلون تفعيل الفلاتر الاختيارية واحداً تلو الآخر ومراقبة لوحة ConfirmAllFilters() لمعرفة البوابة التي يرفض عندها الإكسبرت في الأسواق المتقلبة.

منطق الاستراتيجية

Pipsgrowth EX12010 MultiIndicatorConfluence — تحليل منطق الاستراتيجية (من كود .mq5)

العائلة: MultiIndicatorConfluence الماجيك: 22212010 الإصدار: 2.00

الوصف: Volatility Gaussian Bands EA with multi-g_Timeframe Gaussian filter, slope detection and band-breakout entries. Confirmed by HTF trend EMA, Heiken Ashi, RSI, ADX, volume and SuperTrend filters. Supports split TPs, trailing, recovery mode and risk- based lot sizing. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

  • مؤشرات قياسية

الدوال الرئيسية:

  • ShowInfoPanel()
  • ShowFilterPanel()
  • AddFilterStatus()
  • CanTradeNow()
  • ShouldOpenTrade()
  • CheckTradeConditions()
  • ManageOpenPositions()
  • CalculateLotSize()
  • TrackTrade()
  • CanOpenTrade()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX12010 MultiIndicatorConfluence — Execution Flow (from source analysis)
// Family: MultiIndicatorConfluence
// Volatility Gaussian Bands EA with multi-g_Timeframe Gaussian filter, slope detection and band-breakout entries. Confirmed by HTF trend EMA, Heiken Ashi, RSI, ADX, volume and SuperTrend filters. Supports split TPs, trailing, recovery mode and risk- based lot sizing. 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)

ملف التحسين

الوسطاء المُحسّنون:
ExnessIC Markets
الرموز المُحسّنة:
XAUUSD
الأطر الزمنية المُحسّنة:
M5

كيفية تثبيت الإكسبرت على MT5

  1. 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
  2. 2افتح برنامج MetaTrader 5 على حاسوبك
  3. 3من القائمة العلوية اختر File → Open Data Folder
  4. 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
  5. 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
  6. 6اسحب الإكسبرت على رسم بياني يطابق الإطار الزمني الموصى به
  7. 7هيّء المعاملات وفقاً للجدول في هذه الصفحة
  8. 8فعّل Allow Algo Trading واضغط OK

معاملات الإكسبرت

المعاملالافتراضيالوصف
TradeModeTRADE_BUY_AND_SELLWhether to close existing opposite trades when a new signal appears.
OppositeCloseModeCLOSE_OPPOSITE_ON_SIGNALTrading style: one position at a time, or allow multiple.
TradingStyleSINGLE_POSITIONWhether to allow hedging mode (holding both buy and sell)
AllowHedgingModefalseOrder type: Market execution or Pending orders.
OrderExecModeEXECUTE_MARKET_ORDERSSignal behavior: normal or reversed.
SignalLogicSIGNAL_NORMALTrade splitting: one TP or split into multiple take profits.
Timeframe1Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Signal evaluation timeframe
PriceSource1Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Source price for calculations
MaxSlippagePoints5Max allowed slippage in points
EnableGaussianFiltertrue--- M1 Settings ---//
G_MinSlope_M10.00005--- M5 Settings ---//
G_MinSlope_M50.00007--- M15 Settings ---//
G_MinSlope_M150.0001--- H1 Settings ---//
G_MinSlope_H10.00015--- Slope Filter Control (uses Gaussian slope) ---//
DistanceMultiplier1.1Band width multiplier (Buy)
UseDifferentBandsForBuySellfalseUse separate Sell side settings
Length_Sell6Sell Gaussian Length
DistanceMultiplier_Sell1.1Band width multiplier (Sell)
TrendFilterTF6Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)
TrendEMA50--- EMA Confirmation Mode ---
ConfirmEMA8--- Heiken Ashi Mode ---
EnableHAEngulfingConfirmationfalse--- RSI Filter ---
RSISellLevel45.0--- ADX Filter ---
MinADXStrength20.0--- Volume Filter ---
VolumeLookback10Lookback bars to calculate average volume
VolumeSpikeMultiplier1.5Multiplier over average to consider as spike
RequireVolumeSpikefalseRequire volume spike as extra condition
ST_SourcePrice5Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted)
TrendScoreMinThreshold70--- Price Action & Entry Timing ---
Lots0.1Fixed lot size if auto risk is disabled
EnableAutoRiskfalseEnable dynamic lot size based on balance risk %
RiskPercent1.0Risk % per trade when AutoRisk is enabled
MMReferencePercent1.0Percentage used in selected MM mode
MMMinLot0.01Minimum lot allowed by broker
MMMaxLot100.0Maximum lot allowed
ATR_MultiplierSL1.5Multiplier for Stop Loss
TP1_Multiplier1.5First Take Profit (used if TradeSplitMode active)
TP2_Multiplier2.5Second Take Profit (used if TradeSplitMode active)
SLDistancePoints150used if EnableAutoRisk = true
MinATR0.03Skip entries if ATR is too low (avoids low volatility traps)
MinBreakDistance0.3Minimum required distance between price and band breakout
MaxAllowedSpreadPoints30.0Max spread in points (e.g., 30 points = 3.0 pips)
MaxDrawdownPercent10.0Stop all trading if drawdown exceeds this percentage
MaxDailyLossPercent5.0Daily loss cutoff for trades
MaxTradesOpenAtOnce2Limit the number of concurrent trades
StopTradeAfterXLosses3Max consecutive losses allowed before pause
MinEquityProtection100.0Stop trading if equity falls below this amount
MaxTradesPerSymbolPerDay5Max number of trades per symbol per day
DailyResetHour0Time to reset trade counters (0 = midnight server time)
EnableLotIncreaseOnWinfalseIncrease lot size after a win
EnableLotReductionOnDrawdownfalseReduce lot size if drawdown exceeds threshold
LotStepFactorOnWin1.2Step multiplier if increasing lots on win
LotDrawdownReduceThreshold10.0Drawdown % threshold before reducing lot
EnableRecoveryModefalseActivate smaller lot during recovery
RecoveryLotSize0.01Lot size to use during recovery phase
UseSeparateBuySellLimitsfalseIndependent trade limits for Buy/Sell
MaxOpenBuyTrades1Max allowed Buy trades if separated
MaxOpenSellTrades1Max allowed Sell trades if separated
UseMinimumTradeAgefalseRequire previous trades to reach age before re-entry
MinTradeAgeMinutes10Age in minutes required before reentry is allowed
UseMagicFilterfalseFilter based on Magic Number (for multi-EA use)
EntryMagicNumber22212010Magic number assigned to new entries
InpTradeComment"Psgrowth.com Expert_12010"Trade Comment
MaxTradesPerMagic1Maximum number of trades allowed per magic number
ExitSlopeSensitivity0.0001Minimum slope change to trigger exit
AllowAutoOverrideInputsForTuningfalse+------------------------------------------------------------------+
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX12010.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX12010 A2_XAUUSD_5M — Volatility Gaussian Bands multi-filter confluence, full 12-layer stack."

#include <Trade\Trade.mqh>
CTrade trade;
#define MathPI 3.14159265358979323846
datetime lastTradeCandleTime = 0;
string g_filterStatus[];


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_PriceSource = PRICE_CLOSE;
ENUM_APPLIED_PRICE g_ST_SourcePrice = PRICE_CLOSE;
input group "=== 1. GENERAL TRADE SETTINGS ==="

// Trade mode: choose Buy, Sell, or both. Prevents conflicts between EnableBuy/Sell.
// Benefit: safer logic, no contradictory settings.
enum ENUM_TRADE_MODE {
   TRADE_BUY_ONLY,        // Only Buy positions
   TRADE_SELL_ONLY,       // Only Sell positions
   TRADE_BUY_AND_SELL     // Allow both directions
};
input ENUM_TRADE_MODE TradeMode = TRADE_BUY_AND_SELL;



// Whether to close existing opposite trades when a new signal appears.
// Helps reduce conflicting positions.

الكود المصدري الكامل متاح عند التحميل

لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.

الوسوم:ex12010multiindicatorconfluencepipsgrowthfreemt5xauusd

تحذير صريح: لأغراض تعليمية فقط

تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.

وسطاء موصى بهم لهذا الإكسبرت

هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض

مجتمع المستخدمين

سجّل دخولك للمشاركةتسجيل الدخول

لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.

اسم الملفPipsgrowth_com_EX12010.mq5
حجم الملف75.2 KB
الإصدارv2.00
PlatformMetaTrader 5
نوع الملف.mq5 Source
الاستراتيجيةأخرى
المخاطرةمخاطرة متوسطة
الأطر الزمنية
M5
أزواج العملات
XAUUSD
الحد الأدنى للإيداع$100