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

Pipsgrowth EX02020 Breakout — إكسبرت أدفايزر اختراق

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

Pipsgrowth EX02020 Breakout — Advanced Donchian channel breakout EA with comprehensive money management, session control, smart exit timing, and multi. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

إكس 02020 من Pipsgrowth يُسلَّم كإطار عمل لاختراقات دونشيان ملفوفًا بمكدس إدارة صفقات مكوّن من اثنتي عشرة طبقة. عند قراءة المصدر من الأعلى إلى الأسفل، تتضح نقطة جوهرية فورًا: دوال المؤشر الأربعة التي تقود قرار الاختراق — GetEntrySignal() وGetExitSignal() وGetIndicatorStopLoss() وGetIndicatorTakeProfit() — هي عناصر نائبة (placeholders) تُعيد على التوالي SIGNAL_NONE وfalse و0.0. كما هو منشور، لن يفتح المستشار Expert Advisor أي صفقة من تلقاء نفسه. ما يُقدّمه الملف بتفصيل كبير هو البنية التحتية المحيطة التي يحتاجها أي إشارة اختراق لكي تكون قابلة للتداول على حساب حقيقي: سلّم وقف خسارة ثابت، وقف متابع (trailing) متدرّج، نقل إلى نقطة التعادل، قفل ربح ديناميكي متدرّج، إغلاق قسري في نهاية اليوم، بوابة أخبار Forex Factory، ساعة بثلاث فتحات للجلسات، كاشف لفارق توقيت غرينتش، حاكم لتراجع الحساب، تهدئة بعد خسائر متتالية، سقف رأسمال مع أرضية، محاسبة ربح/خسارة يومي وأسبوعي، وإرسال أوامر مع تحقق مسبق من الهامش وإعادة محاولة ثلاث مرات. يعد الوصف في رأس الملف باختراق قناة دونشيان لزوج XAUUSD على الإطار M5؛ ووقت التشغيل يُسلّم كل جزء من هذا الوعد باستثناء حساب قناة السعر نفسه، المُترك للمطوّر ليستكمله.

محرك إدارة الصفقات هو قلب هذا المستشار. في كل تيك، بعد اجتياز الشروط الأوّلية (التداول مسموح، المستشار غير متوقف)، تقوم HandleSessionAndTimeManagement() بالمرور على فتحات الجلسات الثلاث، وتضبط minutes_until_session_end وأعلام الإيقاف المؤقت/الإغلاق القسري، ثم إما تسمح بالمتابعة وإما تُرجع false لإيقاف الدورة. عندما يُسمح بالتداول، تمر ManageOpenPositions() على كل صفقة لها ماجيك يساوي InpMagicNumber=22202020 والرمز يساوي _Symbol، ثم تسلسل ManageSLTP()ManageTrailingAndBreakeven()ManageProfitLock()ManageTimeBasedExit()ManageSignalBasedExit(). كل من هذه الدوال المساعدة هو غلاف رقيق حول دوال العمل الحقيقية: ApplyHardSL_TP_IfNotSet() تحاول أولًا خطافات المؤشر للوقف والهدف (التي تُعيد 0.0)، ثم تعود إلى InpHardSL_Points=50 للوقف وInpFixedTP_Points=100 للهدف. تُفعَّل ApplyTrailingStop() بمجرد تحرّك السعر بمقدار InpTrailingStop_Points=20 نقطة في الربح، ولا تُحرّك الوقف إلا بدرجات 5 نقاط. تنقل ApplyBreakEven() الوقف إلى سعر الدخول زائد InpBreakEvenLockPoints=2 بمجرد أن يصل الربح إلى InpBreakEvenTriggerPoints=30. تكون ApplyProfitLock() معطّلة افتراضيًا (InpUseProfitLock=false)، لكن عند تفعيلها تسحب الوقف كل InpProfitLockStepPoints=20 نقطة ربح إضافية، وتقف على بعد InpProfitLockSecurePoints=10 نقطة من السعر. CheckTimeBasedSL() معطّلة أيضًا (InpUseTimeBasedSL=false)؛ وعند تفعيلها بـInpTimeBasedSLMinutes=120 فإنها تُغلق أي صفقة تجاوز عمرها ساعتين بصرف النظر عن الربح.

جانب الدخول هو الجانب غير الاعتيادي في هذا المستشار. تستدعي ProcessSignalAndOpenTrade() الدالة GetEntrySignal() مرة في كل تيك وتخرج إذا كان العائد SIGNAL_NONE — وهو العائد الوحيد الممكن من الملف المنشور. تحسب OpenTradeWithSignal() بعدئذ حجم اللوت عبر CalculateLotSize() (ثابت InpLotSize=0.01 افتراضيًا، أو تلقائي التحجيم حيث InpAutoLot_Increment=0.01 لكل InpAutoLot_CapitalPerIncrement=1000 من الإكويتي، مقيّدًا بين InpAutoLot_MinAllowedLot=0.01 وInpAutoLot_MaxAllowedLot=10.0)، وتبني الوقف والهدف من خطافات المؤشر، وتُمرّر الأمر إلى OpenMarketOrder(). تتحقق دالة الأمر من OrderCalcMargin مقابل الهامش الحر، وتطبّق حارس StopsLevel (يتم توسيع الوقف/الهدف إلى StopsLevel + InpMaxSlippage + 1 نقطة إذا كانت المسافة الدنيا لوقف الوسيط ستسبب الرفض)، ثم تُرسل حتى ثلاث محاولات على الرموز TRADE_RETCODE_REQUOTE و_TIMEOUT و_PRICE_OFF و_PRICE_CHANGED، مع نوم 200 مللي ثانية بين المحاولات. بالنسبة لمطوّر يستكمل دوال Get* الأربع برياضيات دونشيان حقيقية، فإن هذا المسار بالكامل جاهز للاستخدام كما هو.

بوابات الأمان متراكبة. قبل قراءة أي إشارة، تشغّل CheckTradeFilters() فحص أخبار Forex Factory (IsForexFactoryNewsEventActive() التي تجلب عبر WebRequest موجز XML من https://nfs.faireconomy.media/ff_calendar_thisweek.xml، وتحلل كتل <event> عبر ParseFFNews()، وتطابق عملة الأساس/الاقتباس — أو الوسم الحرفي ALL — مع نافذة InpNewsBufferMinutes=30؛ تُخزَّن النتائج لمدة 10 دقائق)، ثم IsTradingDayAllowed() (من الإثنين إلى الجمعة افتراضيًا عبر InpTradingDays=TRADING_DAYS_MON_TO_FRI)، ثم IsDrawdownLimitOk() (التي تقارن Balance − Equity بكل من InpMaxDrawdownPercent=20.0% وInpMaxDrawdownAmount=0.0، وفحص المبلغ معطّل). يطبّق بلوك التقسية بعد ذلك سقف رأس المال الاختياري (InpCapAmount=0.0 يعني معطّلًا؛ عند التعيين، يكون رأس المال الفعّال min(cap, equity) ويحدث إيقاف مؤقت قاسي إذا هبط تحت InpCapFloor=1000.0)، وأرضية إكويتي (InpMinEquityPct=70.0 من g_initialBalance)، وحد خسارة يومية محقّقة (InpDailyLossLimitPct=5.0 من الرصيد الأوّلي). تفرض CanOpenNewTrade() بعد ذلك InpOneTradeOnly=true وInpMaxOpenTrades=1، وعدّاد الصفقات اليومي (InpMaxTradesPerDay=5)، وبوابة الفترات بين الصفقات (InpMinBarsBetweenTrades=1)، ووقت الإيقاف المؤقت g_pause_until_time المُعيَّن من UpdateConsecutiveLossesAndPause() بعد InpMaxConsecutiveLosingTrades=3 خسائر متتالية (إيقاف 60 دقيقة عبر InpPauseMinutesAfterLosingStreak)، وفحص الربح لكل اتجاه (InpAllowOnlyProfitableAdditions=true يتطلب أن تكون كل صفقة قائمة في نفس الاتجاه رابحة بما لا يقل عن InpMinProfitPerTradeToAdd=5.0 نقاط)، وسقف السبريد (InpMaxSpreadPoints=10). خلف ذلك توجد بوابة جلسة ثانية: عندما يكون InpUseGMTSessions=true، تترجم InActiveSession_EX02020() وقت الخادم إلى توقيت غرينتش عبر DetectGMTOffset_EX02020() (heuristic لأفضل فارق من -12 إلى +12، مع تسجيل نقاط لأيام الأسبوع 1–5 بـ+10 وللساعات 7–21 بـ+5) ولا تسمح بالتداول إلا إذا وقعت ساعة غرينتش في InpLondonStartGMT=7..InpLondonEndGMT=16 أو InpNewYorkStartGMT=12..InpNewYorkEndGMT=21.

رياضيات توجيه الأحجام جديرة بالفهم. تُرجع CalculateLotSize() الحجم الثابت InpLotSize=0.01 عندما يكون InpLotSizingMethod=LOT_FIXED؛ وعند التبديل إلى LOT_AUTO_SCALED، تختار account.Balance() أو account.Equity() بحسب InpAutoLotBaseType (افتراضي BASE_ACCOUNT_EQUITY)، وتقسم على InpAutoLot_CapitalPerIncrement=1000، وتضرب في InpAutoLot_Increment=0.01، وتقيّد بين النافذة [InpAutoLot_MinAllowedLot, InpAutoLot_MaxAllowedLot]. تُقرَّب النتيجة بعد ذلك إلى LotsStep للوسيط، وتُقيَّد مرة أخرى بين LotsMin وLotsMax للوسيط، وتُرفض مع سجل خطأ إذا انتهت تحت LotsMin. تتابع OnTradeTransaction() الربح/الخسارة المحقّقة لكل صفقة مُغلقة للماجيك، وتزيد g_realizedToday وg_realizedWeek، وتغذّي ربح/خسارة الإغلاق إلى UpdateConsecutiveLossesAndPause() لمنطق الإيقاف المؤقت. تُرجع OnTester() المخصصة قيمة profit × profitFactor / maxDD عندما يكون عدد الصفقات 10 على الأقل، وإلا فصفرًا — وهي درجة لياقة أحادية الرقم لمُحسِّن MT5.

الملخص الصادق: يُعامَل Pipsgrowth EX02020 بأفضل صورة كقشرة قابلة للتخصيص للاختراقات. هو مكتمل الميزات من جانب الإدارة — كل معامل يريده متداول جاد لزوج XAUUSD لأغراض الوقف والخروج الزمني والأخبار والجلسات وتراجع الحساب وحماية رأس المال موجود ومعروض كـinput. أما جانب الإشارة، فهو خطاف للمطوّر. كل من يخطط لتشغيل هذا على حساب حي يحتاج إما إلى استبدال دوال Get* الأربع بمنطق دونشيان (أو اختراق آخر) حقيقي، أو إلى توصيلها باستدعاءات iCustom أو iHighest أو iLowest على القناة التي يختارها. متى اكتمل ذلك، يصبح بقية الملف جاهزًا للعمل وتمثّل القيم الافتراضية المنشورة نقطة بداية معقولة: لوت 0.01 دولار، وقف 50 نقطة، هدف 100 نقطة، trailing 20/5، تعادل 30/2، إيقاف 60 دقيقة بعد 3 خسائر، حد خسارة يومية 5%، حاكم تراجُع 20%، ونوافذ جلستي لندن ونيويورك. تنشر Pipsgrowth المصدر بالكامل بحيث يستطيع مطوّر MQL5 كفء قراءة الخطافات النائبة، وإسقاط رياضيات الاختراق الخاصة به، وشحن مستشار عامل في فترة قصيرة.

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

المصدر المنشور هو قشرة إدارة صفقات. تبدأ كل تيك بـCheckInitialConditions() (التداول مسموح، المستشار غير متوقف)، ثم تمشي HandleSessionAndTimeManagement() على فتحات الجلسات الثلاث ونوافذ الإغلاق القسري، وتمرّ ManageOpenPositions() على وقف/هدف ← trailing/تعادل ← قفل ربح ← وقف زمني ← خروج إشاري لكل صفقة ماجيكها 22202020. تشغّل CheckTradeFilters() بعد ذلك بوابة أخبار Forex Factory (مُخزَّنة 10 دقائق، مع نافذة InpNewsBufferMinutes=30 حول الحدث)، وقناع أيام التداول، وحاكم التراجُع، والإيقاف المؤقت بعد الخسائر المتتالية، وسقف الصفقات اليومي، ومرشح ربحية كل اتجاه، وسقف السبريد. إذا كان كل شيء أخضر، تستدعي ProcessSignalAndOpenTrade() الدالة GetEntrySignal() — ولأنها تُعيد SIGNAL_NONE في الملف المنشور، يبقى المستشار خاملًا حتى يستكمل المطوّر خطافات Get* الأربع برياضيات اختراق حقيقية. تنفيذ الأوامر متين: تحقق مسبق من OrderCalcMargin، وحارس StopsLevel، وحلقة 3 محاولات بفاصل 200 مللي ثانية على requote/timeout/price-off/price-changed. تراكم OnTradeTransaction() الربح/الخسارة المحقّقة اليومية والأسبوعية وتدفع منطق InpMaxConsecutiveLosingTrades=3 ← إيقاف 60 دقيقة. تُرجع OnTester() قيمة profit × profitFactor / maxDD لمُحسِّن MT5 (صفر عندما يكون عدد الصفقات أقل من 10).

إشارة الدخول

يعتمد الدخول على خطاف GetEntrySignal() في كل تيك. في المصدر المنشور، هذه الدالة عنصر نائب يُعيد SIGNAL_NONE، فلا تُرسَل أي أوامر حتى يستبدلها المطوّر بحساب اختراق دونشيان (أو غيره) حقيقي. يوثّق الملف السلوك المقصود — دخول اخترااقات قناة لزوج XAUUSD على M5 بطبقات التأكيد والنظام والمخاطر كاملة — لكن رياضيات قناة السعر نفسها متروكة للمُنفّذ.

إشارة الخروج

تُدار الخروج حصريًا من خلال سلسلة إدارة الصفقات، لأن GetExitSignal() عنصر نائب أيضًا. يمر المسار على ApplyHardSL_TP_IfNotSet() (وقف ثابت 50 نقطة، هدف 100 نقطة افتراضيًا)، وApplyTrailingStop() (تُحرّك الوقف بدرجات 5 نقاط بمجرد تحرّك السعر 20 نقطة في الربح)، وApplyBreakEven() (تنقل الوقف إلى الدخول + 2 نقطة عند 30 نقطة ربح)، وApplyProfitLock() (معطّلة افتراضيًا؛ عند تفعيلها تقف على بعد 10 نقاط من السعر وتتقدّم كل 20 نقطة)، وCheckTimeBasedSL() (معطّلة افتراضيًا؛ تُغلق أي صفقة تجاوز عمرها 120 دقيقة)، وManageSignalBasedExit() (التي ستحترم خروج مؤشر مستقبلي).

وقف الخسارة

وقف الصفقة الواحدة هو InpHardSL_Points=50 (5 نقاط على وسيط XAUUSD من 5 أرقام)، يُعيَّن في ApplyHardSL_TP_IfNotSet(). ينتقل إلى نقطة التعادل عند 30 نقطة ربح ويُثبّت نقطتين (InpBreakEvenTriggerPoints=30 وInpBreakEvenLockPoints=2). يوجد خيار وقف قائم على ATR عبر InpUseATRStop=false مع InpATR_SL_Period=14 وInpATR_SL_Multiplier=2.0، لكن خطاف المؤشر الذي سيُغذّيه يُعيد حاليًا 0.0. الوقف على مستوى المحفظة هو حاكم تراجُع 20% (InpMaxDrawdownPercent=20.0) يُوقف جميع الدخول الجديدة عندما يصل Balance − Equity إلى هذا الحد.

جني الأرباح

هدف الصفقة الواحدة هو InpFixedTP_Points=100 (10 نقاط على وسيط XAUUSD من 5 أرقام)، ما يعطي نسبة مخاطرة إلى عائد 1:2 افتراضيًا مقابل الوقف الثابت 50 نقطة. لا يوجد تحجيم ديناميكي للهدف — GetIndicatorTakeProfit() عنصر نائب يُعيد 0.0. توجد دالة إغلاق جزئي (TryClosePartial_EX02020) في المصدر بحلقة 3 محاولات بفاصل 200 مللي ثانية، جاهزة للتوصيل بمسار الدخول متى نُفّذت طبقة الإشارة.

الأنسب لـ

الحد الأدنى الموصى به للرصيد: 100 دولار (يتحقق المصدر من ذلك مقابل mySymbol.LotsMin() × الحجم الثابت InpLotSize=0.01). المستشار مبني خصيصًا لزوج XAUUSD على الإطار M5 — الماجيك 22202020، وسم التعليق Psgrowth.com Expert_02020، والقيم الافتراضية للوقف/الهدف (50/100 نقطة) مُعدّة للذهب على وسيط من 5 أرقام. شغّله على حساب ECN أو RAW منخفض السبريد (سقف السبريد InpMaxSpreadPoints=10 سيرفض معظم عروض صانعي السوق على الذهب) وخلال جلستي لندن ونيويورك (بوابتا غرينتش 07–16 و12–21 تتطابقان مع أعمق سيولة الذهب).

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

Pipsgrowth EX02020 Breakout — تحليل منطق الاستراتيجية (من كود .mq5)

العائلة: Breakout الماجيك: 22202020 الإصدار: 2.00

الوصف: Advanced Donchian channel breakout EA with comprehensive money management, session control, smart exit timing, and multi-indicator confirmation for XAUUSD. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • StringToTime()
  • Log()
  • ParseFFDateTime()
  • ExtractTag()
  • ParseFFNews()
  • InitializeTradeObjects()
  • ResetStateVariables()
  • ValidateInputParameters()
  • ValidateLotSettings()
  • ValidateRiskSettings()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX02020 Breakout — Execution Flow (from source analysis)
// Family: Breakout
// Advanced Donchian channel breakout EA with comprehensive money management, session control, smart exit timing, and multi-indicator confirmation for XAUUSD. 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
الأطر الزمنية المُحسّنة:
M5

كيفية تثبيت الإكسبرت على 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

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

المعاملالافتراضيالوصف
InpNewYorkEndGMT21--- Hardening: Capital Protection ---
InpCapAmount0.0Capital cap amount (0=disabled)
InpLotSize0.01Fixed Lot Size (if LotSizingMethod is LOT_FIXED)
InpMagicNumber22202020Magic Number for orders (unique identifier for this EA)
InpTradeComment"Psgrowth.com Expert_02020"Trade Comment
InpMaxSlippage5Slippage in points (max allowed price deviation)
InpMaxSpreadPoints10Maximum allowed spread in points (0 for no check)
InpOneTradeOnlytrueAllow only one trade at a time (per symbol for this EA)
InpMaxOpenTrades1Maximum allowed open trades at the same time
InpAllowOnlyProfitableAdditionstrueOnly open new trades if all existing (by this EA) are in profit
InpMinProfitPerTradeToAdd5.0Min. profit in points for each existing trade to open new one
InpMaxDrawdownPercent20.0Max drawdown % allowed (0 to disable)
InpMaxDrawdownAmount0.0Max drawdown amount in account currency (0 to disable)
InpMaxTradesPerDay5Max trades per day (0 for unlimited)
InpMinBarsBetweenTrades1Min bars between opening new trades
InpMaxConsecutiveLosingTrades3Pause trading after this many consecutive losses (0 to disable)
InpPauseMinutesAfterLosingStreak60Minutes to pause after reaching losing streak
InpAvoidTradingDuringNewsfalseAvoid trading during news events
InpNewsBufferMinutes30Minutes before and after news to avoid trading
InpAvoidTradingDuringHighImpactNewstrueAvoid high impact news
InpAvoidTradingDuringMediumImpactNewsfalseAvoid medium impact news
InpAvoidTradingDuringLowImpactNewsfalseAvoid low impact news
InpNewsTimeZoneOffsetHours0Offset in hours from UTC (e.g., 2 for UTC+2, -5 for UTC-5)
InpNewsSourceNEWS_SOURCE_FOREX_FACTORYNews source for news filtering
InpLotSizingMethodLOT_FIXEDLot Sizing Method
InpAutoLotBaseTypeBASE_ACCOUNT_EQUITYCapital base for auto lot calculation
InpAutoLot_Increment0.01Lot size to add (e.g., 0.01)
InpAutoLot_CapitalPerIncrement1000For every X amount of capital
InpAutoLot_MaxAllowedLot10.0Maximum lot size allowed by auto calculation
InpAutoLot_MinAllowedLot0.01Minimum lot size allowed by auto calculation
InpOrderTypeORDER_TYPE_BUY_SELLOrder type
InpUseHardSLtrueEnable Hard Stop Loss
InpHardSL_Points50Fixed Stop Loss in points (0 to disable)
InpUseTrailingStoptrueEnable Trailing Stop
InpTrailingStop_Points20Trailing Stop activation in points of profit
InpTrailingStep_Points5Trailing Stop step in points
InpUseATRStopfalseUse ATR-based stop loss (Placeholder for indicator logic)
InpATR_SL_Period14ATR period for SL calculation
InpATR_SL_Multiplier2.0ATR multiplier for SL
InpMoveSLToBreakEventrueMove SL to breakeven after X points
InpBreakEvenTriggerPoints30Points in profit to trigger breakeven move
InpBreakEvenLockPoints2Lock X points profit at breakeven (e.g., entry + 2 points)
InpUseTimeBasedSLfalseClose trade after X minutes
InpTimeBasedSLMinutes120Minutes before time-based SL triggers
InpFixedTP_Points100Fixed Take Profit in points (0 to disable)
InpUseProfitLockfalseEnable dynamic profit locking
InpProfitLockTriggerPoints50Start locking profit after this many points in profit
InpProfitLockStepPoints20Move SL every X points further in profit (after trigger)
InpProfitLockSecurePoints10How many points behind current price to lock (e.g., if price moves 20, SL moves to current - 10)
InpProfitLockOnlyAfterBEtrueOnly start profit lock after breakeven is reached
InpEnableSessionControlfalseEnable sessions control
InpEnableSession1trueEnable session 1
InpSession1Start"08:00"Session 1 start time (HH:MM server time)
InpSession1End"16:00"Session 1 end time (HH:MM server time)
InpEnableSession2falseEnable session 2
InpSession2Start"18:00"Session 2 start time (HH:MM server time)
InpSession2End"22:00"Session 2 end time (HH:MM server time)
InpEnableSession3falseEnable session 3
InpSession3Start"00:00"Session 3 start time (HH:MM server time)
InpSession3End"00:00"Session 3 end time (HH:MM server time)
InpPauseBeforeEndOfSessiontrueStop opening new trades before end of active session
InpPauseMinutesBeforeEndOfSession30Minutes before end of session to pause new trades
InpForceCloseAllTradesAtSessionEndfalseForce close all trades at the end of an active session
InpForceCloseMinutesBeforeSessionEnd5Minutes before session end to force close
InpCloseAllTradesAtEndOfDayfalseClose all trades at specific EOD time
InpEndOfDayCloseTime"23:50"EOD time to close all trades (HH:MM server time)
InpEnableSmartExitManagementfalseEnable Smart Exit Management (currently simplified)
InpSmartExitStartMinutesBeforeSessionEnd60When to start "smartly" managing (e.g., no new trades, check for early profitable close)
InpEnableAlertstrueEnable Terminal Alerts for important events
InpEnableEmailNotifyfalseEnable Email Notifications
InpEnablePushNotifyfalseEnable Push Notifications
InpLogTradeEventstrueLog trade open/close/modify events
InpLogTickEventsfalseLog detailed tick processing (for debugging, can be verbose)
InpTradingDaysTRADING_DAYS_MON_TO_FRIDays to allow trading
InpTradeMondaytrueTrade on Monday
InpTradeTuesdaytrueTrade on Tuesday
InpTradeWednesdaytrueTrade on Wednesday
InpTradeThursdaytrueTrade on Thursday
InpTradeFridaytrueTrade on Friday
InpTradeSaturdayfalseTrade on Saturday
InpTradeSundayfalseTrade on Sunday
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX02020.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX02020 AdvancedDonchianEA_copy — Advanced Donchian breakout with multi-indicator confirmation, full 12-layer stack."
#include <Trade/Trade.mqh>
#include <Trade/AccountInfo.mqh>
#include <Trade/SymbolInfo.mqh>

// --- Global Variables ---
CTrade        trade;           // Trade object for order execution
CAccountInfo  account;         // Account info object for balance, equity, etc.
CSymbolInfo   mySymbol;        // Symbol info object for spread, lot size, etc.

// EA State Variables
long          g_last_trade_bar_time = 0;      // Time of last trade (for min bars between trades)
int           g_consecutive_losses = 0;       // Counter for consecutive losing trades
datetime      g_pause_until_time = 0;         // Time until which trading is paused after loss streak
int           g_daily_trades_count = 0;       // Number of trades opened today
datetime      g_last_daily_trades_reset_time = 0; // Last reset time for daily trades count

//--- Hardening Globals
int      g_gmtOffset       = 3;
double   g_initialBalance  = 0.0;
double   g_realizedToday   = 0.0;
double   g_realizedWeek    = 0.0;
datetime g_dayStartTime    = 0;
datetime g_weekStartTime   = 0;

// --- Hardening: GMT Session Filter ---
input group "=== GMT Session Filter (Hardening) ===";
input bool    InpUseGMTSessions       = false;
input int     InpLondonStartGMT       = 7;
input int     InpLondonEndGMT         = 16;
input int     InpNewYorkStartGMT      = 12;
input int     InpNewYorkEndGMT        = 21;

// --- Hardening: Capital Protection ---
input group "=== Capital Protection (Hardening) ===";
// InpCapEnabled removed — use InpCapAmount=0 to disable
input double  InpCapAmount            = 0.0;      // Capital cap amount (0=disabled)
input double  InpCapFloor             = 1000.0;
input double  InpMinEquityPct         = 70.0;
input double  InpDailyLossLimitPct    = 5.0;

string g_cached_news_xml = "";
datetime g_last_news_fetch_time = 0;
int g_news_cache_minutes = 10; // Cache for 10 minutes

// --- Input Parameters ---

//--- Trade Settings
input group "=== Trade Settings ==="
input double InpLotSize = 0.01;                   // Fixed Lot Size (if LotSizingMethod is LOT_FIXED)
input ulong  InpMagicNumber = 22202020;             // Magic Number for orders (unique identifier for this EA)
input string InpTradeComment = "Psgrowth.com Expert_02020"; // Trade Comment
input int    InpMaxSlippage = 5;                  // Slippage in points (max allowed price deviation)
input int    InpMaxSpreadPoints = 10;             // Maximum allowed spread in points (0 for no check)
input bool   InpOneTradeOnly = true;              // Allow only one trade at a time (per symbol for this EA)
input int    InpMaxOpenTrades = 1;                // Maximum allowed open trades at the same time

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

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

الوسوم:ex02020breakoutpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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