P
PipsGrowth
أخرىمفتوح المصدر - مجاني

Pipsgrowth EX15002 SMC-OrderBlock — إكسبرت أدفايزر إكسبرت أدفايزر

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

Pipsgrowth EX15002 SMC-OrderBlock — Liquidity Trap EA mapping swing liquidity pools (high/low sweeps), waiting for price rejection surge at the zone with en. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

إكسبيرت Pipsgrowth EX15002 SMC-OrderBlock يدور حول فكرة واحدة: السوق يترك آثاراً حيث تتراكم أوامر وقف الخسارة، والشموع التي تخترق هذه المناطق دون أن تستمر في الاتجاه نفسه غالباً ما تنعكس. يحوّل الإكسبيرت هذه الفكرة إلى منطقة سيولة مرسومة على الشارت. في كل مرة يكتشف فيها الاستراتيجية نقطة تأرجح (Swing Pivot) — شمعة يكون ارتفاعها أعلى من الشمعتين على جانبيها، أو انخفاضها أقل — يرسم خطاً أفقياً (ObjectCreate OBJ_HLINE) عند هذا المستوى، ويلوّنه بالأحمر القاتم للسيولة البيعية في الأعلى والأخضر المزرق للسيولة الشرائية في الأسفل، ويراقب السعر ليعود إلى المنطقة داخل نطاق تفاعل بعرض 80 نقطة خلال 24 ساعة. تعتمد أطروحة التداول بالكامل على هذه المناطق: يُفعَّل الشراء عندما يلامس السعر منطقة التأرجح السفلي الخضراء وتُغلق شمعة ابتلاعية (Engulfing) عبر نطاق التفاعل، ويُفعَّل البيع عندما يلامس السعر منطقة التأرجح العلوي الحمراء وتُغلق شمعة ابتلاعية ضده.

ما يميّز هذا الإكسبيرت عن نظام الاختراق البسيط هو مصنّف الحالة السوقية (Regime Classifier) في دالة CalcRegime(). في كل شمعة جديدة يقرأ الإكسبيرت 200 شمعة من تاريخ مؤشر ATR(14) ومؤشر ADX(14) ومؤشر بولنجر باند بعرض (20, 2.0)، ويرتّب قيمة ATR الحالية وعرض الباند في النسب المئوية، ويجمع النتيجة مع قراءة ADX الحالية في واحدة من سبع حالات: R_STRONG_TREND (ADX أعلى من أو يساوي 28)، وR_WEAK_TREND (ADX بين 20 و28)، وR_RANGE (نسبة ATR منخفضة)، وR_COMPRESS (نسبة ATR منخفضة + نسبة عرض الباند منخفضة)، وR_EXPAND (نسبة ATR عالية + نسبة عرض الباند عالية)، وR_BREAKOUT (نسبة ATR عالية وحدها)، وR_CHOPPY (بقية الحالات). دالة RegimeAllowsEntry() لا تسمح بدخول الصفقات إلا في أربع من هذه الحالات — الاتجاه القوي، الاتجاه الضعيف، الاختراق، أو التوسّع. هذا الفلتر الواحد هو ما يمنع الإكسبيرت من شراء الاختراقات الزائفة في النطاق ومن البيع في قاع انضغاطي قبل أن ينفجر. كما أنه يفسّر وجود تعداد الحالات السبع في أعلى الملف: قيمة g_regime نفسها تتحكم في بوابة الدخول وفي مسار الإغلاق في ManageRegimeExit()، لذا فإن انتقال الحالة من اتجاه إلى نطاق أو تذبذب يتسبب في تسوية الإكسبيرت للصفقات المفتوحة تلقائياً.

الإشارة نفسها تستخدم فحص زخم الجسم بنسبة 0.10% (SURGE_PCT = 0.0010). تتحقق دالة CheckSurge() من الشمعة المغلقة (الإزاحة=1) ولا تقبل الشراء إلا إذا كان الإغلاق أعلى من الافتتاح وأن (الإغلاق - الافتتاح) / الافتتاح يساوي أو يفوق 0.0010 — أي حركة جسم لا تقل عن عُشر الواحد في المئة. ثم يتطلب تأكيد الابتلاع في CheckEngulfing() أن تكون الشمعة السابقة بلون عكسي وأن يغطّي جسم الشمعة الحالية جسم الشمعة السابقة بالكامل، مع افتتاح الشمعة الحالية أدنى من إغلاق السابقة للشراء. أما الركيزة الثالثة للدخول فهي توافق الإطار الزمني الأعلى: تقرأ دالة CheckHTFTrend() متوسط EMA(50) على إطار H1 وتطلب أن يكون إغلاق H1 على الجانب الصحيح من المتوسط لاتجاه الصفقة. مع الإعدادات الافتراضية InpRequireHTF = true وInpRequireEngulfing = true، يجب أن تتوافق جميع الأرجل الثلاثة، ولهذا السبب لا يطلق الإكسبيرت سوى على نوع الشموع التي يقبل عليها متداول Smart Money أيضاً.

يُحسب حجم المخاطرة في CalcLotByRisk() من رأس المال الفعّال لا من الرصيد الإجمالي. تُرجع EffCapital() القيمة min(InpCapAmount, equity) كلما كان InpCapAmount > 0، وهو ما يُعرف بسقف تخصيص رأس المال — الطريقة لتشغيل استراتيجية بألفي دولار من حساب قيمته عشرون ألفاً دون تكبير حجم اللوت إلى الرصيد الكامل. مع InpRiskPercent = 0.5 وقيمة ATR(14) نموذجية قدرها 250 نقطة على XAUUSD، يكلّف وقف الخسارة بمضاعف 1.8x من ATR ما يقارب 450 نقطة؛ وحجم اللوت هو ما يشتريه 0.5% من رأس المال الفعّال عند مسافة المخاطرة تلك. لا يوجد تحسين OnTester مدمج في التشغيل الحي، لكن الملف يُسلّم مع صيغة OnTester() مخصصة (صافي_الربح * معامل_الربح) / (1 + نسبة_التراجع_النسبية) التي تعطي الأولوية للربحية لكل وحدة ترابط، لا للعائد الإجمالي — وهو مفيد لاختيار المدخلات التي لن تنفجر المنحنى عند الاختبار الأمامي.

إدارة الصفقات هي الجزء الذي يقوم بمعظم العمل بعد الدخول. وقف الخسارة الابتدائي هو ATR(14) × 1.8 (محدود بـ 4000 نقطة كحد أمان) والهدف الابتدائي هو ATR(14) × 3.6، وهو ما يعادل نسبة مخاطرة إلى عائد 2:1 على الصفقة الجديدة. تراقب دالة ManageBreakEven() معامل R الحالي لكل صفقة، وحالما تصل الصفقة إلى +1.0R تنقل وقف الخسارة إلى سعر الدخول بالإضافة إلى 5 نقاط تأمين — وهي نقطة تعادل ميكانيكية نظيفة. ثم تنتظر دالة ManagePartial() حتى يصل السعر إلى ATR(14) × 2.7 من سعر الدخول (1.5R) فتُغلق 50% من الصفقة، تاركة الباقي يركض. وأخيراً، تُفعَّل دالة ManageTrail() عند +1.2R وتنقل وقف الخسارة إلى السعر_الحالي -/+ ATR(14) × 2.5 في كل تقييم، ولا تحرّكه إلا في الاتجاه المربح. التركيبة — هدف 2R، إغلاق جزئي عند 1.5R، تتبع عند 1.2R، تعادل عند 1.0R — هي سلّم الخروج رباعي المراحل القياسي الذي يسمح للصفقات الرابحة بالاستمرار مع حماية رأس المال.

بوابة عدم التداول (NoTradeReason()) شاملة بشكل غير معتاد. ترفض دخول الصفقات عندما يكون وقت الوسيط خارج 7:00–21:00 (الوقت الوحيد الذي يكون فيه XAUUSD نشطاً بشكل موثوق وخالٍ من الأخبار في معظم التدفقات retail)، وعندما يكون اليوم السبت أو الأحد، وعندما يتجاوز السبريد الحالي 60 نقطة، وعندما يتجاوز متوسط السبريد على 50 شمعة ضعفي خط الأساس، وعندما تصل الخسارة اليومية المحققة إلى 3% من رأس المال الفعّال، وعندما تصل الخسارة الأسبوعية إلى 6%، وعندما تكون هناك 3 صفقات مفتوحة بالفعل على الرمز تحت هذا الرقم السحري، وعندما يكون قد تم تنفيذ 8 صفقات أو أكثر اليوم، أو عندما يكون هناك تهدئة لمدة 3 شموع نشطة بعد 3 خسائر متتالية. تمشي TrackClosedDealsForLosses() في تاريخ الصفقات للخلف وتعدّ المخارج الخاسرة المتتالية؛ ما إن تتراكم ثلاث خسائر، يُضبط g_cooldownUntil إلى TimeCurrent() + 3 * PeriodSeconds(_Period) ويتوقف الإكسبيرت مؤقتاً. المدخل InpKillSwitch هو زر الذعر: عند تفعيله تُرجع كل مسارات الدخول سبباً فارغاً ويطبع الإكسبيرت [NOTRADE] KILLSWITCH.

ميزة يغفل عنها معظم المستخدمين هي تنظيف المناطق المرسومة على الشارت. تستدعي OnDeinit() الدالة ObjectsDeleteAll(0, "LiqTrapZ1259_") لتختفي الخطوط الحمراء والخضراء عند إزالة الإكسبيرت — مفيد عند مقارنة الاستراتيجيات أو عند إعادة تحميل الشارت بمدخلات جديدة. المصفوفة g_zones[] محدودة بـ 64 مدخلاً كحد أقصى (MAX_ZONES) ويُرفض تسجيل منطقة جديدة إذا كانت هناك منطقة بنفس الاتجاه ضمن 50 نقطة، وهو ما يمنع تسجيل نفس تجمع السيولة مرتين بعد إعادة اختبار الفتلة. كل منطقة تُستخدم مرة واحدة: تُعطّل CheckEntries() المنطقة وتحذف خطها لحظة إرسال أمر منها، فلا يمكن للمستوى نفسه الإطلاق إلا مرة واحدة لكل حدث سيولة.

بالنسبة لتوسيع المراكز، تفتح دالة PyramidAllowed() الباب لإضافة ما يصل إلى 3 مستويات إجمالاً لكل اتجاه على كل رمز. يجب أن يكون كل دخول هرمي جديد على بُعد 1.5x من ATR من الدخول السابق، وأن تكون كل صفقة قائمة عند +0.5R أو أفضل، وألا تكون الحالة السوقية تذبذباً أو انضغاطاً، وأن يكون حجم اللوت 0.5x من لوت الأصل. هذا الإعداد أقرب إلى إضافة في اتجاه الترند منه إلى مارتينجال — الإكسبيرت لا يضيف أبداً في صفقة خاسرة — لكنه يزيد التعرض المطلق في الأيام ذات الاتجاه. ZONE_MAX_SYMBOL_SIDE = 1 يعني أن مستوى هرمياً واحداً بحد أقصى مسموح به لكل جانب في الوقت نفسه، فلا يمكن للإكسبيرت بناء شبكة من 3 مستويات في اتجاه واحد من منطقة واحدة.

ثلاث أدوات مساعدة لإعادة المحاولة — TryClose_EX15002 وTryClosePartial_EX15002 وTryModify_EX15002 — موجودة في أسفل الملف ومُدمجة في دوال الإدارة الحيّة. تشغّل كل واحدة منها الحلقة نفسها: تحاول الإغلاق أو التعديل، تفحص كود الإرجاع، تُعيد المحاولة حتى 3 مرات عند ظهور REQUOTE / TIMEOUT / PRICE_OFF / PRICE_CHANGED مع توقف 200 ميلي ثانية للإغلاق و100 ميلي ثانية للتعديل، وتوقف بعد الفشل الثالث. هذا ما يحفظ الإكسبيرت من التعطل عندما يصطدم طلب تعديل بمستوى التجميد أو عند إغلاق جزئي خلال ارتفاع السبريد. استدعاء Trade.SetDeviationInPoints(20) في OnInit يتعامل مع انزلاق الدخول بالطريقة نفسها.

ما ليس عليه الإكسبيرت، وهو ما يكون المصدر صريحاً بشأنه: لا يوجد فلتر أخبار، ولا حارس أيام الأسبوع بخلاف حجب عطلة نهاية الأسبوع، ولا فلتر ارتباط، ولا وقف خسارة على مستوى السهم لكل صفقة، ولا تخارج تدريجي بعد الإغلاق الجزئي الوحيد بنسبة 50%، ولا خطوة موافقة يدوية قبل الإرسال. المدخلات الـ 21 والثوابت الداخلية الـ 29 تمنح تحكماً كافياً لضبط الإكسبيرت على وسيط وجلسة محددين، لكن على المتداول تقديم الحذر بنفسه. مصنّف الحالات السبع، ومناطق السيولة المرسومة على الشارت، وسلّم الخروج رباعي المراحل، والبنية المكونة من 12 طبقة (الحالة، الإشارة، الدخول، التأكيد، عدم التداول، سقف رأس المال، المخاطرة، التحجيم، الإدارة، الخروج، التوسيع، OnTester) هي الادعاءات الجوهرية للمصدر — والتنفيذ فعلياً يربط جميع هذه الطبقات الإثنتي عشرة.

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

في كل تيك، تُحدّث OnTick() بيانات الرمز، وتكتشف الشمعة الجديدة عبر حارس g_lastClosedBar، وتُشغّل ResetDailyIfNeeded() وTrackClosedDealsForLosses() (التي تضبط تهدئة 3 شموع بعد 3 خسائر متتالية)، وتُحدّث خط الأساس للسبريد على 50 شمعة، وعند الشموع الجديدة فقط تستدعي CalcRegime() لطي آخر قيم ATR(14) وADX(14) وعرض Bollinger(20,2.0) في واحدة من سبع حالات، وUpdateZones() لمسح آخر InpSwingBars*2+1 شموع بحثاً عن نقاط تأرجح جديدة تُسجَّل كمدخلات في LiquidityZone (تُرسم على الشارت كخطوط OBJ_HLINE حمراء/خضراء). تُنشأ سبعة مقابض للمؤشرات — ATR(14) وADX(14) وBollinger(20,2.0) وRSI(14) وEMA(20) وEMA(50) وH1 EMA(50) — في OnInit() وتُحرَّر في OnDeinit(). تمشي CheckEntries() في مصفوفة المناطق، ولكل منطقة نشطة تختبر ما إذا كان سعر العرض/الطلب الحالي داخل نطاق التفاعل بعرض 80 نقطة؛ إذا اجتازت ConfirmAll() (HTF + الزخم + الابتلاع) وPyramidAllowed() (حد أقصى 3 مستويات، الأبوين عند +0.5R فأكثر، والحالة ليست تذبذباً/انضغاطاً) وSideCount() (1 بحد أقصى لكل جانب لكل رمز)، تُطلق SendEntry() بوقف خسارة ATR(14)×1.8 وهدف ATR(14)×3.6. بعد الدخول تشتغل دوال الإدارة الأربع دون شرط في كل تيك: ManageBreakEven() عند +1.0R، وManagePartial() عند +1.5R، وManageTrail() عند +1.2R، وManageRegimeExit() عند انتقال الحالة إلى R_RANGE/R_COMPRESS/R_CHOPPY، وManageOppositeExit() عند التعارض مع متوسط HTF EMA50. يُحسب حجم اللوت عبر CalcLotByRisk() من EffCapital() (التي تحترم سقف InpCapAmount لتخصيص رأس المال) وInpRiskPercent = 0.5%، مع InpFixedLot = 0.01 كقيمة احتياطية.

إشارة الدخول

يُفعَّل الشراء عندما تلامس شمعة مغلقة على M5/H1 بجسم لا يقل عن 0.10% من سعر الافتتاح داخل منطقة سيولة سفلية مسجّلة سابقاً (داخل نطاق تفاعل بعرض 80 نقطة) ويكون جسم الشمعة قد ابتلع بالكامل الشمعة السابقة ذات اللون العكسي ويكون إغلاق H1 فوق المتوسط H1 EMA(50)؛ والبيع هو الصورة المعكوسة. يجب أن تنجح جميع التأكيدات (HTF، الزخم، الابتلاع) عبر ConfirmAll()، ويجب أن تصنّف RegimeAllowsEntry() الحالة الحالية على أنها StrongTrend أو WeakTrend أو Breakout أو Expand.

إشارة الخروج

سلّم الخروج الكامل ميكانيكي ويشتغل في كل تيك: عند +1.0R يُنقل وقف الخسارة إلى سعر الدخول + 5 نقاط (نقطة التعادل عبر ManageBreakEven)؛ وعند +1.5R (أي ATR(14) × 2.7 من سعر الدخول) يُغلَق 50% من الصفقة (ManagePartial)؛ وعند +1.2R يُفعَّل التتبّع بمضاعف ATR ويُحرَّك وقف الخسارة إلى السعر الحالي -/+ ATR(14) × 2.5 في كل تقييم (ManageTrail). إضافةً إلى ذلك، تُغلق ManageRegimeExit الصفقة بالكامل إذا انقلبت حالة السوق إلى R_RANGE أو R_COMPRESS أو R_CHOPPY، وتُغلق ManageOppositeExit أي صفقة مفتوحة يتعارض اتجاهها مع المتوسط H1 EMA(50).

وقف الخسارة

وقف الخسارة الثابت عند الدخول هو ATR(14) × 1.8 (محدود بـ 4000 نقطة كحد أمان ومرفوع فوق الحد الأدنى لمستوى الإيقاف لدى الوسيط). ثم يُحرَّك وقف الخسارة ميكانيكياً إلى سعر التعادل + 5 نقاط عند +1.0R، وإلى تتبّع بمضاعف 2.5x ATR ما إن تصل الصفقة إلى +1.2R. تُستخدم حلقة إعادة المحاولة TryModify_EX15002 نفسها لكل تعديل، مع 3 محاولات عند ظهور REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED.

جني الأرباح

الهدف الابتدائي هو ATR(14) × 3.6 (2.0R) مُرفق بالأمر، والهدف الجزئي TP1 يُغلق 50% من الصفقة عند ATR(14) × 2.7 (1.5R) عبر ManagePartial. لا يوجد هدف سلة ثابت — الباقي يركض على وقف التتبّع بمضاعف ATR دون حد زمني. الإضافات الهرمية (حتى 3 إجمالاً) على بُعد 1.5x ATR وبحجم 0.5x من لوت الأصل عندما لا تكون الحالة تذبذباً وتكون جميع الأبوين عند +0.5R أو أفضل.

الأنسب لـ

صُمِّم لزوج XAUUSD على إطار M5 أو H1 بحد أدنى للإيداع قدره 100 دولار وتصنيف مخاطرة متوسط. يجعل سقف تخصيص رأس المال (InpCapAmount) الإكسبيرت مناسباً جداً لتشغيل ميزانية مخاطرة بألفي دولار من حساب قيمته 20,000 دولار أو أكثر دون إعادة تحجيم، ويفرض فلتر الجلسة من 7:00 إلى 21:00 بتوقيت الوسيط وغطاء سبريد 60 نقطة الحاجة إلى وسيط ECN أو RAW بسبريد منخفض (تسعير IC Markets / Exness نموذجي). يناسب الإغلاق الجزئي 50% عند 1.5R والتتبّع بمضاعف 2.5x من ATR بدءاً من 1.2R المتداولين الذين يريدون إدارة الخروج دون تدخل يدوي. يُنصح به للمتداولين المرتاحين مع نمط SMC في مسحات السيولة والقادرين على ترك الإكسبيرت يعمل دون مراقبة خلال جلسة لندن + النصف الأول من نيويورك؛ مع النصيحة بإيقافه يدوياً حول NFP وFOMC وECB وBOE وBOJ.

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

Pipsgrowth EX15002 SMC-OrderBlock — تحليل منطق الاستراتيجية (من كود .mq5)

العائلة: SMC-OrderBlock الماجيك: 22215002 الإصدار: 2.00

الوصف: Liquidity Trap EA mapping swing liquidity pools (high/low sweeps), waiting for price rejection surge at the zone with engulfing + HTF trend alignment, gated by ADX/ATR-percentile/BB- width regime. Capital-allocation-cap, ATR hard SL, BE, partial TP, ATR-trail, regime-change exit. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • EffCapital()
  • TodayRealizedPnL()
  • PositionsThisMagic()
  • SideCount()
  • NormalizePrice()
  • StopsLevelPoints()
  • FreezeLevelPoints()
  • ClampVolume()
  • SpreadPoints()
  • RollingSpreadAvg()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX15002 SMC-OrderBlock — Execution Flow (from source analysis)
// Family: SMC-OrderBlock
// Liquidity Trap EA mapping swing liquidity pools (high/low sweeps), waiting for price rejection surge at the zone with engulfing + HTF trend alignment, gated by ADX/ATR-percentile/BB- width regime. Capital-allocation-cap, ATR hard SL, BE, partial TP, ATR-trail, regime-change exit. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

ON_INIT:
    Create indicator handles: standard set
    Initialize state variables
    Detect broker GMT offset

ON_TICK:
    1. Refresh indicator buffers (closed-bar shift=1)
    2. Manage existing positions:
       - Break-even check
       - ATR trailing stop
       - Profit lock ratchet
       - Time-based exit
       - Opposite-signal exit
    3. If new bar:
       a. ClassifyRegime() — ADX/ATR/BB regime detection
       b. NoTradeGate() checks:
          - Market open + session filter
          - Spread limit
          - Cooldown after loss
          - Consecutive loss limit
          - Kill switch
          - Max drawdown
          - Max concurrent positions
          - Daily/weekly loss limits
       c. GenerateSignal() — strategy-specific entry logic
       d. CheckConfirm() — HTF alignment + R:R + ADX minimum
       e. Calculate position size from risk %
       f. Execute with retry logic
       g. Mark bar to prevent duplicates

ON_TESTER:
    Custom fitness = weighted(RecoveryFactor, ROI, ProfitFactor, TradeCount, Sharpe, Drawdown)

ملف التحسين

الوسطاء المُحسّنون:
ExnessIC Markets
الرموز المُحسّنة:
XAUUSD
الأطر الزمنية المُحسّنة:
M5H1

كيفية تثبيت الإكسبرت على MT5

  1. 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
  2. 2افتح برنامج MetaTrader 5 على حاسوبك
  3. 3من القائمة العلوية اختر File → Open Data Folder
  4. 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
  5. 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
  6. 6اسحب الإكسبرت على رسم بياني يطابق الإطار الزمني الموصى به
  7. 7هيّء المعاملات وفقاً للجدول في هذه الصفحة
  8. 8فعّل Allow Algo Trading واضغط OK

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

المعاملالافتراضيالوصف
InpMagic22215002Magic number (source identity 22215002)
InpTradeComment"Psgrowth.com Expert_15002"Order comment
InpSignalShift1Signal bar shift (1=closed bar)
InpDryRuntrueDry-run: skip real sends
InpRiskPercent0.5Risk per trade (% of effective_capital)
InpDailyLossPct3.0Max daily loss (% of effective_capital)
InpWeeklyLossPct6.0Max weekly loss (%)
InpMaxConcurrent3Max concurrent positions (this symbol/magic)
InpFixedLot0.01Fallback fixed lot
InpCapAmount0.0Cap amount (real money equity $)
InpCapFloor50.0Floor below which no new entries
InpSwingBars2Swing pivot L/R bars
InpZoneAgeHours24Max zone age (hours)
InpZoneThicknessPts80.0Entry reaction band thickness (points)
InpRequireHTFtrueRequire HTF(H1) EMA50 agreement
InpRequireEngulfingtrueRequire engulfing candle confirm
InpMaxSpreadPts60.0Max spread (points)
InpUseTrailtrueEnable ATR trailing
InpUsePartialtrueEnable partial TP at TP1
InpExitOnRegimeFliptrueExit on regime flip to Range/Choppy
InpKillSwitchfalseKILL SWITCH (block everything)
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX15002.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX15002 XAUUSD_Liquidity_Trap — liquidity sweep rejection EA, full 12-layer stack."

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>
#include <Trade\OrderInfo.mqh>
#include <Trade\DealInfo.mqh>

CTrade         trade;
CPositionInfo  pos;
CSymbolInfo    sym;
CAccountInfo   acc;

//================== CONSTANTS (non-input tunables) ==================
#define MAX_ZONES              64      // max simultaneous zones tracked
#define ZONE_BUFFER_POINTS     50.0   // zone proximity dedupe (points)
#define ZONE_MAX_SYMBOL_SIDE   1      // max entries per side per symbol
#define LOOKBACK_BARS          200    // bars used for ATR-pctile / BB-width history
#define SL_ATR_MULT            1.8    // hard SL = ATR(_Period,14) * mult
#define TP_ATR_MULT            3.6    // initial TP = ATR(_Period,14) * mult (2R)
#define BE_TRIGGER_R           1.0    // break-even at +1R
#define BE_OFFSET_POINTS       5      // BE locks entry + N points
#define PARTIAL_PCT            50     // partial TP closes 50% at TP1
#define PARTIAL_ATR_MULT       2.7    // ATR multiple for partial-TP1 distance
#define TRAIL_ATR_MULT         2.5    // ATR trailing distance
#define TRAIL_TRIGGER_R        1.2    // start trailing at +1.2R
#define ATR_PCTILE_LO          25     // range/compress threshold (percentile)
#define ATR_PCTILE_HI          80     // breakout/expand threshold
#define BB_WIDTH_PCTILE_LO     25     // Bollinger width low percentile
#define BB_WIDTH_PCTILE_HI     80     // Bollinger width high percentile
#define ADX_STRONG             28.0   // ADX >= this => StrongTrend
#define ADX_WEAK               20.0   // ADX >= this => WeakTrend
#define HTF_PERIOD             PERIOD_H1
#define HTF_EMA_PERIOD         50
#define FAST_EMA               20
#define SLOW_EMA               50
#define RSI_PERIOD             14
#define ATR_PERIOD             14
#define ADX_PERIOD             14
#define BB_PERIOD              20
#define BB_DEV                 2.0
#define SURGE_PCT              0.0010 // 0.10% body surge
#define MAX_SL_POINTS          4000   // cap SL distance (points) safety
#define MIN_RR                 1.8    // min reward:risk to send
#define COOLDOWN_BARS          3      // bars to wait after a loss
#define MAX_DAILY_TRADES       8      // per-symbol daily trade cap
#define SESSION_START_HOUR     7      // broker server time
#define SESSION_END_HOUR       21     // broker server time
#define PYR_MAX_LEVELS         3      // hard cap on pyramid levels
#define PYR_ATR_SPACING_MULT   1.5    // spacing between pyramid entries
#define PYR_LOT_FACTOR         0.5    // pyramid lots = parent * factor
#define ROLLING_SPREAD_BARS    50     // bars used to baseline spread avg

//================== INPUTS (12-22, grouped) =========================
input group "=== Identity ==="

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

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

الوسوم:ex15002smc-orderblockpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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