P
PipsGrowth
متابعة الاتجاهمفتوح المصدر - مجاني

Pipsgrowth EX18107 TrendFollow — إكسبرت أدفايزر إكسبرت أدفايزر

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

Pipsgrowth EX18107 TrendFollow — Adaptive trend-following EA using Hull MA + ADX for trend detection, with adaptive ATR filtering, pyramiding, profit loc. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX18107 روبوت لتتبع الاتجاه لزوج واحد، يجمع بين متوسط هول الخطي المرجح بفترة 34 ومؤشر ADX لفترة 14 لتقييم قوة الاتجاه، ثم يستخدم نطاق نسبة مئوية تكيفية لمؤشر ATR لتصفية الصفقات التي قد تنطلق في ظل تذبذب ضعيف أو مفرط. يُبنى متوسط هول فعلياً عبر iMA(..., MODE_LWMA, PRICE_CLOSE) القياسي في MQL5 على الإطار الزمني للشارت، وليس مؤشراً مخصصاً؛ فالإشارة في الكود هي المتوسط الخطي المرجح الافتراضي الذي توفره المنصة. تُقرأ الميل عبر InpTrendConfirmBars من الشموع المتتالية (افتراضياً 2): إعدادات الشراء تتطلب hull[i] > hull[i+1] لكل شمعة في النافذة، وإعدادات البيع تتطلب العكس. هذا التوافق على شمعتين يقضي على الصفقات الاندفاعية التي تسببها شمعة متقلبة واحدة تخترق المتوسط. ثم يجب أن يقع ADX بين 22 و45 ضمنياً؛ فأقل من 22 يعني أن الاتجاه ضعيف جداً، وأكثر من 45 يعني أن الحركة استنفدت.

طبقة ATR التكيفية هي الخيار التصميمي الأول غير البديهي للروبوت. في كل شمعة جديدة تستدعي دالة UpdateAdaptiveATRState() آخر 120 قيمة لمؤشر ATR(14)، وتقسم كلاً منها على أساس ATR المُعاير للزوج (المُعيَّن في CalibratePair() من أول 200 شمعة تاريخ)، وتخزن النتيجة في بنية gATRState التي تحتفظ بالـ P20 وP80. يُسمح بفتح الصفقة فقط عندما تقع نسبة ATR الحالية داخل النطاق الناتج، مع حد أدنى صلب 0.70 وحد أقصى صلب 1.60 يُقصر عليهما نطاق النسب المئوية حتى لا يفتح تذبذب عابر أو هادئ البوابة. يوسع InpATRSessionMultiplier (افتراضياً 1.05) الحد العلوي خلال الجلسة المسموحة ليعكس انحياز تذبذب JPY/USD المذكور في تعليقات الكود. إذا لم تكن الحالة التكيفية جاهزة، يخرج الروبوت؛ والوضع العدواني هو المسار الوحيد الذي يتابع بنسبة ATR خام.

مؤشر هول للإطار الزمني الأعلى (InpEnableHTFHullConfirm، مفعّل افتراضياً) يقرأ ثلاث شموع متتالية من LWMA(55) على الإطار المحدد بـ InpHTFHullTimeframe (افتراضياً 9 في تعليق الكود، وهو خارج نطاق enum 1-7 ويُحوَّل بصمت إلى PERIOD_H1 عبر MapTimeframeInt). تُحظر الصفقات التي تتعارض مع ميل الإطار الأعلى ما لم يتدخل الوضع العدواني، أو ما لم يكن ميل هول المحلي قوياً بما لا يقل عن 0.25 ATR لكل شمعة وكان ADX قد اجتاز بالفعل — هذا المسار الاحتياطي هو ما يتيح للروبوت التقاط بداية حركة جديدة قبل أن يلحقها الإطار الأعلى.

يستخدم تحديد حجم المخاطرة InpRiskPercentPerTrade (افتراضياً 0.75%) مقسوماً على عدد فتحات الهرم المكوّنة، ثم يحوّل الدولارات إلى عقود عبر stopDistance * gPointValue (تُعاير قيمة النقطة لكل رمز داخل CalibratePair()_Point هو 0.0001 للأزواج الرئيسية، 0.01 لـ JPY، 0.01 لـ XAUUSD). ثم يعدّل volumeAdjustment حجم اللوت صعوداً أو هبوطاً بين 0.35x و1.15x بحسب درجة signalQuality المبنية على حجم ميل هول (بوحدات ATR) وهامش ADX فوق عتبة الدخول. الحد الأدنى هو SYMBOL_VOLUME_MIN للوسيط، وتُقرَّب النتيجة إلى خطوة حجم الرمز. تنطبق نفس رياضيات المخاطرة على إضافة الهرم، لكن الإضافة لا تنطلق إلا بعد أن تكون الصفقة الأصلية قد غطت 40% على الأقل من مسافة جني الأرباح وتقدم السعر بين 1.3 و2.5 ATR من الإدخال السابق — هذا هو بوابة CanOpenPyramidPosition(). مع InpMaxSimultaneousPositions عند 2، يحتفظ الروبوت بصفقة أساسية واحدة وإضافة واحدة كحد أقصى لكل اتجاه.

الوقف والهدف مرتبطان بـ ATR، وليسا نقطاً ثابتة. مضاعف SL الأساسي هو 2.2x ATR (نطاق 1.8-3.2)، ومضاعف TP الأساسي هو 5.5x ATR (نطاق 3.5-8.0). عند تشغيل كشف النظام، تُدفع تلك المضاعفات إلى 1.25x في أنظمة الاتجاه و0.85x في أنظمة المدى — الاتجاه يحصل على مساحة أكبر، المدى يُضيق حتى لا يتبرع الروبوت للأخبار الكاذبة. تُفرض نسبة مخاطرة/عائد لا تقل عن 1.3 قبل إرسال الأمر؛ إذا كان تعديل النظام سيضغط TP تحت هذا الحد، يُمدد TP بدلاً من ذلك إلى stopMultiplier * 1.3. signalQuality المنخفضة (<0.8) تضيق SL/TP بنسبة 10% أخرى؛ والمرتفعة (>1.5) توسع TP حتى 30%. تُكتب الأرقام في أقواس SL/TP على جانب الخادم عند الفتح — لا توجد طبقة وقف افتراضية.

تنقسم إدارة الصفقة عبر دالتين. ApplyBreakevenLock() تُفعَّل بمجرد أن يتجاوز الربح ضعف مستوى الوقف عند الوسيط أو InpPyramidSpacingATRMin × ATR (أيهما أكبر)، ثم تنقل الوقف إلى openPrice + 0.1 × ATR من الحاجز. يُضرب محفز التفعيل بـ 1.2 عندما تكون أحدث إضافة هرم هي التي يتم تقييمها، لذا تحصل الإضافة على بداية أطول قليلاً قبل أن يتحرك وقفها. ثم تتولى ApplyTrailingStops() بمجرد أن يتجاوز الربح InpTrailingActivationATR (2.0)، وتنقل الوقف كل تكة بمقدار InpTrailingDistanceBase (1.4 ATR، محصور بين 0.9-2.2). كلتاهما تعدلان الصفقة المفتوحة عبر TryModify_EX18107()، التي تعيد المحاولة حتى ثلاث مرات في حالات إعادة التسعير/انتهاء المهلة.

عمليات الخروج خارج منطق التتبع مدفوعة بالأحداث. تتحقق حلقة ManagePositions() كل تكة من شرطين: انعكاس ميل هول ضد الصفقة (خلال InpHullReversalBars شمعة، افتراضياً 1) وحالة ضعف ADX (InpADXWeaknessThreshold 18 أو انخفاض 25% من الذروة المتحركة). يعني InpEnableMinProfitProtection (مفعّل افتراضياً) أنه لا ينطلق أي من مخرجي الخروج ما دامت الصفقة في خسارة صافية. تشتغل HandleEmergencyControls() بعد ذلك: إذا تجاوز السبريد المباشر InpSpreadMaxPoints × InpEmergencySpreadMultiplier (2.5)، تُغلق قسرياً كل الصفقات المفتوحة عبر TryClose_EX18107(). مرشح الأخبار مربوط في المدخلات لكن الكود يصل بدون مصدر بيانات؛ فالدالة تسجل تحذيراً لمرة واحدة ولا تفعل شيئاً آخر — المشغلون الذين يريدون تجنيب NFP حقاً عليهم إضافة موجز خارجي.

مرشح السبريد التكيفي هو المرشح الأخير بين الإشارة وتذكرة الأمر. في كل شمعة جديدة تقرأ UpdateAdaptiveSpreadState() آخر 100 قيمة لسبريد النقاط، وتأخذ P85، وتضرب في 1.3 للحصول على الحد التكيفي، مع سقف مطلق 25 نقطة من InpSpreadMaxPoints. تُرفض الصفقات عندما يتجاوز السبريد الحالي الحد. نفس القيمة المستمدة من P85 تصبح خط الأساس لمضرب الخروج الطارئ. إذا عطل المستخدم السبريد التكيفي، يظل الحد المطلق 25 نقطة كاحتياطي. الوضع العدواني يوسع الحد بـ 1.20x.

يأتي تقييد الجلسة من IsSessionAllowed()، التي تتحقق من ساعة الخادم مقابل ثلاث نوافذ اختيارية: آسيا (00-08)، لندن (07-17)، ونيويورك (13-23). الافتراضي: آسيا + نيويورك مفعّلتان، لندن معطلة. الوضع العدواني يتجاوز الجلسة المحظورة. لا يوجد مرشح يوم من الأسبوع؛ الروبوت يتداول من الاثنين إلى الجمعة ضمن تلك الساعات. الأزواج التي تصفها تعليقات الكود بأنها محمولة هي USDJPY وEURUSD وGBPUSD وXAUUSD. يُكتشف مضاعف النقطة تلقائياً من اسم الرمز (JPY وXAU يحصلان على 100، والباقون على 10000) وتُعاد معايرة قيمة النقطة لكل رمز عند البدء من SYMBOL_TRADE_TICK_VALUE / SYMBOL_TRADE_TICK_SIZE حتى تكون رياضيات المخاطرة صحيحة على كل أداة.

بعض الملاحظات على الأجزاء التي تبدو في الوصف أكثر مما هي في الكود. ادعاء بنية '12 طبقة' محقق إلى حد كبير — REGIME وSIGNAL وENTRY وCONFIRM (هول HTF) وNO-TRADE (سبريد/نطاق ATR/جلسة/تراجع) وRISK وSIZING وMANAGE وEXIT وSCALING (الهرم) كلها موجودة كمسارات كود متميزة. الطبقتان المفقودتان هما CAPITAL CAP (سقف 15% مُنفذ كحظر دخول مسطح، وليس إيقافاً صلباً للحساب) وOnTester (لا يُعرَّف معيار تحسين مخصص — يستخدم الروبوت تقييم MT5 القياسي). يوجد الكائن g_trade_wrappers_EX18107 بجانب gTrade فقط حتى تتمكن مساعدات TryClose_EX18107 وTryClosePartial_EX18107 وTryModify_EX18107 من إعادة استخدام حلقة إعادة المحاولة 200ms/100ms؛ ليس مسار تداول ثانٍ. تُعلن رموز MapTimeframeInt وg_InpHTFHullTimeframe 12 مرة في الكود — أثر للنسخ واللصق من كتل المدخلات لكل قسم، يمتصه مترجم MQL5 دون شكوى.

التوقعات العملية: يتداول الروبوت عدداً صغيراً من الإعدادت عالية القناعة أسبوعياً على M5 وعدداً أقل على H1. تميل منحنيات حقوق الباك تيست إلى أن تكون دالات خطوية — فترات مسطحة طويلة تتخللها اتجاهات من 1-3 أرجل يلتقطها بدقة، وخدوش صغيرة خلال التقاطعات. سقف 15% للتراجع هو حظر دخول صلب، وليس إغلاقاً طارئاً، لذا قد تدفع الصفقة المفتوحة الحساب أعمق في التراجع — على المشغلين الذين يريدون مفتاح إيقاف صلب تقليل InpRiskPercentPerTrade وInpMaxSimultaneousPositions معاً بدلاً من الاعتماد على هذه البوابة وحدها.

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

في OnInit يستدعي الروبوت InitIndicators() لإنشاء أربع مقابض: LWMA Hull بفترة 34 على الإطار الزمني للشارت، وADX بفترة 14، وATR بفترة 14، وLWMA Hull بفترة 55 على g_InpHTFHullTimeframe. ثم تمشي CalibratePair() عبر أول 200 شمعة من التاريخ لحساب ATR الأساسي وADX الأساسي للزوج، وتحدد مضاعف نقطة (100 لـ JPY/XAU، 10000 للأزواج الرئيسية)، وتستخرج gPointValue من SYMBOL_TRADE_TICK_VALUE / SYMBOL_TRADE_TICK_SIZE. في كل شمعة جديدة تُحدّث UpdateAdaptiveATRState() وUpdateAdaptiveSpreadState() نطاقات النسب المئوية؛ وفي كل تكة تصنّف DetectMarketRegime() السوق كـ TRENDING أو RANGING أو VOLATILE أو CONSOLIDATING من آخر قراءة لـ ADX ونسبة ATR. تشتغل CheckForEntry() فقط على الشموع الجديدة وتمرر الإشارة عبر سبع بوابات متتالية — الجلسة وسقف التراجع والهامش ونطاق ATR ومدى ADX ونسبة الحجم وتأكيد هول HTF — قبل حساب SL/TP المُقيَّس بـ ATR، وتحديد الحجم عبر InpRiskPercentPerTrade، واستدعاء gTrade.Buy أو gTrade.Sell. ثم تشتغل ManagePositions() كل تكة: تعيد مزامنة ذاكرة الصفقات المفتوحة، وتستدعي ApplyBreakevenLock() وApplyTrailingStops()، وتطلق مخارج انعكاس هول وضعف ADX إذا سمح InpEnableMinProfitProtection. تراقب HandleEmergencyControls() ارتفاع السبريد > InpSpreadMaxPoints × InpEmergencySpreadMultiplier وتُجبر إغلاق كل شيء عبر مساعد إعادة المحاولة TryClose_EX18107. مرشح الأخبار مربوط في المدخلات لكن يصل بدون مصدر بيانات، فالدالة تسجل تحذيراً لمرة واحدة فقط.

إشارة الدخول

تنطلق صفقة الشمعة الجديدة عندما يكون ميل هول LWMA(34) متزايداً (أو متناقصاً) رتيباً لـ InpTrendConfirmBars شمعة متتالية، ويقع ADX(14) في النطاق [22، 45]، وتقع نسبة ATR(14) الحالية مقارنة بالأساس المعاير للزوج داخل النطاق التكيفي P20-P80 المحصور في [0.70، 1.60]، ويكون حجم التكات مقابل متوسط 20 شمعة في النطاق [0.7، 2.0]، ويتفق هول LWMA(55) للإطار الزمني الأعلى على الاتجاه. يجب أن يجتاز مرشح الجلسة وبوابة 15% الأقصى للتراجع وسقف فتحات الهمر لكل صفقة والحد التكيفي للسبريد (P85 × 1.3 لآخر 100 شمعة، محدد صلباً بـ 25 نقطة) قبل استدعاء gTrade.Buy أو gTrade.Sell.

إشارة الخروج

ثلاثة مسارات خروج تعمل معاً. انعكاس هول (انعكاس ميل شمعة واحدة ضد الصفقة، يتحكم به InpHullReversalBars) وضعف ADX (InpADXWeaknessThreshold 18 مطلقاً أو انخفاض 25% من الذروة المتحركة المتعقبة في gAdxPeak) يغلقان عبر TryClose_EX18107(). قفل التعادل (ApplyBreakevenLock()) يرفع SL إلى سعر الدخول+0.1×ATR بمجرد أن يتجاوز الربح ضعف مستوى وقف الوسيط أو InpPyramidSpacingATRMin×ATR؛ ثم يتولى وقف التتبع (ApplyTrailingStops()) بعد ربح InpTrailingActivationATR×ATR ويرفع بـ InpTrailingDistanceBase×ATR لكل تكة. تجبر HandleEmergencyControls() إغلاق كل الصفقات المفتوحة عندما يتجاوز السبريد المباشر InpSpreadMaxPoints × InpEmergencySpreadMultiplier (2.5×). يحظر InpEnableMinProfitProtection كل إغلاق ما دامت الصفقة في خسارة صافية.

وقف الخسارة

يُكتب SL من جانب الخادم عند الفتح عند Ask/Bid ± ATR(14) × stopMultiplier، حيث stopMultiplier هو InpSLMultiplierBase (افتراضياً 2.2) محصوراً في [1.8، 3.2] ومضروباً كذلك في 1.25 في أنظمة الاتجاه و0.85 في أنظمة المدى عند تشغيل كشف النظام. signalQuality المنخفضة (<0.8) تضيقه بنسبة 10% أخرى. ثم يُرفع الوقف عبر ApplyBreakevenLock() (الدخول + 0.1×ATR بمجرد أن يتجاوز الربح عتبة التفعيل) وApplyTrailingStops() (InpTrailingDistanceBase×ATR، افتراضياً 1.4، نطاق 0.9-2.2، بعد ربح InpTrailingActivationATR×ATR، افتراضياً 2.0). تُفرض أدنى مسافة وقف لكل رمز قبل الإرسال.

جني الأرباح

TP من جانب الخادم هو Ask/Bid ∓ ATR(14) × tpMultiplier، حيث tpMultiplier هو InpTPMultiplierBase (افتراضياً 5.5) محصوراً في [3.5، 8.0] مع نفس تعديل النظام (1.25x للاتجاه، 0.85x للمدى). تُفرض نسبة مخاطرة/عائد لا تقل عن 1.3 (مسافة TP / مسافة SL)؛ إذا كان تعديل النظام سيدفعها تحت الحد الأدنى، يُمدد TP بدلاً من ذلك إلى stopMultiplier × 1.3. signalQuality المرتفعة (>1.5) توسع TP حتى 30%. يُحفظ TP كقوس على جانب الخادم — لا توجد طبقة TP افتراضية — ويُستعاد عبر TryModify_EX18107() إذا فُقد أثناء إجراء من الخادم.

الأنسب لـ

يُنشر الأفضل على شارتات M5 أو H1 لـ USDJPY أو EURUSD أو GBPUSD أو XAUUSD مع حساب لا يقل عن 100 دولار — الكود يعاير قيمة النقطة ومضاعف النقطة لكل رمز تلقائياً، فتبقى رياضيات المخاطرة صحيحة عبر الأربعة. يناسب المخاطرة الافتراضية 0.75% وسعة هرم 1+1 حساباً من 1,000 إلى 10,000 دولار؛ الوضع العدواني (تخفيف نطاق ADX، توسيع هامش ATR والسبريد، تجاوز الجلسة، تأكيد شمعة واحدة) يتداول بشكل أكثر تكراراً وهو مناسب للمتداولين الذين يريدون حجم إشارات أعلى على حساب المزيد من الاندفاعات. افتراضي الجلسة هي آسيا + نيويورك، ما يلائم USDJPY وXAUUSD؛ على مشغلي EURUSD/GBPUSD تفعيل لندن وتعطيل آسيا. يُشترط وسيط ECN بسبريد منخفض — مرشح السبريد التكيفي يرفض الصفقات فوق الحد الصلب 25 نقطة ويُجبر الإغلاق فوق 2.5× ذلك على الصفقات القائمة. سقف 15% للتراجع هو حظر دخول، لا إيقاف صلب، لذا اقرنه بإعدادات محافظة لـ InpRiskPercentPerTrade وInpMaxSimultaneousPositions إذا كنت تحتاج مفتاح إيقاف حقيقي. لا تفعّل مرشح الأخبار دون ربط موجز تقويم اقتصادي خارجي أولاً — الدالة تسجل تحذيراً ولا تفعل شيئاً آخر.

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

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

العائلة: TrendFollow الماجيك: 22218107 الإصدار: 2.00

الوصف: Adaptive trend-following EA using Hull MA + ADX for trend detection, with adaptive ATR filtering, pyramiding, profit locks, trailing stops, regime detection, and session filters. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • InitPositionSlots()
  • ClearPositionSlot()
  • IsMarginLevelAcceptable()
  • CanOpenPyramidPosition()
  • ApplyBreakevenLock()
  • GetMinimumStopDistance()
  • UpdateAdaptiveATRState()
  • UpdateAdaptiveSpreadState()
  • CalculatePercentile()
  • HandleEmergencyControls()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX18107 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// Adaptive trend-following EA using Hull MA + ADX for trend detection, with adaptive ATR filtering, pyramiding, profit locks, trailing stops, regime detection, and session filters. 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
الرموز المُحسّنة:
USDJPYEURUSDGBPUSDXAUUSD
الأطر الزمنية المُحسّنة:
M5H1

كيفية تثبيت الإكسبرت على 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اسحب الإكسبرت على رسم H4 أو اليومي للحصول على أفضل النتائج
  7. 7حدد فترات EMA وعتبة ADX وحجم اللوت في نافذة الإعدادات
  8. 8فعّل Allow Algo Trading واضغط OK

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

المعاملالافتراضيالوصف
InpRiskPercentPerTrade0.75Risk % per trade (USDJPY tuned)
InpMaxSimultaneousPositions2Max pyramid positions
InpMaxDrawdownPercent15.0Max account drawdown %
InpEnableMarginGuardfalseEnforce minimum margin level before new trades
InpMinMarginLevelPerc200.0Minimum margin level (%) (100.0,1.0,1000.0)
InpHullPeriod34Hull MA period (JPY smoothing)
InpADXPeriod14ADX period
InpMinADXForEntry22.0Minimum ADX for entry
InpMaxADXForEntry45.0Maximum ADX for entry
InpTrendConfirmBars2Consecutive bars confirmation
InpMinVolumeRatio0.7Min volume vs 20-bar avg
InpMaxVolumeRatio2.0Max volume vs 20-bar avg
InpShowHullOnCharttrueDisplay Hull MA on the chart
InpEnableHTFHullConfirmtrueConfirm trades with higher timeframe Hull trend
InpHTFHullTimeframe9Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Higher timeframe used for Hull confirmation
InpHTFHullPeriod55Hull period on higher timeframe
InpAggressiveEntryModefalseRelax key filters to boost trade frequency
InpAggressiveADXFloor18.0ADX minimum when aggressive (0 = keep current)
InpAggressiveADXCeiling55.0ADX maximum when aggressive (<=0 disables cap)
InpShowHTFHullOnChartfalseDisplay HTF Hull on the chart
InpEnableAdaptiveATRtrueEnable adaptive ATR filtering
InpATRPeriod14ATR calculation period
InpATRLookback120Lookback bars for percentiles
InpATRMinPercentile0.20Lower percentile (P20)
InpATRMaxPercentile0.80Upper percentile (P80)
InpATRHardMinRatio0.70Hard minimum ratio floor
InpATRHardMaxRatio1.60Hard maximum ratio ceiling
InpATRSessionMultiplier1.05Session multiplier (JPY volatility bias)
InpAggressiveATRSlack1.15Expand ATR band when aggressive (>=1.0)
InpEnableAdaptiveSLTPtrueEnable adaptive SL/TP
InpSLMultiplierMin1.8SL: Minimum ATR multiplier
InpSLMultiplierMax3.2SL: Maximum ATR multiplier
InpSLMultiplierBase2.2SL: Base ATR multiplier
InpTPMultiplierMin3.5TP: Minimum ATR multiplier
InpTPMultiplierMax8.0TP: Maximum ATR multiplier
InpTPMultiplierBase5.5TP: Base ATR multiplier
InpEnableRegimeAdjustmenttrueAdjust SL/TP by regime
InpRegimeMultiplierTrending1.25Trending: widen SL/TP by %
InpRegimeMultiplierRanging0.85Ranging: tighten SL/TP by %
InpMinProfitForPyramidPercent40.0Min profit % of TP before add
InpPyramidSpacingATRMin1.3Min spacing in ATR units
InpPyramidSpacingATRMax2.5Max spacing in ATR units
InpPyramidSpacingATRBase1.8Base spacing in ATR units
InpEnableBreakevenLocktrueLock SL to breakeven on pyramid
InpEnableTrailingtrueEnable trailing stop
InpTrailingActivationATR2.0Activate trailing at X×ATR profit
InpTrailingDistanceMin0.9Min trailing distance (ATR)
InpTrailingDistanceMax2.2Max trailing distance (ATR)
InpTrailingDistanceBase1.4Base trailing distance (ATR)
InpEnableAdaptiveSpreadtrueEnable adaptive spread filter
InpSpreadLookback100Lookback bars for spread avg
InpSpreadPercentile0.85Percentile threshold (P85)
InpSpreadMultiplier1.3Multiplier on percentile
InpSpreadMaxPoints25.0Absolute maximum spread points
InpSpreadRejectOnWidentrueReject if spread > threshold
InpAggressiveSpreadSlack1.20Expand spread allowance when aggressive (>=1.0)
InpEnableRegimeDetectiontrueEnable regime classification
InpADXTrendingThreshold28.0ADX > X = trending
InpADXRangingThreshold18.0ADX < X = ranging
InpATRVolatileThreshold1.8ATR ratio > X = volatile
InpATRConsolidatingThreshold0.7ATR ratio < X = consolidating
InpEnableHullReversalExittrueExit on Hull reversal
InpHullReversalBars1Bars to confirm reversal
InpEnableADXWeaknessExittrueExit when ADX weakens
InpADXWeaknessThreshold18.0ADX drops below X
InpADXDeclinePercent25.0OR ADX declines X% from peak
InpEnableMinProfitProtectiontrueDon't exit until min profit
InpEnableSessionFiltertrueEnable session filtering
InpTradeAsianSessiontrueTrade Asian session
InpTradeLondonSessionfalseTrade London session
InpTradeNYSessiontrueTrade New York session
InpEnableNewsFiltertrueAvoid major news (NFP/FOMC)
InpEnableEmergencyExittrueEmergency exit on extreme conditions
InpEmergencySpreadMultiplier2.5Exit if spread > X × normal
InpMagicNumber22218107Magic number
InpTradeComment"Psgrowth.com Expert_18107"Trade comment
InpEnableLoggingtrueEnable detailed logging
InpEnableDebugLoggingfalseExtra diagnostics in log
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX18107.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX18107 newHullv1 — Adaptive Hull MA trend-follower, full 12-layer stack."

#include <Trade/Trade.mqh>
#include <Trade/PositionInfo.mqh>
#include <Trade\Trade.mqh>

#ifndef ERR_NO_HISTORY_DATA
#define ERR_NO_HISTORY_DATA 4401
#endif
#ifndef ERR_INDICATOR_WORKING
#define ERR_INDICATOR_WORKING 4806
#endif
#ifndef ERR_HISTORY_WILL_UPDATED
#define ERR_HISTORY_WILL_UPDATED 4066
#endif

//+------------------------------------------------------------------+
//| INPUT PARAMETERS - 77 TOTAL (ORGANIZED IN 12 GROUPS)            |
//+------------------------------------------------------------------+

//======================================================================================
// SECTION 1: RISK MANAGEMENT (6 inputs)
//======================================================================================
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_InpHTFHullTimeframe = PERIOD_H1;
input group "=== Risk Management ==="
input double InpRiskPercentPerTrade = 0.75;       // Risk % per trade (USDJPY tuned)
input int    InpMaxSimultaneousPositions = 2;     // Max pyramid positions

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

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

الوسوم:ex18107trendfollowpipsgrowthfreemt5usdjpyeurusdgbpusdxauusd

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

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

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

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

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

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

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

اسم الملفPipsgrowth_com_EX18107.mq5
حجم الملف97.7 KB
الإصدارv2.00
PlatformMetaTrader 5
نوع الملف.mq5 Source
الاستراتيجيةمتابعة الاتجاه
المخاطرةمخاطرة متوسطة
الأطر الزمنية
M5H1
أزواج العملات
USDJPYEURUSDGBPUSDXAUUSD
الحد الأدنى للإيداع$100