Pipsgrowth EX16107 Trend — إكسبرت أدفايزر متابعة اتجاه
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX16107 Trend — Expert Advisor that trades using JMA (Jurik Moving Average) trend indicators with Hull confirmation and advanced exit st. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX16107 — JMAEA Trend هو خبير آلي (Expert Advisor) للاتجاه يقوده مؤشر JMA (متوسط Jurik المتحرك)، ويُصوّت بأربعة أغلفة زخم مستقلة ولا يتداول إلا حين يتفق عدد كافٍ منها على الاتجاه نفسه. هذه الأغلفة الأربعة هي: مؤشر JMA واحد وثلاثة متوسطات Hull المتحركة (Hull2 وHull3 وHull4)، ولكلٍ منها فترة وقاسم ونمط سعر وإطار زمني مستقل. الإعداد الافتراضي يجمع بين JMA1 سريع (طول 7، طور 100، سعر الإغلاق) وثلاثة متوسطات Hull أبطأ تدريجياً (الفترة 160 مع قاسم 9.8، والفترة 245 مع قاسم 12.2، والفترة 536 مع قاسم 2.0)، مما يمنح الخبير طيفاً واسعاً من تعريفات الاتجاه التي يجب أن تميل جميعها للاتجاه نفسه قبل فتح أي صفقة.
يعمل محرك الدخول وفق اختبار ثبات من خطوتين. أولاً، تقرأ الدالة HullConsensusAtShift() مخزن اللون/الاتجاه لكل مؤشر عند InpSignalBarShift (افتراضياً 1، أي على الشمعة المغلقة للتو) وتحسب كم من الأربعة يشير للشراء مقابل البيع. إذا وصلت أصوات الشراء إلى InpMinIndicatorsAgreeForInitialTrades (افتراضياً 2) وكانت أصوات البيع صفراً، يُسجَّل الخبير مرشحاً للشراء؛ وينطبق المنطق المعاكس على البيع. ثانياً، تستعرض SignalIsStable() عدد InpStableBarsRequired (افتراضياً 2) من الشموع السابقة وتتأكد من أن التوافق نفسه استمر خلالها — وهذا يمنع الخبير من التفاعل مع انعكاس شمعة واحدة. بعد فتح أول صفقة، ينخفض عتبة الإضافات إلى InpMinIndicatorsAgreeForAdditonalTrades، ما يسمح لنفس الإعداد ببناء صفقة مُطبَّقة في اتجاه الاتجاه.
إن معمارية الـ12 طبقة هي ما يجعل هذا الخبير يتصرف باستمرار في الظروف الحقيقية وليس فقط في الاختبارات النظرية. تُصنِّف طبقة REGIME السوق عبر نسبة ATR المئوية إلى أربع حالات. تُشغِّل طبقة SIGNAL تصويت الأغلفة الأربعة الموصوف آنفاً. تطبِّق طبقة ENTRY فحص تحول الشمعة + الثبات. تقبل طبقة CONFIRM أصواتاً ثانوية اختيارية من مرشح Jurik منفصل (طول 50، طور 0) ونطاق RSI(14) — تتطلب دخول الشراء أن يكون RSI بين 0 و70 افتراضياً، ودخول البيع بين 30 و100. تحمل طبقة NO-TRADE بوابات الجلسة والسبريد وATR والحجم والتقطيع والارتباط وتصفية NFP الاختيارية. تقرأ طبقة CAPITAL CAP قيمة ACCOUNT_MARGIN_LEVEL وتمنع الإدخالات الجديدة تحت InpMinMarginLevelPerc (200%) حين يكون InpEnableMarginGuard مُفعَّلاً. تُوجِّه طبقتا RISK وSIZING حجم الصفقات عبر لوت ثابت 1.0 (InpLots) أو 1% مخاطرة للرصيد (InpRiskPerTradePercent)، مع تقريب LOT_ROUND_NEAREST وتطبيع ClampVolumeToSymbol. تتعامل طبقات MANAGE وEXIT وSCALING مع trailing والتعادل وقفل الربح والإغلاقات الجزئية. ترث طبقة OnTester دالة لياقة Pipsgrowth متعددة الأهداف.
بوابة الجلسة هي إحدى أبرز الميزات. يكون InpEnableSessionFilters مُفعَّلاً افتراضياً ويقرأ أربع نوافذ: الآسيوية (00:00-09:00)، الأوروبية (08:00-17:00)، الأمريكية (13:00-22:00)، ونافذة مخصصة شاملة (22:00-23:59). كما تشغِّل HandleSessionClose() إغلاقاً قسرياً عند 23:00 لتصفية المراكز قبل التجديد اليومي. يُضاف فوق ذلك كشف التقطيع: InpEnableChoppinessFilter مُفعَّل افتراضياً مع InpChopIndexPeriod عند 14 وInpChopIndexThreshold عند 61.8 وInpChopRequireLayers 2 من 4 طبقات فرعية (ChopIndex + ADX + ATR التكيُّفي + النطاق) مطلوبة لاعتبار السوق متقطعاً. حين يكون السوق متقطعاً، تُحظر الإدخالات ويمكن إغلاق المراكز القائمة قسرياً عبر HandleChoppinessExit().
تبلغ إعدادات إدارة المخاطر الافتراضية وقف خسارة 200 نقطة وهدف 1000 نقطة، بنسبة عائد إلى مخاطرة 1:5 مُصمَّمة لترك الرابحين يركضون مع احتواء الخاسرين. يبدأ الـ trailing (InpEnableTrailingStop = true افتراضياً) حين يصل الربح إلى 40 نقطة ويُحرِّك الوقف كل 210 نقطة من القمة الجديدة، بخطوة واسعة مصمَّمة لعدم التفعيل على ارتدادات XAUUSD M5 الطبيعية. التعادل (معطل افتراضياً، تفعيل عند 30 نقطة، إزاحة 5 نقاط) وقفل الربح (معطل افتراضياً، زيادة 50 نقطة، مسافة 20 نقطة) متاحان كإضافات دفاعية. يرفض بوابة الربح (InpEnableProfitGate = true) زيادة أي مركز ما دامت الصفقات الحالية تخسر بأكثر من 20 نقطة، وهذا يمنع الخبير من المتوسط في صفقة خاسرة خلال انعكاس سريع. يعني InpMaxOpenPositions = 0 عدم وجود سقف للمحفظة، فيمكن للخبير تكديس أي عدد من الإدخالات المُطبَّقة التي ينتجها الاتجاه — بحجم يضمن أن 1:5 R:R مع 1% مخاطرة لكل صفقة يعطي منحنى الأرباح متنفساً حتى في سلسلة من الخاسرات المتتالية.
تُدار جهة الخروج عبر ExitManager.mqh وتُشغِّل اثني عشر فحصاً مستقلاً لكل تيك. يمشي CheckProfitScalingExit عبر InpProfitScalingTargets / InpProfitScalingPercents ويُغلق جزئياً عند كل درجة. يُفعِّل CheckBreakEvenAndLock منطق التعادل وقفل الربح. يقتل CheckTimeBasedExit المراكز التي تجاوزت وقف الوقت. يُغلق CheckMomentumExit — المُهيَّأ عبر InitMomentumHandles على زوج RSI + ADX منفصل — عند انقلاب الزخم. يتفاعل CheckVolatilitySpikeExit مع قمم نسبة ATR المئوية. يقرأ CheckSRExit قمم وقيعان السوينغ عبر GetSwingHigh/GetSwingLow ويُغلق عند كسر البنية. يبحث CheckReversalExit عن توافق عكسي 4 من 4 كامل. يضيف CheckWeekendProtection وCorrelationMonitorHandlePositions الطبقة الدفاعية. تُعد TryClose_EX16107 وTryClosePartial_EX16107 وTryModify_EX16107 سقالة 3 محاولات / 200 ميلي ثانية لكل مسار تعديل أوامر، فلا تُسقط عروض الأسعار العابرة الوقف أو الإغلاق الجزئي.
ما يمكن توقُّعه في الاختبار التاريخي: ينتج الخبير عدداً أقل من الصفقات مقارنة بنظام تقاطع نموذجي لأن توافق 2 من 4 مع اختبار ثبات شمعتين يُصفِّي معظم الضوضاء. يعني 1:5 R:R أن الرابحين يفوقون الخاسرين مادياً حين يمسك الاتجاه، ويحجم 1% من المخاطرة يبقى الانسحاب محدوداً. ترسم لوحة المعلومات (InpEnableDashboard، مُفعَّلة افتراضياً) ملخصاً مباشراً لقيم التوافق الأربعة والسبريد وATR والفلاتر النشطة على الرسم البياني، مما يسهل رؤية سبب جلوس الخبير أو دخوله في الوقت الفعلي. على الرسم البياني XAUUSD M5 يكون الخبير في أقصى حالاته انتقائية — مخصص لاتساع الأربعة Hulls مصمَّم لتقلبات الذهب داخل اليوم. على زوج أبطأ مثل EURUSD M15 قد ينتج الإعداد نفسه فترات هدوء طويلة تتخللها تحركات ذات ثقة عالية. تتطلب وسطاء ECN بسبريد خام وزمن استجابة منخفض ليُظهر منطق trailing في M5 سلوكه كما صُمِّم؛ أما على وسيط سبريد واسع فسيتم تفعيل خطوة trailing البالغة 210 نقاط متأخرة وسيتم تخطي الإغلاقات الجزئية.
تفاصيل الاستراتيجية
في كل تيك يستطلع الخبير أربعة مؤشرات غلاف مبنية من مؤشر JMA المخصص لـ MQ5 (JMA1 بطول 7، طور 100، إغلاق) وثلاث استدعاءات Hull V3 hull-average-5 (Hull2 فترة 160، Hull3 فترة 245، Hull4 فترة 536) — كل واحد يستطلع إطاره الزمني ونمط سعره الخاص، وتُقرأ مخازن الاتجاه الأربعة عند InpSignalBarShift = 1 للحصول على تصويت الشمعة المغلقة. يُجمِع HullConsensusAtShift أصوات الشراء مقابل البيع، ويتطلب اتفاق 2 من 4 إلى جانب شمعتين سابقتين من التوافق الثابت (InpStableBarsRequired) قبل إطلاق إشارة شراء أو بيع. يجب أن تجتاز الإشارة بعدها سلسلة بوابات اختيارية قبل أن تُطلق OpenPosition: نوافذ الجلسة (الآسيوية/الأوروبية/الأمريكية/المخصصة)، سبريد أقل من 20 نقطة، نسبة ATR أعلى من 1.0، حجم أعلى من 0.8× متوسط 20 شمعة، مؤشر Choppiness أقل من 61.8 مع اتفاق 2 من 4 طبقات فرعية، مراقب الارتباط مقابل مجموعة أزواج الرموز المضبوطة، blackout NFP يوم الجمعة الأولى، نطاق RSI(14)، وتصويت مرشح Jurik اختياري. يسقط الحجم مرة أخرى إلى 1.0 لوت ثابت أو 1% مخاطرة رصيد، مع تقريب LOT_ROUND_NEAREST وتطبيع ClampVolumeToSymbol؛ تُوسم المراكز بسحر 22216107 وتعليق Psgrowth.com Expert_16107. بينما تكون المراكز مفتوحة، تُشغِّل ManageTrailingStops وApplyBreakEven وApplyProfitLock وExitManager.mqh اثني عشر فحص خروج متوازٍ لكل تيك. ترسم لوحة المعلومات تصويت الأغلفة الأربعة المباشر وحالات الفلتر الحالية وقراءة مستوى الهامش مباشرة على الرسم البياني؛ يقوم AttachHullIndicator/AttachRsiDisplay/AttachAdxDisplay/AttachAtrDisplay بقمع لوحات الرسم البياني في التشغيل بدون واجهة مع الاحتفاظ بالبيانات لمحرك التوافق.
يتم تفعيل الدخول حين يصوّت 2 على الأقل من أغلفة الاتجاه الأربعة (JMA1 بطول 7 مع Hull2/3/4 بفترات 160/245/536) لنفس الاتجاه عند الشمعة المغلقة (InpSignalBarShift = 1) ويستمر نفس التوافق لـ InpStableBarsRequired = 2 من الشموع السابقة. يتوفر تأكيد ثانوي اختياري من مرشح Jurik منفصل (طول 50) ونطاق RSI(14) — تتطلب الشراءات RSI بين [0، 70] والبيوع بين [30، 100]. بعد أول تنفيذ تنخفض العتبة، ما يسمح للخبير بتطبيق دخول إضافي في اتجاه الاتجاه.
تُدار الخروج عبر ExitManager المكوَّن من 12 فحصاً: تدرُّج جزئي عند درجات InpProfitScalingTargets، تعادل عند 30 نقطة (إزاحة 5) عند التفعيل، وقف زمني، انقلاب زخم على RSI+ADX، قمة تذبذب على نسبة ATR المئوية، كسر قمة/قاع سوينغ عبر GetSwingHigh/GetSwingLow، انعكاس توافق عكسي 4 من 4 كامل، وحماية نهاية الأسبوع. يُغلق توافق Hull العكسي عند InpMinIndicatorsAgreeCloseProfit = 1 الصفقات الرابحة افتراضياً (InpCloseOnOpposite = false، InpCloseOnOppositeEvenIfInLose = true) — لذا تُغلق الخاسرة أيضاً حين تنقلب الأغلفة الأربعة بالكامل.
وقف الخسارة لكل صفقة ثابت عند 200 نقطة (InpStopLossPoints) تحت سعر الدخول للشراءات وفوقه للبيوع، بنسبة عائد إلى مخاطرة 1:5 مقابل هدف 1000 نقطة. يبدأ trailing (InpEnableTrailingStop = true) عند 40 نقطة ربح ويُحرِّك الوقف كل 210 نقطة من قمة جديدة. التعادل (معطل افتراضياً) ينقل الوقف إلى سعر الدخول + 5 نقاط بمجرد تراكم 30 نقطة ربح.
جني الأرباح الأولي ثابت عند 1000 نقطة (InpTakeProfitPoints) بنسبة 1:5 R:R مقابل وقف 200 نقطة. تتوفر إغلاقات جزئية اختيارية عند نسب InpProfitScalingTargets من حجم الصفقة، ويمشي قفل الربح (معطل افتراضياً) بالوقف بزيادات 50 نقطة مع بقاء 20 نقطة خلف السعر.
يُنشر أفضل على XAUUSD M5 مع ترك InpMaxOpenPositions عند 0 (إدخالات مُطبَّقة غير محدودة) وحد أدنى للرصيد 100$ بفضل الإعداد الافتراضي 1.0 لوت ثابت — لكن ينبغي على المتداولين تقليص الحجم عبر InpRiskPerTradePercent = 1.0 في MM_MODE_PERCENT_RISK لأي حساب حي، لأن الذهب بـ 1.0 لوت لكل طبقة يمكن أن يحرِّك الانسحاب بسرعة. يُشترط وسيط ECN بسبريد منخفض حتى يتصرف فلتر السبريد 20 نقطة وخطوة trailing 210 نقطة كما صُمِّما. تناسب نوافذ الجلسة الافتراضية (الآسيوية 00-09، الأوروبية 08-17، الأمريكية 13-22) أي متداول نشط؛ يتيح إيقاف InpEnableSessionFilters التداول على مدار الساعة لكنه يعطل إغلاق نهاية الجلسة القسري عند 23:00. يعكس مستوى المخاطرة MEDIUM نسبة 1:5 R:R إلى جانب توافق 2 من 4: عدد صفقات أقل من نظام تقاطع نموذجي، رابحون أكبر حين يتحقق الاتجاه.
منطق الاستراتيجية
Pipsgrowth EX16107 Trend — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Trend
الماجيك: 22216107
الإصدار: 2.00
الوصف:
Expert Advisor that trades using JMA (Jurik Moving Average) trend indicators with Hull confirmation and advanced exit strategies. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
PrepareTradeComment()DashboardFormatJmaPrice()DashboardFormatTimeframe()DashboardDirectionString()DashboardFilterStatusText()DashboardDeleteObjects()DashboardCreateRectangle()DashboardCreateLabel()DashboardSetLabel()DashboardEnsureLayout()
// Pipsgrowth EX16107 Trend — Execution Flow (from source analysis)
// Family: Trend
// Expert Advisor that trades using JMA (Jurik Moving Average) trend indicators with Hull confirmation and advanced exit strategies. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpLots | 1.0 | Fixed lot size (0.01,0.01,50.0) |
| InpSlippagePoints | 20 | Max slippage (points) (0,1,100) |
| InpMagicNumber | 22216107 | Magic number (1,1,99999999) |
| InpTradeComment | "Psgrowth.com Expert_16107" | Trade comment for new positions |
| InpMoneyManagementMode | MM_MODE_FIXED_LOTS | Money management mode |
| InpRiskPerTradePercent | 1.0 | Risk per trade (% of balance) (0.1,0.1,10.0) |
| InpLotRoundingMode | LOT_ROUND_NEAREST | Lot rounding mode |
| InpStopLossPoints | 200.0 | Initial stop loss (points) (10.0,1.0,5000.0) |
| InpTakeProfitPoints | 1000.0 | Initial take profit (points) (10.0,1.0,10000.0) |
| InpEnableMarginGuard | false | Enforce minimum margin level before new trades |
| InpMinMarginLevelPerc | 200.0 | Minimum margin level (%) (100.0,1.0,1000.0) |
| InpEnableTrailingStop | true | Master toggle for trailing stop management |
| InpTrailingTriggerPts | 40.0 | Trailing stop trigger (points) (5.0,1.0,500.0) |
| InpTrailingStepPts | 210.0 | Trailing stop step (points) (10.0,1.0,2000.0) |
| InpEnableBreakEven | false | Move SL to break-even |
| InpBreakEvenTrigger | 30.0 | Profit trigger (points) (5.0,1.0,500.0) |
| InpBreakEvenOffset | 5.0 | Offset from entry (points) (0.0,1.0,100.0) |
| InpEnableProfitLock | false | Lock profits |
| InpProfitLockIncrement | 50.0 | Lock every X points (10.0,1.0,500.0) |
| InpProfitLockStep | 20.0 | Distance from current price (1.0,1.0,200.0) |
| InpEnableProfitGate | true | Require existing trades be in profit |
| InpProfitGatePoints | 20.0 | Minimum profit (points) per trade (1.0,1.0,500.0) |
| InpMaxOpenPositions | 0 | Maximum open positions (0=unlimited) (0,1,100) |
| InpSignalBarShift | 1 | Signal bar shift (0=current,1=closed) |
| InpMinIndicatorsAgreeForInitialTrades | 2 | Minimum Hulls agreeing for initial entries (1,1,4) |
| InpMinIndicatorsAgreeForAdditonalTrades | 2 | Minimum Hulls agreeing for additional entries (1,1,4) |
| InpCloseOnOpposite | false | Close trades on opposite agreement if in profit |
| InpMinIndicatorsAgreeCloseProfit | 1 | Minimum Hulls to close in profit (1,1,4) |
| InpCloseProfitPoints | 10.0 | Minimum profit (points) to close on opposite (0.0,1.0,200.0) |
| InpCloseOnOppositeEvenIfInLose | true | Close trades on opposite agreement even if losing |
| InpMinIndicatorsAgreeCloseLoss | 2 | Minimum Hulls to close even if losing (1,1,4) |
| InpRequireStableSignal | false | Require consensus to persist |
| InpStableBarsRequired | 2 | Consecutive bars with same consensus (1,1,10) |
| JMA1_Enabled | true | Enable JMA source #1 |
| JMA1_Length | 7 | JMA length (1,1,500) |
| JMA1_Phase | 100 | Phase adjustment (-100..+100) |
| JMA1_PriceMode | JMA_PRICE_CLOSE | JMA price mode |
| JMA1_Timeframe | 6 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // JMA calculation timeframe |
| JMA1_Shift | 0 | Horizontal bar shift |
| JMA1_PriceShiftPoints | 0 | Vertical shift (points) |
| Hull2_Enabled | true | Enable Hull 2 |
| Hull2_Period | 160 | Hull Period (9,1,600) |
| Hull2_Divisor | 9.8 | Hull Divisor (2.0,0.1,25.0) |
| Hull2_Price | 7 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // PRICE_AVERAGE |
| Hull2_Timeframe | 7 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) |
| Hull2_FlatSensitivity | 3.0 | Flat Sensitivity (1.0,0.5,30.0) |
| Hull2_FlatBars | 21 | Flat Bars (1,1,50) |
| Hull2_AdxTimeframe | 6 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) |
| Hull2_AdxPeriod | 100 | ADX Period (7,1,150) |
| Hull2_AdxThreshold | 60.0 | ADX Threshold (20.0,0.5,100.0) |
| Hull2_MomentumLookback | 50 | Momentum Lookback (3,1,100) |
| Hull2_MomentumPoints | 34.0 | Momentum Points (5.0,0.5,70.0) |
| Hull3_Enabled | true | Enable Hull 3 |
| Hull3_Period | 245 | Hull Period (9,1,600) |
| Hull3_Divisor | 12.2 | Hull Divisor (2.0,0.1,25.0) |
| Hull3_Price | 7 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) |
| Hull3_Timeframe | 6 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) |
| Hull3_FlatSensitivity | 29.7 | Flat Sensitivity (1.0,0.5,40.0) |
| Hull3_FlatBars | 3 | Flat Bars (1,1,20) |
| Hull3_AdxTimeframe | 6 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) |
| Hull3_AdxPeriod | 55 | ADX Period (7,1,100) |
| Hull3_AdxThreshold | 28.0 | ADX Threshold (20.0,0.5,80.0) |
| Hull3_MomentumLookback | 21 | Momentum Lookback (3,1,50) |
| Hull3_MomentumPoints | 47.0 | Momentum Points (5.0,0.5,100.0) |
| Hull4_Enabled | false | Enable Hull 4 |
| Hull4_Period | 536 | Hull Period (9,1,1000) |
| Hull4_Divisor | 2.0 | Hull Divisor (1.0,0.1,40.0) |
| Hull4_Price | 2 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) |
| Hull4_Timeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) |
| Hull4_FlatSensitivity | 3.0 | Flat Sensitivity (1.0,0.5,40.0) |
| Hull4_FlatBars | 3 | Flat Bars (1,1,20) |
| Hull4_AdxTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) |
| Hull4_AdxPeriod | 14 | ADX Period (7,1,50) |
| Hull4_AdxThreshold | 20.0 | ADX Threshold (10.0,0.5,60.0) |
| Hull4_MomentumLookback | 5 | Momentum Lookback (3,1,50) |
| Hull4_MomentumPoints | 5.0 | Momentum Points (1.0,0.5,40.0) |
| InpJurik1_Enabled | false | Enable Jurik Filter 1 |
| InpJurik1_UseForInitialTrades | true | Use for initial trade entries |
| InpJurik1_UseForAdditionalTrades | true | Use for additional trades (same direction) |
| InpJurik1_Timeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Jurik Timeframe |
| InpJurik1_Length | 50 | Jurik Length (1,1,200) |
| InpJurik1_Phase | 0.0 | Jurik Phase (-100.0,1.0,100.0) |
| InpJurik1_VolatilityDivisorBase | 10.0 | Volatility Divisor Base (0.1,0.1,50.0) |
| InpJurik1_VolatilityDivisorMax | 100.0 | Volatility Divisor Max (1.0,1.0,200.0) |
| InpJurik1_VolumeBarLimit | 10 | Volume Bar Limit (1,1,50) |
| InpJurik1_AdaptiveFactor | 2.0 | Adaptive Factor (0.1,0.1,10.0) |
| InpJurik1_AdaptiveMultiplier | 4.0 | Adaptive Multiplier (0.1,0.1,20.0) |
| InpJurik1_AdaptiveMinLength | 30.0 | Adaptive Min Length (1.0,1.0,100.0) |
| InpJurik1_BetaFactor | 0.45 | Beta Factor (0.01,0.01,0.99) |
| InpEnableRsiConfirmation | false | Require RSI confirmation for entries |
| InpRsiTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) |
| InpRsiPeriod | 14 | RSI Period (5,1,30) |
| InpRsiPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) |
| InpRsiBuyMin | 0.0 | RSI Buy Min (0.0,1.0,50.0) |
| InpRsiBuyMax | 70.0 | RSI Buy Max (50.0,1.0,80.0) |
| InpRsiSellMin | 30.0 | RSI Sell Min (20.0,1.0,50.0) |
| InpRsiSellMax | 100.0 | RSI Sell Max (70.0,1.0,100.0) |
| InpEnableCorrelationMonitor | false | Enable correlation monitoring |
| InpCorrelationBlockEntries | true | Block new entries on correlation breakdown |
| InpCorrelationClosePositions | false | Close positions when correlation breaks down |
| InpCorrelationTimeframe | 8 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Correlation timeframe |
| InpCorrelationLookback | 50 | Bars to evaluate correlation (10,1,500) |
| InpCorrelationMinThreshold | 0.75 | Minimum absolute correlation allowed (0.1,0.01,0.99) |
| InpCorrelationDivergenceTrigger | 0.25 | Minimum change to flag breakdown (0.05,0.01,1.0) |
| InpCorrelationConfirmBars | 2 | Consecutive bars required to confirm breakdown (1,1,10) |
| InpCorrelationSymbolSuffix | "" | Broker symbol suffix (auto-appended) |
| InpCorrWatch_EURUSD | true | Monitor EURUSD correlation |
| InpCorrWatch_GBPUSD | true | Monitor GBPUSD correlation |
| InpCorrWatch_AUDUSD | false | Monitor AUDUSD correlation |
| InpCorrWatch_NZDUSD | false | Monitor NZDUSD correlation |
| InpCorrWatch_USDJPY | false | Monitor USDJPY correlation |
| InpCorrWatch_USDCAD | false | Monitor USDCAD correlation |
| InpCorrWatch_USDCHF | false | Monitor USDCHF correlation |
| InpCorrWatch_XAUUSD | false | Monitor XAUUSD correlation |
| InpEnableBarRangeFilter | false | Require minimum average bar range |
| InpBarRangeLookback | 5 | Number of bars to average (2,1,50) |
| InpMinBarRangePoints | 50.0 | Minimum average range (points) (1.0,1.0,1000.0) |
| InpEnableNFPFilter | false | Block trading on first Friday (NFP) |
| InpNFPStartHour | 8 | NFP release hour (broker time) (0,1,23) |
| InpNFPStartMinute | 30 | NFP release minute (0,1,59) |
| InpNFPAvoidMinutesBefore | 30 | Stop trading X min before NFP (5,1,120) |
| InpNFPAvoidMinutesAfter | 30 | Resume trading X min after NFP (5,1,120) |
| InpNFPClosePositions | true | Close positions before NFP |
| InpNFPCloseMinutesBefore | 10 | Close X min before NFP (1,1,60) |
| InpNFPCloseProfitOnly | false | Only close profitable positions |
| InpEnableAtrFilter | false | Require minimum ATR |
| InpAtrTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) |
| InpAtrPeriod | 14 | ATR period (5,1,50) |
| InpAtrAveragePeriod | 50 | ATR average period (10,1,200) |
| InpAtrMultiplierMin | 1.0 | ATR must be >= average*multiplier (0.5,0.1,5.0) |
| InpEnableSpreadFilter | false | Block trades during wide spreads |
| InpMaxSpreadPoints | 20.0 | Maximum allowed spread (points) (1.0,1.0,200.0) |
| InpEnableVolumeFilter | false | Enable volume filter for entries |
| InpVolumeType | VOLUME_TICK | Volume type to analyze |
| InpVolumeTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Volume data timeframe |
| InpVolumeThreshold | 0 | Minimum volume threshold (0=disabled) |
| InpUseVolumeAverage | true | Compare to average volume |
| InpVolumeAvgPeriod | 20 | Volume average period (5,1,100) |
| InpVolumeMultiplier | 0.8 | Volume must be >= average*multiplier (0.1,0.1,5.0) |
| InpEnableProfitScaling | false | Enable partial profit taking |
| InpScalingLevels | 3 | Number of scaling levels (1,1,5) |
| InpScalingTargets | "50,100,200" | Profit targets (points), comma-separated |
| InpScalingPercents | "30,30,40" | % to close at each level |
| InpEnableMaxHoldingTime | false | Enable position time limits |
| InpMaxHoldingHours | 24 | Maximum holding time (hours) (1,1,240) |
| InpCloseProfitableOnly | true | Close only profitable positions |
| InpMinProfitThreshold | 0.0 | Profit threshold (points) (0.0,1.0,500.0) |
| InpEnableMomentumExit | false | Exit on momentum loss |
| InpMomTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) |
| InpMomRsiPeriod | 14 | RSI period for momentum exit (5,1,30) |
| InpMomRsiOverbought | 70.0 | RSI exit for buys (60.0,1.0,100.0) |
| InpMomRsiOversold | 30.0 | RSI exit for sells (0.0,1.0,40.0) |
| InpMomAdxPeriod | 14 | ADX period for exit (7,1,30) |
| InpMomAdxWeakThreshold | 20.0 | Exit when ADX drops below (5.0,1.0,40.0) |
| InpEnableVolatilityExit | true | Exit on ATR spike |
| InpVolExitAtrTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) |
| InpVolExitAtrPeriod | 14 | ATR period (5,1,50) |
| InpVolExitAtrAvgPeriod | 50 | ATR average period (10,1,200) |
| InpVolSpikeMultiplier | 2.5 | ATR spike threshold vs avg (1.0,0.1,10.0) |
| InpVolExitProfitOnly | false | Require profit before ATR spike exit |
| InpEnableSRExit | false | Exit at key levels |
| InpSRLookbackBars | 50 | Bars to find swing points (5,1,500) |
| InpSRDistancePoints | 20.0 | Distance to trigger exit (1.0,1.0,1000.0) |
| InpSRExitProfitOnly | true | Only if profitable |
| InpEnableSessionFilters | true | Enable session-based trading |
| InpUseServerTime | true | Use broker server time (vs local) |
| InpAsianSessionEnabled | true | Enable trading during Asian session |
| InpAsianSessionStartHour | 0 | Asian session start hour (0,1,23) |
| InpAsianSessionStartMinute | 0 | Asian session start minute (0,1,59) |
| InpAsianSessionEndHour | 9 | Asian session end hour (0,1,23) |
| InpAsianSessionEndMinute | 0 | Asian session end minute (0,1,59) |
| InpEuropeanSessionEnabled | true | Enable trading during European session |
| InpEuropeanSessionStartHour | 8 | European session start hour (0,1,23) |
| InpEuropeanSessionStartMinute | 0 | European session start minute (0,1,59) |
| InpEuropeanSessionEndHour | 17 | European session end hour (0,1,23) |
| InpEuropeanSessionEndMinute | 0 | European session end minute (0,1,59) |
| InpUSSessionEnabled | true | Enable trading during US session |
| InpUSSessionStartHour | 13 | US session start hour (0,1,23) |
| InpUSSessionStartMinute | 0 | US session start minute (0,1,59) |
| InpUSSessionEndHour | 22 | US session end hour (0,1,23) |
| InpUSSessionEndMinute | 0 | US session end minute (0,1,59) |
| InpCustomSessionEnabled | false | Enable trading during custom session |
| InpCustomSessionStartHour | 22 | Custom session start hour (0,1,23) |
| InpCustomSessionStartMinute | 0 | Custom session start minute (0,1,59) |
| InpCustomSessionEndHour | 23 | Custom session end hour (0,1,23) |
| InpCustomSessionEndMinute | 59 | Custom session end minute (0,1,59) |
| InpEnableEndOfDayClose | false | Close all trades at specific time |
| InpEndOfDayCloseHour | 23 | Close hour (0,1,23) |
| InpEndOfDayCloseMinute | 45 | Close minute (0,1,59) |
| InpEndOfDayProfitOnly | false | Only close profitable positions |
| InpEndOfDayBlockNewTrades | true | Block new trades after close time |
| InpShowDashboard | true | Display on-chart dashboard |
| InpDashboardX | 8 | Dashboard X position (pixels) |
| InpDashboardY | 28 | Dashboard Y position (pixels) |
| InpDashboardWidth | 360 | Dashboard width (pixels) |
| InpDashboardBgColor | C'4,5,8' | Dashboard background color |
| InpDashboardBgOpacity | 245 | Dashboard fill opacity (0 transparent, 255 solid) (0,1,255) |
| InpDashboardTextColor | clrWhite | Dashboard text color |
| InpDashboardAccentColor | clrDodgerBlue | Dashboard header/accent color |
| InpAttachHullIndicators | true | Show Hull indicator overlays on chart |
| InpHullIndicatorSubwindow | 1 | Subwindow index for Hull overlays (0=main chart, 1+=subwindows) |
| InpShowRsiIndicator | true | Display RSI indicator visualization |
| InpRsiIndicatorSubwindow | 2 | Subwindow index for RSI visualization (1+=subwindows) |
| InpShowAdxIndicator | true | Display ADX indicator visualization |
| InpAdxIndicatorSubwindow | 3 | Subwindow index for ADX visualization (1+=subwindows) |
| InpShowAtrIndicator | true | Display ATR indicator visualization |
| InpAtrIndicatorSubwindow | 4 | Subwindow index for ATR visualization (1+=subwindows) |
| InpEnableChoppinessFilter | true | Enable choppiness detection and filtering |
| InpChopBlockEntries | true | Block new entries during choppy markets |
| InpChopClosePositions | false | Close positions when choppiness detected |
| InpChopCloseProfitOnly | true | Only close profitable positions on choppiness |
| InpChopMinProfitPoints | 10.0 | Minimum profit (points) to close on chop (0.0,1.0,500.0) |
| InpChopRequireLayers | 2 | Layers required to confirm choppiness (1,1,4) |
| InpChopUseChopIndex | true | Enable Choppiness Index layer |
| InpChopIndexTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // CHOP indicator timeframe |
| InpChopIndexPeriod | 14 | CHOP calculation period (10,1,50) |
| InpChopIndexThreshold | 61.8 | Choppy when CHOP > threshold (50.0,1.0,80.0) |
| InpChopUseAdx | true | Enable ADX trend strength layer |
| InpChopAdxTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // ADX timeframe |
| InpChopAdxPeriod | 14 | ADX period (7,1,50) |
| InpChopAdxMinTrend | 25.0 | Choppy when ADX < threshold (15.0,1.0,40.0) |
| InpChopUseRangeCompression | true | Enable range compression detection |
| InpChopRangeTimeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Range compression timeframe |
| InpChopRangeLookback | 5 | Bars to compare range compression (3,1,20) |
| InpChopRangeAtrPeriod | 14 | ATR period for range comparison (10,1,50) |
| InpChopRangeCompressionRatio | 0.5 | Choppy when range < ATR*ratio (0.2,0.1,1.0) |
| InpChopUseAdaptiveThresholds | false | Dynamically adjust thresholds based on volatility |
| InpChopAdaptiveAtrPeriod | 50 | ATR period for adaptive scaling (20,1,100) |
| InpChopAdaptiveMultiplier | 1.5 | Volatility multiplier for adaptive mode (0.5,0.1,3.0) |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX16107 JMAEA — JMA trend EA with Hull confirmation and advanced exits, full 12-layer stack."
#include <Trade/Trade.mqh>
#include <Trade/PositionInfo.mqh>
#include <Hull2EA/ExitManager.mqh>
enum ENUM_MM_MODE
{
MM_MODE_FIXED_LOTS = 0,
MM_MODE_PERCENT_RISK = 1
};
enum ENUM_LOT_ROUNDING
{
LOT_ROUND_DOWN = 0,
LOT_ROUND_NEAREST = 1,
LOT_ROUND_UP = 2
};
enum ENUM_JMA_PRICE_MODE
{
JMA_PRICE_CLOSE = 1, // Close price
JMA_PRICE_OPEN, // Open price
JMA_PRICE_HIGH, // High price
JMA_PRICE_LOW, // Low price
JMA_PRICE_MEDIAN, // (High+Low)/2
JMA_PRICE_TYPICAL, // (High+Low+Close)/3
JMA_PRICE_WEIGHTED, // (2*Close+High+Low)/4
JMA_PRICE_SIMPLE, // (Open+Close)/2
JMA_PRICE_QUARTER, // (Open+Close+High+Low)/4
JMA_PRICE_TRENDFOLLOW0, // Trend-following (0)
JMA_PRICE_TRENDFOLLOW1 // Trend-following (0.5)
};
//----------------------
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)
{الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.