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

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 خسائر متتالية. يحاول تنفيذ الأمر متعدد التعبئة IOCRETURNFOK بالترتيب، مع انحراف تكيّفي ينمو من 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 الثابت هو الهدف المستند إلى ATRATR(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()
الرمز الزائف (Pseudocode)
// 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)

ملف التحسين

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

كيفية تثبيت الإكسبرت على 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اسحب الإكسبرت على رسم H1 أو H4
  7. 7حدد فترة رصد النطاق وهامش الاختراق وحجم اللوت في نافذة الإعدادات
  8. 8فعّل Allow Algo Trading واضغط OK

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

المعاملالافتراضيالوصف
MagicNumber222020272220 + Expert ID (333)
SymbolsCSV"EURUSD,USDJPY,GBPUSD,EURJPY,AUDUSD"Symbols list (CSV)
InpTF1Working timeframe (0=current,1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1,8=W1,9=MN1)
InpEnableDynamicLockProfittrueEnable dynamic lock profit ratchet
InpLockProfitEveryXPoints120Lock step (points)
InpLockMinusYPointsBuffer18Lock buffer subtract (points)
MaxOpenTradesPerSymbol2Max positions per symbol
MaxTotalOpenTrades6Global max open positions
AllowOnlyProfitableAdditionstrueOnly add if prior direction profitable
MinProfitPerTradeToAdd4.0Min unrealized pts each to allow add
PauseOnConsecutiveLossesfalseEnable pause after X losses
PauseConsecutiveLossesCount3Loss streak threshold
PauseConsecutiveLossesMinutes60Pause duration (minutes)
PauseOnLossAmountfalseEnable pause after loss amount
PauseLossAmount100.0Loss amount threshold (currency)
PauseLossAmountMinutes60Pause duration after amount (minutes)
InpUseAutoMinLottrueUse symbol min lot automatically
InpFixedLot0.10Fixed lot if auto-min disabled
InpUseATRforSLTPtrueUse ATR-based SL/TP
InpATRPeriod14ATR period
InpATR_SL_Mult1.0Base ATR SL multiplier
InpATR_TP_Mult2.0Base ATR TP multiplier
InpSL_Points250Static SL if ATR disabled (points)
InpTP_Points500Static TP if ATR disabled (points)
InpSlippagePoints5Initial allowed slippage
InpMaxAdaptiveDeviation20Max adaptive deviation (points)
InpOneEntryPerBartrueRestrict one entry per bar
InpCooldownSecondsDir20Directional cooldown seconds
InpADXSwitch18ADX regime switch threshold
InpDonchianPeriod20Donchian channel period
InpST_ATR_Period10SuperTrend ATR period
InpST_Mult2.0SuperTrend ATR multiplier
InpRSI2_LevelLow10RSI2 low recapture level (BUY)
InpRSI2_LevelHigh90RSI2 high recapture level (SELL)
InpVWAP_SigmaInner1.5VWAP inner sigma band
InpVWAP_SigmaOuter2.0VWAP outer sigma band
InpVWAP_StdLookback60VWAP sigma calc lookback
InpNeedConfirmationsK2Required confirmations K
InpUseDynamicSpreadCaptrueEnable dynamic spread cap
InpSpreadLookbackTicks200Spread sampling window (ticks)
InpSpreadMADMult3.0Spread cap multiplier (med+k*MAD)
InpSpreadCapAbsPoints0Absolute spread cap (0=off)
InpMinTicksPerMin18Min tick activity per minute
InpUseBarQualityFiltertrueUse bar quality filter
InpMinBodyToRange0.18Min body/range ratio
InpUseATRPercentileFiltertrueUse ATR percentile gating
InpATRPctlLow30ATR percentile low bound
InpATRPctlHigh85ATR percentile high bound
InpEvaluateOnNewBarOnlytrueOnly run entry logic on new closed bar
InpLightweightOptimizationtrueSimplify heavy calcs during optimization
InpTimerSeconds1Timer interval seconds
InpDebugReasonsfalseLog skip reasons (throttled per bar)
InpNewYorkEndGMT21--- Hardening: Capital Protection ---
InpCapAmount0.0Capital cap amount (0=disabled)
InpDailyLossLimitPct5.0--- Hardening: Trade Safety ---
InpNewsBufferMinutes30==================================================================//
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX02027.mq5
#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)

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

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

الوسوم:ex02027breakoutpipsgrowthfreemt5eurusdusdjpygbpusdaudusd

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

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

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

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

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

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

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

اسم الملفPipsgrowth_com_EX02027.mq5
حجم الملف51.1 KB
الإصدارv2.00
PlatformMetaTrader 5
نوع الملف.mq5 Source
الاستراتيجيةالاختراق
المخاطرةمخاطرة متوسطة
الأطر الزمنية
M1
أزواج العملات
EURUSDUSDJPYGBPUSDAUDUSD
الحد الأدنى للإيداع$100