Pipsgrowth EX18077 TrendFollow — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD، EURUSD، GBPUSD، USDJPY · M5، H1
Pipsgrowth EX18077 TrendFollow — Multi-indicator trend-following EA using dual Hull Moving Averages for trend direction, Donchian Channel for breakout co. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX18077 TrendFollow هو خبر آلي لاتباع الاتجاه قائم على ثلاث ركائز مستقلة، يتطلب توافقًا من متوسط هول مزدوج محسوب داخليًا، وقناة دونشيان محسوبة يدويًا، ومؤشر زخم (مومنتوم) لفترة 14، قبل إرسال أي أمر. الرقم السحري 22218077، الإصدار 2.00، MQL5 strict.
لا يُحمَّل متوسط هول كمؤشر مخصص — بل يُبنى في OnInit من أربعة مقابض iMA بنمط MODE_LWMA. للتركيب السريع (الفترة الافتراضية 9) يخصّص الخبر الآلي بدائيتَي WMA، واحدة للفترة 4 (n/2) والأخرى للفترة 9 (n). وقيمة هول الفعلية التي تستخدمها الاستراتيجية تُحسب عند كل شمعة في UpdateIndicators كـ g_fastHull = 2.0 * fastWMA1[0] - fastWMA2[0]، وهي تقريب هول القياسي Hull(n) = 2*WMA(n/2) - WMA(n). ويعكس التركيب البطيء النمط نفسه عند الفترة الافتراضية 21 (WMA(10) و WMA(21)). سعر التطبيق لكلا المتوسطين قابل للاختيار من قِبل المستخدم عبر InpHullPrice (1=إغلاق، 2=افتتاح، 3=أعلى، 4=أدنى، 5=وسيط، 6=نموذجي، 7=مرجح) ويُحوَّل إلى ENUM_APPLIED_PRICE مرة واحدة في OnInit عبر MapAppliedPriceInt().
تُعدّ قناة دونشيان أيضًا حسابًا يدويًا، وليست iCustom أو iDonchian. تستدعي UpdateIndicators الدالتَين CopyHigh(_Symbol, PERIOD_CURRENT, 1, InpDonchianPeriod=20, highs) و CopyLow(...). والحد العلوي هو أعلى أعلى 20 شمعة سابقة، والحد السفلي هو أدنى أدنى 20 شمعة سابقة، ونقطة المنتصف التي تستخدمها منطق الإشارة هي المتوسط البسيط للحدّين. ويُعدّ خط الزخم القطعة الوحيدة من الإشارة التي تستخدم استدعاء iMomentum(_Symbol, PERIOD_CURRENT, InpMomentumPeriod=14, PRICE_CLOSE) القياسي، والعتبة يتحكم بها المستخدم عبر InpMomentumThreshold (الافتراضي 100.0، القراءة المحايدة).
تُعدّ GetSignal() قرار الدخول الوحيد. تعمل على الشمعة المغلقة (close1 = iClose shift 1) وتُرجع +1 للشراء، أو -1 للبيع، أو 0 لعدم التداول. يتطلب الشراء توافق الركائز الثلاث جميعها: g_fastHull > g_slowHull (هول السريع فوق هول البطيء)، و close1 > (donchianUpper + donchianLower) / 2.0 (إغلاق الشمعة السابقة فوق نقطة منتصف دونشيان)، و g_momentum > InpMomentumThreshold (الزخم فوق العتبة). ويعكس البيع الشروط الثلاثة. لا يوجد مصنف نظام سوق، ولا مكدس تأكيد منفصل، ولا ترجيح ثقة — الركائز الثلاث هي نفسها المصفِّي. وتتضمن الدالة أيضًا debugCounter ثابتًا يطبع حالة المؤشر كل 100 استدعاء، لتكون قيم الاستراتيجية مرئية في سجل Experts عند التشغيل في Tester.
يتحدد حجم اللوت من InpStopLoss. مع InpLotMode = LOT_MODE_RISK (الافتراضي)، تضرب CalculateLotSize في AccountInfoDouble(ACCOUNT_BALANCE) * InpRiskPercent / 100.0 للحصول على مبلغ المخاطرة، ثم تقسم على قيمة النقطة الواحدة المستنبطة من SYMBOL_TRADE_TICK_VALUE و SYMBOL_TRADE_TICK_SIZE. ثم تأخذ NormalizeLot() النتيجة وتقرِّبها إلى الأسفل إلى درجة سلّم اللوت للرمز، وتثبتها في (minLot, maxLot)، وتقصها عند InpMaxLotSize = 5.0 لوت. ويتجاوز LOT_MODE_RISK LOT_MODE_FIXED حساب المخاطرة ويستخدم InpFixedLotSize = 0.01 مباشرة. ويجري التحقق من الهامش عبر OrderCalcMargin قبل كل فتح؛ فإن كان الهامش الحر غير كافٍ، يُرفض الأمر ولا تُعاد المحاولة.
يمتلك إرسال الأمر حلقة إعادة محاولة من 3 محاولات مفصولة برمز النتيجة. تستدعي OpenPosition() trade.Buy(lot, _Symbol, 0, sl, tp, InpTradeComment) (أو trade.Sell للبيع) وتفحص رمز الإرجاع. فإن كان REQUOTE أو PRICE_CHANGED أو PRICE_OFF أو TIMEOUT، ينام الخبر الآلي 100 مللي ثانية، ويحدّث سعر الطلب/العرض، ويعيد حساب وقف الخسارة/جني الأرباح بالسعر الجديد، ويعيد المحاولة. الرموز الأخرى تكسر الحلقة فورًا. يظهر نمط إعادة المحاولة نفسه في TryClose_EX18077 و TryClosePartial_EX18077 (كلتاهما 3 محاولات، فجوات 200 مللي ثانية، إعادة المحاولة على نفس الرموز الأربعة) وفي TryModify_EX18077 (3 محاولات، فجوات 100 مللي ثانية، إعادة المحاولة على REQUOTE و TIMEOUT فقط). ويُكتشف نمط التعبئة تلقائيًا مرة واحدة عند التهيئة: FOK إن كان الرمز يعلن SYMBOL_FILLING_FOK، وإلا IOC، وإلا RETURN.
يعمل سلّم إدارة الصفقة عند كل تيك، وهو منظم كثلاث مراحل ترقية أحادية الاتجاه. المرحلة 1 — التعادل: عندما تتجاوز profitPoints >= InpBEStart = 200، يُنقل وقف الخسارة إلى openPrice + InpBEOffset * _Point للشراء (أو ناقص الهامش للبيع). المرحلة 2 — التتبع: عندما يتجاوز الربح InpTrailStart = 300 نقطة، يُضبط وقف الخسارة على currentPrice - InpTrailDistance * _Point (أو زائد للبيع)، بشرط أن يكون وقف الخسارة الجديد على الجانب المربح من سعر الدخول. المرحلة 3 — الشد: عندما يتجاوز الربح InpTightenStart = 600 نقطة، يُشدّ وقف الخسارة إلى currentPrice - InpTightenDist * _Point (InpTightenDist = 80). كل مرحلة تنقل وقف الخسارة في الاتجاه المواتي فقط — تتحقق الدالة المساعدة من newSL > currentSL للشراء (أو < للبيع) قبل استدعاء TryModify، ولا تخفف الوقف أبدًا. لا يوجد إغلاق جزئي ولا خروج متدرج. تستمر الصفقة حتى وقف الخسارة الأصلي، أو جني الأرباح الأصلي، أو إغلاق كامل قسري من مرشح الوقت، أو إغلاق بسبب حد التراجع.
البناء التدريجي (pyramiding) مُنفَّذ لكنه معطّل افتراضيًا (InpAllowPyramid = false). عند التفعيل، تتجاوز ManagePyramiding() المراكز المفتوحة على نفس الرمز ونفس الرقم السحري، ثم ترفض إضافة أمر جديد ما لم تجتز بوابتان. البوابة A: يجب أن يملك كل مركز قائم في نفس الاتجاه ربحًا «مؤمَّنًا» — معرَّف كـ (sl - openPrice) / _Point للشراء أو العكس للبيع — لا يقل عن InpMinSecuredProfit = 100 نقطة. البوابة B: يجب أن يكون السعر الحالي على بعد InpPyramidDistance = 300 نقطة على الأقل من آخر دخول في الاتجاه المربح. والحد الأقصى InpMaxPyramid = 3 مستويات. تعيد كل إضافة تدريجية استخدام OpenPosition()، مما يعني أن حجم اللوت الجديد يُحدَّد بشكل مستقل من InpStopLoss وحده — ولا تندمج الإدخالات التدريجية في وقف خسارة سلة موحد.
حماية التراجع هي شبكة الأمان الوحيدة من جانب الأسهم. تعيد CheckDrawdownLimits() حساب خسارتَين عند كل تيك: الخسارة اليومية كـ (g_dailyStartBalance - currentBalance) / g_dailyStartBalance * 100، وخسارة الأسهم كـ (g_peakEquity - currentEquity) / g_peakEquity * 100. يُعاد ضبط g_dailyStartBalance عند أول شمعة من كل يوم جديد في CheckNewDay()؛ وتُرقَّى g_peakEquity إلى الأعلى عند كل تيك، فتبقى العتبة مرتكزة على العلامة المرجعية. إذا بلغت الخسارة اليومية InpMaxDailyLoss = 3.0% أو بلغت خسارة الأسهم InpMaxEquityLoss = 10.0% من الذروة، يضبط الخبر الآلي g_ddLimitHit = true، ويسجل السبب، ويُطلق Alert()، ولأن InpCloseOnDDLimit = true افتراضيًا، يستدعي CloseAllPositions(). تُحظر الإدخالات الجديدة لبقية اليوم؛ ويُمسح العلم في صباح اليوم التالي عندما ترى CheckNewDay يوم تداول جديد.
مرشح الوقت اختياري (InpUseTimeFilter = false افتراضيًا). عند التفعيل، تحظر CheckTimeFilter() يومي السبت والأحد بالكامل، وتحظر الجمعة اختياريًا عبر InpTradeFriday، وفي الجمعة تُطلق إغلاقًا كاملًا عبر CloseAllPositions() عند InpFridayCloseHour = 20. وتُحظر الإدخالات أيضًا خارج InpStartHour..InpEndHour (08:00..20:00 بتوقيت الخادم افتراضيًا). وحد فرق السعر مستقل عن مرشح الوقت: تقرأ CheckSpread() قيمة SYMBOL_SPREAD بالنقاط وترفض التيك بالكامل إذا تجاوز InpMaxSpread = 300 (3.0 نقاط على وسيط من 5 منازل). ويُضبط الانزلاق عند التهيئة عبر trade.SetDeviationInPoints(InpSlippage = 30).
لوحة المعلومات مستطيل 220×160 بلون slate داكن يُرسم في أعلى اليسار عبر OBJ_RECTANGLE_LABEL، مع سبعة عناصر فرعية من OBJ_LABEL: اسم الخبر الآلي، وملصق الاتجاه الحالي (صاعد/هابط/مسطح، مستنبط من علاقة هول)، وفروق السعر الحية بالنقاط، وعدد مراكز الشراء/البيع، والربح/الخسارة غير المحققة المجمَّعة عبر مراكز الرقم السحري، وقراءة الزخم الحية، وحالة حد التراجع. اللوحة تشخيصية بحتة — وإيقاف تشغيلها عبر InpShowPanel = false لا يؤثر على منطق التداول.
تُشحن الاستراتيجية بـ 5 مقابض مؤشر بالضبط (4 بدائيات WMA لتركيبَي هول + iMomentum) ولا توجد دالة OnTester في المصدر. وهي خفيفة الوزن عمدًا في المؤشرات لأن التصميم يفترض أن المستخدم سيختبرها عبر M5 و H1 على الرموز الأربعة المقترحة (XAUUSD و EURUSD و GBPUSD و USDJPY)، حيث إن تكلفة وسطاء المؤشرات ستكون عبئًا حقيقيًا. لا يوجد إغلاق عند انعكاس الإشارة ولا حد زمني لكل صفقة — فالصفقة التي تُفتح بإشارة صحيحة ستبقى مفتوحة حتى يُفعَّل أحد المخارج الأربعة: ضرب وقف الخسارة، أو ضرب جني الأرباح، أو الإغلاق القسري يوم الجمعة، أو انتهاك حد التراجع اليومي/الأسهمي. وغياب الخروج عند انعكاس الإشارة مقصود: سلّم الترقية 200/300/600 نقطة هو ما يفرض الخروج في نهاية المطاف عند انعكاس الاتجاه.
تفاصيل الاستراتيجية
في كل تيك يُنفِّذ الخبر الآلي أولاً CheckSpread (يرفض التيك فوق 300 نقطة) و CheckTimeFilter (معطل افتراضيًا؛ يحظر عطلة نهاية الأسبوع + الجمعة بعد الإغلاق + خارج 08:00..20:00 عند التفعيل)، ثم CheckDrawdownLimits مقابل عتبتَي 3% يومي و10% من ذروة الأسهم، ثم تُرقِّي ManageOpenPositions وقف الخسارة ثلاثي المراحل (تعادل/تتبع/شد) في كل مركز. بعد ذلك تنتظر بوابة OnTick شمعة جديدة (التحقق من g_lastBarTime) ولا تستدعي UpdateIndicators إلا عندها، والتي تحدِّث بدورها بدائيات WMA الأربع لمتوسطَي هول الداخليَين، ومقبض iMomentum، ودونشيان المحسوب يدويًا عبر CopyHigh/CopyLow. وتُرجع GetSignal القيمة +1 أو -1 فقط عندما يتصدر هول السريع هول البطيء، ويكون إغلاق الشمعة السابقة على الجانب الصحيح من نقطة منتصف دونشيان، ويكون الزخم على الجانب الصحيح من العتبة؛ فإن أخفق أيٌّ من الثلاثة، لا يُفتح أي أمر جديد. ويحسب مسار الأمر حجم اللوت من وقف الخسارة عبر CalculateLotSize، ويتحقق من الهامش الحر عبر OrderCalcMargin، ثم يحاول trade.Buy أو trade.Sell حتى 3 مرات بفواصل 100 مللي ثانية، مع إعادة المحاولة فقط على REQUOTE/TIMEOUT/PRICE_CHANGED/PRICE_OFF. وعند تفعيل InpAllowPyramid، تُضيف ManagePyramiding حتى InpMaxPyramid = 3 مراكز في الاتجاه نفسه، بشرط أن يملك كل مركز قائم ربحًا مؤمَّنًا لا يقل عن InpMinSecuredProfit = 100 نقطة، وأن يكون السعر الحالي على بعد InpPyramidDistance = 300 نقطة على الأقل من آخر دخول في الاتجاه المربح.
يُفعَّل أمر الشراء حين تجتاز الركائز الثلاث جميعها على الشمعة المغلقة: متوسط هول السريع الداخلي (الفترة الافتراضية 9، يُبنى كـ 2*WMA(4) − WMA(9)) فوق متوسط هول البطيء الداخلي (الفترة الافتراضية 21، 2*WMA(10) − WMA(21))، وإغلاق الشمعة السابقة فوق نقطة منتصف قناة دونشيان لفترة 20 محسوبة يدويًا، وخط iMomentum لفترة 14 فوق InpMomentumThreshold (الافتراضي 100.0). ويُفعَّل البيع على الشرط المعاكس. تُقرأ الإشارة مرة واحدة عند كل شمعة جديدة (تتحقق بوابة OnTick من g_lastBarTime)، فلا تفتح التيكات داخل الشمعة أوامر جديدة، بل تُدِّر المراكز المفتوحة فقط.
تُغلق المراكز عبر وقف الخسارة الأصلي (InpStopLoss = 500 نقطة، يُضبط عند الفتح)، أو جني الأرباح الأصلي (InpTakeProfit = 1500 نقطة)، أو إغلاق كامل قسري يوم الجمعة بعد InpFridayCloseHour، أو انتهاك حد التراجع اليومي/الأسهمي داخل CheckDrawdownLimits (3% يوميًا أو 10% من ذروة الأسهم). لا يوجد إغلاق عند انعكاس الإشارة، ولا جني جزئي للأرباح، ولا حد زمني لكل صفقة. وثلاثية ترقية وقف الخسارة (التعادل عند 200 نقطة ربح/30 نقطة هامش، التتبع عند 300/150 نقطة، الشد عند 600/80 نقطة) هي التي تشدّ الوقف الوقائي تدريجيًا مع تحرك الصفقة في الاتجاه المواتي.
يُضبط InpStopLoss الثابت عند 500 نقطة (5.0 نقاط على وسيط من 5 منازل) عند الفتح عبر OpenPosition. وعند تجاوز الربح InpBEStart = 200 نقطة يُرقَّى وقف الخسارة إلى سعر الفتح + 30 نقطة (نقطة التعادل + الهامش). وعند 300 نقطة ربح يُتابع الوقف عند السعر الحالي ± InpTrailDistance = 150 نقطة؛ وعند 600 نقطة ربح يُشدّ إلى السعر الحالي ± InpTightenDist = 80 نقطة. كل تعديل أحادي الاتجاه — تتحقق الدالة المساعدة من newSL > currentSL (أو < للبيع) قبل استدعاء TryModify_EX18077، فلا يُخفَّف الوقف أبدًا.
يُضبط InpTakeProfit الثابت عند 1500 نقطة (15.0 نقطة على وسيط من 5 منازل) في الوقت نفسه الذي يُضبط فيه وقف الخسارة عبر OpenPosition، ولا يُعدَّل بعد التنفيذ. ويُضبط جني الأرباح بمسافة سعرية مطلقة من سعر الدخول ويُرسل إلى الوسيط في طلب الأمر الأصلي؛ لا يوجد جني جزئي، ولا تتبع للربح، ولا خروج متدرج. وتعطيله بقيمة 0 يترك الصفقة تُغلق فقط عبر وقف الخسارة، أو الإغلاق القسري يوم الجمعة، أو حد التراجع.
هذا الخبر الآلي مُعايَر للحد الأدنى للرصيد 100$ عبر XAUUSD و EURUSD و GBPUSD و USDJPY في الإطارَين M5 و H1، بمخاطرة متوسطة. ويتطلب حد فرق السعر 3.0 نقاط (InpMaxSpread = 300 نقطة) وحد الانزلاق 30 نقطة حساب ECN أو RAW-SPREAD بفوارق ضيقة — فالحساب القياسي بفوارق تتجاوز نقطتين على XAUUSD فلن يصل إلى الإشارة. ويجب تفعيل InpUseTimeFilter (08:00..20:00 بتوقيت الخادم، إغلاق الجمعة عند 20:00) للحسابات على الوسطاء الذين يعانون سيولة ضعيفة بين عشية وضحاها، لا سيما لزوج الين الياباني. ويعتبر الخطر الافتراضي 0.5% مع حد أقصى 5.0 لوت وحد خسارة 3% يوميًا و10% من ذروة الأسهم مناسبًا لتشغيل خبر آلي واحد على رمز واحد برصيد يتراوح بين 500 و5,000 دولار؛ أما المحافظ متعددة الرموز أو متعددة الخبراء الآليين، فينبغي خفض InpRiskPercent إلى 0.25% أو أقل، حتى لا يُخرق سقف الخسارة اليومي 3% بيوم سيئ واحد عبر المحفظة.
منطق الاستراتيجية
Pipsgrowth EX18077 TrendFollow — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: TrendFollow
الماجيك: 22218077
الإصدار: 2.00
الوصف:
Multi-indicator trend-following EA using dual Hull Moving Averages for trend direction, Donchian Channel for breakout confirmation, and Momentum for entry timing. BUY when Fast Hull > Slow Hull + price breaks Donchian upper + Momentum > 100. SELL on the mirror condition. Includes BE, trailing, pyramid and drawdown protection. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
SetProperFillingMode()UpdateIndicators()GetSignal()CheckSpread()CheckTimeFilter()CheckDrawdownLimits()CheckNewDay()CalculateLotSize()NormalizeLot()OpenPosition()
// Pipsgrowth EX18077 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// Multi-indicator trend-following EA using dual Hull Moving Averages for trend direction, Donchian Channel for breakout confirmation, and Momentum for entry timing. BUY when Fast Hull > Slow Hull + price breaks Donchian upper + Momentum > 100. SELL on the mirror condition. Includes BE, trailing, pyramid and drawdown protection. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpMagicNumber | 22218077 | Magic Number (222 + Expert ID) |
| InpSlippage | 30 | Max Slippage (points) |
| InpMaxSpread | 300 | Max Spread (points, 0=disable) |
| InpMaxRetries | 3 | Order Retry Attempts |
| InpTradeComment | "Psgrowth.com Expert_18077" | Trade Comment |
| InpLotMode | LOT_MODE_RISK | Lot Sizing Mode |
| InpFixedLotSize | 0.01 | Fixed Lot Size |
| InpRiskPercent | 0.5 | Risk Percent (%) |
| InpMaxLotSize | 5.0 | Maximum Lot Size |
| InpStopLoss | 500 | Stop Loss (points) |
| InpTakeProfit | 1500 | Take Profit (points, 0=disable) |
| InpFastHullPeriod | 9 | Fast Hull Period |
| InpSlowHullPeriod | 21 | Slow Hull Period |
| InpHullPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Hull Applied Price |
| InpDonchianPeriod | 20 | Donchian Channel Period |
| InpMomentumPeriod | 14 | Momentum Period |
| InpMomentumThreshold | 100.0 | Momentum Threshold (100=neutral) |
| InpUseTimeFilter | false | Enable Time Filter |
| InpStartHour | 8 | Start Hour (Server Time) |
| InpEndHour | 20 | End Hour (Server Time) |
| InpTradeFriday | true | Trade on Friday |
| InpFridayCloseHour | 20 | Friday: Close All After Hour |
| InpUseBreakeven | true | Enable Breakeven |
| InpBEStart | 200 | BE Start (points profit) |
| InpBEOffset | 30 | BE Offset (points above entry) |
| InpUseTrailing | true | Enable Trailing Stop |
| InpTrailStart | 300 | Trail Start (points profit) |
| InpTrailDistance | 150 | Trail Distance (points) |
| InpUseTighten | true | Enable Tighten SL |
| InpTightenStart | 600 | Tighten Start (points profit) |
| InpTightenDist | 80 | Tighten Distance (points) |
| InpAllowPyramid | false | Allow Pyramid Positions |
| InpMaxPyramid | 3 | Max Pyramid Levels |
| InpPyramidDistance | 300 | Min Distance Between Entries (points) |
| InpMinSecuredProfit | 100 | Min Secured Profit Before Next (points) |
| InpUseDDProtection | true | Enable Drawdown Protection |
| InpMaxDailyLoss | 3.0 | Max Daily Loss % (0=disabled) |
| InpMaxEquityLoss | 10.0 | Max Equity Loss % from Peak (0=disabled) |
| InpCloseOnDDLimit | true | Close All When DD Limit Hit |
| InpShowPanel | true | Show Info Panel |
| InpPanelX | 10 | Panel X Position |
| InpPanelY | 30 | Panel Y Position |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX18077 Hull_Donchian_Momentum — Dual Hull MA + Donchian breakout + Momentum, full 12-layer stack."
#include <Trade\Trade.mqh>
//+------------------------------------------------------------------+
//| ENUMS |
//+------------------------------------------------------------------+
enum ENUM_LOT_MODE
{
LOT_MODE_FIXED = 0, // Fixed Lot Size
LOT_MODE_RISK = 1 // Risk % of Balance
};
//+------------------------------------------------------------------+
//| 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_APPLIED_PRICE g_InpHullPrice = PRICE_CLOSE;
INPUT GROUP: Trade Execution |
//+------------------------------------------------------------------+
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_APPLIED_PRICE g_InpHullPrice = PRICE_CLOSE;
input group "=== Trade Execution ==="
input int InpMagicNumber = 22218077; // Magic Number (222 + Expert ID)
input int InpSlippage = 30; // Max Slippage (points)
input int InpMaxSpread = 300; // Max Spread (points, 0=disable)
input int InpMaxRetries = 3; // Order Retry Attempts
input string InpTradeComment = "Psgrowth.com Expert_18077"; // Trade Comment
//+------------------------------------------------------------------+
//| 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.