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()
// 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)ملف التحسين
كيفية تثبيت الإكسبرت على 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpNewYorkEndGMT | 21 | --- Hardening: Capital Protection --- |
| InpCapAmount | 0.0 | Capital cap amount (0=disabled) |
| InpLotSize | 0.01 | Fixed Lot Size (if LotSizingMethod is LOT_FIXED) |
| InpMagicNumber | 22202019 | Magic Number for orders (unique identifier for this EA) |
| InpTradeComment | "Psgrowth.com Expert_02019" | Trade Comment |
| InpMaxSlippage | 5 | Slippage in points (max allowed price deviation) |
| InpMaxSpreadPoints | 0 | Maximum allowed spread in points (0 for no check) |
| InpOneTradeOnly | true | Allow only one trade at a time (per symbol for this EA) |
| InpMaxOpenTrades | 1 | Maximum allowed open trades at the same time |
| InpAllowOnlyProfitableAdditions | true | Only open new trades if all existing (by this EA) are in profit |
| InpMinProfitPerTradeToAdd | 5.0 | Min. profit in points for each existing trade to open new one |
| InpMaxDrawdownPercent | 20.0 | Max drawdown % allowed (0 to disable) |
| InpMaxDrawdownAmount | 0.0 | Max drawdown amount in account currency (0 to disable) |
| InpMaxTradesPerDay | 5 | Max trades per day (0 for unlimited) |
| InpMinBarsBetweenTrades | 1 | Min bars between opening new trades |
| InpMaxConsecutiveLosingTrades | 3 | Pause trading after this many consecutive losses (0 to disable) |
| InpPauseMinutesAfterLosingStreak | 60 | Minutes to pause after reaching losing streak |
| InpAvoidTradingDuringNews | false | Avoid trading during news events |
| InpNewsBufferMinutes | 30 | Minutes before and after news to avoid trading |
| InpAvoidTradingDuringHighImpactNews | true | Avoid high impact news |
| InpAvoidTradingDuringMediumImpactNews | false | Avoid medium impact news |
| InpAvoidTradingDuringLowImpactNews | false | Avoid low impact news |
| InpNewsTimeZoneOffsetHours | 0 | Offset in hours from UTC (e.g., 2 for UTC+2, -5 for UTC-5) |
| InpNewsSource | NEWS_SOURCE_FOREX_FACTORY | News source for news filtering |
| InpLotSizingMethod | LOT_FIXED | Lot Sizing Method |
| InpAutoLotBaseType | BASE_ACCOUNT_EQUITY | Capital base for auto lot calculation |
| InpAutoLot_Increment | 0.01 | Lot size to add (e.g., 0.01) |
| InpAutoLot_CapitalPerIncrement | 1000 | For every X amount of capital |
| InpAutoLot_MaxAllowedLot | 10.0 | Maximum lot size allowed by auto calculation |
| InpAutoLot_MinAllowedLot | 0.01 | Minimum lot size allowed by auto calculation |
| InpOrderType | ORDER_TYPE_BUY_SELL | Order type |
| InpUseHardSL | true | Enable Hard Stop Loss |
| InpHardSL_Points | 50 | Fixed Stop Loss in points (0 to disable) |
| InpUseTrailingStop | true | Enable Trailing Stop |
| InpTrailingStop_Points | 20 | Trailing Stop activation in points of profit |
| InpTrailingStep_Points | 5 | Trailing Stop step in points |
| InpUseATRStop | false | Use ATR-based stop loss (Placeholder for indicator logic) |
| InpATR_SL_Period | 14 | ATR period for SL calculation |
| InpATR_SL_Multiplier | 2.0 | ATR multiplier for SL |
| InpMoveSLToBreakEven | true | Move SL to breakeven after X points |
| InpBreakEvenTriggerPoints | 30 | Points in profit to trigger breakeven move |
| InpBreakEvenLockPoints | 2 | Lock X points profit at breakeven (e.g., entry + 2 points) |
| InpUseTimeBasedSL | false | Close trade after X minutes |
| InpTimeBasedSLMinutes | 120 | Minutes before time-based SL triggers |
| InpFixedTP_Points | 100 | Fixed Take Profit in points (0 to disable) |
| InpUseProfitLock | false | Enable dynamic profit locking |
| InpProfitLockTriggerPoints | 50 | Start locking profit after this many points in profit |
| InpProfitLockStepPoints | 20 | Move SL every X points further in profit (after trigger) |
| InpProfitLockSecurePoints | 10 | How many points behind current price to lock (e.g., if price moves 20, SL moves to current - 10) |
| InpProfitLockOnlyAfterBE | true | Only start profit lock after breakeven is reached |
| InpEnableSessionControl | false | Enable sessions control |
| InpEnableSession1 | true | Enable session 1 |
| InpSession1Start | "08:00" | Session 1 start time (HH:MM server time) |
| InpSession1End | "16:00" | Session 1 end time (HH:MM server time) |
| InpEnableSession2 | false | Enable session 2 |
| InpSession2Start | "18:00" | Session 2 start time (HH:MM server time) |
| InpSession2End | "22:00" | Session 2 end time (HH:MM server time) |
| InpEnableSession3 | false | Enable session 3 |
| InpSession3Start | "00:00" | Session 3 start time (HH:MM server time) |
| InpSession3End | "00:00" | Session 3 end time (HH:MM server time) |
| InpPauseBeforeEndOfSession | true | Stop opening new trades before end of active session |
| InpPauseMinutesBeforeEndOfSession | 30 | Minutes before end of session to pause new trades |
| InpForceCloseAllTradesAtSessionEnd | false | Force close all trades at the end of an active session |
| InpForceCloseMinutesBeforeSessionEnd | 5 | Minutes before session end to force close |
| InpCloseAllTradesAtEndOfDay | false | Close all trades at specific EOD time |
| InpEndOfDayCloseTime | "23:50" | EOD time to close all trades (HH:MM server time) |
| InpEnableSmartExitManagement | false | Enable Smart Exit Management (currently simplified) |
| InpSmartExitStartMinutesBeforeSessionEnd | 60 | When to start "smartly" managing (e.g., no new trades, check for early profitable close) |
| InpEnableAlerts | true | Enable Terminal Alerts for important events |
| InpEnableEmailNotify | false | Enable Email Notifications |
| InpEnablePushNotify | false | Enable Push Notifications |
| InpLogTradeEvents | true | Log trade open/close/modify events |
| InpLogTickEvents | false | Log detailed tick processing (for debugging, can be verbose) |
| InpTradingDays | TRADING_DAYS_MON_TO_FRI | Days to allow trading |
| InpTradeMonday | true | Trade on Monday |
| InpTradeTuesday | true | Trade on Tuesday |
| InpTradeWednesday | true | Trade on Wednesday |
| InpTradeThursday | true | Trade on Thursday |
| InpTradeFriday | true | Trade on Friday |
| InpTradeSaturday | false | Trade on Saturday |
| InpTradeSunday | false | Trade on Sunday |
| InpEnableDonchian | true | Enable Donchian Channel filter |
| InpDonchianPeriod | 20 | Donchian Channel period |
| InpDonchianShift | 1 | Donchian shift (bar offset) |
| InpEnableATR | true | Enable ATR filter |
| InpATRPeriod | 14 | ATR period |
| InpATRShift | 1 | ATR shift (bar offset) |
| InpATRMultiplier | 2.0 | ATR multiplier for filter/SL |
| InpATRFilterSensitivity | 0.1 | Sensitivity for ATR filter in Donchian confirmation |
| InpEnableMACD | true | Enable MACD filter |
| InpMACDFast | 12 | MACD fast EMA period |
| InpMACDSlow | 26 | MACD slow EMA period |
| InpMACDSignal | 9 | MACD signal period |
| InpMACDShift | 1 | MACD shift (bar offset) |
| InpEnableADX | true | Enable ADX filter |
| InpADXPeriod | 14 | ADX period |
| InpADXShift | 1 | ADX shift (bar offset) |
| InpADXMin | 20.0 | Minimum ADX for trend filter |
| InpEnableBB | true | Enable Bollinger Bands filter |
| InpBBPeriod | 20 | Bollinger Bands period |
| InpBBDeviation | 2.0 | Bollinger Bands deviation |
| InpBBShift | 1 | BB shift (bar offset) |
| InpEnableRSI | true | Enable RSI filter |
| InpRSIPeriod | 14 | RSI period |
| InpRSIShift | 1 | RSI shift (bar offset) |
| InpRSIOverbought | 70.0 | RSI overbought |
| InpRSIOversold | 30.0 | RSI oversold |
| InpDonchianConfirmations | 3 | Minimum confirmations for Donchian breakout |
| InpDonchianStrategy | DONCHIAN_BREAKOUT | Select Donchian logic |
| InpMAPeriod | 20 | +------------------------------------------------------------------+ |
#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
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.