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

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

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

Pipsgrowth EX02019 Breakout — Universal Donchian channel breakout EA for XAUUSD M5 with multi-indicator confirmation, comprehensive money management, . إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX02019 Breakout هو مستشار آلي لاختراق قناة Donchian موجه لتداول XAUUSD على الإطار الزمني M5، مبني حول محرك Donchian بأربعة أوضاع ونظام تصويت مؤشرات خماسي. بدلاً من الالتزام بنمط اختراق واحد جامد، يتيح EA للمتداول اختيار الاستراتيجية عبر InpDonchianStrategy الذي يحتوي على أربعة خيارات: DONCHIAN_BREAKOUT (الافتراضي — تفعيل الأمر فور تجاوز سعر Ask الحي لأعلى قمة في 20 شمعة، أو تجاوز الإغلاق السابق لأدنى قاع في 20 شمعة)، وDONCHIAN_RETEST (تسجيل الاختراق على الشمعة السابقة ثم إعادة الدخول عند الارتداد إلى المستوى المكسور ضمن تسامح 5 نقاط)، وDONCHIAN_MIDLINE (التداول على اختراق خط المنتصف للقناة الممتدة 20 شمعة)، وDONCHIAN_HYBRID (اشتراط موافقة أربعة من خمسة مؤشرات على الأقل مع تحقق شرط الاختراق أو الاختبار). يتم حساب أعلى وأدنى ووسط القناة مباشرة من iHighest/iLowest على مدى InpDonchianPeriod = 20 شمعة مع إزاحة InpDonchianShift = 1 لضمان استخدام شموع مغلقة دائماً.

منطق الإشارة يوجد داخل GetEntrySignal(). في كل تيكتسحب EA لقطة من الشمعة المغلقة (shift = 1) وتخزن قيم جميع مؤشرات التأكيد الخمسة في متغيرات ثابتة، مما يبقي تكلفة المعالجة مستقرة بصرف النظر عن عدد المؤشرات المفعّلة. الأصوات الخمسة هي: اتجاه ATR(14) (صاعد = صوت شراء، هابط = صوت بيع)، وخط MACD الرئيسي مقابل خط الإشارة بإعدادات 12/26/9، وADX(14) فوق InpADXMin = 20 مع هيمنة +DI على -DI، وموقع Bollinger Band (إغلاق فوق الحد العلوي = شراء، إغلاق تحت الحد السفلي = بيع) على 20 شمعة بانحراف 2.0، وRSI(14) فوق أو تحت خط 50. كل مؤشر يتفق مع الاتجاه يضيف نقطة إلى buyConfirm أو sellConfirm، ولا تنطلق الصفقة إلا إذا وصل العدد إلى InpDonchianConfirmations = 3 أو تجاوزه. مع الإعدادات الافتراضية — جميع المؤشرات الخمسة مفعّلة والعتبة 3 — يطلب EA موافقة ثلاثة من خمسة على الأقل قبل اعتبار اختراق Donchian صالحاً. توجد بوابة سادسة اختيارية هي فلتر المتوسط المتحرك (InpMAFilter): قيمة واحدة من MA_NONE (الافتراضي — تُتخطى البوابة)، أو MA_EMA، أو MA_TEMA (محسوبة داخلياً كـ 3*EMA1 − 3*EMA2 + EMA3 دون الحاجة إلى handle إضافي)، أو MA_HAMA (LWMA)، أو MA_GAUSSIAN (SMMA). مع أي إعداد غير NONE يجب أن يكون الإغلاق على الجانب الصحيح من المتوسط.

تمر أوامر التداول عبر OpenTradeWithSignal() ثم OpenMarketOrder(). يستدعي EA OrderCalcMargin أولاً للتحقق من الهامش الحر، ويتحقق من أن SL وTP لا يقلان عن StopsLevel + InpMaxSlippage + 1 نقطة بعيداً عن السعر المطلوب (ويتمددهما للخارج إذا كانا داخل منطقة تجميد الوسيط)، ثم يقدم صفقة CTrade بما يصل إلى ثلاث محاولات بفاصل 200 مللي ثانية عند TRADE_RETCODE_REQUOTE / TIMEOUT / PRICE_OFF / PRICE_CHANGED. يُقرأ وضع التعبئة من الرمز عبر SymbolInfoInteger(_Symbol, SYMBOL_FILLING_MODE)، والرقم السحري ثابت عند InpMagicNumber = 22202019. إذا كان InpAllowOnlyProfitableAdditions مفعّلاً (افتراضياً) يرفض EA إضافة مركز في نفس الاتجاه ما لم تكن جميع مراكز EA الحالية في ذلك الاتجاه في ربح صافٍ لا يقل عن InpMinProfitPerTradeToAdd = 5.0 نقطة لكل لوت — فلتر مضاد لمارتينغال عمداً. يتيح InpOrderType للمتداول قفل EA على الشراء فقط، أو البيع فقط، أو كلاهما (افتراضياً كلاهما).

حساب الوقف والهدف يتكون من cascade من مستويين. تستدعي CalculateStopLossPrice() أولاً GetIndicatorStopLoss() (دالة stub تعيد 0 ما لم يطبقها المتداول)، ثم إذا أعادت 0 تلجأ إلى وقف ثابت قدره InpHardSL_Points = 50 نقطة عند تفعيل InpUseHardSL. وقف قائم على ATR مع InpATR_SL_Period = 14 وInpATR_SL_Multiplier = 2.0 متاح كمدخل لكنه غير مدمج في cascade افتراضياً — هو نقطة ربط لتمديد المتداول. تتبع CalculateTakeProfitPrice() النمط ذاته: تجرب GetIndicatorTakeProfit() أولاً، ثم تلجأ إلى InpFixedTP_Points = 100 نقطة. مدخلات InpUseTrailingStop وInpMoveSLToBreakEven وInpUseTimeBasedSL وInpUseProfitLock موجودة وقابلة للتكوين، لكن جسم ManagePosition() في هذا البناء يقرأ فقط سعر دخول المركز — توصيل التريلينج/التعادل/قفل الربح متروك كخطوة تنفيذ للمتداول. تُحترم المخارج الزمنية عبر InpTimeBasedSLMinutes = 120 وعبر مسارات إغلاق نهاية الجلسة ونهاية اليوم (افتراضياً 23:50 بتوقيت الخادم) في HandleSessionAndEndOfDayClosures().

مكافحة التحكم في الجلسات لها نظامان متوازيان. الأول: InpEnableSessionControl = false افتراضياً مع ما يصل إلى ثلاث نوافذ بتوقيت الخادم تُعرّف عبر InpSession1Start/End (افتراضياً 08:00–16:00)، وInpSession2Start/End (افتراضياً 18:00–22:00)، وInpSession3Start/End. عند التفعيل يوقف EA الأوامر الجديدة قبل إغلاق النافذة بـ InpPauseMinutesBeforeEndOfSession = 30 دقيقة، ويمكنه إغلاق كل شيء قسراً قبل الإغلاق بـ InpForceCloseMinutesBeforeSessionEnd = 5 دقائق، ويمكنه تصفية الكتاب عند InpEndOfDayCloseTime. الثاني هو طبقة التعزيز: InpUseGMTSessions = false افتراضياً، حيث يُحوَّل توقيت الخادم إلى GMT عبر DetectGMTOffset_EX02019() (heuristic لأفضل قيمة بين -12 و+12 يقيم مصداقية يوم الأسبوع والساعة) ثم يُختبر ضد InpLondonStartGMT = 7 إلى InpLondonEndGMT = 16 وInpNewYorkStartGMT = 12 إلى InpNewYorkEndGMT = 21. يمكن تفعيل الطبقتين معاً؛ يجب على أي أمر اجتياز كليهما.

تدير المخاطر على طبقتين. حارس التراجع الكلاسيكي: InpMaxDrawdownPercent = 20.0 (أو InpMaxDrawdownAmount بعملة الحساب) يتم فحصه في IsDrawdownLimitOk() على كل تيكتسحب — عندما يصل التراجع المباشر من الرصيد إلى السقف، لا تنطلق أوامر جديدة. حارس رأس المال المعزز: مع InpCapAmount > 0 يعامل EA قيمة min(InpCapAmount, equity) كرأس مال فعلي ويرفض التداول إذا انخفض ذلك دون InpCapFloor = 1000. يمنع InpMinEquityPct = 70.0 الأوامر إذا انخفضت equity إلى أقل من 70% من الرصيد الأولي المسجل في OnInit. يقارن InpDailyLossLimitPct = 5.0 الربح/الخسارة المحقق المتتبع في OnTradeTransaction() مع 5% من الرصيد الأولي ويجمد الأوامر لبقية اليوم عند تجاوز العتبة. يعالج نفس المعالج OnTradeTransaction زيادة g_consecutive_losses عند كل صفقة خاسرة؛ عند الوصول إلى InpMaxConsecutiveLosingTrades = 3 يُضبط g_pause_until_time على الآن + 60 دقيقة وتحجب CanOpenNewTrade() جميع الأوامر الجديدة حتى انتهاء الإيقاف. التحكم في أيام العمل افتراضياً من الاثنين إلى الجمعة عبر InpTradingDays = TRADING_DAYS_MON_TO_FRI، مع سبعة مفاتيح يومية لخيار TRADING_DAYS_CUSTOM.

حجم اللوت يتبع الزوج المستخدم في بقية العائلة. InpLotSizingMethod = LOT_FIXED مع InpLotSize = 0.01 هو الافتراضي؛ وضع LOT_AUTO_SCALED يحسب الحجم بناءً على رصيد أو equity الحساب (حسب InpAutoLotBaseType، افتراضياً equity) باستخدام نسبة InpAutoLot_Increment / InpAutoLot_CapitalPerIncrement = 0.01 / 1000، مقيداً بـ InpAutoLot_MinAllowedLot = 0.01 وInpAutoLot_MaxAllowedLot = 10.0، ثم يُقرَّب إلى LotsStep للوسيط ويُحد بـ LotsMin / LotsMax. يحافظ InpMaxOpenTrades = 1 وInpOneTradeOnly = true على ملف تعريف افتراضي لمركز واحد في الوقت، مع InpMinBarsBetweenTrades = 1 كقاعدة تباعد وInpMaxTradesPerDay = 5 كسقف يومي.

فلتر الأخبار معطل افتراضياً (InpAvoidTradingDuringNews = false). عند التفعيل تسحب IsForexFactoryNewsEventActive() ملف XML الأسبوعي من https://nfs.faireconomy.media/ff_calendar_thisweek.xml عبر WebRequest (مع مهلة 5000 مللي ثانية)، وتخزن الاستجابة لمدة g_news_cache_minutes = 10، وتحللها عبر ParseFFNews()، ثم تطابق عملة كل حدث مع عملتي الرمز الأساسيتين والعرضيتين (أو ALL). للأحداث المؤثرة على الدولار يحجب EA الأوامر ضمن InpNewsBufferMinutes = 30 دقيقة قبل وبعد الإصدار. فلتر الأثر افتراضياً يقتصر على العالي (InpAvoidTradingDuringHighImpactNews = true)؛ يمكن إضافة المتوسط والمنخفض فردياً. يتيح InpNewsTimeZoneOffsetHours للمتداولين الذين يستخدمون تقويماً غير UTC تعويض الفارق.

معيار المُحَسِّن المخصص في OnTester() هو (profit * profitFactor) / maxDD مع تثبيت profitFactor على 1.0 إذا كان غير موجب أو تجاوز 1000، وmaxDD على 1.0 إذا كان غير موجب، وبوابة صلبة تعيد 0 إذا أُجريت أقل من 10 صفقات. تعرض JSON الخاص بـ parameters كل مدخل تماماً كما يعرضه EA (المجموعة، النوع، الافتراضي، التعليق)، فما تراه في الجدول هو ما يُترجم. مع riskLevel = MEDIUM وminDeposit = 100 في القائمة، فإن النشر المقصود هو حساب حي صغير على وسيط ECN منخفض الفروقات لـ XAUUSD، مع توقع اختبار المتداول لأوضاع Donchian الأربعة وفلاتر المتوسط المتحركة الخمسة كلٍّ على حدة قبل تخصيص رأس المال — هي فعلاً أربع استراتيجيات مختلفة تشترك في غلاف معاملات واحد.

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

يقرأ Pipsgrowth EX02019 الشمعة المغلقة السابقة M5 مرة واحدة لكل تيكتسحب عبر GetEntrySignal() ويخزن مؤشرات التأكيد الخمسة في متغيرات ثابتة لإبقاء تكلفة المعالجة مستقرة. تُبنى قناة Donchian من iHighest / iLowest على مدى 20 شمعة ببيانات مغلقة، ثم تُقيَّم تحت أي وضع من الأوضاع الأربعة التي يحددها InpDonchianStrategy — اختراق صارم، أو اختبار، أو اختراق خط المنتصف، أو هجين يحتاج أربعة تأكيدات. تُجري OpenMarketOrder() فحص هامش مسبق عبر OrderCalcMargin، وتتحقق من SL وTP مقابل StopsLevel للوسيط، ثم تقدم صفقة CTrade بما يصل إلى ثلاث محاولات بفاصل 200 مللي ثانية عند requote/timeout/price-changed/price-off. تعمل طبقة التعزيز بالتوازي: يجد DetectGMTOffset_EX02019() إزاحة GMT plausibile للوسيط، وتتحكم InActiveSession_EX02019() في الأوامر بناءً على اتحاد لندن 07–16 GMT ونيويورك 12–21 GMT، ويُحدِّث OnTradeTransaction() الربح/الخسارة المحقق بالإضافة إلى عداد الخسائر المتتالية الذي يُفعِّل الإيقاف 60 دقيقة.

إشارة الدخول

يُفعَّل أمر الشراء عندما يتجاوز سعر Ask الحي أعلى قمة Donchian لـ 20 شمعة (أو في وضع DONCHIAN_RETEST عندما كسر الإغلاق السابق القمة وعاد السعر إليها ضمن 5 نقاط)، AND يتفق 3 من 5 مؤشرات تأكيد على الأقل (ATR صاعد، MACD الرئيسي فوق الإشارة، ADX أكبر أو يساوي 20 مع +DI أكبر من -DI، الإغلاق فوق BB العلوي، RSI أكبر من 50). أمر البيع هو صورة معكوسة مقابل أدنى قاع لـ 20 شمعة. يمكن لفلتر المتوسط المتحرك الاختياري (EMA / TEMA / HAMA / Gaussian) اشتراط أن يكون الإغلاق على الجانب الصحيح من الفلتر قبل السماح بالأمر.

إشارة الخروج

يرتبط الخروج بجني الأرباح الثابت عند 100 نقطة افتراضياً، أو بجني الأرباح القائم على المؤشر إذا طبق المتداول GetIndicatorTakeProfit(). يُفعَّل الإغلاق القسري لنهاية الجلسة قبل إغلاق نافذة الجلسة بـ 5 دقائق عند التفعيل، ويُحترم التسطيح اليومي عند الساعة 23:50 بتوقيت الخادم إذا كان InpCloseAllTradesAtEndOfDay مفعّلاً. جسم ManagePosition() في هذا البناء هو stub — مدخلات وقف التريلينج والتعادل وقفل الربح والوقف الزمني موجودة في قائمة المعاملات لكنها غير مدمجة في حلقة الإدارة لكل تيكتسحب.

وقف الخسارة

وقف الخسارة الافتراضي هو 50 نقطة صلبة (InpHardSL_Points) على كل جانب من الدخول، أو 0 (بدون وقف) إذا كان InpUseHardSL معطلاً. يتوفر وقف قائم على ATR باستخدام ATR(14)*2.0 كـ InpATR_SL_Multiplier ويظهر عبر خطاف GetIndicatorStopLoss() لتمديد المتداول، لكن cascade يسقط إلى الوقف الصلب ما لم يُطبق الخطاف. حارس StopsLevel + MaxSlippage + 1 نقطة في OpenMarketOrder() يمدد الوقف للخارج إذا وقع داخل منطقة تجميد الوسيط.

جني الأرباح

جني الأرباح الافتراضي هو 100 نقطة ثابتة (InpFixedTP_Points)، مع 0 (بدون جني) إذا ضُبط المدخل على 0. خطاف GetIndicatorTakeProfit() متاح للمتداولين الذين يريدون خروجاً قائماً على القمة/القاع، لكنه غير مطبق في البناء الأساسي، لذا تستهدف جميع الصفقات الحية هدف 100 نقطة الثابت ما لم يُتجاوز هذا الخطاف.

الأنسب لـ

مصمم لحسابات 100 دولار+ لتداول XAUUSD على M5 عبر وسيط ECN/RAW منخفض الفروقات (تسامح الفروقات الافتراضي 0 يعني أن فلتر الفروقات معطل فعلياً وأي فروقات مسموحة — يُفضل على ECN حيث تكون الفروقات أقل من 30 نقطة باستمرار). الأفضل في تداخل جلستي لندن ونيويورك (12:00–16:00 GMT) حيث يميل XAUUSD إلى الاتجاه، مع تفعيل تعزيز جلسة GMT لإبقاء EA خارج النافذة الميتة 21:00–07:00 GMT. يُنصح به للمتداولين الذين يريدون اختبار الأوضاع الأربعة لـ Donchian (Breakout / Retest / Midline / Hybrid) وفلاتر المتوسط المتحركة الخمسة (None / EMA / TEMA / HAMA / Gaussian) جميعها على البيانات التاريخية قبل تخصيص رأس مال حي، لأنها فعلاً أربع استراتيجيات مختلفة في غلاف معاملات واحد. مستوى المخاطرة متوسط مع SL/TP الافتراضي 50/100 نقطة و 0.01 لوت.

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

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

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

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

المؤشرات:

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

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

  • StringToTime()
  • Log()
  • ParseFFDateTime()
  • ExtractTag()
  • ParseFFNews()
  • InitIndicators()
  • ReleaseIndicators()
  • InitializeTradeObjects()
  • ResetStateVariables()
  • ValidateInputParameters()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX02019 Breakout — Execution Flow (from source analysis)
// Family: Breakout
// Universal Donchian channel breakout EA for XAUUSD M5 with multi-indicator confirmation, comprehensive money management, session control, and smart exit timing. 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)
InpMagicNumber22202019Magic Number for orders (unique identifier for this EA)
InpTradeComment"Psgrowth.com Expert_02019"Trade Comment
InpMaxSlippage5Slippage in points (max allowed price deviation)
InpMaxSpreadPoints0Maximum 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
InpEnableDonchiantrueEnable Donchian Channel filter
InpDonchianPeriod20Donchian Channel period
InpDonchianShift1Donchian shift (bar offset)
InpEnableATRtrueEnable ATR filter
InpATRPeriod14ATR period
InpATRShift1ATR shift (bar offset)
InpATRMultiplier2.0ATR multiplier for filter/SL
InpATRFilterSensitivity0.1Sensitivity for ATR filter in Donchian confirmation
InpEnableMACDtrueEnable MACD filter
InpMACDFast12MACD fast EMA period
InpMACDSlow26MACD slow EMA period
InpMACDSignal9MACD signal period
InpMACDShift1MACD shift (bar offset)
InpEnableADXtrueEnable ADX filter
InpADXPeriod14ADX period
InpADXShift1ADX shift (bar offset)
InpADXMin20.0Minimum ADX for trend filter
InpEnableBBtrueEnable Bollinger Bands filter
InpBBPeriod20Bollinger Bands period
InpBBDeviation2.0Bollinger Bands deviation
InpBBShift1BB shift (bar offset)
InpEnableRSItrueEnable RSI filter
InpRSIPeriod14RSI period
InpRSIShift1RSI shift (bar offset)
InpRSIOverbought70.0RSI overbought
InpRSIOversold30.0RSI oversold
InpDonchianConfirmations3Minimum confirmations for Donchian breakout
InpDonchianStrategyDONCHIAN_BREAKOUTSelect Donchian logic
InpMAPeriod20+------------------------------------------------------------------+
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX02019.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX02019 Donchian_XAUUSD_5M — Donchian channel 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 = 22202019;             // Magic Number for orders (unique identifier for this EA)
input string InpTradeComment = "Psgrowth.com Expert_02019"; // Trade Comment
input int    InpMaxSlippage = 5;                  // Slippage in points (max allowed price deviation)
input int    InpMaxSpreadPoints = 0;             // 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

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

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

الوسوم:ex02019breakoutpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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