Pipsgrowth EX12052 MultiIndicatorConfluence — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M1، H1
Pipsgrowth EX12052 MultiIndicatorConfluence — True Gaussian Bands mean-reversion EA with Gaussian- weighted MA and standard deviation bands, signal buffer with revali. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX12052 هو Expert Advisor يعمل على مبدأ الارتداد إلى المتوسط مبني حول نطاق Gaussian الحقيقي، وهو غلاف سعري مع نمذجة نواة يختلف عن إعداد Bollinger التقليدي في نقطة محددة: يتم حساب كل من الخط الأوسط والنطاقين الخارجيين من متوسط متحرك مرجح أوزانه مأخوذة من صف مثلث باسكال، مع تطبيع المجموع إلى واحد. في BuildGaussianWeights() يبني المستنير C(period-1, k) بشكل تكراري (بدون عاملي، حتى لا يحدث فيض على الفترات الطويلة) ويمرر هذه الأوزان إلى ComputeTGB(). والنتيجة هي تنعيم قريب من Gaussian — كلما كانت العينة أقرب إلى المركز زاد وزنها في كل من المتوسط والانحراف المعياري. مع الإعدادات الافتراضية TGB_Period=21 و TGB_StdDevFactor=2.0، تكون النطاقات أضيق بصرياً من Bollinger لفترة 21 على نفس البيانات لأن النواة تقلل من وزن عينات الأطراف بدلاً من التعامل معها بالتساوي.
الإشارة نفسها هي تقاطع لمسي مع النطاق. ComputeIntent() يسحب إغلاق آخر شمعتين عبر GetAppliedPriceSeries()، ويبحث عن إغلاق الشمعة -2 تحت النطاق السفلي مع إغلاق الشمعة -1 فوق النطاق السفلي (شراء، السبب="cross_up_lower")، أو العكس للبيع. لا يوجد فحص ميل، ولا مرشح زخم، ولا محاذاة اتجاه في المحرك الأساسي — الإشارة هي فقط الإغلاق الذي يعبر مرة أخرى داخل الغلاف بعد انحراف واحد. المدخل MinHistoryBars=200 يتحكم في وقت السماح لـ ComputeTGB() بالعمل، فينتظر المستنير حتى تتوفر 200 شمعة على الأقل من التاريخ النظيف للإطار الزمني المختار.
في حين أن معظم Expert Advisors للارتداد إلى المتوسط تطلق الأمر لحظة عبور الإغلاق للنطاق، يضع EX12052 مخزن إشارة بين الإشارة والأمر. عندما يكون Sb_EnableBuffer مفعّلاً، فإن التقاطع الجديد على شمعة جديدة لا يضع أمراً — بل ينشئ سجل SignalBuffer يحتوي على الاتجاه والطابع الزمني والإغلاق عند التقاطع (سعر الارتكاز). لا يتم تنفيذ الصفقة إلا على تيك لاحق، وفقط إذا استمر Buffer_Valid() بإرجاع true، وهو ما يتطلب TimeCurrent()-g_sig.tstamp <= Sb_ValidityMinutes*60. مع نافذة الثلاث دقائق الافتراضية يكون لدى المستنير ثلاث دقائق للعمل فعلياً على الإشارة؛ بعدها يتم مسح المخزن بالسبب="expired". داخل هذه الدقائق الثلاث، يقوم RevalidateIfNeeded() بإعادة تشغيل ComputeTGB على آخر شمعة مغلقة، ويتحقق من أن الإغلاق لا يزال على الجانب الصحيح من النطاق ذي الصلة، وإذا كان Sb_MaxDriftPoints=100 مفعّلاً، يتحقق أيضاً من أن سعر ask/bid الحالي لم ينحرف أكثر من 100 نقطة عن سعر الارتكاز وقت التقاطع. هذا هو الدفاع الرئيسي للمستنير ضد مطاردة تقاطع تحرك بالفعل.
تعمل إدارة المراكز في كل تيك وتنقسم إلى روتينيين متوازيين. تجمع RunSLManagers() بين نموذجي وقف. طبقة DLP (تأمين الربح الديناميكي) مفعلة افتراضياً بـ SL_LockEveryXPoints=200 و SL_LockMinusBuffer=40: بمجرد تحرك السعر 200 نقطة في الربح، يتم رفع الوقف إلى open ± (1×200 - 40) = 160 نقطة. بعد 400 نقطة من الربح، يقفز الوقف إلى 360 نقطة. الخطوة أحادية الاتجاه — ModifySL() ترفض أي تعديل يخفف الوقف، ويتحقق التحقق أيضاً من SYMBOL_TRADE_STOPS_LEVEL للرمز حتى لا يقع الوقف الجديد داخل منطقة التجميد. اختيارياً، يقوم SL_EnableATR بتفعيل وقف مشتق من ATR عند SL_ATR_Period=14 و SL_ATR_Multiplier=2.0. يتم دمج الوقفين كـ"الأكثر أماناً": للشراء، يتم تطبيق الأعلى من الاثنين؛ للبيع، الأدنى. تعمل RunTPManager() فقط عندما يكون TP_EnableATR مفعّلاً وتستخدم مؤشر ATR منفصل (TP_ATR_Period=14، TP_ATR_Multiplier=2.0 افتراضياً)؛ عندما يتحرك السعر TP_ATR_Multiplier × ATR في الربح، يتم استدعاء ClosePosition() عبر غلاف CTrade وهو TryClose_EX12052() مع 3 محاولات إعادة على requote/timeout.
تحديد حجم المركز هو الجزء الأكثر قابلية للتكوين في المستنير. يقوم ComputeFinalVolume() بتشغيل خمس طرق تحديد حجم مستقلة بالتوازي — Sizing_Fixed (Sz_FixedLot=1.00 افتراضي، مفعّل)، Sizing_Balance (Sz_BalancePerLot=5000، معطل)، Sizing_Equity (Sz_EquityPerLot=5000، معطل)، Sizing_PercentRisk (Sz_RiskPercent=1.0%، معطل)، و Sizing_ATR (Sz_RiskPerATR=10، معطل) — ويختار الحد الأدنى من الطرق المفعّلة، ثم يمرر النتيجة عبر NormalizeVolume() التي تقرب إلى g_volstep وتقص بين Sz_MinLotClamp=0.01 و Sz_MaxLotClamp=50. التركيبة متحفظة عمداً: تفعيل المزيد من طرق تحديد الحجم لا يجعل اللوت أكبر أبداً، بل أصغر فقط. يستخدم PercentRisk EstimateSLDistancePointsForRisk() لمعرفة مسافة SL، مع تفضيل المساسة المشتقة من ATR إذا كان SL_EnableATR مفعّلاً، وإلا حجم خطوة DLP، وإلا Sz_RiskSL_FallbackPoints=300 الافتراضي.
يتم تكديس التأكيدات فوق التقاطع الأساسي. تعمل MA_OK() و RSI_OK() و ADX_OK() كحواجز مستقلة على الدخول وكلها معطلة افتراضياً — تشغيلها هو اختيار لكل مدخل. C_MA_Enabled مع C_MA_Period=200 و C_MA_Method=MODE_EMA يتطلب أن يكون السعر على الجانب الصحيح من MA (إغلاق ≥ MA للشراء، إغلاق ≤ MA للبيع). C_RSI_Enabled مع C_RSI_Period=14 والنطاقين C_RSI_BuyMax=60 / C_RSI_SellMin=40 يشفران تحيز الارتداد إلى المتوسط — شراء فقط عندما يكون RSI عند 60 أو أقل، بيع فقط عندما يكون RSI عند 40 أو أعلى. C_ADX_Enabled مع C_ADX_Period=14 و C_ADX_Min=15 يرشح الأسواق الأكثر هدوءاً من خلال اشتراط ADX ≥ 15. لا شيء من هذا مفعّل في الإعداد الافتراضي، لذا السلوك الافتراضي هو تقاطع TGB الخام مع التحقق من المخزن.
تعمل سلسلة البوابات في GatesOK() بهذا الترتيب في كل محاولة دخول: حداثة التيك (رفض إذا TimeCurrent() - tick.time > Misc_MaxTickAgeSec=5)، فحص الجلسة عبر SessionsOK()، SpreadOK() مع متوسط 200 تيك متحرك (أو 300 نقطة حد مطلق إذا F_Spread_UseAbsolute=true)، SlippageOK() مع F_Slip_MaxPoints=5، التأكيدات الثلاثة، فحص الهامش الحر (FM_MinFreeMargin=500 افتراضياً)، نافذة إيقاف سلسلة الخسائر، حد المراكز الإجمالي (Add_MaxOpenTrades=5)، وأخيراً فحص ربحية الإضافات (Add_OnlyProfitable=true يتطلب أن تكون جميع المراكز في نفس الاتجاه رابحة بـ Add_MinProfitPts=5.0 نقطة على الأقل قبل أن تنطلق إضافة أخرى). الجلسات الافتراضية هي طوكيو 02:00-11:00، لندن 10:00-18:00، نيويورك 15:00-23:00، كلها من الاثنين إلى الجمعة فقط، مع تعطيل السبت والأحد.
تعيش حراسة الإيقاف في OnTradeTransaction(). عندما يُغلق صفقة بربح سالب (بعد swap والعمولة)، يزداد g_lossStreakCount؛ عند أول إغلاق رابح يعود إلى صفر. يتم إطلاق مشغلي إيقاف من السلسلة: Pause_OnLossCount=true مع Pause_LossCount=3 يعين g_tradePauseUntil إلى TimeCurrent() + 30 دقيقة (Pause_LossCount_Min=30)؛ Pause_OnLossAmount=true مع Pause_LossAmount=200 يعين نفس g_tradePauseUntil إلى TimeCurrent() + Pause_LossAmt_Min=30 دقيقة. أي مشغل يتم إطلاقه يمسح عدّاده بحيث تبدأ السلسلة التالية من جديد. يستخدم أمر الإرسال req.sl=0 و req.tp=0 عند الفتح — تتم إدارة SL و TP بالكامل بواسطة RunSLManagers() و RunTPManager() في التيكات اللاحقة، ولهذا السبب تعليقات الصفقة على المراكز هي الشيء الوحيد الذي يراه الوسيط وقت التنفيذ (يتم إرسال الأمر كأمر سوق بدون SL/TP صلب، ويسقط غلاف CTrade إلى أوضاع FOK → IOC → RETURN عبر ResolveFillingMode()).
ما يعنيه هذا للمتداول عملياً: المستنير ينتظر انحراف نطاق حقيقي، ويمسك الإشارة لمدة 3 دقائق مع إعادة فحص النطاقات، ولا يطلق النار إلا عندما يظل التقاطع صالحاً. ومن هناك يختار أصغر لوت تتفق جميع طرق تحديد الحجم المفعّلة على أنه آمن، ويدير المركز بسلم متدرج يقفل المزيد من الربح تدريجياً، ويخرج لمدة نصف ساعة بعد ثلاث خسائر متتالية أو 200 دولار من الخسارة التراكمية. مستوى المخاطرة الافتراضي متوسط مع حد أدنى للإيداع 100 دولار على XAUUSD. الإطار الزمني الافتراضي هو M1، ولكن يمكن تعيين StrategyTimeframe إلى M1 أو M5 أو M15 أو M30 أو H1 أو H4 أو D1، وعمل التيك رخيص بما يكفي ليعمل على جميعها دون مشاكل. ما دون M1 غير مدعوم بنطاق المدخلات؛ وما فوق D1 يصبح غلاف TGB أملس جداً لالتقاط معظم ارتدادات داخل اليوم.
تفاصيل الاستراتيجية
يستبدل نطاق Gaussian الحقيقي Bollinger القياسي: تبني BuildGaussianWeights() نواة Pascal ذات الصف الثنائي، ويمرر ComputeTGB() تلك النواة إلى كل من المتوسط المرجح والتباين المرجح على TGB_Period=21 عينة، والنتيجة هي أغلفة TGB_StdDevFactor=2.0 التي تزن وسط النافذة بشكل أثقل من الأطراف. ثم يراقب ComputeIntent() إغلاق آخر شمعتين للبحث عن تقاطع لمسي مع النطاق — تحت-ثم-فوق النطاق السفلي يطلق شراء، فوق-ثم-تحت النطاق العلوي يطلق بيع. بدلاً من التصرف في التقاطع فوراً، يوقفه المستنير في SignalBuffer بصلاحية 3 دقائق، وتعيد TryEntries() في OnTick تشغيل فحص التقاطع عبر RevalidateIfNeeded() قبل أن يبني SendEntry() MqlTradeRequest — يخرج الأمر عند ask/bid مع req.sl=0 و req.tp=0 ويتم تنفيذه من خلال سلسلة FOK → IOC → RETURN الاحتياطية في ResolveFillingMode()، بينما يتم تكديس SL/TP الفعلي بعد ذلك بواسطة RunSLManagers() و RunTPManager() في كل تيك لاحق. يختار تحديد الحجم الحد الأدنى من اللوت من أي من النماذج الخمسة (Fixed, Balance, Equity, PercentRisk, ATR) المفعّلة، ويجمع مدير SL لكل تيك بين متدرج DLP و ATR-SL الاختياري كـ"الأكثر أماناً" قبل دفع الوقف الجديد عبر تحقق عدم التخفيف في ModifySL().
يتم إطلاق الأوامر على تقاطع نطاق TGB: شراء عندما أغلقت الشمعة السابقة تحت النطاق Gaussian السفلي وتغلق الشمعة الأخيرة فوقه مرة أخرى، بيع على النسخة المعكوسة. مع Sb_EnableBuffer=true يتم الاحتفاظ بالتقاطع في SignalBuffer لمدة تصل إلى 3 دقائق (Sb_ValidityMinutes) وإعادة التحقق منه في كل تيك — RevalidateIfNeeded() يرفض الصفقة إذا عاد آخر إغلاق عبر النطاق أو إذا انحرف سعر ask/bid الحالي أكثر من Sb_MaxDriftPoints=100 عن سعر ارتكاز التقاطع. بعد ذلك تتجاوز الصفقة البوابات (حداثة التيك، الجلسة، السبريد، الانزلاق، تأكيدات MA/RSI/ADX الاختيارية، الهامش الحر، إيقاف سلسلة الخسائر، حد المراكز الإجمالي، فحص ربحية الإضافات) قبل أن يرجع ComputeFinalVolume() اللوت ويطلق SendEntry() أمر السوق عبر غلاف CTrade.
تتم إدارة الخروج في كل تيك بواسطة RunTPManager()، التي تغلق المركز عندما يتحرك السعر TP_ATR_Multiplier=2.0 × ATR(14) في الربح (فقط عندما يكون TP_EnableATR مفعّلاً). إذا كان TP معطلاً، فإن مسار الخروج الصلب الوحيد هو تقاطع TGB عكسي في الاتجاه المعاكس أو انعكاس تأكيدات MA/RSI/ADX الاختيارية. كما يتم إغلاق جميع الصفقات المفتوحة قسرياً بواسطة غلاف CTrade وهو TryClose_EX12052() مع 3 محاولات إعادة (200ms sleep على requote/timeout) عند تشغيل TP، و ModifySL() لن تخفف الوقف تحت أي ظرف — بمجرد نقل الوقف، يتشدد فقط.
وقف الخسارة هو الأكثر أماناً بين DLP و ATR-SL: خطوة متدرجة 200 نقطة مع عازل 40 نقطة (open ± (steps×200 - 40) بمجرد أن يصبح السعر في الربح) أو وقف جاذب ATR(14) × 2.0 — أيهما أقرب إلى السعر في الاتجاه الصحيح. ترفض ModifySL() أي تعديل يخفف وقفاً موجوداً، وتحترم SYMBOL_TRADE_STOPS_LEVEL، وتعمل في كل تيك. مع SL_EnableDLP=true (افتراضي) و SL_EnableATR=false (افتراضي)، يأتي المستنير مع متدرج DLP خالص وبدون طبقة ATR-SL إضافية.
جني الأرباح اختياري وقائم على ATR. عندما يكون TP_EnableATR=true، يغلق المستنير المركز بمجرد تحرك السعر TP_ATR_Period=14 × TP_ATR_Multiplier=2.0 في الربح من سعر الدخول، مع توجيه الإغلاق عبر إعادة المحاولة الثلاثية لـ TryClose_EX12052() في CTrade. مع تعطيل TP (افتراضي)، يتم الاحتفاظ بالمركز لأجل غير مسمى والخروج فقط على إشارة عكسية، أو إيقاف هامش حر، أو إغلاق يدوي — يحمي متدرج DLP الربح، لكن لا يوجد TP صلب على الأمر نفسه.
موصى به لـ XAUUSD M1 (الإطار الزمني الافتراضي للاستراتيجية) وغيرها من رموز الارتداد إلى المتوسط عالية التذبذب على حساب ECN/RAW منخفض السبريد. مع اللوت الثابت الافتراضي 1.00 يحتاج المستنير إلى 100 دولار على الأقل من الرصيد لتداول الحد الأدنى من العقد، وإيقاف سلسلة الخسائر (200 دولار تراكمي أو 3 خسائر متتالية، 30 دقيقة تهدئة) يحافظ على ضرر الجلسة محدوداً. الجلسات الافتراضية طوكيو 02:00-11:00 / لندن 10:00-18:00 / نيويورك 15:00-23:00 مضبوطة لساعة خادم GMT+2 / GMT+3، لذا يجب على المتداولين على وسيط UTC تقديم Ses1/Ses2/Ses3_Start_HH بمقدار 2-3 ساعات. المخاطرة متوسطة افتراضياً لكنها ترتفع عند تفعيل جميع التأكيدات الأربعة في وقت واحد — معظم المستخدمين المباشرين سيشغلون مع تأكيدات معطلة ومتدرج DLP كحامي الربح الوحيد.
منطق الاستراتيجية
Pipsgrowth EX12052 MultiIndicatorConfluence — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: MultiIndicatorConfluence
الماجيك: 22212052
الإصدار: 2.00
الوصف:
True Gaussian Bands mean-reversion EA with Gaussian- weighted MA and standard deviation bands, signal buffer with revalidation, multi-model position sizing, DLP stop manager, optional ATR-SL/TP, and multi-session filtering. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
Log()LogThrottled()RefreshSymbolInfo()PointsToPrice()PriceToPoints()DayEnabled()InSession()SessionsOK()GetCurrentSpreadPoints()Median()
// Pipsgrowth EX12052 MultiIndicatorConfluence — Execution Flow (from source analysis)
// Family: MultiIndicatorConfluence
// True Gaussian Bands mean-reversion EA with Gaussian- weighted MA and standard deviation bands, signal buffer with revalidation, multi-model position sizing, DLP stop manager, optional ATR-SL/TP, and multi-session filtering. 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)ملف التحسين
كيفية تثبيت الإكسبرت على MT5
- 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
- 2افتح برنامج MetaTrader 5 على حاسوبك
- 3من القائمة العلوية اختر File → Open Data Folder
- 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
- 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
- 6اسحب الإكسبرت على رسم بياني يطابق الإطار الزمني الموصى به
- 7هيّء المعاملات وفقاً للجدول في هذه الصفحة
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpMagicNumber | 22212052 | 2220 + Expert ID (314) |
| InpSymbol | "" | Symbol override ("" = chart symbol) (Opt: -, -, -) |
| StrategyTimeframe | 1 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // StrategyTimeframe (Opt: PERIOD_M1,1,PERIOD_M15) |
| InpOrderFilling | FillAuto | Order filling mode: Auto/FOK/IOC/RETURN (Opt: 0,1,3) |
| InpAllowBuy | true | Allow BUY entries (Opt: false, true, true) |
| InpAllowSell | true | Allow SELL entries (Opt: false, true, true) |
| TGB_Period | 21 | TGB Period (odd recommended) (Opt: 7,2,61) |
| TGB_StdDevFactor | 2.0 | Bands StdDev Multiplier (Opt: 0.5,0.1,4.0) |
| TGB_Price | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted)// Applied price (Opt: PRICE_CLOSE,1,PRICE_TYPICAL) |
| TGB_MinHistoryBars | 200 | Minimum bars to operate (Opt: 100,50,2000) |
| Sb_EnableBuffer | true | Enable Signal Buffer (Opt: false, true, true) |
| Sb_ValidityMinutes | 3 | SignalValidityMinutes (Opt: 1,1,60) |
| Sb_RevalidateDirection | true | RevalidateDirection before order send (Opt: false, true, true) |
| Sb_MaxDriftPoints | 100 | MaxDriftPoints from anchor (points) (Opt: 0,10,1000) |
| F_Spread_Enabled | true | Enable Spread Filter (Opt: false, true, true) |
| F_Spread_UseAbsolute | false | Use Absolute cap (else median×multiplier) (Opt: false, true, true) |
| F_Spread_AbsCapPoints | 300 | Absolute cap (points) (Opt: 50,10,2000) |
| F_Spread_MedianTicks | 200 | Rolling median window (ticks) (Opt: 50,10,2000) |
| F_Spread_MedianMult | 3.0 | Multiplier × rolling median (Opt: 1.0,0.1,5.0) |
| F_Slip_Enabled | true | Enable Slippage Filter (Opt: false, true, true) |
| F_Slip_MaxPoints | 5 | Max permitted slippage (points) (Opt: 1,1,50) |
| Ses_Enabled | true | Enable Sessions Filter (Opt: false, true, true) |
| Ses1_Start_HH | 02 | S1 Start Hour (Opt: 0,1,23) |
| Ses1_Start_MM | 00 | S1 Start Minute (Opt: 0,1,59) |
| Ses1_End_HH | 11 | S1 End Hour (Opt: 0,1,23) |
| Ses1_End_MM | 00 | S1 End Minute (Opt: 0,1,59) |
| Ses1_Mon | true | S1 Monday (Opt: false, true, true) |
| Ses1_Tue | true | S1 Tuesday (Opt: false, true, true) |
| Ses1_Wed | true | S1 Wednesday (Opt: false, true, true) |
| Ses1_Thu | true | S1 Thursday (Opt: false, true, true) |
| Ses1_Fri | true | S1 Friday (Opt: false, true, true) |
| Ses1_Sat | false | S1 Saturday (Opt: false, true, true) |
| Ses1_Sun | false | S1 Sunday (Opt: false, true, true) |
| Ses2_Start_HH | 10 | S2 Start Hour (Opt: 0,1,23) |
| Ses2_Start_MM | 00 | S2 Start Minute (Opt: 0,1,59) |
| Ses2_End_HH | 18 | S2 End Hour (Opt: 0,1,23) |
| Ses2_End_MM | 00 | S2 End Minute (Opt: 0,1,59) |
| Ses2_Mon | true | S2 Monday (Opt: false, true, true) |
| Ses2_Tue | true | S2 Tuesday (Opt: false, true, true) |
| Ses2_Wed | true | S2 Wednesday (Opt: false, true, true) |
| Ses2_Thu | true | S2 Thursday (Opt: false, true, true) |
| Ses2_Fri | true | S2 Friday (Opt: false, true, true) |
| Ses2_Sat | false | S2 Saturday (Opt: false, true, true) |
| Ses2_Sun | false | S2 Sunday (Opt: false, true, true) |
| Ses3_Start_HH | 15 | S3 Start Hour (Opt: 0,1,23) |
| Ses3_Start_MM | 00 | S3 Start Minute (Opt: 0,1,59) |
| Ses3_End_HH | 23 | S3 End Hour (Opt: 0,1,23) |
| Ses3_End_MM | 00 | S3 End Minute (Opt: 0,1,59) |
| Ses3_Mon | true | S3 Monday (Opt: false, true, true) |
| Ses3_Tue | true | S3 Tuesday (Opt: false, true, true) |
| Ses3_Wed | true | S3 Wednesday (Opt: false, true, true) |
| Ses3_Thu | true | S3 Thursday (Opt: false, true, true) |
| Ses3_Fri | true | S3 Friday (Opt: false, true, true) |
| Ses3_Sat | false | S3 Saturday (Opt: false, true, true) |
| Ses3_Sun | false | S3 Sunday (Opt: false, true, true) |
| C_MA_Enabled | false | Enable Trend/MA confirmation (Opt: false, true, true) |
| C_MA_Period | 200 | MA Period (Opt: 50,10,400) |
| C_MA_Method | MODE_EMA | MA Method (Opt: MODE_SMA,1,MODE_LWMA) |
| C_MA_Price | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted)// MA Price (Opt: PRICE_CLOSE,1,PRICE_TYPICAL) |
| C_RSI_Enabled | false | Enable RSI confirmation (Opt: false, true, true) |
| C_RSI_Period | 14 | RSI Period (Opt: 5,1,50) |
| C_RSI_BuyMax | 60 | BUY if RSI <= BuyMax (mean-rev bias) (Opt: 40,1,80) |
| C_RSI_SellMin | 40 | SELL if RSI >= SellMin (Opt: 20,1,80) |
| C_ADX_Enabled | false | Enable ADX confirmation (Opt: false, true, true) |
| C_ADX_Period | 14 | ADX Period (Opt: 7,1,50) |
| C_ADX_Min | 15 | Min ADX to allow entries (Opt: 5,1,40) |
| Sz_EnableFixed | true | Enable Fixed Lot (Opt: false, true, true) |
| Sz_FixedLot | 1.00 | Fixed Lot (lots) (Opt: 0.01,0.01,5.00) |
| Sz_EnableBalance | false | Enable Balance-based sizing (Opt: false, true, true) |
| Sz_BalancePerLot | 5000.0 | BalancePerLot ($ per 1.0 lot) (Opt: 1000,500,20000) |
| Sz_EnableEquity | false | Enable Equity-based sizing (Opt: false, true, true) |
| Sz_EquityPerLot | 5000.0 | EquityPerLot ($ per 1.0 lot) (Opt: 1000,500,20000) |
| Sz_EnablePercentRisk | false | Enable %Risk sizing (Opt: false, true, true) |
| Sz_RiskPercent | 1.0 | %Risk per trade (of Balance) (Opt: 0.1,0.1,5.0) |
| Sz_RiskSL_FallbackPoints | 300 | Fallback SL distance (points) if no ATR-SL & DLP step (Opt: 50,10,1500) |
| Sz_EnableATR | false | Enable ATR-based sizing (Opt: false, true, true) |
| Sz_ATR_Size_Period | 14 | ATR period for sizing (Opt: 5,1,50) |
| Sz_RiskPerATR | 10.0 | RiskPerATR ($ per 1×ATR move) (Opt: 1,1,200) |
| Sz_MinLotClamp | 0.01 | User min lot clamp (lots) (Opt: 0.01,0.01,1.0) |
| Sz_MaxLotClamp | 50.0 | User max lot clamp (lots) (Opt: 0.1,0.1,100.0) |
| SL_EnableDLP | true | Enable Dynamic Lock Profit (primary) (Opt: false, true, true) |
| SL_LockEveryXPoints | 200 | DLP: lock step size (points) (Opt: 50,10,1500) |
| SL_LockMinusBuffer | 40 | DLP: minus buffer (points) (Opt: 0,5,200) |
| SL_EnableATR | false | Enable ATR-SL (safer-of vs DLP) (Opt: false, true, true) |
| SL_ATR_Period | 14 | ATR period for SL (Opt: 5,1,50) |
| SL_ATR_Multiplier | 2.0 | ATR Multiplier for SL (Opt: 0.5,0.1,6.0) |
| TP_EnableATR | false | Enable ATR-based TP close (Opt: false, true, true) |
| TP_ATR_Period | 14 | ATR period for TP (Opt: 5,1,50) |
| TP_ATR_Multiplier | 2.0 | ATR Multiplier for TP (Opt: 0.5,0.1,6.0) |
| Add_MaxOpenTrades | 5 | MaxOpenTrades total (Opt: 1,1,20) |
| Add_OnlyProfitable | true | AllowOnlyProfitableAdditions (Opt: false, true, true) |
| Add_MinProfitPts | 5.0 | MinProfitPerTradeToAdd (points) (Opt: 2,1,200) |
| Pause_OnLossCount | true | PauseOnConsecutiveLosses (Opt: false, true, true) |
| Pause_LossCount | 3 | PauseConsecutiveLossesCount (Opt: 2,1,10) |
| Pause_LossCount_Min | 30 | PauseConsecutiveLossesMinutes (Opt: 5,5,240) |
| Pause_OnLossAmount | true | PauseOnLossAmount (Opt: false, true, true) |
| Pause_LossAmount | 200.0 | PauseLossAmount ($) (Opt: 50,10,5000) |
| Pause_LossAmt_Min | 30 | PauseLossAmountMinutes (Opt: 5,5,240) |
| FM_PauseOnLowMargin | true | PauseOpeningNewTradesOnFreeMargin (Opt: false, true, true) |
| FM_MinFreeMargin | 500.0 | FreeMarginRequiredBeforeOpenNewTrade ($) (Opt: 100,50,10000) |
| Misc_MaxTickAgeSec | 5 | Reject ticks older than (s) (Opt: 1,1,15) |
| Misc_Debug | true | Enable debug logs (Opt: false, true, true) |
| Misc_DebugThrottleSec | 5 | Min seconds between status logs (Opt: 1,1,60) |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX12052 EX18 — True Gaussian Bands mean-reversion EA with DLP and multi-model sizing, full 12-layer stack."
#include <Trade\Trade.mqh>
//------------------------------------ Utility Macros ------------------------------------
#define ARR_SIZE(a) (int(ArraySize(a)))
#define CLAMP(x,a,b) (MathMax((a), MathMin((x),(b))))
#define EPS 1e-12
//------------------------------------ Enumerations --------------------------------------
enum ENUM_FillOpt { FillAuto=0, FillFOK=1, FillIOC=2, FillRETURN=3 };
//--------------------------------------------------------------------------------------------------
// 1. CORE IDENTIFIERS & EXECUTION CONTEXT
//--------------------------------------------------------------------------------------------------
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_StrategyTimeframe = PERIOD_H1;
ENUM_APPLIED_PRICE g_TGB_Price = PRICE_CLOSE;
ENUM_APPLIED_PRICE g_C_MA_Price = PRICE_CLOSE;
input group "=== CORE IDENTIFIERS & EXECUTION CONTEXT ==="
input long InpMagicNumber = 22212052; // 2220 + Expert ID (314)
input string InpTradeComment = "Psgrowth.com Expert_12052";
input string InpSymbol = ""; // Symbol override ("" = chart symbol) (Opt: -, -, -)
input int StrategyTimeframe = 1; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // StrategyTimeframe (Opt: PERIOD_M1,1,PERIOD_M15)
input ENUM_FillOpt InpOrderFilling = FillAuto; // Order filling mode: Auto/FOK/IOC/RETURN (Opt: 0,1,3)
input bool InpAllowBuy = true; // Allow BUY entries (Opt: false, true, true)
input bool InpAllowSell = true; // Allow SELL entries (Opt: false, true, true)
//--------------------------------------------------------------------------------------------------
// 2. ENTRY SIGNAL (TRUE GAUSSIAN BANDS)الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية أخرى
Pipsgrowth EX01007 Adaptive — إكسبرت أدفايزر تكييفي
Pipsgrowth EX01007 Adaptive — Adaptive signal scorer EA combining EMA crossover, RSI, Heiken Ashi, Bollinger Bands, ATR and volume spike detection int. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX01019 Adaptive — إكسبرت أدفايزر تكييفي
Pipsgrowth EX01019 Adaptive — Self-adaptive market regime EA that auto-detects trending, ranging, volatile, quiet and breakout conditions. Switches be. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX15029 SMC-OrderBlock — إكسبرت أدفايزر إكسبرت أدفايزر
Pipsgrowth EX15029 SMC-OrderBlock — Smart Money Concepts breakout EA — detects order blocks, CHOCH and liquidity sweeps using EMA cross + structure break, A. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.