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

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()
الرمز الزائف (Pseudocode)
// 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)

ملف التحسين

الوسطاء المُحسّنون:
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

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

المعاملالافتراضيالوصف
InpTradeComment"Psgrowth.com Expert_12050"Trade Comment
EnableAutoTuneStrategyFilterstrueEnable/Disable automatic tuning of key strategy parameters (e.g., ATR, Break Distance) based on market conditions.
Timeframe0Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Trading timeframe for primary chart
TrendFilterTF6Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Higher timeframe for trend filter
TrendFilterEMAPeriod50Period for the Exponential Moving Average (EMA) used as a trend filter on the Higher Timeframe (HTF).
ATR_Period14ATR Period for calculating Average True Range, used in SL, Trailing Stop, Breakeven, and auto-tuning.
MinATRValue0.0003Minimum ATR value to consider trading (e.g. 0.0003 for EURUSD)
TrendStrengthLookback10Bars for Recent Trend Strength Calculation
EnableTradeDirectionTRADE_BOTHEnable buy, sell, or both directions globally
UseGaussianBandsStrategytrueEnable/Disable Gaussian Bands Strategy
Gauss_FilterPeriod10Period for the Gaussian filter (implemented as EMA).
Gauss_DistanceMultiplier0.85Multiplier for ATR to determine the distance of the Gaussian bands from the central filter line.
Gauss_StrongCandleBodyRatio0.6Strong candle body/range ratio (0.0-1.0)
Gauss_MinBreakDistancePips0.3Minimum price/band break distance in pips
UseHullMAStrategyfalseEnable/Disable Hull MA Strategy
Hull_Period20Hull MA period
Hull_Shift0Hull MA shift
Hull_MethodMODE_LWMAHull MA method (typically LWMA for HMA)
Hull_AppliedPrice1Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Hull MA applied price
UseSupertrendStrategyfalseEnable/Disable Supertrend Strategy
Supertrend_ATR_Period10Supertrend ATR period
Supertrend_Factor3.0Supertrend ATR factor/multiplier
Supertrend_AppliedPrice5Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Supertrend calculation price (PRICE_MEDIAN recommended)
UseMACrossStrategyfalseEnable/Disable MA Cross Strategy
MACross_Fast_Period9Fast MA period
MACross_Fast_Shift0Fast MA shift
MACross_Fast_MethodMODE_EMAFast MA method
MACross_Fast_AppliedPrice1Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Fast MA applied price
MACross_Slow_Period21Slow MA period
MACross_Slow_Shift0Slow MA shift
MACross_Slow_MethodMODE_EMASlow MA method
MACross_Slow_AppliedPrice1Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Slow MA applied price
UseRSIFiltertrueEnable/Disable RSI as a filter or strategy component
RSI_Period14RSI Period
RSI_AppliedPrice1Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // RSI Applied Price
RSI_Overbought70RSI Overbought Level (e.g., 70)
RSI_Oversold30RSI Oversold Level (e.g., 30)
RSI_UseEarlyExittrueUse RSI for early exit (both Buy/Sell)
RSI_ExtremeLevelBuy80RSI extreme level for exiting buys
RSI_ExtremeLevelSell20RSI extreme level for exiting sells
RSI_UseDivergenceExitfalseUse RSI divergence for exit
RSI_DivergenceLookback8Bars to look back for divergence
RSI_ExitConfirmationPeriods2Periods to confirm RSI exit
RSI_UseTrendForExittrueUse RSI trend for exit
RSI_ExitSensitivity1.5RSI sensitivity multiplier for exit
RSI_ExitSensitivityDivisor3.0Divisor for RSI Exit Sensitivity Calc
Lots0.01Fixed lot size (fallback if Risk=0)
RiskPerTrade1.0Risk percentage of account balance per trade (e.g., 1.0 for 1%). If 0, Fixed LotSize is used.
MaxOpenTrades1Maximum allowed open trades for this symbol and magic number.
MagicNumber22212050Unique identifier for EA trades
AllowNewTradeOnSameCandlefalseIf false, prevents opening any new trade on the same candle
ATR_MultiplierSL1.5ATR multiplier used to calculate Stop Loss distance. SL distance = ATR * ATR_MultiplierSL.
FixedSLDistancePoints2000Fixed Stop Loss distance in points; actual SL is Max(ATR-based SL, this value).
FixedTP_Points3000Take Profit distance in points from the entry price.
UseTrailingStoptrueEnable/Disable trailing stop loss. Trails by ATR * ATR_MultiplierSL.
UseBreakeventrueEnable/Disable breakeven function. Moves SL to entry price when trade is in profit by ATR * ATR_MultiplierSL.
EnableDynamicLockProfittrueEnable/Disable dynamic profit locking. Adjusts SL to lock in profits as the trade moves favorably.
LockProfitEvery_X_Pips20.0Pips in profit to trigger the next step of profit locking.
LockProfitBufferPips5.0Buffer in pips. New SL is set to (Achieved Profit Steps * LockProfitEvery_X_Pips) - LockProfitBufferPips from entry.
MaxDrawdownPercent15.0Maximum account drawdown percentage. If current drawdown exceeds this, trading is halted.
EmergencyExitPips50.0If a trade loses this many pips, it triggers an emergency exit condition (checked within RSI exit logic).
EnableSession1trueEnable Session 1
Session1StartHour1Session 1 Start Hour (0-23)
Session1StartMinute0Session 1 Start Minute
Session1EndHour5Session 1 End Hour
Session1EndMinute0Session 1 End Minute
EnableSession2trueEnable Session 2
Session2StartHour8Session 2 Start Hour
Session2StartMinute0Session 2 Start Minute
Session2EndHour12Session 2 End Hour
Session2EndMinute0Session 2 End Minute
EnableSession3trueEnable Session 3
Session3StartHour16Session 3 Start Hour
Session3StartMinute0Session 3 Start Minute
Session3EndHour20Session 3 End Hour
Session3EndMinute0Session 3 End Minute
CloseTrades2HoursBeforeFridaytrueIf true, close all open positions 2 hours before the specified FridayCloseHour/Minute.
AvoidTrading2HoursBeforeFridaytrueIf true, prevent opening new trades 2 hours before the specified FridayCloseHour/Minute.
FridayCloseHour22Hour when broker closes on Friday (0-23)
FridayCloseMinute0Minute when broker closes on Friday (0-59)
OrderExpirationTypeORDER_TIME_GTCOrder expiration type
OrderExecutionTypeMARKET_ORDERSType of orders to use: Market, Stop, or Limit orders.
PendingOrderPoints50Distance in points from the current price to place pending (Stop/Limit) orders.
PendingOrderExpirationSeconds43200Expiration time in seconds for pending orders. 0 means no time expiration.
PendingOrderPipExpiryThresholdMultiplier1.5Multiplier for 'ExpirationPips' to determine pending order cancellation due to adverse price movement.
ExpireByPipsfalseEnable/Disable expiration of pending orders if price moves adversely by 'ExpirationPips' * 'PendingOrderPipExpiryThresholdMultiplier'.
ExpirationPips50Adverse price movement in pips that (when multiplied by threshold) triggers pending order cancellation, if ExpireByPips is true.
ExpireOnOppositeSignalfalseEnable/Disable cancellation of pending orders if a new, opposite trading signal is generated.
UseMinHoldTimetrueEnable Min Holding Time
MinHoldTimeProfitMinutes3Minimum holding time in minutes for a profitable position before it can be closed by EA logic (not SL/TP hit).
MinHoldTimeLossMinutes1Minimum holding time in minutes for a losing position before it can be closed by EA logic (not SL/TP hit).
BlockCloseOnSameCandletrueIf true, prevents EA logic from closing a position on the same bar/candle it was opened on.
UseMinTimeBetweenTradestrueMinimum time between trades
MinSecondsBetweenTrades60Minimum time in seconds that must pass after a trade is closed before a new trade can be opened.
EnableSpreadFiltertrueEnable/Disable spread filter. Prevents opening new trades if current spread exceeds MaxAllowedSpreadPips.
MaxAllowedSpreadPips4.0Maximum allowed spread in pips for opening new trades (if EnableSpreadFilter is true).
EnableSpreadFilterPendingtrueEnable/Disable spread filter for pending orders. Deletes pending orders if spread exceeds MaxAllowedSpreadPips at OnTick.
AutoTune_SpreadThresholdForPipFactor3.0Spread in points threshold to select basePipFactor for auto-tuning.
AutoTune_BaseMinATRFactor3.0Factor for Base Min ATR
AutoTune_VolatilityThreshold1.5Volatility Ratio threshold
AutoTune_HighVol_ATR_Factor1.2ATR factor during high volatility
AutoTune_HighVol_Break_Factor1.1Break factor during high volatility
AutoTune_LowVol_ATR_Factor0.8ATR factor during low volatility
AutoTune_LowVol_Break_Factor0.9Break factor during low volatility
AutoTune_AsianSession_ATR_Factor0.9ATR factor during Asian session hours for auto-tuning.
AutoTune_AsianSession_Break_Factor0.95Break factor during Asian session hours for auto-tuning.
AutoTune_DayOfWeek_ATR_Factor0.9ATR factor for specific days (e.g., Monday)
AutoTune_DayOfWeek_Break_Factor0.95Break factor for specific days
AutoTune_HighSpreadThresholdPoints1.5Spread in points threshold to apply high spread auto-tune adjustments.
AutoTune_HighSpread_ATR_Factor1.1ATR factor during high spread
AutoTune_HighSpread_Break_Factor1.05Break factor during high spread
AutoTune_TrendStrengthThreshold0.7Threshold for strong trend detection
AutoTune_Trend_Break_Factor1.05Break factor during strong trend
AllowAdditionalTradestrueEnable/disable additional trades
AddTradesOnlyIfAllProfitabletrueOnly allow if all open positions are in profit
AddTradesOnlyIfProfitLockedtrueOnly allow if all open positions have SL locking profit
MinPipsProfitForEachTradeToAdd10.0Minimum pips profit for each open trade to allow addition
EnableTrendFilterForAdditionstrueRequire trend filter for additional trades
MinTrendStrengthForAdd0.3Minimum trend strength for additional trades
EnableVolatilityFilterForAdditionstrueRequire ATR/volatility filter for additional trades
MinATRForAdd0.0003Minimum ATR for additional trades
BlockAddOnTrendChangetrueBlock additional trades if recent trend change detected
RequireMomentumForAddtrueRequire momentum confirmation for additional trades
MinRSIForAdd55.0Minimum RSI for buy/additional trades
MaxRSIForAdd45.0Maximum RSI for sell/additional trades
BlockAddIfOverextendedtrueBlock if price is far from MA/bands
MaxDistanceFromMAForAdd2.0Max distance (in ATR) from MA/band for additional trades
EnableSpreadFilterAdditionstrueSpread filter for additional trades
MaxAllowedSpreadPipsAdd4.0Max allowed spread for additional trades
BlockAddOnNewsfalseBlock additional trades during news (requires news filter implementation)
BlockAddOnLowLiquiditytrueBlock additional trades during low-liquidity hours
MaxAddTradesPerCandle1Max additional trades per candle
MaxDrawdownPercentAdd15.0Max drawdown for additional trades
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX12050.mq5
#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;

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

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

الوسوم:ex12050multiindicatorconfluencepipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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