Pipsgrowth EX02027 Breakout — إكسبرت أدفايزر اختراق
إكسبرت أدفايزر MT5 مفتوح المصدر · EURUSD، USDJPY، GBPUSD، AUDUSD · M1
Pipsgrowth EX02027 Breakout — Multi-symbol VWAP+KAMA Donchian/SuperTrend scalper with ADX regime switching between mean-reversion and breakout modes, . إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
إكسبرت EX02027 هو الإكسبرت الوحيد في عائلة EX02 الذي صُمّم لتوسيع استراتيجية واحدة عبر عدة رموز في وقت واحد. الميزة الرئيسية هي مدخل SymbolsCSV، الذي يتم تحليله في OnInit عبر الدالة SplitCSV() ويُخزّن في المصفوفة g_syms[] (بحد أقصى 20 رمزًا وفق الثابت MAX_SYMS). تعمل كل دالة من دوال تقييم الإشارة — TryEntriesSymbol() وHandleKAMA() وHandleRSI2() وHandleADX() وHandleATR() وComputeSessionVWAP() وDonchLevels() وComputeSuperTrend() — مرة واحدة لكل رمز مُسجَّل في حلقة واحدة مدفوعة بمؤقت، ولكل رمز سجل حالة مستقل (lastBarTraded وlastBuyTime وlastSellTime وtradePauseUntil وlossStreakCount وaddCountBuy وaddCountSell، بالإضافة إلى مخزن سبريد خاص به وأربعة مؤشرات handles). القائمة الافتراضية المفصولة بفواصل هي EURUSD وUSDJPY وGBPUSD وEURJPY وAUDUSD، لكن يمكن للمستخدم استبدال أي مجموعة فرعية بتحرير سطر إدخال واحد. تعليق الصفقة يُلحَق بكلمة "Initial" لأول صفقة في اتجاه و"Add#1" و"Add#2" وما بعدها لدخول Scaling، مما يجعل مراجعة كشوف الحساب لمعرفة كيف توسّع الإكسبرت في الإعداد أمرًا مباشرًا.
الفكرة المميزة الثانية هي مبدّل الأنظمة المعتمد على ADX والمُنفَّذ في TryEntriesSymbol(). في كل تكّة من المؤقت يسحب الإكسبرت أحدث قيمة لـ ADX(14) (المُنشأ عبر HandleADX()) ويقارنها بـ InpADXSwitch القابل للضبط (افتراضي 18). عندما يكون ADX تحت العتبة، يُضبط isMR إلى true ويتداول الإكسبرت بطريقة الارتداد إلى المتوسط. عندما يكون ADX عند العتبة أو فوقها، يكون isMR خاطئًا ويتداول الإكسبرت بطريقة الاختراق. البنيتان تشتركان في البنية التحتية (ميل KAMA وVWAP والتأكيدات وبوابة نسبة ATR المئوية) لكن تستخدمان مُحفِّزات دخول مختلفة ومضاعفات SL/TP مختلفة ودورًا مختلفًا لـ VWAP.
في طريقة الارتداد إلى المتوسط تُقارَن القراءة السعرية بـ VWAP مرساة الجلسة الذي يُعاد حسابه شمعة بشمعة في ComputeSessionVWAP(). تتجوّل الدالة للخلف من الشمعة الحالية إلى حدود اليوم عند الوسيط (أو حتى InpVWAP_StdLookback = 60 شمعة، أيهما أقصر)، وتُجمّع Σ(typical_price × volume) وΣ(volume)، وتقسم للحصول على VWAP، ثم تُنفّذ مرور Welford لحساب σ للسعر النموذجي حول VWAP. تتطلب إشارة الشراء في الارتداد أن يكون إغلاق الشمعة السابقة قد وصل إلى أو تحت vwap − InpVWAP_SigmaOuter × sigma (الحزمة الخارجية 2.0σ افتراضيًا)، وأن يكون مؤشر RSI بعمر 2 قد تجاوز للتو InpRSI2_LevelLow = 10 للأعلى (أي استرداد تشبع بيعي عبر RSI_Recapture())، وأن يكون ميل KAMA(10, 2, 30) غير سالب (KAMA_SlopeAgree())، وأن تكون الشمعة بنسبة جسم/مدى لا تقل عن InpMinBodyToRange = 0.18 (BarQualityOK()). المنطق المعكوس يُفعِّل البيع عند الحزمة العلوية 2σ. في الارتداد، يكون دور VWAP هو مرساة للقيمة العادلة — لا تحدث الدخول إلا عند انحرافات قصوى عنها.
في طريقة الاختراق يتحول VWAP من كونه هدفًا سعريًا إلى كونه فلتر قرب. يقرأ الإكسبرت قناة Donchian على مدى InpDonchianPeriod = 20 شمعة في DonchLevels()، ثم يمشي SuperTrend في ComputeSuperTrend() (فترة ATR 10 ومضاعف 2.0 — كلاهما قابل للضبط) لتحديد ما إذا كان الاتجاه الهيكلي صاعدًا أم هابطًا. تحتاج إشارة شراء الاختراق إلى إغلاق فوق الحد العلوي لـ Donchian وSuperTrend صاعد وميل KAMA غير سالب؛ وتحتاج إشارة بيع الاختراق إلى إغلاق تحت الحد السفلي لـ Donchian وSuperTrend هابط وميل KAMA غير موجب. بعد تفعيل الاختراق يحسب الإكسبرت z-score للإغلاق مقابل VWAP الجلسة ويرفض الدخول إذا كان |z| > 1.5 — الاختراق الذي يبتعد كثيرًا عن القيمة العادلة لليوم يُعامَل كمنهَك لا كامتداد.
بعد تشكّل الإشارة الاتجاهية، يُجمّع الإكسبرت التأكيدات. يحصل كل جانب على عدد من الفتحات التي تعمل من أصل ثلاث: VolumeSpikeOK() (حجم الشمعة الحالية ≥ 1.30 × متوسط 20 شمعة للحجم)، واتفاق ميل KAMA، وتوفّر VWAP (أي قراءة sigma > 0 في هذه الشمعة). الإجمالي المطلوب هو InpNeedConfirmationsK = 2 افتراضيًا، وعدد الفتحات النشطة دائمًا 3 بالضبط (يرفض الإكسبرت البدء إذا ضُبط K خارج 0..3 في OnInit). إذا انطلق الشراء والبيع في الشمعة نفسها، يفوز الجانب ذو التأكيدات الأكثر؛ عند التعادل يُلغى الاثنان. ثم تقوم بوابة نسبة ATR المئوية اليومية في ATRPercentileOK() بفرز قيم ATR لشموع اليوم، وتُسقط الإشارات التي يكون ترتيب ATR الحالي فيها تحت النسبة المئوية 30 (هادئ جدًا للتداول) أو فوق 85 (متقلب جدًا للوثوق بمسافة SL)، وبعد ذلك تُطبَّق فترة تهدئة اتجاهية 20 ثانية (InpCooldownSecondsDir) وبوابة دخول واحد لكل شمعة (InpOneEntryPerBar).
SL وTP يعتمدان على الوضع. تقرأ CalcSLTP() قيمة InpUseATRforSLTP (افتراضي true) وتسحب GetATRPoints() (التي تقسم أحدث قيمة ATR(14) على SymbolInfoDouble(SYMBOL_POINT)). لدخول الاختراق يُثبِّت الإكسبرت مضاعف SL عند 1.0 كحد أدنى ومضاعف TP عند 2.0 كحد أدنى — ما يضبطه المستخدم في InpATR_SL_Mult وInpATR_TP_Mult هو الحد الأدنى وليس القيمة المضبوطة. لدخول الارتداد تنخفض الحدود إلى 0.8 و1.6. كلتا الطريقتين تصلان تقريبًا إلى نسبة مخاطرة/عائد 1:2، لكن مسار الارتداد يستخدم وقفًا أضيق لأنه يتوقع ارتداد السعر قبل أن يبتعد كثيرًا. إذا تم تعطيل ATR، يلجأ الإكسبرت إلى InpSL_Points = 250 وInpTP_Points = 500 نقطة ثابتة. تُطبَّع الأوامر إلى حجم tick للرمز وتُرسَل مع الأمر؛ إذا رفضها الوسيط كضيقة جدًا، يُعاد إرسال الأمر بدون SL/TP ثم تُطبَّق رقعة ModifyPositionSLTP() منفصلة.
إدارة المراكز لها ثلاثة أجزاء متحركة. الأول هو رatchet القفل الديناميكي للربح (ApplyDynamicLockProfitToPosition()) الذي يعمل على كل تكّة لكل مركز مفتوح. يقيس كم وحدة كاملة من InpLockProfitEveryXPoints (افتراضي 120) من الربح تجمّعت في المركز، ثم ينقل SL إلى (الدخول + steps × 120 − 18) نقطة — مخزن 18 نقطة هو InpLockMinusYPointsBuffer، الذي يمنع الرatchet من وضع SL فوق الدخول بمقدار تكّة واحدة. لا يُضبط SL الجديد إلا إذا كان أبعد عن الدخول من SL الحالي، فالقفل رتيب. الثاني هو بوابة الإضافة، التي يفرضها الإكسبرت داخل CanPlaceNew() وIsAllSameDirProfitableAtLeast(). افتراضيًا MaxOpenTradesPerSymbol هو 2 وMaxTotalOpenTrades هو 6؛ لا يمكن فتح مركز "Add#" إلا إذا كانت جميع المراكز القائمة في ذلك الاتجاه على نفس الرمز تحقق ≥ MinProfitPerTradeToAdd = 4.0 نقطة من الربح غير المحقق. الثالث هو حارس إيقاف التداول، حيث تراقب OnTradeTransaction() كل DEAL_ADD، وإذا وصلت سلسلة خسائر الرمز إلى PauseConsecutiveLossesCount = 3 (افتراضي OFF) أو وصلت الخسائر المتراكمة بالعملة إلى PauseLossAmount = 100.0 (افتراضي OFF)، يكتب الإكسبرت طابعًا زمنيًا مستقبليًا في tradePauseUntil ويرفض الدخول الجديد على ذلك الرمز حتى يمر الطابع الزمني.
حماية رأس المال تعكس اصطلاح التحصين الخاص بـ EX02. InpDailyLossLimitPct = 5% من الرصيد الأولي هو قاطع الخسارة اليومي؛ InpMaxTradesPerDay = 20 يحد من دوران المراكز؛ InpMaxConsecLosses = 5 يرفع تهدئة عامة 4 ساعات عبر g_cooldownUntil؛ InpMinEquityPct = 70% يفرض أرضية drawdown؛ InpCapAmount = 0 (معطّل) من شأنه تقييد رأس المال الفعلي بمبلغ ثابت، وInpCapFloor = 1000 يمنع الإكسبرت من التحجيم مقابل رصيد فعلي صغير. يقوم DetectGMTOffset_EX02027 باكتشاف انحراف GMT تلقائيًا ويسجّل المرشحين في -12..+12 عبر يوم الأسبوع (الإثنين-الجمعة = 10 نقاط) وملاءمة ساعات التداول (07-21 GMT = 5 نقاط) ويستخدم أعلى درجة. فلتر الجلسة (InpUseGMTSessions = false افتراضيًا) مربوط بلندن 07-16 GMT ونيويورك 12-21 GMT. فلتر الأخبار (InpFilterNews = true) يحظر الدخول الجديد ±InpNewsBufferMinutes = 30 دقيقة حول أي حدث عالي التأثير يتم سحبه عبر CalendarValueHistory(). بوابة فتح السوق ترفض أيضًا التداول من الأحد 22:00 GMT إلى الإثنين 22:00 GMT ومن الجمعة 22:00 GMT فصاعدًا.
تنفيذ الأوامر قوي. تستعلم SendOrder_AllFillings() من SymbolInfoInteger(SYMBOL_FILLING_MODE) لمعرفة أي من IOC أو RETURN أو FOK يسمح به الوسيط، ثم تمشي أوضاع التعبئة المسموح بها لما يصل إلى 5 محاولات خارجية. كل محاولة خارجية تزيد انحراف الانزلاق بمقدار 3 نقاط حتى InpMaxAdaptiveDeviation = 20. إذا رُفِض التعبئة بـ TRADE_RETCODE_INVALID_STOPS، يُعيد الإكسبرت إرسال نفس الأمر بدون SL/TP ويُرقِّع الوقف لاحقًا عبر ModifyPositionSLTP(). يُعيد OnTester (الربح × عامل الربح) / أقصى DD، مع بوابة لا تقل عن 10 صفقات — وهي عتبة صغيرة عمدًا لإكسبرت عدد صفحاته لكل رمز منخفض طبيعيًا لأن بوابة ADX انتقائية.
الطابع الصافي للإكسبرت هو مُرسِل متعدد الرموز عالي الإنتاجية يشغّل استراتيجيتين مختلفتين تمامًا على نفس شموع M1، مشتركًا فقط في كومة التأكيدات وإطار SL/TP وطبقة إدارة المراكز. اختبارات Backtests التي تُحسِّن لكل رمز ستحصل على أقصى استفادة من التصميم؛ تشغيل رمز واحد فقط EURUSD على M1 سيرى ببساطة إشارات أقل ورatchet DLP، لكن دون خسارة أداء من البنية متعددة الرموز. الحد الأدنى الموصى به للرصيد هو 100 دولار حسب ما يحدده الإكسبرت نفسه، لكن غطاء السبريد الديناميكي وبوابة الإضافة لكل رمز لا معنى لهما إلا في حسابات يمكنها دعم مركزين لكل رمز عبر أربعة أو خمسة رموز في وقت واحد — أي ما يقارب 5000 دولار من الهامش الحر كحد أدنى بحجم اللوت الأدنى على حساب قياسي.
تفاصيل الاستراتيجية
EX02027 هو المحرّك متعدد الرموز في عائلة EX02. في OnInit يتم تحليل مدخل SymbolsCSV إلى ما يصل إلى 20 رمزًا، ويُفعَّل كل رمز عبر SymbolSelect، وتُنشأ handles مؤشرات لكل رمز لـ KAMA(10, 2, 30) وRSI(2) وADX(14) وATR(14). تستدعي حلقة واحدة مدفوعة بمؤقت TryEntriesSymbol() لكل رمز مُسجَّل، وداخل تلك الدالة توجّه أحدث قيمة لـ ADX المنطق إما إلى طريقة ارتداد إلى المتوسط (إغلاق يخترق حزمة VWAP الخارجية 2σ للجلسة + استرداد RSI(2) + اتفاق ميل KAMA) أو إلى طريقة اختراق Donchian(20) (إغلاق خارج القناة + اتفاق SuperTrend + اتفاق ميل KAMA + رفض قرب VWAP إذا z > 1.5). يجب أن تجتاز كومة التأكيدات ذات الـ 3 فتحات — ارتفاع الحجم وKAMA وVWAP — عتبة InpNeedConfirmationsK = 2، ثم تقوم بوابة نسبة ATR اليومية (30-85) وتهدئة اتجاهية 20 ثانية بفلترة الباقي. SL مستمد من ATR بحدود أدنى مراعية للوضع (1.0× في الاختراق، 0.8× في الارتداد)، وTP مراعي للوضع (2.0× في الاختراق، 1.6× في الارتداد) — كلاهما يُرفق عند دخول الأمر. يقوم رatchet القفل الديناميكي للربح بتقديم SL إلى الأمام بخطوات 120 ناقص مخزن 18 نقطة، ولا يرجع للخلف أبدًا. تتعامل طبقة إدارة الصفقات أيضًا مع الإضافة: MaxOpenTradesPerSymbol = 2 مع AllowOnlyProfitableAdditions يتطلب أن يُظهر كل مركز قائم في نفس الاتجاه ≥ 4.0 نقطة من الربح غير المحقق قبل السماح بدخول "Add#"، وتفرض OnTradeTransaction() إيقاف سلسلة خسائر لكل رمز وتهدئة عامة 4 ساعات عند 5 خسائر متتالية. يحاول تنفيذ الأمر متعدد التعبئة IOC ← RETURN ← FOK بالترتيب، مع انحراف تكيّفي ينمو من 5 إلى 20 نقطة عبر 5 محاولات خارجية. يقوم اكتشاف GMT التلقائي بتسجيل الانحرافات في -12..+12 حسب يوم الأسبوع وملاءمة ساعات التداول؛ يحظر فلتر الأخبار ±30 دقيقة حول الأحداث عالية التأثير؛ وحد الخسارة اليومي هو 5% من الرصيد الأولي.
يقرأ الإكسبرت ADX(14) كل شمعة ويوجّه إلى واحدة من طريقتين: ADX تحت InpADXSwitch (افتراضي 18) يُفعِّل دخول ارتداد إلى المتوسط عندما يخترق إغلاق الشمعة السابقة الحزمة الخارجية 2σ لـ VWAP الجلسة ويستعيد RSI(2) فوق 10 (أو تحت 90 للبيع)، مع اتفاق ميل KAMA وجسم/مدى ≥ 0.18. ADX عند العتبة أو فوقها يُفعِّل اختراق Donchian(20) يجب أن يتفق أيضًا مع SuperTrend(10, 2.0) وميل KAMA، ويُرفَض إذا كان الإغلاق أبعد من 1.5σ عن VWAP الجلسة. يجب أن يجتاز أي جانب InpNeedConfirmationsK = 2 من 3 فتحات تأكيد (ارتفاع حجم ≥ 1.30× متوسط 20 شمعة، ميل KAMA، توفّر VWAP) وأن يجتاز نطاق نسبة ATR اليومية 30-85 قبل تطبيق تهدئة اتجاهية 20 ثانية وبوابة دخول واحد لكل شمعة.
يأتي الخروج من واحد من ثلاثة مسارات. الـ TP الثابت هو الهدف المستند إلى ATR — ATR(14) × 2.0 في وضع الاختراق أو × 1.6 في وضع الارتداد، مُطبَّعًا إلى حجم tick للرمز — ويُرفق بالأمر عند الدخول، ولا يُسحَب لاحقًا. يقوم رatchet القفل الديناميكي للربح (ApplyDynamicLockProfitToPosition()) بشد وقف الخسارة رتيبًا كل 120 نقطة من الربح، تاركًا مخزن 18 نقطة لإبقاء القفل بعيدًا عن الدخول، ويعمل على كل تكّة. مسار الخروج الثالث هو Scaling القائم على تعليق الأمر: عندما يفتح الإكسبرت مركز "Add#N" في اتجاه ما، لا يُغلق المراكز القائمة — يستمر SL/TP الأصلي ورatchet DLP في إدارة المراكز الأقدم، ويُحجَّم الجديد ويُحدَّد SL/TP الخاص به بشكل مستقل.
وقف الخسارة مستمد من ATR عبر CalcSLTP() ويساوي أحدث قيمة لـ ATR(14) مضروبة في InpATR_SL_Mult في وضع الاختراق (حد أدنى 1.0، افتراضي 1.0) أو في 0.8 في وضع الارتداد — المضاعفات هي حدود أدنى مراعية للوضع، وليست قيمًا مضبوطة. إذا تم تعطيل التحجيم المعتمد على ATR، يلجأ الإكسبرت إلى InpSL_Points = 250 نقطة ثابتة. ثم يقوم رatchet القفل الديناميكي للربح بشد SL رتيبًا مع نمو الربح، بحيث يحصل المركز الذي يصل إلى عدة خطوات ربح 120 نقطة على SL متقدم إلى الدخول + (steps × 120 − 18) نقطة ولا يُرخى أبدًا.
جني الأرباح يعتمد على الوضع ويُضبط عند دخول الأمر، ولا يُسحَب. في وضع الاختراق يكون TP هو ATR(14) × InpATR_TP_Mult (افتراضي 2.0، حد أدنى 2.0)، مما يعطي نسبة مخاطرة/عائد 1:2 مقابل وقف 1.0× ATR. في وضع الارتداد يكون TP هو ATR(14) × 1.6 مقابل وقف 0.8× ATR، مما يحافظ على نسبة 1:2 مع السماح للإكسبرت باستخدام وقف أضيق على إعداد متوقع أن يرتد قبل أن يبتعد كثيرًا. إذا تم تعطيل ATR، يكون TP ثابتًا عند InpTP_Points = 500 نقطة.
الحد الأدنى الموصى به للرصيد هو 100 دولار، لكن التصميم متعدد الرموز لا يحقق كامل عائده إلا على حسابات بها 5000 دولار على الأقل من الهامش الحر بحيث يكون سقف 2 مركز لكل رمز و6 مراكز عالميًا قابلاً للتحقيق. استخدم وسيط ECN/RAW بسبريد منخفض — غطاء السبريد الديناميكي مُعاير على متوسط + 3 × MAD لآخر 200 تكّة ويتحمل الظروف العادية، لكن وسيط السبريد الواسع سيبقي الإكسبرت خارج السوق بشكل دائم. الأفضل في نوافذ لندن 7-16 GMT ونيويورك 12-21 GMT إذا تم تفعيل InpUseGMTSessions، وإلا يكون الإكسبرت متساهلًا وإيقاف سلسلة الخسائر لكل رمز وتهدئة الـ 4 ساعات للخسائر المتتالية هما ما يوقف فعلًا نزيف التداول الليلي. حسّن لكل رمز بدلاً من التحسين عبر القائمة كاملة — مبدّل الأنظمة وإعادة ضبط VWAP للجلسة يعنيان أن نفس المعاملات لا تناسب جميع الرموز الافتراضية الخمسة.
منطق الاستراتيجية
Pipsgrowth EX02027 Breakout — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Breakout
الماجيك: 22202027
الإصدار: 2.00
الوصف:
Multi-symbol VWAP+KAMA Donchian/SuperTrend scalper with ADX regime switching between mean-reversion and breakout modes, session VWAP sigma bands, RSI(2) recapture, dynamic lock profit
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
Trim()SplitCSV()FindSymIndex()SymPoint()SymTickSize()NormalizePriceToTick()SymBid()SymAsk()SymbolMinVolume()SymbolVolumeStep()
// Pipsgrowth EX02027 Breakout — Execution Flow (from source analysis)
// Family: Breakout
// Multi-symbol VWAP+KAMA Donchian/SuperTrend scalper with ADX regime switching between mean-reversion and breakout modes, session VWAP sigma bands, RSI(2) recapture, dynamic lock profit
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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| MagicNumber | 22202027 | 2220 + Expert ID (333) |
| SymbolsCSV | "EURUSD,USDJPY,GBPUSD,EURJPY,AUDUSD" | Symbols list (CSV) |
| InpTF | 1 | Working timeframe (0=current,1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1,8=W1,9=MN1) |
| InpEnableDynamicLockProfit | true | Enable dynamic lock profit ratchet |
| InpLockProfitEveryXPoints | 120 | Lock step (points) |
| InpLockMinusYPointsBuffer | 18 | Lock buffer subtract (points) |
| MaxOpenTradesPerSymbol | 2 | Max positions per symbol |
| MaxTotalOpenTrades | 6 | Global max open positions |
| AllowOnlyProfitableAdditions | true | Only add if prior direction profitable |
| MinProfitPerTradeToAdd | 4.0 | Min unrealized pts each to allow add |
| PauseOnConsecutiveLosses | false | Enable pause after X losses |
| PauseConsecutiveLossesCount | 3 | Loss streak threshold |
| PauseConsecutiveLossesMinutes | 60 | Pause duration (minutes) |
| PauseOnLossAmount | false | Enable pause after loss amount |
| PauseLossAmount | 100.0 | Loss amount threshold (currency) |
| PauseLossAmountMinutes | 60 | Pause duration after amount (minutes) |
| InpUseAutoMinLot | true | Use symbol min lot automatically |
| InpFixedLot | 0.10 | Fixed lot if auto-min disabled |
| InpUseATRforSLTP | true | Use ATR-based SL/TP |
| InpATRPeriod | 14 | ATR period |
| InpATR_SL_Mult | 1.0 | Base ATR SL multiplier |
| InpATR_TP_Mult | 2.0 | Base ATR TP multiplier |
| InpSL_Points | 250 | Static SL if ATR disabled (points) |
| InpTP_Points | 500 | Static TP if ATR disabled (points) |
| InpSlippagePoints | 5 | Initial allowed slippage |
| InpMaxAdaptiveDeviation | 20 | Max adaptive deviation (points) |
| InpOneEntryPerBar | true | Restrict one entry per bar |
| InpCooldownSecondsDir | 20 | Directional cooldown seconds |
| InpADXSwitch | 18 | ADX regime switch threshold |
| InpDonchianPeriod | 20 | Donchian channel period |
| InpST_ATR_Period | 10 | SuperTrend ATR period |
| InpST_Mult | 2.0 | SuperTrend ATR multiplier |
| InpRSI2_LevelLow | 10 | RSI2 low recapture level (BUY) |
| InpRSI2_LevelHigh | 90 | RSI2 high recapture level (SELL) |
| InpVWAP_SigmaInner | 1.5 | VWAP inner sigma band |
| InpVWAP_SigmaOuter | 2.0 | VWAP outer sigma band |
| InpVWAP_StdLookback | 60 | VWAP sigma calc lookback |
| InpNeedConfirmationsK | 2 | Required confirmations K |
| InpUseDynamicSpreadCap | true | Enable dynamic spread cap |
| InpSpreadLookbackTicks | 200 | Spread sampling window (ticks) |
| InpSpreadMADMult | 3.0 | Spread cap multiplier (med+k*MAD) |
| InpSpreadCapAbsPoints | 0 | Absolute spread cap (0=off) |
| InpMinTicksPerMin | 18 | Min tick activity per minute |
| InpUseBarQualityFilter | true | Use bar quality filter |
| InpMinBodyToRange | 0.18 | Min body/range ratio |
| InpUseATRPercentileFilter | true | Use ATR percentile gating |
| InpATRPctlLow | 30 | ATR percentile low bound |
| InpATRPctlHigh | 85 | ATR percentile high bound |
| InpEvaluateOnNewBarOnly | true | Only run entry logic on new closed bar |
| InpLightweightOptimization | true | Simplify heavy calcs during optimization |
| InpTimerSeconds | 1 | Timer interval seconds |
| InpDebugReasons | false | Log skip reasons (throttled per bar) |
| InpNewYorkEndGMT | 21 | --- Hardening: Capital Protection --- |
| InpCapAmount | 0.0 | Capital cap amount (0=disabled) |
| InpDailyLossLimitPct | 5.0 | --- Hardening: Trade Safety --- |
| InpNewsBufferMinutes | 30 | ==================================================================// |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX02027 EX8 Multi-Symbol VWAP+KAMA Donchian — multi-symbol scalper with ADX regime switch, full 12-layer stack."
//==================================================================//
// TIMEFRAME MAPPING //
//==================================================================//
ENUM_TIMEFRAMES MapTimeframe_EX02027(int tf)
{
switch(tf)
{
case 0: return (ENUM_TIMEFRAMES)Period();
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;
case 8: return PERIOD_W1;
case 9: return PERIOD_MN1;
default: return PERIOD_M1;
}
}
ENUM_TIMEFRAMES g_tf = PERIOD_M1;
//==================================================================//
// INPUTS //
//==================================================================//
input group "=== Core ==="
input long MagicNumber = 22202027; // 2220 + Expert ID (333)
input string InpTradeComment = "Psgrowth.com Expert_02027";
input string SymbolsCSV = "EURUSD,USDJPY,GBPUSD,EURJPY,AUDUSD"; // Symbols list (CSV)
input int InpTF = 1; // Working timeframe (0=current,1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1,8=W1,9=MN1)
//------------------ DYNAMIC LOCK PROFIT (Ratchet) -------------------
input group "=== Dynamic Lock Profit ==="
input bool InpEnableDynamicLockProfit = true; // Enable dynamic lock profit ratchet
input int InpLockProfitEveryXPoints = 120; // Lock step (points)
input int InpLockMinusYPointsBuffer = 18; // Lock buffer subtract (points)
//-------------- INITIAL vs ADDITIONAL (adds gating) -----------------
input group "=== Initial vs Additional ==="
input int MaxOpenTradesPerSymbol = 2; // Max positions per symbol
input int MaxTotalOpenTrades = 6; // Global max open positions
input bool AllowOnlyProfitableAdditions = true; // Only add if prior direction profitable
input double MinProfitPerTradeToAdd = 4.0; // Min unrealized pts each to allow add
//--------------------------- PAUSE GUARDS ---------------------------
input group "=== Pause Guards ==="
input bool PauseOnConsecutiveLosses = false; // Enable pause after X losses
input int PauseConsecutiveLossesCount = 3; // Loss streak threshold
input int PauseConsecutiveLossesMinutes = 60; // Pause duration (minutes)
input bool PauseOnLossAmount = false; // Enable pause after loss amount
input double PauseLossAmount = 100.0; // Loss amount threshold (currency)
input int PauseLossAmountMinutes = 60; // Pause duration after amount (minutes)
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 EX02024 Breakout — إكسبرت أدفايزر اختراق
Pipsgrowth EX02024 Breakout — Daily breakout EA that places BuyStop above the previous day's high and SellStop below the previous day's low, with trai. إكسبرت أدفايزر 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.