Pipsgrowth EX02004 Breakout — إكسبرت أدفايزر اختراق
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5
Pipsgrowth EX02004 Breakout — Donchian N-bar channel breakout on last CLOSED bar (close > HH or < LL) confirmed by EMA(50) slope. 12 layers: REGIME, S. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
EX02004 هو روبوت تداول يركز على اختراق قناة دونشيان مصمم خصيصًا لزوج XAUUSD على الإطار الزمني لخمس دقائق. يستخدم بشكل افتراضي قناة تمتد 20 شمعة مغلقة (يمكن تعديلها عبر InpBreakoutBars)، ويحسب أعلى وأدنى مستوى خلال هذه النافذة على آخر شمعة مغلقة، ثم يراقب إغلاق الشمعة التالية لمعرفة ما إذا كان سيخترق الحد العلوي أو السفلي. يجب أن يتجاوز الإغلاق حد القناة بوضوح؛ مجرد ملامسة الخط لا يُعد إشارة. التصميم بالكامل يقوم على مبدأ "الاختراق الآمن" من حيث أن الصفقة لا تُنفَّذ أبدًا بناءً على تكة ضد مستوى جديد، بل يجب أن يؤكد إغلاق شمعة مكتملة أن السعر قد التزم فعلاً بتجاوز الحد، وهذا يقلل من معظم الإشارات الزائفة التي تنتجها أنظمة الاختراق البسيطة للقناة.
بالإضافة إلى اختراق القناة الخام، يطبق الروبوت مرشح متوسط متحرك واحد: EMA(50) على الإطار الزمني للإشارة. للحصول على إشارة شراء، يجب أن يكون الإغلاق فوق المتوسط، وأن يكون المتوسط في وضع أفقي أو صاعد (قيمته الحالية أكبر من أو تساوي قيمة الشمعة السابقة). للحصول على إشارة بيع، يجب أن يكون الإغلاق تحت المتوسط، وأن يكون المتوسط في وضع أفقي أو هابط. هذا المرشح يجمع بين فحص المستوى وفحص الميل، فالشمعة التي تخترق القناة لكن يقع إغلاقها تحت EMA هابطة في إعداد شراء ستُرفض. يتحكم InpUseMaFilter في تفعيل أو تعطيل طبقة المتوسط بالكامل؛ في التشغيل الإنتاجي يبقى مفعّلاً، لكن في اختبارات الفترات المتذبذبة يمكن للمشغّل إيقافه لمعرفة مقدار الميزة الآتية من مرشح الاتجاه.
يقع مرشح اتجاه ثانٍ على الإطار الزمني الأعلى. يحمل الروبوت EMA(50) على إطار الساعة ويطلب أن يتفق سعر الدخول مع اتجاه H1: الشراء يحتاج إلى أن يكون السعر فوق EMA(50) على H1، والبيع يحتاج إلى أن يكون السعر تحته. إذا كان اختراق M5 صاعداً لكن H1 هابط، تُرفض الصفقة بسبب "HTF-opposing-bull". هذا الفحص الواحد يستبعد الكثير من اختراقات M5 التي ستفشل أمام اتجاه هابط أقوى على الإطار الساعي. يتم تنفيذ EMA(50) على H1 كمؤشر منفصل (hHTF) حتى لا يخل بمكدس مؤشرات M5.
تصنيف النظام (Regime) هو المرشح الثالث. يدير EX02004 مصنّفاً بسبع حالات يُستدعى من ClassifyRegime() يجمع بين ADX(14) و نسبة ATR(14) المئوية على نافذة 50 شمعة، وعرض بولينجر باندز(20، 2.0). الحالات هي: اتجاه قوي، اتجاه ضعيف، نطاق، اختراق، انضغاط، توسّع، وتذبذب. بعض الانتقالات تؤثر على الدخول: عندما يكون ATR في أقل من 25% من توزيعه على 50 شمعة، يكون النظام في حالة انضغاط وتُحظر الدخول إذا كان InpUseRegimeFilter مفعّلاً؛ عندما ينخفض ADX(14) عن 18، يكون النظام في حالة تذبذب وتُحظر الدخول بشكل قاطع؛ عندما يكون ADX فوق 25 و ATR في أعلى 25% من توزيعه، يكون النظام في حالة توسّع. الانضغاط حظر ناعم (يعتمد على المدخل)، والتذبذب حظر قاطع. الحالات الأخرى معلوماتية فقط — تظهر في تعليق الصفقة لكنها لا تتحكم في الدخول. كذلك تجبر ManageOpenPositions() إغلاق أي صفقة مفتوحة إذا انتقل النظام إلى حالة التذبذب، وهي طريقة الروبوت في عدم الاحتفاظ بصفقة في سوق توقف عن التعاون.
تتكون إدارة الصفقة من أربع طبقات، يمكن أن تعمل كلها في الشمعة نفسها. أولاً، نقل وقف الخسارة إلى نقطة التعادل دفعة واحدة: بمجرد أن يتحرك السعر بمقدار 1R في الربح (R = مسافة وقف الخسارة الابتدائية بسعر السوق)، يُنقل الوقف إلى سعر الدخول زائد نقطة واحدة. ثانياً، إغلاق جزئي دفعة واحدة عند +1R: يُغلق 50% من الصفقة إذا كان الحجم المفتوح ضعف الحد الأدنى للوت لدى الوسيط على الأقل. ثالثاً، وقف خسارة متابع يعتمد على ATR: في كل تكة، يُعاد حساب الوقف على أنه سعر العرض/الطلب الحالي مطروحاً منه 2.0 × ATR(14) (أو زائد 2.0 × ATR في البيع)، ولا يُحرّك الوقف إلا في الاتجاه الملائم. رابعاً، إنهاء زمني: أي صفقة تُحفظ لأكثر من 288 شمعة M5 (24 ساعة من وقت الجلسة) تُغلق بواسطة TryClose_EX02004(). انعكاس الإشارة في الاتجاه المعاكس يجبر أيضاً على الخروج. إدخالات الهرم مُبرمجة لكن معطّلة: MAX_PYRAMID_LEVELS مضبوط على 1، لذا يمكن للروبوت الاحتفاظ بصفقة واحدة فقط لكل رمز في الوقت نفسه.
حجم الصفقة مبني على المخاطر. مع InpRiskPercent = 0.5 (الإعداد الافتراضي)، تأخذ CalcLot() نسبة 0.5% من رأس المال الفعّال، وتقسمها على المخاطرة لكل لوت عند مسافة وقف الخسارة الحالية (وقف الخسارة بالسعر / حجم التكة × قيمة التكة)، وتنتج حجماً يُطبّع بعد ذلك إلى خطوة اللوت لدى الوسيط، والحد الأدنى، والحد الأقصى، ويُقصّ إلى InpMaxLot (افتراضياً 100.0). إذا تم ضبط InpRiskPercent على صفر، يلجأ الروبوت إلى InpFixedLot = 0.01، وهو إعداد مفيد لحسابات تحديات الشركات الممولة حيث يريد المشغّل تثبيت حجم اللوت على قيمة معروفة بدلاً من إعادة الحساب في كل تكة. يتم تشغيل OrderCalcMargin قبل إرسال الأمر: إذا كان الأمر سيستهلك أكثر من الهامش الحر المتاح، يُرفض الإدخال. كما تُعيد OpenPosition() المحاولة حتى ثلاث مرات في حالة إعادة التسعير/انتهاء المهلة/تغير السعر، مع سكون 100 مللي ثانية وتحديث الأسعار بين المحاولات.
مجموعة الأمان هي الجزء الأكثر دفاعية في الروبوت. تشتغل NoTradeGate() قبل كل دخول وترفض في الحالات التالية: إذا كان InpKillSwitch مفعّلاً، أو تجاوز الفارق السعري 400 نقطة (المدخل مضبوط على XAUUSD، حيث 400 نقطة على وسيط بعشرتين تساوي 0.40 دولار — فارق واسع لكن ليس مرضياً للذهب)، أو كان النظام في حالة تذبذب، أو كان لدى الروبوت الحد الأقصى من الصفقات المتزامنة (افتراضياً 1)، أو تجاوزت الخسارة المحققة لليوم 3% من رأس المال الفعّال، أو كانت نافذة التهدئة نشطة (5 شموع M5 بعد الخروج بخسارة)، أو انخفض رأس المال عن الحد الأدنى 50.0، أو كانت السوق مغلقة (عطلة نهاية الأسبوع)، أو كان هناك حدث إخباري عالي التأثير في نافذة التقويم (30 دقيقة على كل جانب، احتياطي يدوي إذا لم يُرجع CalendarValueHistory بيانات)، أو كانت الأسعار سيئة، أو لم يكن وضع التداول للرمز كاملاً. تشتغل IsSafeToTrade_EX02004() بطبقة حراسة ثانية: سقف رأس المال (إذا كان InpCapCapAmount > 0 وتجاوز رأس المال السقف، لا توجد دخول جديد)، الحد الأدنى لنسبة رأس المال (80% من الرصيد الابتدائي — بمجرد أن ينخفض رأس المال بنسبة 20% عن لقطة OnInit، يرفض الروبوت جميع الدخول اللاحقة)، الحد الأقصى للصفقات اليومية (50)، الحد الأقصى للخسائر المتتالية (3 → تهدئة 4 ساعات يفرضها معالج OnTradeTransaction)، ومفتاح إيقاف السحب العالمي (20% — عند الوصول إليه، يتوقف كل التداول ويكتفي الروبوت بإدارة الخروج).
يحمل EX02004 نظامه الخاص لاكتشاف توقيت غرينتش. في OnInit، تمشي DetectGMTOffset_EX02004() للخلف عبر شموع H1 بحثاً عن فجوة عطلة نهاية الأسبوع وتحسب فارق توقيت غرينتش لدى الوسيط من شمعة H1 التي تفتتح عند 22:00 يوم الأحد. يُخزّن الفارق المكتشف في g_gmtOffset وتستخدمه IsMarketOpen_EX02004() (لا السبت، لا الأحد قبل 22:00 غرينتش، لا الجمعة بعد 21:00 غرينتش) و InActiveSession_EX02004() (نشطة إذا كانت لندن 7-16 غرينتش أو نيويورك 12-21 غرينتش، مع تجنب آسيا 0-7 غرينتش عندما يكون InpAvoidAsia صحيحاً، وهو الإعداد الافتراضي). مرشح الجلسة مستقل عن علامة InpUseSessionWindow الاختيارية، وهي بوابة جلسة منفصلة بتوقيت الوسيط (6:00 إلى 20:00 بتوقيت الوسيط). الاثنتان تتداخلان، لكن جلسة غرينتش هي الحية ونافذة توقيت الوسيط تاريخية — ترك نافذة توقيت الوسيط معطّلة هو الإعداد المعتاد.
دالة OnTester() هي معيار اختيار مخصص لمختبر استراتيجية MT5. تحسب صافي × عامل الربح مقسوماً على (1 + نسبة السحب النسبي %)، مع بوابات قاطعة: أقل من 30 صفقة يُرجع 0، عامل الربح ≤ 0 يُرجع 0، الصافي ≤ 0 يُرجع 0، والسحب يتجاوز InpMaxDDPct (افتراضياً 20%) يُرجع 0. شكل المعيار يكافئ الاستراتيجيات ذات الصافي المرتفع، وعامل الربح المرتفع، والسحب المنخفض في الوقت نفسه — المحسّن الجيني النموذجي لـ MT5 يكافئ الربح فقط، لذا يدفع هذا المعيار المخصص المحسّن نحو منحنيات حقوق ملكية متوازنة بدلاً من قمم السحب العالي والربح العالي التي تبالغ في الملاءمة.
يحمل تعليق الصفقة اسم النظام ورقم الثقة. تُحسب الثقة داخل BreakoutSignal() على النحو التالي: الامتداد = أعلى القناة - أدنى القناة؛ المسافة = |الإغلاق - الحد|؛ الثقة = clamp(المسافة/الامتداد × 100 + 30، 10، 100). الاختراق الذي يغلق 0.1% فوق القناة في قناة عرضها 0.5% يحصل على ثقة حوالي 50؛ الاختراق الذي يغلق بمحاذاة الحد في قناة ضيقة يحصل على الحد الأدنى 10؛ الاختراق المتسارع يُقصّ إلى 100. الرقم معلوماتي — لا يتحكم في الدخول — لكنه يظهر في تعليق الصفقة وفي قائمة الصفقات في مختبر الاستراتيجية، ليتمكن المشغّل من فرز الصفقات حسب الثقة بعد الاختبار الخلفي.
للتشغيل، يكون الروبوت في وضع التجربة الجافة بشكل افتراضي (InpDryRun = true)، مما يعني أن OnInit يسجل الإشارة والحجم ووقف الخسارة وجني الأرباح التي كان سيستخدمها لكنه لا يضع الأمر. هذا مقصود: يتم شحن المصدر في وضع التجربة الجافة حتى يتمكن أي شخص يحمّله على مخطط حي من رؤية تدفق الإشارة قبل التزام أي رأس مال حقيقي. للانتقال إلى التشغيل الفعلي، اضبط InpDryRun = false. الحد الأدنى الموصى به للرصيد هو الحد الأدنى (50.0) مضافاً إليه هامش لصفقة واحدة عند المخاطرة الافتراضية: مع مخاطرة 0.5% على حساب 500 دولار، المخاطرة بالدولار للصفقة الواحدة 2.50 دولار، لذا فإن الحد الأدنى لوقف الخسارة 200 نقطة على XAUUSD (الحد الأدنى عندما يكون ATR صغيراً) يترجم إلى حوالي 0.01 لوت. الحد الأدنى للإيداع المنشور وهو 100 يكفي لتجاوز الحد الأدنى بهامش لصفقة واحدة باللوت الاحتياطي الافتراضي 0.01. يستجيب الروبوت أيضاً لمفتاح إيقاف ميتاتريدر العام (InpKillSwitch = true)، وهو مفتاح إيقاف يدوي منفصل يغلق جميع الصفقات المفتوحة ويحظر أي دخول جديد حتى يُعاد تشغيله.
الكود قابل للنقل بين أزواج العملات الرئيسية إذا غيّرت الرقم السحري وسقف الفارق السعري — الرأس في السطر 4 يقول "الذهب/المعادن وأزواج العملات الرئيسية (قابل للنقل)"، وهي ملاحظة المطوّر أن المنطق نفسه لا يعتمد على الرمز. سقف الفارق السعري 400 نقطة مضبوط على XAUUSD؛ على EURUSD السقف المكافئ سيكون 40-50 نقطة. EMA(50) على H1 ما زال يعمل على الأزواج الرئيسية — ثوابت الفترة HTF_TIMEFRAME و HTF_MA_PERIOD هي #defines في أعلى الملف ويمكن تغييرها إذا أردت إطاراً زمنياً أعلى مختلفاً للأفق الزمني المعتاد لاختراق رمز مختلف. سقف مستوى الهرم، ووقف الخسارة المعتمد على ATR، ومصنّف النظام كلها لا تعتمد على الرمز؛ فقط سقف الفارق السعري وثوابت #define تحتاج إلى مراجعة عند النقل.
تفاصيل الاستراتيجية
تمشي DonchianChannel() في آخر 20 شمعة M5 مغلقة لحساب أعلى وأدنى القناة، ثم تقارن BreakoutSignal() إغلاق الشمعة السابقة بهذه الحدود. تضيف طبقة الإشارة فحص ميل EMA(50) على الإطار الزمني للإشارة بالإضافة إلى فحص توافق EMA(50) على H1 داخل ConfirmEntry(). يتم التحكم في النظام عبر ClassifyRegime() التي تجمع بين ADX(14) ونسبة ATR(14) المئوية على 50 شمعة وعرض بولينجر باندز في مصنّف بسبع حالات؛ التذبذب والانضغاط (اختيارياً) يُعتبران حظراً قاطعاً للدخول. بمجرد تأكيد الإشارة، يكون وقف الخسارة ATR(14) × 1.5 وجني الأرباح ATR(14) × 3.0، مما يعطي نسبة مخاطرة إلى عائد 1:2 مع بوابة حد أدنى للـ RR قدرها 1.5. تشتغل ManageOpenPositions() في كل تكة: عند +1R يُنقل الوقف إلى نقطة التعادل، ويُغلق 50% (دفعة واحدة)، ويتولى وقف خسارة متابع يعتمد على ATR (2.0 × ATR) الباقي. يحسب معالج OnTradeTransaction الخسائر المتتالية ويفرض تهدئة 4 ساعات بعد 3 خسائر، بينما تكدّس NoTradeGate() و IsSafeToTrade_EX02004() حراس الفارق السعري ورأس المال والخسارة اليومية وحقوق الملكية وساعات السوق والأخبار حول كل محاولة دخول جديدة.
تنطلق إشارة الشراء عندما يكون إغلاق الشمعة السابقة فوق أعلى قمة للشموع M5 المغلقة السابقة (الإفتراضي 20 شمعة) و كان الإغلاق فوق EMA(50) مع ميل أفقي أو صاعد للمتوسط. إشارة البيع هي صورة معكوسة: الإغلاق تحت أدنى قاع، وتحت EMA(50)، مع ميل أفقي أو هابط للمتوسط. يجب أن يتجاوز الاختراق حد القناة على شمعة مغلقة — الفتائل داخل الشمعة لا تُحسب. كما يشترط EX02004 توافق EMA(50) على H1 (السعر فوقه للشراء، تحته للبيع) ويرفض الدخول عندما يُرجع مصنّف النظام حالة التذبذب، أو الانضغاط إذا كان مرشح النظام مفعّلاً.
تُغلق الصفقات عند أول هذه الشروط: إشارة اختراق في الاتجاه المعاكس على الشمعة المغلقة التالية، أو انتقال مصنّف النظام إلى حالة التذبذب، أو بقاء الصفقة مفتوحة لأكثر من 288 شمعة M5 (24 ساعة من وقت جلسة M5)، أو تفعيل مفتاح الإيقاف اليدوي، أو وصول الصفقة إلى نطاق الوقف المتابع. تتضمن تعليقات الصفقات اسم النظام ودرجة الثقة، ليتمكن المشغّل من رؤية أي حالة أنتجت الدخول بعد حدوثه.
يُوضع وقف الخسارة عند سعر الدخول ± 1.5 × ATR(14) بوحدات السعر، مع حد أدنى قاطع قدره MIN_SL_POINTS × _Point (200 نقطة) لضمان استيفاء متطلبات مستوى الوقف لدى الوسيط. ينقل نقل نقطة التعادل دفعة واحدة الوقف إلى سعر الدخول + 1 نقطة بمجرد وصول السعر إلى +1R، ومن تلك النقطة يتولى وقف خسارة متابع يعتمد على ATR (2.0 × ATR(14))، ولا يُحرّك إلا في الاتجاه الملائم. تُغلق الصفقة قسرياً أيضاً إذا انتقل النظام إلى حالة التذبذب.
يُوضع جني الأرباح عند سعر الدخول ± 3.0 × ATR(14) — أي ضعف مسافة وقف الخسارة تماماً، مما ينتج نسبة مخاطرة إلى عائد 1:2 عند الدخول. يُطلق إغلاق جزئي بنسبة 50% عند +1R إذا كان الحجم المفتوح ضعف الحد الأدنى للوت لدى الوسيط على الأقل (دفعة واحدة). يُترك النصف المتبقي ليركب الوقف المتابع. يخضع الدخول لبوابة InpMinRR = 1.5، لذا إذا كانت نسبة TP/SL الفعلية لحظة الدخول أقل من 1.5، تُرفض الصفقة بسبب "RR=x.xx<x.xx".
EX02004 مبني لزوج XAUUSD على الإطار الزمني لخمس دقائق مع حد أدنى موصى به للرصيد 100 دولار (الحد الأدنى للسقف 50 دولار، وعند المخاطرة الافتراضية 0.5% للصفقة على لوت احتياطي 0.01، يوفر 100 دولار هامشاً كافياً لوقف خسارة أدنى قدره 200 نقطة). يُصنّف كمخاطرة متوسطة بسبب المخاطرة الافتراضية 0.5% لكل صفقة بالإضافة إلى مفتاح إيقاف السحب العالمي 20% وسقف الخسارة اليومية المحققة 3%. يكون الروبوت نشطاً خلال جلستي لندن 7-16 بتوقيت غرينتش ونيويورك 12-21 بتوقيت غرينتش، مع تجنب الجلسة الآسيوية افتراضياً، لذا يُفضّل تشغيله على وسيط ECN أو فارق سعري خام مع تمويل ليلي منخفض وفروقات أسعار ضيقة على الذهب — أي شيء فوق 400 نقطة (0.40 دولار على وسيط بعشرتين) يحظر الدخول. وضع التجربة الجافة الافتراضي يعني أن الروبوت يسجل الإشارات دون إرسال أوامر حتى يتم تحويل InpDryRun إلى false، وهي سير العمل الموصى به قبل أي نشر مباشر.
منطق الاستراتيجية
Pipsgrowth EX02004 Breakout — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Breakout
الماجيك: 22202004
الإصدار: 2.00
الوصف:
Donchian N-bar channel breakout on last CLOSED bar (close > HH or < LL) confirmed by EMA(50) slope. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester. ATR SL, BE @1R, 50% partial @1R, ATR trailing, opposite-signal/time/session-close exits
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
NormPrice()NormVol()LogV()StopsLevelPrice()EffectiveCapital()DonchianChannel()RegimeName()BreakoutSignal()ConfirmEntry()NoTradeGate()
// Pipsgrowth EX02004 Breakout — Execution Flow (from source analysis)
// Family: Breakout
// Donchian N-bar channel breakout on last CLOSED bar (close > HH or < LL) confirmed by EMA(50) slope. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester. ATR SL, BE @1R, 50% partial @1R, ATR trailing, opposite-signal/time/session-close exits
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اسحب الإكسبرت على رسم H1 أو H4
- 7حدد فترة رصد النطاق وهامش الاختراق وحجم اللوت في نافذة الإعدادات
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpMagic | 22202004 | Magic number (unique per EA) |
| InpTradeComment | "Psgrowth.com Expert_02004" | Trade comment |
| InpDryRun | true | Dry-run (signal+log only, no orders) |
| InpKillSwitch | false | KILL: halt all new entries + exits-only |
| InpVerbose | true | Verbose logging |
| InpRiskPercent | 0.5 | Per-trade risk % of effective capital |
| InpFixedLot | 0.01 | Fallback fixed lot when risk=0 |
| InpDailyLossLimitPC | 3.0 | Daily realized-loss limit % of effective |
| InpMaxConcurrent | 1 | Max concurrent positions (this magic) |
| InpCooldownBars | 5 | Cooldown bars after a losing exit |
| InpMaxSpreadPts | 400 | Max spread in points (XAUUSD-tuned) |
| InpCapCapAmount | 0.0 | Capital cap amount (0=disabled, USD equity) |
| InpCapCapFloor | 50.0 | Floor below which entries are blocked |
| InpBreakoutBars | 20 | Donchian lookback (closed bars 1..N) |
| InpUseMaFilter | true | Require EMA(50) side agreement |
| InpUseRegimeFilter | true | Block entries in choppy regime |
| InpUseSessionWindow | false | Restrict to SESSION_START..END (broker tz) |
| InpMinRR | 1.5 | Minimum reward:risk at entry |
| InpATRMultSL | 1.5 | SL distance = ATR * mult |
| InpATRMultTP | 3.0 | TP distance = ATR * mult |
| InpTrailATRMult | 2.0 | Trail distance = ATR * mult |
| InpServerGMTOffset | 0 | Server GMT offset (0=auto-detect) |
| InpLondonStartHour | 7 | London session start (GMT) |
| InpLondonEndHour | 16 | London session end (GMT) |
| InpNYStartHour | 12 | NY session start (GMT) |
| InpNYEndHour | 21 | NY session end (GMT) |
| InpAvoidAsia | true | Avoid Asian session |
| InpAsiaStartHour | 0 | Asia session start (GMT) |
| InpAsiaEndHour | 7 | Asia session end (GMT) |
| InpNewsFilter | false | Enable news time filter |
| InpNewsFilterMinutes | 15 | News blackout minutes around session opens |
| InpMaxTradesPerDay | 50 | Max total trades per day |
| InpMinEquityPercent | 80.0 | Min equity as % of initial balance |
| InpMaxConsecLosses | 3 | Max consecutive losses before cooldown |
| InpMaxDDPct | 20.0 | Max total drawdown % (0=disabled, triggers kill switch) |
| InpMaxLot | 100.0 | Maximum lot size cap |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX02004 SafeBreakout XAUUSD 5M — Donchian channel breakout + EMA(50) slope confirm, 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>
//==================== TUNABLE CONSTANTS (#define) ==================
// --- REGIME ---
#define ADR_REGIME_PERIOD 50 // ATR percentile window for regime
#define ADX_REGIME_PERIOD 14
#define ADX_TREND_THRESHOLD 25.0 // >= => trend regime
#define ADX_CHOP_THRESHOLD 18.0 // < => choppy
#define BB_REGIME_PERIOD 20
#define BB_REGIME_DEV 2.0
#define ATR_PCTILE_COMPRESS 25.0 // < pctl => compress
#define ATR_PCTILE_EXPAND 75.0 // > pctl => expand
// --- SIGNAL / FILTER ---
#define MA_FILTER_PERIOD 50 // EMA filter period (signal side)
#define BREAKOUT_REF_SHIFT 1 // breakout measured on closed bar
// --- CONFIRM / HTF ---
#define HTF_TIMEFRAME PERIOD_H1
#define HTF_MA_PERIOD 50
// --- SESSION (broker server time) ---
#define SESSION_START_HOUR 6 // Asia->Europe handover (broker tz)
#define SESSION_END_HOUR 20
// --- NEWS (manual fallback if CalendarValueHistory unavailable) ---
#define NEWS_BUFFER_MIN 30
// --- EXIT / MANAGE ---
#define BREAK_EVEN_AT_R 1.0
#define PARTIAL_TP_AT_R 1.0
#define PARTIAL_TP_RATIO 0.5
#define ATR_TRAIL_PERIOD 14
#define MAX_BARS_IN_TRADE 288 // 24h on M5
#define COOLDOWN_AFTER_N_LOSSES 3
// --- ATR / RISK MODEL ---
#define ATR_SLTP_PERIOD 14
#define MIN_SL_POINTS 200 // hard floor for SL distance
// --- SCALING (pyramid OFF by default) ---
#define MAX_PYRAMID_LEVELS 1 // 1 = no pyramid
//===================================================================
CTrade trade;
CPositionInfo posInfo;
CSymbolInfo sym;
CAccountInfo acc;الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية الاختراق
Pipsgrowth EX02026 Breakout — إكسبرت أدفايزر اختراق
Pipsgrowth EX02026 Breakout — Donchian Channel breakout EA for XAUUSD M5 with RSI confirmation, average-speed filter, session filtering, trailing stop. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX02001 Breakout — إكسبرت أدفايزر اختراق
Pipsgrowth EX02001 Breakout — Fractal Donchian high/low breakout on closed bar with RSI extreme filter. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX02027 Breakout — إكسبرت أدفايزر اختراق
Pipsgrowth EX02027 Breakout — Multi-symbol VWAP+KAMA Donchian/SuperTrend scalper with ADX regime switching between mean-reversion and breakout modes, . إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.