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()
// 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)ملف التحسين
كيفية تثبيت الإكسبرت على MT5
- 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
- 2افتح برنامج MetaTrader 5 على حاسوبك
- 3من القائمة العلوية اختر File → Open Data Folder
- 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
- 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
- 6اسحب الإكسبرت على رسم H4 أو اليومي للحصول على أفضل النتائج
- 7حدد فترات EMA وعتبة ADX وحجم اللوت في نافذة الإعدادات
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpRiskPercentPerTrade | 0.75 | Risk % per trade (USDJPY tuned) |
| InpMaxSimultaneousPositions | 2 | Max pyramid positions |
| InpMaxDrawdownPercent | 15.0 | Max account drawdown % |
| InpEnableMarginGuard | false | Enforce minimum margin level before new trades |
| InpMinMarginLevelPerc | 200.0 | Minimum margin level (%) (100.0,1.0,1000.0) |
| InpHullPeriod | 34 | Hull MA period (JPY smoothing) |
| InpADXPeriod | 14 | ADX period |
| InpMinADXForEntry | 22.0 | Minimum ADX for entry |
| InpMaxADXForEntry | 45.0 | Maximum ADX for entry |
| InpTrendConfirmBars | 2 | Consecutive bars confirmation |
| InpMinVolumeRatio | 0.7 | Min volume vs 20-bar avg |
| InpMaxVolumeRatio | 2.0 | Max volume vs 20-bar avg |
| InpShowHullOnChart | true | Display Hull MA on the chart |
| InpEnableHTFHullConfirm | true | Confirm trades with higher timeframe Hull trend |
| InpHTFHullTimeframe | 9 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Higher timeframe used for Hull confirmation |
| InpHTFHullPeriod | 55 | Hull period on higher timeframe |
| InpAggressiveEntryMode | false | Relax key filters to boost trade frequency |
| InpAggressiveADXFloor | 18.0 | ADX minimum when aggressive (0 = keep current) |
| InpAggressiveADXCeiling | 55.0 | ADX maximum when aggressive (<=0 disables cap) |
| InpShowHTFHullOnChart | false | Display HTF Hull on the chart |
| InpEnableAdaptiveATR | true | Enable adaptive ATR filtering |
| InpATRPeriod | 14 | ATR calculation period |
| InpATRLookback | 120 | Lookback bars for percentiles |
| InpATRMinPercentile | 0.20 | Lower percentile (P20) |
| InpATRMaxPercentile | 0.80 | Upper percentile (P80) |
| InpATRHardMinRatio | 0.70 | Hard minimum ratio floor |
| InpATRHardMaxRatio | 1.60 | Hard maximum ratio ceiling |
| InpATRSessionMultiplier | 1.05 | Session multiplier (JPY volatility bias) |
| InpAggressiveATRSlack | 1.15 | Expand ATR band when aggressive (>=1.0) |
| InpEnableAdaptiveSLTP | true | Enable adaptive SL/TP |
| InpSLMultiplierMin | 1.8 | SL: Minimum ATR multiplier |
| InpSLMultiplierMax | 3.2 | SL: Maximum ATR multiplier |
| InpSLMultiplierBase | 2.2 | SL: Base ATR multiplier |
| InpTPMultiplierMin | 3.5 | TP: Minimum ATR multiplier |
| InpTPMultiplierMax | 8.0 | TP: Maximum ATR multiplier |
| InpTPMultiplierBase | 5.5 | TP: Base ATR multiplier |
| InpEnableRegimeAdjustment | true | Adjust SL/TP by regime |
| InpRegimeMultiplierTrending | 1.25 | Trending: widen SL/TP by % |
| InpRegimeMultiplierRanging | 0.85 | Ranging: tighten SL/TP by % |
| InpMinProfitForPyramidPercent | 40.0 | Min profit % of TP before add |
| InpPyramidSpacingATRMin | 1.3 | Min spacing in ATR units |
| InpPyramidSpacingATRMax | 2.5 | Max spacing in ATR units |
| InpPyramidSpacingATRBase | 1.8 | Base spacing in ATR units |
| InpEnableBreakevenLock | true | Lock SL to breakeven on pyramid |
| InpEnableTrailing | true | Enable trailing stop |
| InpTrailingActivationATR | 2.0 | Activate trailing at X×ATR profit |
| InpTrailingDistanceMin | 0.9 | Min trailing distance (ATR) |
| InpTrailingDistanceMax | 2.2 | Max trailing distance (ATR) |
| InpTrailingDistanceBase | 1.4 | Base trailing distance (ATR) |
| InpEnableAdaptiveSpread | true | Enable adaptive spread filter |
| InpSpreadLookback | 100 | Lookback bars for spread avg |
| InpSpreadPercentile | 0.85 | Percentile threshold (P85) |
| InpSpreadMultiplier | 1.3 | Multiplier on percentile |
| InpSpreadMaxPoints | 25.0 | Absolute maximum spread points |
| InpSpreadRejectOnWiden | true | Reject if spread > threshold |
| InpAggressiveSpreadSlack | 1.20 | Expand spread allowance when aggressive (>=1.0) |
| InpEnableRegimeDetection | true | Enable regime classification |
| InpADXTrendingThreshold | 28.0 | ADX > X = trending |
| InpADXRangingThreshold | 18.0 | ADX < X = ranging |
| InpATRVolatileThreshold | 1.8 | ATR ratio > X = volatile |
| InpATRConsolidatingThreshold | 0.7 | ATR ratio < X = consolidating |
| InpEnableHullReversalExit | true | Exit on Hull reversal |
| InpHullReversalBars | 1 | Bars to confirm reversal |
| InpEnableADXWeaknessExit | true | Exit when ADX weakens |
| InpADXWeaknessThreshold | 18.0 | ADX drops below X |
| InpADXDeclinePercent | 25.0 | OR ADX declines X% from peak |
| InpEnableMinProfitProtection | true | Don't exit until min profit |
| InpEnableSessionFilter | true | Enable session filtering |
| InpTradeAsianSession | true | Trade Asian session |
| InpTradeLondonSession | false | Trade London session |
| InpTradeNYSession | true | Trade New York session |
| InpEnableNewsFilter | true | Avoid major news (NFP/FOMC) |
| InpEnableEmergencyExit | true | Emergency exit on extreme conditions |
| InpEmergencySpreadMultiplier | 2.5 | Exit if spread > X × normal |
| InpMagicNumber | 22218107 | Magic number |
| InpTradeComment | "Psgrowth.com Expert_18107" | Trade comment |
| InpEnableLogging | true | Enable detailed logging |
| InpEnableDebugLogging | false | Extra diagnostics in log |
#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
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية متابعة الاتجاه
Pipsgrowth EX16080 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16080 Trend — EURUSD triple-EMA trend follower — trades EMA20/50 cross with EMA200 filter on H4, ATR-based SL/TP, risk-percent sizing . إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX16081 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16081 Trend — Gold trend EA catching major XAUUSD trends using EMA 50/ 200 crossover on H4 with daily structure swing high/low and Fib. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX16033 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16033 Trend — Price-action scalping EA using distance-based grid entries with net-take-profit targeting and optional lot multiplier. 1. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.