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

Pipsgrowth EX17016 Volatility — إكسبرت أدفايزر تقلب

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

Pipsgrowth EX17016 Volatility — Universal EA template with Donchian Channel breakout entry, comprehensive trade management including profit locking, tra. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

EX17016 هي قالب EA شامل يجمع بين دخول اختراق قناة دونشيان مع كومة إدارة صفقات من 12 طبقة، مصممة ليعمل عبر أزواج العملات الرئيسية والمعادن. يُعلِّق ملف المصدر على رأسه «GB_1_4» (إصدار عام 1.4) ويصف الـ EA كأول إصدار في سلسلة قوالب تداول عامة ذات معاملات قابلة للضبط، لا كاستراتيجية تستهدف بنية سوق محددة. كل طبقة تحت إشارة الدخول — قبعات المخاطر، إدارة المراكز، معالجات الخروج، مرشحات الجلسات، إغلاق نهاية اليوم، التنبيهات، منطق إعادة المحاولة — منفَّذة جاهزة للاستخدام، مع ترك عدة خطافات معتمدة على المؤشرات كعناصر نائبة يمكن للمستخدم توسيعها.

تعيش الإشارة نفسها داخل GetEntrySignal(). يحسب الـ EA الحدين العلوي والسفلي للقناة بمسح عدد InpDonchianPeriod من الشموع (افتراضياً 10) ابتداءً من شمعة InpDonchianShift إلى الخلف (افتراضياً 1، أي باستثناء الشمعة قيد التشكيل). تنطلق إشارة الشراء عندما يُغلق السعر الحالي فوق الحد العلوي، وبعد أن كان إغلاق الشمعتين السابقتين عند الحد أو تحته، وعند استيفاء فلتر InpRequireStrongCandle الاختياري — وهو ما يحدث حين يغطي جسم الشمعة الحالية 60% على الأقل من المدى الكامل بين الأعلى والأدنى. إشارة البيع تعكس المنطق في الاتجاه المعاكس. يوسِّع InpDonchianOffsetPips (افتراضياً 1 نقطة) عتبة الاختراق قليلاً بحيث يجب أن يتجاوز السعر الحد بهامش معين، مما يكبت الاختراقات الهامشية. إن إزاحة 1 هي الاتفاقية المعتمدة: تُبنى القناة من شموع مكتملة فقط، لذا يعتمد المحفز على إغلاق حقيقي يتجاوز قمة أو قاعاً حقيقيين، وليس وخزة داخل الشمعة.

تُدار الصفقات من ManageOpenPositions() عند كل تكة. تمر الدالة على قائمة المراكز المفتوحة، وتُصفِّي حسب الرقم السحري والرمز، وتربط ست وظائف فرعية بترتيب ثابت: ApplyHardSL_TP_IfNotSet، ApplyTrailingStop، ApplyBreakEven، ApplyProfitLock، CheckTimeBasedSL، وGetExitSignal. وقف الخسارة الصلب افتراضياً 4000 نقطة دون (أو فوق) نقطة الدخول ويُعد شبكة الأمان الأساسية. جني الأرباح الثابت مضبوط على 100000 نقطة افتراضياً — معطَّل فعلياً ويُبقي الصفقة ليغلقها كومة الإدارة أو خطافات المؤشر. يبقى وقف الخسارة المتابع ووقف ATR ونقل التعادل والإغلاق المعتمد على الوقت مطفأة افتراضياً، تاركةً للمستخدم خيار تفعيلها؛ لكل منها سقالة مدخلات جاهزة للتوصيل.

سلسلة قفل الأرباح هي القطعة الأكثر تمييزاً في طبقة الإدارة. بمجرد أن يقطع السعر InpProfitLockTriggerPoints (افتراضياً 1000 نقطة) لصالح الصفقة، تبدأ ApplyProfitLock بنقل وقف الخسارة إلى current_price - InpProfitLockSecurePoints (افتراضياً 500 نقطة خلف السعر). لا يُحرَّك وقف الخسارة إلا إلى الأمام بزيادات لا تقل عن InpProfitLockStepPoints (افتراضياً 500 نقطة)، وعندما يكون InpProfitLockOnlyAfterBE صحيحاً (افتراضياً) ينتظر القفل حتى ينطلق محفز التعادل أولاً. النتيجة وقف خسارة متابع مكتوب يدوياً على درجات، يؤمّن الأرباح المفتوحة في طبقات منفصلة دون تجانس — تُحمل الصفقة المفتوحة حتى ينعكس السعر بمسافة التأمين، ثم يُغلقها وقف الخسارة الأصلي.

تنقسم قبعات المخاطر إلى ثلاث طبقات. تحظر IsDrawdownLimitOk فتح صفقات جديدة عندما يتجاوز تراجع الأسهم نسبة InpMaxDrawdownPercent (افتراضياً 20%) من الرصيد أو عندما تتجاوز الخسارة المطلقة بالعملة المحلية InpMaxDrawdownAmount. تفرض CanOpenNewTrade سقفاً للمراكز المتزامنة (InpMaxOpenTrades، افتراضياً 10) وسقفاً يومياً (InpMaxTradesPerDay، افتراضياً 5) وترفض فتح صفقة جديدة إذا لم تكن المراكز القائمة في نفس الاتجاه قد ضمنت InpMinProfitPerTradeToAdd (افتراضياً 1600 نقطة) من الأرباح. تتغذى UpdateConsecutiveLossesAndPause من معاملات الصفقات وتجمِّد الـ EA لمدة InpPauseMinutesAfterLosingStreak (افتراضياً 60 دقيقة) بعد InpMaxConsecutiveLosingTrades (افتراضياً 3) خسائر متتالية. تعمل هذه الطبقات معاً كحلقة تهدئة تمنع التداول الانتقامي أثناء سلاسل الخسارة.

تسعير اللوت ثنائي الوضع. وضع LOT_FIXED الافتراضي يستخدم لوت المدخل (0.01) مباشرة. يحسب وضع LOT_AUTO_SCALED قيمة floor(رأس المال / InpAutoLot_CapitalPerIncrement) × InpAutoLot_Increment، حيث أساس رأس المال هو إما رصيد الحساب أو حقوقه تبعاً لـ InpAutoLotBaseType. تعطي الإعدادات الافتراضية (0.01 لوت لكل 1000 وحدة نقدية، أدنى 0.01، أقصى 10) تعرضاً يقارب 0.1% لكل وحدة على حساب 10 آلاف دولار، وهو ما يناسب نقاط الوقف الأوسع للـ EA لكنه قابل للضبط بسهولة لمحات مخاطر أضيق أو أوسع.

التحكم بالجلسات اختياري. مع إطفاء InpEnableSessionControl (افتراضياً)، يعمل التداول على مدار الساعة خاضعاً فقط لبقية بوابات الـ EA. عند التفعيل، يتحقق الـ EA من الوقت الحالي مقابل ثلاث نوافذ قابلة للضبط ويوقف الفتحات الجديدة قبل InpPauseMinutesBeforeEndOfSession (افتراضياً 30) دقيقة من نهاية الجلسة النشطة. يُفعِّل InpForceCloseAllTradesAtSessionEnd إغلاقاً جماعياً قبل InpForceCloseMinutesBeforeSessionEnd دقيقة من النهاية، ويفعل InpCloseAllTradesAtEndOfDay نفس الشيء عند InpEndOfDayCloseTime (افتراضياً 23:50 بتوقيت الخادم). مؤقت «الخروج الذكي»، المطفأ افتراضياً أيضاً، يوسِّع نافذة الإيقاف نفسها أبكر (InpSmartExitStartMinutesBeforeSessionEnd افتراضياً 60) للإعدادات التي تريد تبريداً أوسع قبل الإغلاق.

تأتي طبقة تنفيذ الأوامر مع دالة OpenMarketOrder متينة. تفرض وضع ORDER_FILLING_IOC (حل بديل مبرمج لوسطاء بنمط ICMarkets الذين يرفضون ORDER_FILLING_FOK الافتراضي على رموز معينة)، وتُبعد وقف الخسارة وجني الأرباح عن السعر بمقدار StopsLevel للرمز زائد مدخل الانزلاق، وترفض إرسال أوامر بقيم وقف خسارة أو جني أرباح أقل من 10.0 (حاجز ضد خلل الفاصلة العائمة)، وتُسجِّل كل محاولة. يُعيد كل من المساعدين التنفيذيين الثلاثة — TryClose_EX17016 وTryClosePartial_EX17016 وTryModify_EX17016 — محاولة ما يصل إلى ثلاث مرات على رموز requote وtimeout وprice-off وprice-changed، مع نوم 200 ميلي ثانية بين محاولات الإغلاق و100 ميلي ثانية بين محاولات التعديل. لاحقة التسمية _EX17016 هي طريقة الـ EA في تجنب التصادمات حين تتشارك EAs أخرى في نفس الطرفية مساعدي التنفيذ العموميين.

تجعل ثلاث سقالات دوال في النصف السفلي من الملف القالب قابلاً للتوسعة. ترجع GetExitSignal وGetIndicatorStopLoss وGetIndicatorTakeProfit جميعها قيم نائبة (false، 0.0، 0.0) وتُستدعى صراحةً من سلسلة الإدارة. القصد أن يضع مستخدم نهائي أو إصدار مستقبلي منطق المؤشر في تلك الخطافات ليتجاوز إعدادات SL/TP الصلبة بمحاور ATR أو مستويات بنية السوق أو أي مخرج مخصص آخر. الـ 12 طبقة في وصف الرأس — REGIME وSIGNAL وENTRY وCONFIRM وNO-TRADE وCAPITAL CAP وRISK وSIZING وMANAGE وEXIT وSCALING وOnTester — هي الفتحات المفاهيمية التي تملأها هذه الخطافات. تُترك طبقتا الخروج والتدرج فارغتين عمداً بحيث يمكن إضافة كومة مؤشرات مستقبلية دون إعادة هندسة سلسلة الإدارة.

تُكمل التنبيهات والتسجيل القالب. تكتب دالة Log إلى الطرفية كلما كان InpLogTradeEvents مفعَّلاً (افتراضياً) وتُصدر Alert للأخطاء؛ تُدار قنوات البريد الإلكتروني والدفع عبر InpEnableEmailNotify وInpEnablePushNotify لكن يبقى النقل الفعلي كـ TODO داخل Log. يتيح InpLogTickEvents للمستخدم تفعيل مخرجات التكات المفصلة للتصحيح، على حساب زيادة أسية في حجم السجل.

الشخصية المتوقعة لاختبار الـ EA على نطاق M5H1 الافتراضي هي اختراق متوسط التردد: فلتر التأكيد ببارتين مع هامش 1 نقطة ينتج حفنة صغيرة من الإشارات يومياً لكل رمز، مع وقف افتراضي واسع عند 4000 نقطة. سلَّم قفل الأرباح ونقل التعادل مطفآن افتراضياً، لذا الناتج الخام دون ضبط هو «اختراق بوقف واسع مع مخرجات نادرة» — صفقات طويلة ممدودة تُغلق إما عند الوقف الصلب أو عند درجة من سلَّم قفل الأرباح بعد حركة كبيرة. ضبط فترة الدخول والإزاحة ودرجة قفل الأرباح معاً هو سطح التحسين الرئيسي.

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

تُنفِّذ OnTick عند كل تكة، وتتحقق أولاً من إذن التداول العام في الطرفية، وتُحدِّث الرمز، وتقيِّم نوافذ الجلسة ونهاية اليوم، وتُطبِّق إغلاق نهاية الجلسة ونهاية اليوم القسري قبل لمس حلقة المراكز. تمر ManageOpenPositions بعد ذلك على تذاكر المراكز المفتوحة بالرقم السحري والرمز، وتربط تطبيق وقف الخسارة الصلب ووقف الخسارة المتابع ونقل التعادل وقفل الأرباح والإغلاق المعتمد على الوقت وخطافة خروج المؤشر بهذا الترتيب على كل تذكرة. يأخذ محرك الإشارة في GetEntrySignal عينة من شموع InpDonchianPeriod السابقة عبر iHighest وiLowest، ويُطبِّق الإزاحة الاختيارية 1 نقطة، ويتحقق من تأكيد الشمعتين مع فلتر الشمعة القوية قبل السماح بدخول جديد. تُعيد سقالة المحاولة الثلاثية في TryClose_EX17016 وTryClosePartial_EX17016 وTryModify_EX17016 المحاولة على رموز requote وtimeout وprice-changed، وتنام 200 ميلي ثانية بين محاولات الإغلاق و100 ميلي ثانية بين محاولات التعديل. ترجع العناصر النائبة الثلاثة — GetExitSignal وGetIndicatorStopLoss وGetIndicatorTakeProfit — قيم صفرية وتُستدعى صراحةً من سلسلة الإدارة بحيث يمكن إضافة كومة مؤشرات دون إعادة هندسة طبقات الدخول أو المخاطر.

إشارة الدخول

تُبنى إشارة دخول قناة دونشيان من InpDonchianPeriod (افتراضياً 10) شموع سابقة، مع إزاحة InpDonchianShift (افتراضياً 1) لتجاوز الشمعة قيد التشكيل. تنطلق إشارة الشراء عندما يُغلق السعر الحالي فوق الحد العلوي بعد أن كان إغلاق الشمعتين السابقتين عند الحد أو تحته، مع اشتراط فلتر الشمعة القوية لجسم يغطي 60% من المدى. تعكس إشارة البيع المنطق في الاتجاه المعاكس. يوسِّع InpDonchianOffsetPips (افتراضياً 1 نقطة) عتبة الاختراق لكبت الوخزات الهامشية.

إشارة الخروج

تعتمد المخارج افتراضياً على وقف الخسارة الصلب أو سلَّم قفل الأرباح: بمجرد أن يقطع السعر InpProfitLockTriggerPoints (1000 نقطة) لصالح الصفقة، ينتقل وقف الخسارة إلى current_price - InpProfitLockSecurePoints (500 نقطة خلف السعر)، ثم يتدرج بزيادات لا تقل عن InpProfitLockStepPoints (500 نقطة). ترجع المخارج المعتمدة على المؤشر عبر GetExitSignal قيمة false افتراضياً، تاركة الخطافة مفتوحة لمنطق مخصص. يمكن تفعيل وقف الخسارة المتابع ونقل التعادل والإغلاق المعتمد على الوقت (افتراضياً 120 دقيقة) لإضافة مسارات خروج إضافية.

وقف الخسارة

يقع وقف خسارة صلب بمقدار InpHardSL_Points (افتراضياً 4000 نقطة) تحت كل دخول، قابل للإيقاف اختيارياً حين يريد المستخدم ترك الصفقة لسلسلة قفل الأرباح أو لخطافات المؤشر. تنقل وحدة التعادل وقف الخسارة إلى entry + 2 نقاط بمجرد أن يقطع السعر InpBreakEvenTriggerPoints (افتراضياً 30 نقطة) لصالح الصفقة. يبقى وقف الخسارة المتابع ووقف ATR (فترة 14، مضاعف 2.0) مطفأين افتراضياً وقابلين للتفعيل كوقف ثانوي.

جني الأرباح

يُضبط جني الأرباح الثابت على 100000 نقطة افتراضياً — معطَّل فعلياً يتيح لسلسلة الإدارة معالجة الإغلاق. يتجاوز جني الأرباح المعتمد على المؤشر عبر GetIndicatorTakeProfit القيمة الثابتة عند ملء الخطافة. يوفر الإغلاق المعتمد على الوقت (افتراضياً 120 دقيقة) والإغلاق القسري عند نهاية الجلسة (مطفأ افتراضياً) مخارج إضافية من نمط جني الأرباح.

الأنسب لـ

يُحجَّم وقف الخسارة الافتراضي 4000 نقطة واللوت الثابت 0.01 لكل صفقة ودرجات قفل الأرباح الواسعة لحساب مايكرو برصيد 100 دولار يتداول زوج XAUUSD على إطار M5H1، حيث تمتص نقاط الوقف الأوسع تذبذب الذهب اليومي المعتاد دون فرط في الرافعة. ينتج اختراق دونشيان مع تأكيد شمعتين حفنة صغيرة من الإشارات يومياً لكل رمز، وهو ما يناسب المتداولين الذين يريدون تردداً متوسطاً للاختراقات لا استراتيجية سكالبينج. يناسب الإيقاف المؤقت بعد 3 خسائر وسقف تراجع 20% متداولاً تقديرياً يريد تبريداً قاسياً بعد سلسلة سيئة، بينما يدرج وضع اللوت التلقائي (0.01 لكل 1000 من رأس المال) بسلاسة حتى حساب 10 آلاف دولار. يتطلب الأمر وسيط ECN فروقات ضيقة مع معالجة موثوقة لـ requote لجعل طبقة التنفيذ ذات المحاولات الثلاث مفيدة.

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

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

العائلة: Volatility الماجيك: 22217016 الإصدار: 2.00

الوصف: Universal EA template with Donchian Channel breakout entry, comprehensive trade management including profit locking, trailing stops, session control, and smart exit. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • StringToTime()
  • Log()
  • IsTradingDayAllowed()
  • IsWithinTradingSession()
  • HandleSessionAndEndOfDayClosures()
  • CalculateLotSize()
  • IsDrawdownLimitOk()
  • CountOpenTradesByMagic()
  • CanOpenNewTrade()
  • ApplyHardSL_TP_IfNotSet()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX17016 Volatility — Execution Flow (from source analysis)
// Family: Volatility
// Universal EA template with Donchian Channel breakout entry, comprehensive trade management including profit locking, trailing stops, session control, and smart exit. 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
الأطر الزمنية المُحسّنة:
M5H1

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

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

المعاملالافتراضيالوصف
InpTradeComment"Psgrowth.com Expert_17016"Trade comment for orders
InpLotSize0.01Fixed Lot Size (if LotSizingMethod is LOT_FIXED)
InpMagicNumber22217016Magic Number for orders
InpMaxSlippage3Slippage in points
InpMaxSpreadPoints25Maximum allowed spread in points (0 for none)
InpOneTradeOnlyfalseAllow only one trade at a time (per symbol for this EA)
InpMaxOpenTrades10Maximum allowed open trades at the same time
InpAllowOnlyProfitableAdditionstrueOpen new trades only if all existing (by this EA) are in profit
InpMinProfitPerTradeToAdd1600Min. 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
InpRequireProfitLockForAdditionstrueRequire profit to be locked before adding new trades
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_Points4000Fixed Stop Loss in points (0 to disable)
InpUseTrailingStopfalseEnable Trailing Stop
InpTrailingStop_Points2000Trailing Stop activation in points of profit
InpTrailingStep_Points2000Trailing 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
InpMoveSLToBreakEvenfalseMove 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_Points100000Fixed Take Profit in points (0 to disable)
InpUseProfitLocktrueEnable dynamic profit locking
InpProfitLockTriggerPoints1000Start locking profit after this many points in profit
InpProfitLockStepPoints500Move SL every X points further in profit (after trigger)
InpProfitLockSecurePoints500How 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
InpEnableSession3falseEnable session 3
InpSession3End"00:00"Example: Not used
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)
InpUseTrendConfirmationDuringSmartExittruePlaceholder: To be used by GetExitSignal
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)
InpDonchianPeriod10Donchian Channel period
InpDonchianShift1Shift for Donchian calculation (1 = previous closed bar)
InpDonchianConfirmBars2Number of bars to confirm breakout
InpDonchianOffsetPips1.0Offset in pips for breakout buffer
InpRequireStrongCandletrueRequire strong candle for entry (body >= 60% of range)
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX17016.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX17016 GB_1_4 — Universal EA template with Donchian Channel breakout, full 12-layer stack."

// Include Trade class
#include <Trade/Trade.mqh>
#include <Trade/AccountInfo.mqh>
#include <Trade/SymbolInfo.mqh>

// --- Global Variables ---
CTrade        trade;
CAccountInfo  account;
CSymbolInfo   mySymbol;

// EA State Variables
long          g_last_trade_bar_time = 0;
int           g_consecutive_losses = 0;
datetime      g_pause_until_time = 0;
int           g_daily_trades_count = 0;
datetime      g_last_daily_trades_reset_time = 0;

// --- Input Parameters ---

//--- Trade Settings
input group "=== Trade Settings ==="
input string   InpTradeComment        = "Psgrowth.com Expert_17016";  // Trade comment for orders
input double InpLotSize = 0.01;                   // Fixed Lot Size (if LotSizingMethod is LOT_FIXED)
input ulong  InpMagicNumber = 22217016;              // Magic Number for orders
input int    InpMaxSlippage = 3;                  // Slippage in points
input int    InpMaxSpreadPoints = 25;             // Maximum allowed spread in points (0 for none)
input bool   InpOneTradeOnly = false;              // Allow only one trade at a time (per symbol for this EA)
input int    InpMaxOpenTrades = 10;                // Maximum allowed open trades at the same time
input bool   InpAllowOnlyProfitableAdditions = true; // Open new trades only if all existing (by this EA) are in profit
input double InpMinProfitPerTradeToAdd = 1600;     // Min. profit in points for each existing trade to open new one
input double InpMaxDrawdownPercent = 20.0;        // Max drawdown % allowed (0 to disable)
input double InpMaxDrawdownAmount = 0.0;          // Max drawdown amount in account currency (0 to disable)
input int    InpMaxTradesPerDay = 5;              // Max trades per day (0 for unlimited)
input int    InpMinBarsBetweenTrades = 1;         // Min bars between opening new trades
input int    InpMaxConsecutiveLosingTrades = 3;   // Pause trading after this many consecutive losses (0 to disable)
input int    InpPauseMinutesAfterLosingStreak = 60; // Minutes to pause after reaching losing streak
input bool   InpRequireProfitLockForAdditions = true;   // Require profit to be locked before adding new trades

// --- Money Management & Lot Sizing ---
input group "=== Money Management & Lot Sizing ==="
enum ENUM_LOT_SIZING_METHOD
  {
   LOT_FIXED,              // Use the 'LotSize' specified in "Trade Settings"
   LOT_AUTO_SCALED         // Automatically calculate lot size based on capital
  };
input ENUM_LOT_SIZING_METHOD InpLotSizingMethod = LOT_FIXED; // Lot Sizing Method

// --- Settings for LOT_AUTO_SCALED ---
enum ENUM_AUTO_LOT_BASE_TYPE
  {
   BASE_ACCOUNT_BALANCE,   // Calculate based on Account Balance
   BASE_ACCOUNT_EQUITY     // Calculate based on Account Equity
  };
input ENUM_AUTO_LOT_BASE_TYPE InpAutoLotBaseType = BASE_ACCOUNT_EQUITY; // Capital base for auto lot calculation

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

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

الوسوم:ex17016volatilitypipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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