Pipsgrowth EX12050 MultiIndicatorConfluence — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5
Pipsgrowth EX12050 MultiIndicatorConfluence — Volatility Gaussian Bands multi-strategy EA combining Gaussian filter breakouts, Hull MA, Supertrend, MA-Cross and RSI f. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
إكس-12050 (EX12050) هو إطار عمل متعدد المحركات بأربعة مولدات إشارات مستقلة، يُفعّل منها واحد فقط افتراضيًا (نطاقات غاوسية) بينما تُترك البقية معطلة عبر أزرار بوليانية. الشخصية الافتراضية هي اختراق نطاقات غاوسية: متوسط متحرك أسي لمدة 10 فترات يعمل كخط وسط غاوسي، تُرسم حوله حافتان بمضاعف 0.85 من متوسط المدى الحقيقي (ATR) لمدة 14 فترة. تتحقق دالة CheckGaussianStrategy() من اختراق حقيقي على ثلاث أعمدة: يجب أن يغلق العمود الحالي فوق الحافة العلوية (أو تحت الحافة السفلية للبيع) بينما يبقى العمودان السابقان على الجانب الخطأ، وأن يكون المنحنى الغاوسي مائلًا في اتجاه الصفقة، وأن يتجاوز السعر الحافة بمسافة لا تقل عن 0.3 نقطة، وأن يحقق العمود نسبة جسم إلى مدى لا تقل عن 0.6. عند تفعيل محركات Hull MA أو Supertrend أو MA Cross، تتدرج دالة GenerateSignal() بنفس الأولوية حتى يُرجع أحد المحركات إشارة غير فارغة، وكل محرك مستقل بذاته ويقرأ من ذاكرة التخزين المؤقت MarketData.
تمر كل إشارة بعد ذلك عبر ثلاث بوابات تأكيد. مرشح اتجاه الإطار الزمني الأعلى EMA(50) على TrendFilterTF=PERIOD_H4 يطالب بأن يكون سعر الإغلاق الأولي على الجانب الصحيح من المتوسط الأسي، فترفض إشارة الشراء ضد اتجاه هبوطي رباعي الساعات. مؤشر RSI لمدة 14 فترة يؤكد أن العمود ليس مستنفدًا: يشترط للشراء أن يكون مؤشر RSI الحالي دون 70 (ذروة الشراء) مع RSI للشمعة السابقة أقل منه (زخم صاعد)، والعكس للبيع عند مستوى 30 (تشبع بيعي). يتحكم المتغير العام EnableTradeDirection في اقتصار التداول على الشراء فقط أو البيع فقط أو كليهما. فقط بعد اجتياز التأكيدات الثلاثة تُنفّذ ExecuteOrder() الصفقة، وتُوسم التعليقات بـ"Initial" (الصفقة الأولى) أو "Additional" (أي إضافة لاحقة) لتسهيل التحليل بعد التنفيذ.
يمر تحديد الحجم عبر CalculateLotSize() برصيد الحساب عند نسبة مخاطرة افتراضية 1.0%. تقسم الدانة مبلغ المخاطرة على مسافة وقف الخسارة بالنقاط وقيمة التيك لكل نقطة، وتُقرّب نزولًا إلى خطوة حجم الرمز، وتُقص إلى حدود الحد الأدنى والأعلى لدى الوسيط. يُستخدم حجم ثابت 0.01 لوت كاحتياطي عند ضبط RiskPerTrade=0. تعيد دالة AutoTuneFilters() كتابة معاملات غاوس الفعالة وبوابة الحد الأدنى للـ ATR ومسافة الاختراق في كل تك عند تفعيل EnableAutoTuneStrategyFilters=true: تحسب نسبة التذبذب (ATR الحالي مقارنة بمتوسط آخر 10 فترات)، وتقرأ الساعة الحالية ويوم الأسبوع، وتفحص نظام السبريد، وتدمج ستة عوامل تعديل — نطاق التذبذب العالي، نطاق التذبذب المنخفض، ساعات افتتاح لندن ونيويورك، ساعات الجلسة الآسيوية، أيام الاثنين وجمعة بعد الظهر، نطاقات السبريد المرتفع، واكتشاف الاتجاه القوي — لتكبير أو تصغير قيم الحد الأدنى للـ ATR ومسافة الاختراق الأساسية. معامل النقطة الأساسي هو 0.0001 تحت سبريد 3 نقاط و0.01 عند سبريد أوسع، فيتكيف الحد الأدنى مع دقة تسعير الوسيط بدلًا من الترميز الثابت.
يُحسب وقف الخسارة في CalculateStopLoss() على أنه الأكبر بين قيمتين: 1.5× قيمة الـ ATR(14) الحالية، أو أرضية ثابتة عند 2000 نقطة — على وسيط XAUUSD بخمس خانات تمثل هذه الأرضية 20.0 سعر. جني الأرباح هو FixedTP_Points=3000 المتماثل (30.0 سعر على نفس الوسيط)، ما ينتج نسبة مخاطرة إلى عائد 1.5:1 عندما يكون وقف الخسارة المستند إلى ATR عند الأرضية الثابتة أو دونها؛ وعندما يدفع تذبذب الـ ATR وقف الخسارة فوق 20.0، تنضغط النسبة إلى 1.5R على جني أرباح 30.0 مقابل وقف خسارة ديناميكي أوسع. بمجرد فتح الصفقة، تشغّل ManagePositionWithCache() ثلاث طبقات لإدارة الصفقة بترتيب صارم في كل تك: أولاً trailing stop يسحب وقف الخسارة نحو سعر العرض/الطلب بمقدار 1.5× ATR كلما كانت هذه الحركة مربحة وتحت السعر، ثم خطوة التعادل التي تثبّت وقف الخسارة عند سعر الدخول بمجرد تحقق 1.5× ATR من الربح غير المحقق، وأخيرًا قفل الربح الديناميكي المتدرج الذي يرفع وقف الخسارة 20 نقطة لكل 20 نقطة إضافية من الربح غير المحقق، ناقصًا عازل 5 نقاط، ولا يرخيه أبدًا. يقفل القفل الديناميكي في الاتجاه المواتي فقط.
تتضمن المخارج أيضًا فرع خروج مبكر بمؤشر RSI. مع RSI_UseEarlyExit=true، تحسب ShouldExitOnRSI() عتبة خروج الشراء عند RSI_Overbought(70) + (RSI_ExtremeLevelBuy(80) − 70) × (RSI_ExitSensitivity(1.5) / RSI_ExitSensitivityDivisor(3.0)) = 75، وعتبة البيع عند 25، مع اشتراط تجاوز العتبة على شمعتين متتاليتين (RSI_ExitConfirmationPeriods=2). عند تفعيل RSI_UseTrendForExit=true (افتراضي) يحتاج الخروج أيضًا إلى أن يكون مؤشر RSI للشمعة الأخيرة هابطًا للشراء أو صاعدًا للبيع، فيؤكد انعكاس الزخم. يضيف تباعد مؤشر RSI الاختياري ووقف الطوارئ عند EmergencyExitPips=50 (إغلاق عند انعكاس سلبي 50 نقطة) امتدادًا لنفس مسار الخروج المبكر.
تحكم ثلاث نوافذ تداول قابلة للضبط في توقيت الدخول المسموح به: الجلسة 1 من 01:00 إلى 05:00، الجلسة 2 من 08:00 إلى 12:00، الجلسة 3 من 16:00 إلى 20:00 بتوقيت الخادم، وكل جلسة قابلة للتبديل المستقل. تُرجع IsWithinTradingSession() قيمة صحيحة إذا وقعت الدقيقة الحالية داخل أي نافذة نشطة. تضيف ضوابط تداول الجمعة قطعًا قبل ساعتين من إغلاق الوسيط المحدد (افتراضيًا الجمعة 22:00) يحظر الصفقات الجديدة ويغلق اختياريًا جميع المراكز المفتوحة. يوقف غطاء التراجع في CheckMaxDrawdown() التداول تمامًا إذا دفعت الخسارة غير المحققة حقوق الملكية إلى أكثر من MaxDrawdownPercent=15% تحت الرصيد، ويمنع فاصل 60 ثانية بين الصفقات التذبذب العشوائي. يرفض مرشح سبريد 4.0 نقطة الصفقات الجديدة عند تضخم السبريد، ويحظر AllowNewTradeOnSameCandle=false إدخالًا ثانيًا على نفس الشمعة بعد الصفقة الأولى.
يُختار نوع تنفيذ الأمر بين السوق والإيقاف والحد عبر OrderExecutionType. في وضع السوق الافتراضي تُستدعى trade.Buy() وtrade.Sell() مباشرة مع وسوم التعليقات. في وضع الإيقاف تُوضع أوامر إيقاف معلقة عند سعر الدخول زائد الأكبر بين PendingOrderPoints=50 أو ATR واحد؛ وفي وضع الحد يكون الوضع معكوسًا. تمشي دالة ManagePendingOrders() بعد ذلك في دفتر الأوامر المعلقة في كل تك وتُعدّل أسعار الإيقاف التي انحرفت إلى ما دون نقطتين من السعر الحالي، وتحذف الأوامر المعلقة التي تجاوزت عمرها PendingOrderExpirationSeconds=43200 (12 ساعة)، وتُلغيها عند حركة عكسية تتجاوز ExpirationPips × PendingOrderPipExpiryThresholdMultiplier، وتزيلها عند ظهور إشارة معاكسة (عند تفعيل ExpireOnOppositeSignal=true). تعمل مسارات الإغلاق والتعديل عبر مساعدات إعادة المحاولة الثلاثية — TryClose_EX12050 وTryClosePartial_EX12050 وTryModify_EX12050 — التي تلتقط رموز الإرجاع REQUOTE وTIMEOUT وPRICE_OFF وPRICE_CHANGED وتنام 200 ميلي ثانية (إغلاق) أو 100 ميلي ثانية (تعديل) قبل إعادة المحاولة، ثم تستسلم. تعمل الاستراتيجية على إطار M5 افتراضيًا بهدف 1.5R، وأربعة محركات إشارات قابلة للتفعيل، و133 معامل إدخال توسع أو تضيق بشكل أساسي طبقات التأكيد والإدارة دون منطق الإشارة نفسه.
تفاصيل الاستراتيجية
في كل تك يحمّل الـ EA ذاكرة MarketData المؤقتة مرة واحدة — يسحب سعر العرض/الطلب والسبريد وسعر فتح/ارتفاع/انخفاض/إغلاق العمود الحالي وATR(14) ومتوسط غاوس الأسي وEMA(50) للاتجاه على H4 ومؤشر RSI لمدة 14 فترة لآخر 5 أعمدة، وعند التفعيل يسحب أيضًا Hull MA وSupertrend الداخلي ومتوسطي تقاطع المتوسطات — ثم يشغّل AutoTuneFilters() لإعادة حساب الحد الأدنى الفعال للـ ATR ومسافة الاختراق ومضاعف نطاق غاوس لنظام التذبذب الحالي والساعة ويوم الأسبوع والسبريد. تقصر بوابة عدم التداول الدائرة إذا كان ATR تحت الحد الفعال، أو إذا تجاوز التراجع 15%، أو إذا كانت نهايته الجمعة خلال ساعتين، أو إذا كان وقت الخادم خارج أي من جلسات التداول الثلاث المفعلة، أو إذا وصل الرمز إلى حد أقصى للصفقات المفتوحة، أو إذا تجاوز السبريد 4 نقاط، أو إذا كانت صفقة جديدة ستهبط على نفس الشمعة كمركز قائم. تمشي GenerateSignal() عبر محركات الاستراتيجية الأربعة بالأولوية (غاوس، Hull، Supertrend، تقاطع المتوسطات) حتى يُرجع أحدها إشارة غير فارغة؛ ثم تمر الإشارة الخام عبر مرشح اتجاه EMA على H4 ومرشح زخم RSI ومفتاح اتجاه التداول العام قبل أن تُطلق ExecuteOrder() بحجم محسوب بنسبة المخاطرة ووقف خسارة ATR أو ثابت وجني أرباح ثابت 3000 نقطة، وتُوسم التعليقات بـ"Initial" أو "Additional" بناءً على وجود مركز مفتوح. بعد التنفيذ، تشغّل ManagePositionWithCache() على كل تذكرة مفتوحة في كل تك، وتُرتب Trailing stop والتعادل وقفل الربح الديناميكي ومنطق الخروج المبكر بمؤشر RSI بترتيب صارم، بينما تمشي ManagePendingOrders() (في وضع الإيقاف/الحد فقط) في دفتر الأوامر المعلقة لإعادة التسعير أو الانتهاء أو الإلغاء وفق العتبات المضبوطة. تطبع كتلة Comment() في أسفل الشارت إصدار الـ EA والرصيد وحقوق الملكية وعدد الصفقات المفتوحة والسبريد وآخر إشارة ووقت آخر صفقة ليتمكن المتداول من متابعة الحالة دون فتح صندوق الأدوات.
يُطلق EX12050 إشارة شراء (أو بيع) عندما يُرجع أحد المحركات الأربعة المستقلة إشارة غير فارغة: نطاقات غاوسية (افتراضي) تتطلب إغلاق ثلاث أعمدة فوق (أو تحت) الحافة بمضاعف 0.85× من ATR، وميل منحنى غاوس في اتجاه الصفقة، ومسافة اختراق لا تقل عن 0.3 نقطة، ونسبة جسم إلى مدى لا تقل عن 0.6. يمكن تفعيل Hull MA وSupertrend (محسوب داخليًا على 200 عمود) و9/21 EMA Cross كمحركات بديلة أو إضافية. يجب أن تجتاز كل إشارة خام أيضًا مرشح اتجاه EMA(50) على H4، وفحص زخم RSI لمدة 14 فترة (RSI دون 70 وصاعد للشراء، فوق 30 وهابط للبيع)، ومفتاح اتجاه التداول العام.
تعمل المخارج عبر كومة من أربع طبقات في ManagePositionWithCache() لكل تذكرة مفتوحة. الطبقة الأولى هي trailing stop بمقدار 1.5× ATR؛ الطبقة الثانية هي خطوة التعادل التي تثبت SL عند سعر الدخول عند بلوغ الربح 1.5× ATR؛ الطبقة الثالثة هي قفل الربح الديناميكي المتدرج الذي يرفع SL 20 نقطة لكل 20 نقطة ربح غير محقق ناقص عازل 5 نقاط، دون تراخٍ. الطبقة الرابعة هي فرع خروج مبكر بمؤشر RSI: مع RSI_UseEarlyExit=true، يُغلق الشراء عند تجاوز RSI العتبة المحسوبة 75 على شمعتين متتاليتين مع انعكاس الزخم، مع امتداد اختياري بتباعد RSI ووقف طوارئ عند انعكاس سلبي 50 نقطة.
يُحسب وقف الخسارة في CalculateStopLoss() على أنه الأكبر بين 1.5× قيمة الـ ATR(14) الحالية وأرضية ثابتة عند FixedSLDistancePoints=2000 نقطة — على وسيط XAUUSD بخمس خانات تمثل هذه الأرضية 20.0 سعر تحت سعر الطلب للشراء (أو فوق سعر العرض للبيع). يسحب trailing stop بعدها نفس مسافة 1.5× ATR نحو السعر في كل تك مربح، وتُثبّت خطوة التعادل وقف الخسارة عند سعر الدخول بمجرد تحقق 1.5× ATR من الربح قبل أن يقفل القفل الديناميكي المتدرج مستوى أعلى. يعمل وقف طوارئ عند 50 نقطة سلبية (EmergencyExitPips) كإيقاف ثانوي عند تفعيل فرع الخروج المبكر بمؤشر RSI.
جني الأرباح ثابت عند FixedTP_Points=3000 (30.0 سعر على وسيط XAUUSD بخمس خانات) يُضبط في CalculateTakeProfit() عند الدخول ولا تُعدّله طبقات الـ trailing أو القفل الديناميكي — فهاتان الطبقتان تشددان جانب وقف الخسارة فقط ويبقى جني الأرباح في موضعه الأصلي. مع مضاعف 1.5× ATR الافتراضي والأرضية الثابتة 20.0 سعر، تكون نسبة المخاطرة إلى العائد الثابتة عند الدخول 1.5:1؛ وعندما يدفع تذبذب الـ ATR وقف الخسارة الديناميكي فوق 20.0 يُحقق نفس جني الأرباح 30.0 نسبة أضيق.
الأنسب لزوج XAUUSD على الإطار M5 بحد أدنى للرصيد 100 دولار وضبط نسبة المخاطرة للصفقة الافتراضي 1.0% (احتياطي حجم ثابت 0.01 لوت عند إيقاف المخاطرة). يتطلب الافتراضي 1.5R ومرشح السبريد 4 نقاط وسيط ECN أو RAW بسبريد منخفض وتنفيذ موثوق؛ يفترض الضبط التلقائي للـ ATR(14) سلوك سبريد دون 3 نقاط في حساب معامل النقطة الأساسي، ويعمل إطار التقاء المحركات الأربعة بأفضل شكل خلال نافذتي لندن ونيويورك المحددتين (الجلسة 2 من 08:00 إلى 12:00 والجلسة 3 من 16:00 إلى 20:00 بتوقيت الخادم). النطاق العملي للتشغيل هو M5-H1 — دون M5 تتوقف مسافة الاختراق 0.3 نقطة لنطاقات غاوسية عن التفعيل بسبب الضوضاء، وفوق H1 تضغط نوافذ الجلسات عدد الإشارات اليومية بشكل حاد. تعكس تسمية Risk=MEDIUM مخاطرة 1.0% لكل صفقة، ومفتاح إيقاف التراجع 15%، ووقف الخروج المبكر الاختياري بمؤشر RSI ووقف الطوارئ فوق وقف الخسارة المستند إلى ATR.
منطق الاستراتيجية
Pipsgrowth EX12050 MultiIndicatorConfluence — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: MultiIndicatorConfluence
الماجيك: 22212050
الإصدار: 2.00
الوصف:
Volatility Gaussian Bands multi-strategy EA combining Gaussian filter breakouts, Hull MA, Supertrend, MA-Cross and RSI filter/exit logic with auto-tuned ATR filters, dynamic profit locking, drawdown control and session management. Full 12-layer stack: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
CanOpenNewTrade()CloseAllPositions()ManageOpenPositions()AllPositionsInDirectionHaveMinPipsProfit()ManagePendingOrders()GetPipSize()PipsToPrice()PriceToPips()NormalizePrice()CalculateLotSize()
// Pipsgrowth EX12050 MultiIndicatorConfluence — Execution Flow (from source analysis)
// Family: MultiIndicatorConfluence
// Volatility Gaussian Bands multi-strategy EA combining Gaussian filter breakouts, Hull MA, Supertrend, MA-Cross and RSI filter/exit logic with auto-tuned ATR filters, dynamic profit locking, drawdown control and session management. Full 12-layer stack: 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpTradeComment | "Psgrowth.com Expert_12050" | Trade Comment |
| EnableAutoTuneStrategyFilters | true | Enable/Disable automatic tuning of key strategy parameters (e.g., ATR, Break Distance) based on market conditions. |
| Timeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Trading timeframe for primary chart |
| TrendFilterTF | 6 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Higher timeframe for trend filter |
| TrendFilterEMAPeriod | 50 | Period for the Exponential Moving Average (EMA) used as a trend filter on the Higher Timeframe (HTF). |
| ATR_Period | 14 | ATR Period for calculating Average True Range, used in SL, Trailing Stop, Breakeven, and auto-tuning. |
| MinATRValue | 0.0003 | Minimum ATR value to consider trading (e.g. 0.0003 for EURUSD) |
| TrendStrengthLookback | 10 | Bars for Recent Trend Strength Calculation |
| EnableTradeDirection | TRADE_BOTH | Enable buy, sell, or both directions globally |
| UseGaussianBandsStrategy | true | Enable/Disable Gaussian Bands Strategy |
| Gauss_FilterPeriod | 10 | Period for the Gaussian filter (implemented as EMA). |
| Gauss_DistanceMultiplier | 0.85 | Multiplier for ATR to determine the distance of the Gaussian bands from the central filter line. |
| Gauss_StrongCandleBodyRatio | 0.6 | Strong candle body/range ratio (0.0-1.0) |
| Gauss_MinBreakDistancePips | 0.3 | Minimum price/band break distance in pips |
| UseHullMAStrategy | false | Enable/Disable Hull MA Strategy |
| Hull_Period | 20 | Hull MA period |
| Hull_Shift | 0 | Hull MA shift |
| Hull_Method | MODE_LWMA | Hull MA method (typically LWMA for HMA) |
| Hull_AppliedPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Hull MA applied price |
| UseSupertrendStrategy | false | Enable/Disable Supertrend Strategy |
| Supertrend_ATR_Period | 10 | Supertrend ATR period |
| Supertrend_Factor | 3.0 | Supertrend ATR factor/multiplier |
| Supertrend_AppliedPrice | 5 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Supertrend calculation price (PRICE_MEDIAN recommended) |
| UseMACrossStrategy | false | Enable/Disable MA Cross Strategy |
| MACross_Fast_Period | 9 | Fast MA period |
| MACross_Fast_Shift | 0 | Fast MA shift |
| MACross_Fast_Method | MODE_EMA | Fast MA method |
| MACross_Fast_AppliedPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Fast MA applied price |
| MACross_Slow_Period | 21 | Slow MA period |
| MACross_Slow_Shift | 0 | Slow MA shift |
| MACross_Slow_Method | MODE_EMA | Slow MA method |
| MACross_Slow_AppliedPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Slow MA applied price |
| UseRSIFilter | true | Enable/Disable RSI as a filter or strategy component |
| RSI_Period | 14 | RSI Period |
| RSI_AppliedPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // RSI Applied Price |
| RSI_Overbought | 70 | RSI Overbought Level (e.g., 70) |
| RSI_Oversold | 30 | RSI Oversold Level (e.g., 30) |
| RSI_UseEarlyExit | true | Use RSI for early exit (both Buy/Sell) |
| RSI_ExtremeLevelBuy | 80 | RSI extreme level for exiting buys |
| RSI_ExtremeLevelSell | 20 | RSI extreme level for exiting sells |
| RSI_UseDivergenceExit | false | Use RSI divergence for exit |
| RSI_DivergenceLookback | 8 | Bars to look back for divergence |
| RSI_ExitConfirmationPeriods | 2 | Periods to confirm RSI exit |
| RSI_UseTrendForExit | true | Use RSI trend for exit |
| RSI_ExitSensitivity | 1.5 | RSI sensitivity multiplier for exit |
| RSI_ExitSensitivityDivisor | 3.0 | Divisor for RSI Exit Sensitivity Calc |
| Lots | 0.01 | Fixed lot size (fallback if Risk=0) |
| RiskPerTrade | 1.0 | Risk percentage of account balance per trade (e.g., 1.0 for 1%). If 0, Fixed LotSize is used. |
| MaxOpenTrades | 1 | Maximum allowed open trades for this symbol and magic number. |
| MagicNumber | 22212050 | Unique identifier for EA trades |
| AllowNewTradeOnSameCandle | false | If false, prevents opening any new trade on the same candle |
| ATR_MultiplierSL | 1.5 | ATR multiplier used to calculate Stop Loss distance. SL distance = ATR * ATR_MultiplierSL. |
| FixedSLDistancePoints | 2000 | Fixed Stop Loss distance in points; actual SL is Max(ATR-based SL, this value). |
| FixedTP_Points | 3000 | Take Profit distance in points from the entry price. |
| UseTrailingStop | true | Enable/Disable trailing stop loss. Trails by ATR * ATR_MultiplierSL. |
| UseBreakeven | true | Enable/Disable breakeven function. Moves SL to entry price when trade is in profit by ATR * ATR_MultiplierSL. |
| EnableDynamicLockProfit | true | Enable/Disable dynamic profit locking. Adjusts SL to lock in profits as the trade moves favorably. |
| LockProfitEvery_X_Pips | 20.0 | Pips in profit to trigger the next step of profit locking. |
| LockProfitBufferPips | 5.0 | Buffer in pips. New SL is set to (Achieved Profit Steps * LockProfitEvery_X_Pips) - LockProfitBufferPips from entry. |
| MaxDrawdownPercent | 15.0 | Maximum account drawdown percentage. If current drawdown exceeds this, trading is halted. |
| EmergencyExitPips | 50.0 | If a trade loses this many pips, it triggers an emergency exit condition (checked within RSI exit logic). |
| EnableSession1 | true | Enable Session 1 |
| Session1StartHour | 1 | Session 1 Start Hour (0-23) |
| Session1StartMinute | 0 | Session 1 Start Minute |
| Session1EndHour | 5 | Session 1 End Hour |
| Session1EndMinute | 0 | Session 1 End Minute |
| EnableSession2 | true | Enable Session 2 |
| Session2StartHour | 8 | Session 2 Start Hour |
| Session2StartMinute | 0 | Session 2 Start Minute |
| Session2EndHour | 12 | Session 2 End Hour |
| Session2EndMinute | 0 | Session 2 End Minute |
| EnableSession3 | true | Enable Session 3 |
| Session3StartHour | 16 | Session 3 Start Hour |
| Session3StartMinute | 0 | Session 3 Start Minute |
| Session3EndHour | 20 | Session 3 End Hour |
| Session3EndMinute | 0 | Session 3 End Minute |
| CloseTrades2HoursBeforeFriday | true | If true, close all open positions 2 hours before the specified FridayCloseHour/Minute. |
| AvoidTrading2HoursBeforeFriday | true | If true, prevent opening new trades 2 hours before the specified FridayCloseHour/Minute. |
| FridayCloseHour | 22 | Hour when broker closes on Friday (0-23) |
| FridayCloseMinute | 0 | Minute when broker closes on Friday (0-59) |
| OrderExpirationType | ORDER_TIME_GTC | Order expiration type |
| OrderExecutionType | MARKET_ORDERS | Type of orders to use: Market, Stop, or Limit orders. |
| PendingOrderPoints | 50 | Distance in points from the current price to place pending (Stop/Limit) orders. |
| PendingOrderExpirationSeconds | 43200 | Expiration time in seconds for pending orders. 0 means no time expiration. |
| PendingOrderPipExpiryThresholdMultiplier | 1.5 | Multiplier for 'ExpirationPips' to determine pending order cancellation due to adverse price movement. |
| ExpireByPips | false | Enable/Disable expiration of pending orders if price moves adversely by 'ExpirationPips' * 'PendingOrderPipExpiryThresholdMultiplier'. |
| ExpirationPips | 50 | Adverse price movement in pips that (when multiplied by threshold) triggers pending order cancellation, if ExpireByPips is true. |
| ExpireOnOppositeSignal | false | Enable/Disable cancellation of pending orders if a new, opposite trading signal is generated. |
| UseMinHoldTime | true | Enable Min Holding Time |
| MinHoldTimeProfitMinutes | 3 | Minimum holding time in minutes for a profitable position before it can be closed by EA logic (not SL/TP hit). |
| MinHoldTimeLossMinutes | 1 | Minimum holding time in minutes for a losing position before it can be closed by EA logic (not SL/TP hit). |
| BlockCloseOnSameCandle | true | If true, prevents EA logic from closing a position on the same bar/candle it was opened on. |
| UseMinTimeBetweenTrades | true | Minimum time between trades |
| MinSecondsBetweenTrades | 60 | Minimum time in seconds that must pass after a trade is closed before a new trade can be opened. |
| EnableSpreadFilter | true | Enable/Disable spread filter. Prevents opening new trades if current spread exceeds MaxAllowedSpreadPips. |
| MaxAllowedSpreadPips | 4.0 | Maximum allowed spread in pips for opening new trades (if EnableSpreadFilter is true). |
| EnableSpreadFilterPending | true | Enable/Disable spread filter for pending orders. Deletes pending orders if spread exceeds MaxAllowedSpreadPips at OnTick. |
| AutoTune_SpreadThresholdForPipFactor | 3.0 | Spread in points threshold to select basePipFactor for auto-tuning. |
| AutoTune_BaseMinATRFactor | 3.0 | Factor for Base Min ATR |
| AutoTune_VolatilityThreshold | 1.5 | Volatility Ratio threshold |
| AutoTune_HighVol_ATR_Factor | 1.2 | ATR factor during high volatility |
| AutoTune_HighVol_Break_Factor | 1.1 | Break factor during high volatility |
| AutoTune_LowVol_ATR_Factor | 0.8 | ATR factor during low volatility |
| AutoTune_LowVol_Break_Factor | 0.9 | Break factor during low volatility |
| AutoTune_AsianSession_ATR_Factor | 0.9 | ATR factor during Asian session hours for auto-tuning. |
| AutoTune_AsianSession_Break_Factor | 0.95 | Break factor during Asian session hours for auto-tuning. |
| AutoTune_DayOfWeek_ATR_Factor | 0.9 | ATR factor for specific days (e.g., Monday) |
| AutoTune_DayOfWeek_Break_Factor | 0.95 | Break factor for specific days |
| AutoTune_HighSpreadThresholdPoints | 1.5 | Spread in points threshold to apply high spread auto-tune adjustments. |
| AutoTune_HighSpread_ATR_Factor | 1.1 | ATR factor during high spread |
| AutoTune_HighSpread_Break_Factor | 1.05 | Break factor during high spread |
| AutoTune_TrendStrengthThreshold | 0.7 | Threshold for strong trend detection |
| AutoTune_Trend_Break_Factor | 1.05 | Break factor during strong trend |
| AllowAdditionalTrades | true | Enable/disable additional trades |
| AddTradesOnlyIfAllProfitable | true | Only allow if all open positions are in profit |
| AddTradesOnlyIfProfitLocked | true | Only allow if all open positions have SL locking profit |
| MinPipsProfitForEachTradeToAdd | 10.0 | Minimum pips profit for each open trade to allow addition |
| EnableTrendFilterForAdditions | true | Require trend filter for additional trades |
| MinTrendStrengthForAdd | 0.3 | Minimum trend strength for additional trades |
| EnableVolatilityFilterForAdditions | true | Require ATR/volatility filter for additional trades |
| MinATRForAdd | 0.0003 | Minimum ATR for additional trades |
| BlockAddOnTrendChange | true | Block additional trades if recent trend change detected |
| RequireMomentumForAdd | true | Require momentum confirmation for additional trades |
| MinRSIForAdd | 55.0 | Minimum RSI for buy/additional trades |
| MaxRSIForAdd | 45.0 | Maximum RSI for sell/additional trades |
| BlockAddIfOverextended | true | Block if price is far from MA/bands |
| MaxDistanceFromMAForAdd | 2.0 | Max distance (in ATR) from MA/band for additional trades |
| EnableSpreadFilterAdditions | true | Spread filter for additional trades |
| MaxAllowedSpreadPipsAdd | 4.0 | Max allowed spread for additional trades |
| BlockAddOnNews | false | Block additional trades during news (requires news filter implementation) |
| BlockAddOnLowLiquidity | true | Block additional trades during low-liquidity hours |
| MaxAddTradesPerCandle | 1 | Max additional trades per candle |
| MaxDrawdownPercentAdd | 15.0 | Max drawdown for additional trades |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX12050 XAUUSD_M5_VGB_MultiStrategy_EA — Volatility Gaussian Bands multi-strategy, full 12-layer stack."
#define EA_NAME "Volatility Gaussian Bands Pro"
#define EA_VERSION "2.2.0"
#include <Trade/Trade.mqh> // Changed backslash to forward slash
CTrade trade;
// Place this at the top of the file with other global definitions
enum ENUM_SIGNAL_TYPE {
SIGNAL_NONE,
SIGNAL_BUY,
SIGNAL_SELL
};
// Function prototypes
bool CanOpenNewTrade();
void CloseAllPositions();
void ManageOpenPositions();
bool AllPositionsInDirectionHaveMinPipsProfit(string symbol, ENUM_POSITION_TYPE tradeDirection, double minPipsProfitRequired);
void ManagePendingOrders();
double GetPipSize(string symbol = NULL);
double PipsToPrice(double pips, string symbol = NULL);
double PriceToPips(double priceValue, double symbol = NULL); // Corrected: double symbol to string symbol
double NormalizePrice(double price, string symbol = NULL);
double CalculateLotSize(double riskPercent, double slDistance);
double GetPositionProfitInPips(long type, double entryPrice, double currentBid, double currentAsk);
int GetPositionOpenBarByTicket(ulong ticket);
double CalculateTakeProfit(ENUM_POSITION_TYPE type, double entryPrice);
string ErrorDescription(int error_code);
ENUM_SIGNAL_TYPE GenerateSignal();
bool ExecuteOrder(ENUM_SIGNAL_TYPE signalType, bool closeOpposite = true);
bool CheckRSIDivergence(ulong ticket);
double CalculateRecentTrendStrength();
void AutoTuneFilters(double &minATR, double &breakDistance, double &bandMult);
bool CheckMaxDrawdown();
bool ConfirmRSIExit(ulong ticket);
int CountOpenTrades(string symbol, int maxCount = 0);
void UpdateDashboard();
bool ClosePositionWithComment(ulong ticket, string closeComment, string closeReason, double profit);
//+------------------------------------------------------------------+
//| Feature toggle structure |
//+------------------------------------------------------------------+
struct FeatureToggles {
// Core features
bool UseTrailingStop;
bool UseBreakeven;
bool UseDynamicLockProfit;
bool UseRSIExit;
bool UseRSIDivergence;
bool UseEmergencyExit;
// Load from input parameters
void LoadFromInputs() {
UseTrailingStop = ::UseTrailingStop;
UseBreakeven = ::UseBreakeven;
UseDynamicLockProfit = EnableDynamicLockProfit;
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.