Pipsgrowth EX16055 Trend — إكسبرت أدفايزر متابعة اتجاه
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX16055 Trend — Momentum + Structure Breakout EA combining Donchian Channel, RSI and Hull Moving Average with adaptive buffer management. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX16055 Trend هو نظام اندلاع قابل للتوصيل بأربعة محركات، مبني حول ملف مصدري يتجاوز 4,400 سطر يتيح للمتداول اختيار أي من عائلات الإشارات الأربع يُطلق الأوامر فعلياً. المحركات الأربعة هي اندفاع + اختراق هيكلي (MBS)، وقناة دونتشيان (DC)، ومؤشر RSI، ومتوسط هول المتحرك (HMA)؛ كل محرك يكشف عن ثلاثة مفاتيح بولية للدخول والتأكيد والخروج، إضافة إلى كتلة معاملات المؤشر الخاصة به، بحيث يمكن تشغيل نفس EA كنظام هيكلي MBS خالص، أو نظام اندلاع دونتشيان، أو نظام انعكاس RSI، أو متابع اتجاه HMA، أو أي هجين من الأربعة. افتراضياً، فقط MBS_EntrySignal_BUY وMBS_EntrySignal_SELL تكونان صحيحتين، لذا السلوك الافتراضي هو ما يسميه رأس الملف «Momentum + Structure Breakout» على الإطار الزمني للشارت نفسه. المحركات الأخرى تبقى خاملة في قائمة المدخلات، جاهزة للترقية إلى دور دخول أو تأكيد أو خروج بقلب البولات.
يعامل محرك MBS الرئيسي كل إعداد محتمل كتصويت رباعي الأجزاء. أولاً يمسح MBS_LookbackBars السابق (افتراضياً 20) ويرسم مقاومة أفقية عند أعلى قمة ودعماً أفقياً عند أدنى قاع داخل تلك النافذة. ثم يتحقق إن كان الإغلاق الحالي للشمعة يتجاوز ذلك النطاق بينما الشمعة السابقة كانت داخله — اندلاع «سابق داخل، حالي خارج» الكلاسيكي. ثالثاً يعدّ إغلاق MBS_ConfirmationBars السابقة (افتراضياً 2) ويرفض الإشارة ما لم يكن 60% منها على الأقل يؤكد جانب الاندلاع؛ هذا هو حارسه ضد الاندفاعات الكاذبة. رابعاً يضيف ثلاثة مرشحات: فحص ارتفاع حجم يتطلب أن يكون حجم التيك الحالي على الأقل 1.5x متوسط الفترة بعد استئصال أعلى وأدنى 10% من القيم، و1.2x حجم الشمعة السابقة على الأقل؛ مرشح اتجاه EMA(21) يتطلب أن يكون السعر على الجانب الصحيح من EMA بمسافة لا تقل عن نقطتين؛ وفحص درجة الزخم يتطلب أن لا تقل نسبة 60% من آخر شمعة عن الإغلاق صعوداً (أو هبوطاً). يدير ATR(14) على إطار MBS الزمني بوابة تذبذب منفصلة: نسبة ATR الحالي إلى السابق يجب أن تبقى دون MBS_VolatilityFilter (افتراضياً 1.5)، مع توسيع العتبة إلى 1.8x عندما يكون النطاق الهيكلي كبيراً (5x ATR) وتضييقها إلى 1.2x عندما يكون الهيكل ضيقاً (أقل من 2x ATR). كل هذه الاختبارات الفرعية التسعة مرتبطة بـ AND — فشل أي منها يُرجع NO_SIGNAL.
تتبع المحركات الثلاثة الأخرى الهيكل نفسه بأحشاء مختلفة. DonchianChannel_Decision() تأخذ أعلى قمة وأدنى قاع على مدى DC_ChannelPeriod (افتراضياً 20) وتنتظر إغلاق الشمعة الحالية لتجاوز ذلك النطاق بحجم DC_MinBreakoutPoints الأدنى (افتراضياً 10)؛ يفرض اختبار DC_MinPullbackPoints المضاد للاختراق الكاذب (افتراضياً 5 نقاط) أن يكون السوق قد تراجع من حافة النطاق في DC_ConfirmationBars الأخيرة قبل أن يُحتسب الاندلاع؛ يرفض DC_MinRangePoints (افتراضياً 20) الاندفاعات في القنوات الضيقة. تقرأ RSI_Decision() مؤشر iRSI(RSI_Period، افتراضياً 14) وتطلب تقاطعاً عبر RSI_Oversold (30) للشراء وRSI_Overbought (70) للبيع، إضافة إلى تأكيد زخم لثلاث شموع وRSI_MinRange بنقاط لمنع الـ EA من التداول في المناطق الميتة. تبني HMA_Decision() متوسط هول متحرك كاملاً يدوياً — تحسب WMA(period/2) وWMA(period)، تشكّل 2*WMA(n/2) - WMA(n)، ثم تنعم النتيجة بـ WMA(sqrt(period)) — وتقرأ الميل والزخم بالنقاط و70% سلاسة عبر HMA_SmoothingBars قبل أن تُرجع إشارة. الرياضيات اليدوية لـ HMA هي أبطأ مسار في الملف، لذا تخزن الدالة آخر 10 قيم في مخزن دوار ولا تعيد الحساب إلا عند تغير الشمعة.
منظم OnTick عند السطر 1706 هو قلب الملف ويسير على سلم صارم من تسع خطوات. الخطوة 1 تستدعي IsBasicTradeConditionsMet()، التي تفشل في التيك إذا كان السبريد فوق MaxSpread (20 نقطة)، أو Terminal غير متصل، أو الرمز في وضع الإغلاق فقط، أو الهامش الحر أقل من 200% من متطلب الصفقة الجديدة، أو نسبة الأسهم انخفضت دون 50%. الخطوة 2 تشغّل ManageExistingPositions() لتطبيق قفل الربح/التريلينج ومعالجة إشارات الخروج. الخطوة 3 تستطلع المحركات الأربعة في وضع الدخول وتضبط main_signal لحظة ما يُرجع أي محرك مفعّل سلسلة BUY (أو SELL)؛ المحركات الأخرى لا تُستشار، لذا هذا منطق OR. ثم تشغّل الخطوة 4 كل محرك تأكيد مفعّل وتطلب أن يتفقوا جميعاً — هذه بوابة AND. تشغّل الخطوة 5 اختيارياً مرشح استقرار N-شموع الذي يمسك الإشارة حتى تُلاحَظ لـ BarDelay شموع متتالية. تستدعي الخطوة 6 ShouldOpenAdditionalPosition()، التي تؤدي تدقيقاً كاملاً لمخاطر المحفظة (حد 20% تعرض لكل اتجاه، حد 50% استخدام هامش، حد 5% خسارة صفقة واحدة، حد 15% تراجع) قبل السماح بأمر جديد. تستدعي الخطوة 7 CheckAdditionalPositionConfirmation()، سلسلة أولوية (DC > MBS > RSI > HMA) تتجاوز بتصويت DC ناجح. تحسب الخطوة 8 HardSL_Points=15 وTP_Points=3000، مانحةً الافتراضي نسبة مخاطرة/عائد قصوى 1:200. ترسل الخطوة 9 الأمر السوقي بالـ magic 22216055 والتعليق «Psgrowth.com Expert_16055».
منطق قفل الربح/التريلينج في ManageExistingPositions() لا يُفعّل إلا بعد أن تحقق الصفقة على الأقل LockProfitEvery_X_Points (30) نقطة ربحاً؛ عندها يرفع الإيقاف إلى current_price ناقص LockMinusBuffer (15) للشراء، مع قفل أدنى 10 نقاط فوق سعر الفتح. تتدفق إشارات الخروج عبر سلسلة أولوية رباعية (DC > MBS > RSI > HMA)، لكن الملف يرفض التصرف في أي خروج ربحه المطلق دون 5 نقاط أو صفقته يقل عمرها عن 30 دقيقة، مما يمنع الضوضاء من تخبط الحساب. يُغلّف المساعد الإعادة في نهاية الملف (TryClose_EX16055 / TryClosePartial_EX16055 / TryModify_EX16055) كل نداء CTrade في حلقة ثلاث محاولات مع Sleep 100-200 مللي ثانية على REQUOTE / TIMEOUT / PRICE_OFF / PRICE_CHANGED، لكن TryClosePartial كود ميت — لا يوجد مسار إغلاق جزئي يستدعيها. تتولى InitializeBuffers() وValidateAndSyncBuffers() جميع مصفوفات الأسعار/المؤشرات العامة مع فحص نسبة نجاح يخفض حجم المخزن إلى النصف ويضع علامة وضع طوارئ إذا نجح أقل من 80% من تغييرات الحجم. بـ 97 مدخل و15 دالة و5 مقابض مؤشر أصلية (iRSI + iMA + 3x iATR)، يُعد EX16055 ملف إطار عمل: المتداول الذي يريد اختبار A/B لـ MBS ضد DC ضد HMA على نفس الشارت يحتاج فقط إلى قلب البولات، لا إعادة ترجمة.
في الاختبار الخلفي على XAUUSD M5، يتصرف الـ EA كنظام اندلاع زخم: معظم الأيام تنتج صفر أو إشارة واحدة لأن كومة المرشحات المدمجة لمحرك MBS صارمة، ونسبة 1:200 الافتراضية مُعَدة ليتم دفعها في يوم الاتجاه الكبير العرضي، لا كل جلسة تذبذب. يجب على المستخدمين الذين يتداولون إطارات زمنية أضيق أو رموز تذبذب أقل أن يخفضوا TP_Points بشكل كبير (الافتراضي 3000 نقطة لن يُملأ أبداً على EURUSD H1) والتفكير في تفعيل DC_Confirm_BUY/SELL كتأكيد من المرور الثاني لخفض الاندفاعات الكاذبة الخاصة بـ MBS. أرصدة الحساب القياسية البالغة 500$ وأكثر تدعم بشكل مريح اللوت الافتراضي 1.0، لكن نظام المراكز المتعددة بـ MaxOpenTrades=5 يمكن أن يُهرّمن التعرض بسرعة، لذا يجب ترك EnableDynamicLockProfit عند قيمته الافتراضية الحقيقية، وحد التعرض 20% لكل اتجاه داخل ShouldOpenAdditionalPosition هو أهم رقم يجب مراقبته على حساب حي.
تفاصيل الاستراتيجية
في كل تيك يُنفّذ الملف أولاً IsBasicTradeConditionsMet()، الذي يفشل التيك عندما يتجاوز السبريد MaxSpread=20 نقطة، أو يكون Terminal غير متصل، أو يقل الهامش الحر عن 200% من متطلب الصفقة التالية، أو تنخفض الأسهم دون 50% من الرصيد. ثم تمشي ManageExistingPositions() على كل مركز مفتوح، وتطبق رافعة LockProfitEvery_X_Points=30 / LockMinusBuffer=15 بمجرد أن تحقق الصفقة 30+ نقطة ربحاً، وتستطلع المحركات الأربعة (DC > MBS > RSI > HMA) في وضع الخروج. ثم يستطلع كشف الدخول المحركات التي تم تفعيل مفاتيح EntrySignal فيها: افتراضياً MBS فقط، ويتطلب اختراق نطاق قمة/قاع 20 شمعة مع 60% تأكيد عبر شمعتين، وارتفاع حجم 1.5x، واتجاه EMA(21) بمسافة لا تقل عن نقطتين، ودرجة زخم بنسبة 60% للشموع الصاعدة، ونسبة تذبذب ATR(14) دون 1.5. بمجرد أن يُطلق أي محرك إشارة، يجب أن يتفق كل محرك تأكيد مفعّل، وينتظر مرشح تأخير N-شموع اختياري BarDelay شمعة، وتُجري ShouldOpenAdditionalPosition() تدقيق المحفظة لحدود 20% تعرض و15% تراجع، وتُجري CheckAdditionalPositionConfirmation() نفس سلسلة الأولوية للصفقة الجديدة، وعندها فقط يحسب الـ EA السعر/SL/TP ويرسل trade.Buy() أو trade.Sell() بـ magic 22216055 والتعليق «Psgrowth.com Expert_16055».
يُدار الدخول من قبل أي من أربعة محركات قابلة للتوصيل، مع تشغيل MBS (اندفاع + اختراق هيكلي) افتراضياً: يمسح آخر MBS_LookbackBars=20 بحثاً عن نطاق مقاومة/دعم أفقي، ويطلب إغلاق «الشمعة السابقة داخل، الحالية خارج» يتجاوز ذلك النطاق، ويشترط أن يكون 60% من آخر MBS_ConfirmationBars=2 يؤيد جانب الاندلاع، ويضيف مرشحات مرتبطة بـ AND لارتفاع الحجم (>=1.5x المتوسط بعد استئصال القيم المتطرفة)، واتجاه EMA(21) بمسافة لا تقل عن نقطتين، ودرجة زخم بنسبة 60% للشموع الصاعدة/الهابطة، ونسبة تذبذب ATR(14) دون MBS_VolatilityFilter=1.5. إذا تمت ترقية DC أو RSI أو HMA إلى دور الدخول، فإن ذلك المحرك وحده كافٍ لإطلاق الإشارة؛ لا تُستشار المحركات الأخرى للإشارة، ثم يجب أن تتفق جميع التأكيدات المفعّلة قبل وضع الأمر.
تعمل الخروجات على سلسلة أولوية رباعية للمحركات (DC > MBS > RSI > HMA) داخل ManageExistingPositions()، لكن الـ EA يصفّر أي خروج يقل ربحه المطلق عن 5 نقاط أو يقل عمر صفقته عن 30 دقيقة لقمع الضوضاء، وتُعيد TryClose_EX16055 محاولة كل إغلاق CTrade ثلاث مرات على REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED مع Sleep 200 مللي ثانية بين المحاولات. منطق الإشارة العكسية البسيط موجود ضمنياً أيضاً: إذا أطلق المحرك المعاكس إشارة بينما المركز مفتوح، فإن مسار الخروج في الملف يُغلق المركز بنفس طريقة إغلاق مركز خرج بإشارة عادية.
افتراضياً HardSL_Points=15، يوضع على بعد 15 نقطة من الدخول في كل أمر؛ بمجرد أن تحقق الصفقة LockProfitEvery_X_Points=30 نقطة ربحاً، ترفع ManageExistingPositions() الإيقاف إلى current_price ناقص LockMinusBuffer=15 نقطة (للشراء) مع قفل مضمون 10 نقاط فوق سعر الفتح لإبقاء الصفقة على نقطة التعادل الدنيا بعد أول عتبة ربح. لا يوجد تريلينج لكل صفقة يتجاوز هذه الرافعة الواحدة ولا توجد دالة نقطة تعادل في الملف.
افتراضياً TP_Points=3000، وهو نطاق استثنائي الاتساع بنسبة 1:200 مخاطرة/عائد مقابل وقف الخسارة عند 15 نقطة، ومُعدّ ليُدفع فقط في أيام الاندلاع الكبيرة، وليس في كل صفقة؛ يُضبط الـ TP كحد على جانب الوسيط في أمر الدخول ولا يديره الـ EA بنشاط بمجرد فتح المركز.
مُصمم لـ XAUUSD M5 بحد أدنى للإيداع 100$ (رصيد 500$+ أكثر واقعية بالنظر إلى اللوت الافتراضي 1.0 وأن نظام المراكز المتعددة يمكن أن يُهرّمن حتى 5 صفقات متزامنة)، مخاطرة متوسطة، ووسيط قياسي أو ECN بسبريد منخفض لأن MaxSpread=20 نقطة هي بوابة صلبة. الاستراتيجية هي اندلاع متابع اتجاه، لذا توفر جلسات لندن ونيويورك أنظف إشارات MBS؛ أما اندفاعات الجلسة الآسيوية على الذهب فستفشل في كثير من الأحيان في متطلب التأكيد 60% وتُنتج ضوضاء. يجب على المستخدمين الذين يتداولون الأزواج الرئيسية للعملات أو أي شيء بقيمة نقطة من 4 إلى 5 أرقام خفض TP_Points من 3000 إلى مستوى معقول (50-200) قبل أي اختبار حي.
منطق الاستراتيجية
Pipsgrowth EX16055 Trend — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Trend
الماجيك: 22216055
الإصدار: 2.00
الوصف:
Momentum + Structure Breakout EA combining Donchian Channel, RSI and Hull Moving Average with adaptive buffer management and delay filters for trend-following breakout entries. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
InitializeBuffers()ValidateAndSyncBuffers()CleanupBuffers()IsBasicTradeConditionsMet()ManageExistingPositions()IsSignalStable()DonchianChannel_Decision()RSI_Decision()MBS_Decision()HMA_Decision()
// Pipsgrowth EX16055 Trend — Execution Flow (from source analysis)
// Family: Trend
// Momentum + Structure Breakout EA combining Donchian Channel, RSI and Hull Moving Average with adaptive buffer management and delay filters for trend-following breakout entries. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpMagic | 22216055 | EA Magic Number |
| InpTradeComment | "Psgrowth.com Expert_16055" | Trade comment |
| Lots | 1.0 | Lot size for trades |
| MaxSpread | 20 | Maximum spread in points |
| Slippage | 3 | Maximum slippage in points |
| AllowBuyTrades | true | Allow BUY trades |
| AllowSellTrades | true | Allow SELL trades |
| EntryDelayBars | 1 | wait this many full new bars before placing a new entry |
| EnableDelayFilter | false | Enable N-bar delay confirmation filter |
| BarDelay | 1 | Number of bars delay required for signal confirmation |
| HardSL_Points | 15 | Stop Loss in points |
| TP_Points | 3000 | Take Profit in points |
| LockProfitEvery_X_Points | 30.0 | Step: every X points profit |
| LockMinusBuffer | 15.0 | Lock profit minus X point buffer |
| MaxOpenTrades | 5 | Maximum allowed open trades at the same time in all directions |
| AllowOnlyProfitableAdditions | true | Only allow adding positions if existing trades are profitable |
| MinProfitInPointsPerTradeToAdd | 20.0 | Minimum profit required per existing trade in points |
| EnableDebug | false | Enable debug logging |
| MBS_EntrySignal_BUY | true | Enable MBS BUY entry signal |
| MBS_EntrySignal_SELL | true | Enable MBS SELL entry signal |
| MBS_Confirm_BUY | false | Require MBS BUY confirmation |
| MBS_Confirm_SELL | false | Require MBS SELL confirmation |
| MBS_ExitTrigger_BUY | false | Enable MBS BUY exit trigger |
| MBS_ExitTrigger_SELL | false | Enable MBS SELL exit trigger |
| MBS_ExitConfirm_BUY | false | Require MBS BUY exit confirmation |
| MBS_ExitConfirm_SELL | false | Require MBS SELL exit confirmation |
| MBS_Timeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for analysis |
| MBS_LookbackBars | 20 | Lookback period for structure analysis |
| MBS_MinBreakoutSize | 50 | Minimum breakout size in points |
| MBS_MomentumThreshold | 0.7 | Momentum strength threshold (0-1) |
| MBS_ConfirmationBars | 2 | Bars needed for confirmation |
| MBS_VolatilityFilter | 1.5 | Volatility filter multiplier |
| MBS_TrendStrengthMin | 0.6 | Minimum trend strength (0-1) |
| MBS_RequireVolumeSpike | true | Require volume confirmation |
| MBS_VolumeMultiplier | 1.5 | Volume spike multiplier |
| MBS_ATRPeriod | 14 | ATR period for volatility |
| MBS_ATRMultiplier | 1.0 | ATR multiplier for breakout validation |
| MBS_EMAPeriod | 21 | EMA period for trend direction |
| MBS_MinPriceMovement | 0.0001 | Minimum price movement for signal |
| DC_EntrySignal_BUY | false | Enable Donchian Channel BUY entry signal |
| DC_EntrySignal_SELL | false | Enable Donchian Channel SELL entry signal |
| DC_Confirm_BUY | false | Require Donchian Channel BUY confirmation |
| DC_Confirm_SELL | false | Require Donchian Channel SELL confirmation |
| DC_ExitTrigger_BUY | false | Enable Donchian Channel BUY exit trigger |
| DC_ExitTrigger_SELL | false | Enable Donchian Channel SELL exit trigger |
| DC_ExitConfirm_BUY | false | Require Donchian Channel BUY exit confirmation |
| DC_ExitConfirm_SELL | false | Require Donchian Channel SELL exit confirmation |
| DC_Timeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for Donchian Channel (M1-D1) |
| DC_ChannelPeriod | 20 | Lookback period for channel (10,5,60) |
| DC_ConfirmationBars | 2 | Bars needed for confirmation (1,1,5 or 20) |
| DC_MinBreakoutPoints | 10 | Minimum breakout size in points (1,5,100) my |
| DC_ATRMultiplier | 1.0 | ATR multiplier for volatility filter (0.5,0.25,2.0) my (0.5,0.25,2) |
| DC_ATRPeriod | 14 | ATR period for volatility (5,1,30) my (5,1,50) |
| DC_RequireVolumeSpike | false | Require volume spike confirmation |
| DC_VolumeMultiplier | 1.5 | Volume spike multiplier range: 1.0 … 3.0 step 0.5 (my 1,0.15,5) |
| DC_MinPullbackPoints | 5 | Minimum pullback before breakout (anti-fakeout) – range: 0 … 20 step 2 my : 0,1,50 |
| DC_MinRangePoints | 20 | Minimum channel range to avoid chop – range: 10 … 100 step 10 , my 5-10,100 |
| RSI_EntrySignal_BUY | false | Enable RSI BUY entry signal |
| RSI_EntrySignal_SELL | false | Enable RSI SELL entry signal |
| RSI_Confirm_BUY | false | Require RSI BUY confirmation |
| RSI_Confirm_SELL | false | Require RSI SELL confirmation |
| RSI_ExitTrigger_BUY | false | Enable RSI BUY exit trigger |
| RSI_ExitTrigger_SELL | false | Enable RSI SELL exit trigger |
| RSI_ExitConfirm_BUY | false | Require RSI BUY exit confirmation |
| RSI_ExitConfirm_SELL | false | Require RSI SELL exit confirmation |
| RSI_TF | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for RSI |
| RSI_Period | 14 | RSI period |
| RSI_Price | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Applied price for RSI |
| RSI_Overbought | 70 | Overbought level for RSI |
| RSI_Oversold | 30 | Oversold level for RSI |
| RSI_SignalShift | 0 | Shift for RSI signal line |
| RSI_Midline | 50 | RSI midline level |
| RSI_ExtremeBuffer | 5 | Buffer for extreme levels (anti-whipsaw) |
| RSI_MinRange | 5.0 | Minimum RSI range for valid signal |
| RSI_MinVolatility | 2.0 | Minimum volatility threshold |
| RSI_MomentumBars | 3 | Bars for momentum confirmation |
| RSI_DeadZoneSize | 5.0 | Dead zone around midline |
| HMA_EntrySignal_BUY | false | Enable HMA BUY entry signal |
| HMA_EntrySignal_SELL | false | Enable HMA SELL entry signal |
| HMA_Confirm_BUY | false | Require HMA BUY confirmation |
| HMA_Confirm_SELL | false | Require HMA SELL confirmation |
| HMA_ExitTrigger_BUY | false | Enable HMA BUY exit trigger |
| HMA_ExitTrigger_SELL | false | Enable HMA SELL exit trigger |
| HMA_ExitConfirm_BUY | false | Require HMA BUY exit confirmation |
| HMA_ExitConfirm_SELL | false | Require HMA SELL exit confirmation |
| HMA_Timeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for HMA analysis |
| HMA_Period | 21 | HMA period |
| HMA_ConfirmationBars | 2 | Bars needed for confirmation |
| HMA_MinSlopeAngle | 0.0001 | Minimum slope angle for trend detection |
| HMA_MinMomentumPoints | 5 | Minimum momentum in points |
| HMA_RequirePriceAbove | true | Require price above HMA for buy |
| HMA_RequirePriceBelow | true | Require price below HMA for sell |
| HMA_FilterATRMultiplier | 1.5 | ATR multiplier for noise filter |
| HMA_FilterATRPeriod | 14 | ATR period for volatility filter |
| HMA_TrendStrengthMin | 0.7 | Minimum trend strength (0-1) |
| HMA_SmoothingBars | 3 | Bars for HMA smoothing validation |
| HMA_MinPriceDistance | 2 | Minimum distance from HMA in points |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX16055 new1 -- Momentum Structure Breakout with Donchian, RSI, HMA, full 12-layer stack."
#include <Trade\Trade.mqh>
CTrade trade;
//--- Globally cached handles and buffers with enhanced validation
int hRSI = INVALID_HANDLE, hMBS_EMA = INVALID_HANDLE, hMBS_ATR = INVALID_HANDLE;
int hDC_ATR = INVALID_HANDLE, hHMA_ATR = INVALID_HANDLE;
// Dynamic buffer arrays with memory optimization
double rsi_buf[];
double mbs_high[], mbs_low[], mbs_close[], mbs_ema[], mbs_atr[];
long mbs_vol[];
double dc_high[], dc_low[], dc_close[], dc_atr[];
long dc_vol[];
double hma_high[], hma_low[], hma_close[], hma_atr[], hma_values[];
// Adaptive buffer sizing with performance tracking
int maxBars = 50; // Optimized default minimum bars needed
static int last_calculated_maxBars = 0;
static bool buffers_initialized = false;
// HMA calculation optimization
datetime last_hma_calc = 0;
static double hma_cache[10]; // Rolling cache for HMA values
static int hma_cache_index = 0;
static bool hma_cache_initialized = false;
// Buffer synchronization and validation
struct BufferState
{
bool rsi_ready;
bool mbs_ready;
bool dc_ready;
bool hma_ready;
datetime last_sync;
int sync_failures;
} buffer_state = {false, false, false, false, 0, 0};
// Memory management and error recovery
struct MemoryManager
{
int total_arrays;
int successful_resizes;
int failed_resizes;
datetime last_cleanup;
bool emergency_mode;
} memory_mgr = {0, 0, 0, 0, false};
////////////////
//+------------------------------------------------------------------+
//| Add these global safety monitoring variables at the top |
//+------------------------------------------------------------------+
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.