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

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

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

Pipsgrowth EX02025 Breakout — Classic Donchian Channel breakout (Turtle Trading) EA with session filter, risk-based sizing, trailing stop, and visual . إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX02025 هو خبير آلي (EA) يطبّق استراتيجية الاختراق الكلاسيكية لقناة Donchian وفق قواعد Turtle Trading الأصلية: يدخل شراءً عندما يكسر السعر أعلى أعلى قمة خلال N شمعة، ويدخل بيعاً عندما يكسر أدنى أدنى قاع خلال N شمعة. التنفيذ متعمَّدٌ في بساطته — لا يوجد مصنّف حالة للسوق، ولا طبقة تأكيد بمؤشرات متعددة، ولا فلتر للإطار الزمني الأعلى، ولا تدرّج للمركز (pyramiding). الحافة هنا تأتي من مفهوم واحد مُجرَّب يُنفَّذ بنظافة على رسم بياني واحد بإطار 5 دقائق.

تُحسَب القناة يدوياً داخل دالة CalculateDonchianChannel(). لكل شمعة i، يمسح EA الشموع من i+1 إلى i+DonchianPeriod (افتراضياً 20) عبر iHigh() وiLow()، ويأخذ الأعلى تراكمياً كحدٍّ علوي، والأدنى تراكمياً كحدٍّ سفلي، والنقطة الوسطى (upper+lower)/2 كخط المنتصف. تُخزَّن جميعها في مصفوفات متسلسلة g_upperBuffer وg_lowerBuffer وg_middleBuffer. لأن الاختراق يُقيَّم على الشمعة المغلقة السابقة (shift = 1) لا على الشمعة الجاري تكوينها، تكون الإشارات مستقرة وقابلة للتكرار في اختبارات الـ backtest.

مُحفِّز الاختراق هو الأعلى أو الأدنى للشمعة المغلقة، وليس الإغلاق. إشارة الشراء تنطلق عندما iHigh(_Symbol, PERIOD_M5, 1) > g_upperBuffer[1]. إشارة البيع تنطلق عندما iLow(_Symbol, PERIOD_M5, 1) < g_lowerBuffer[1]. يقرأ EA تعرّضه الحالي عبر GetCurrentPositionType()، وإذا كانت الإشارة الجديدة معاكسة للمركز القائم، يستدعي أولاً CloseAllPositions() لتصفير الصفقة قبل فتح الجديدة. مع MaxPositions = 1 افتراضياً، يوجد مركز واحد فقط في كل مرة، لذا يكون الانعكاس نظيفاً وذَرْباً.

إدارة المخاطر مباشرة لكنها مُعامَلَة بشكل جيّد. وقف الخسارة الافتراضي 50 نقطة، والهدف 100 نقطة — نسبة مخاطرة إلى عائد ثابتة 1:2. يُحسَب حجم اللوت عبر CalculateLotSize() اعتماداً على RiskPercent (افتراضياً 1% من الرصيد) باستخدام الصيغة المعيارية riskAmount / (stopLossPips × pipValue)، حيث تُشتَق pipValue من SYMBOL_TRADE_TICK_VALUE × (point / tickSize). عندما يُضبَط RiskPercent على 0، يلجأ EA إلى FixedLotSize الثابت عند 0.01 لوت. تُقيِّد NormalizeLot() النتيجة ضمن حدود min/max/step للوسيط وتُقرِّب إلى منزلتين عشريتين. فحص OrderCalcMargin() السابق للإرسال يرفض الأوامر التي ستتجاوز ACCOUNT_MARGIN_FREE.

وقف الخسارة المتابع (Trailing Stop) من أبرز ما يميِّز هذا EA. مع UseTrailingStop = true (افتراضي)، تعمل ApplyTrailingStop() عند كل شمعة M5 جديدة، ولكل مركز مفتوح تقيس الحركة لصالحه مقارنة بسعر الفتح. ما إن يبلغ الربح TrailingStartPips (30 نقطة افتراضياً)، يُرفَع الوقف إلى TrailingStepPips (15 نقطة) خلف السعر. للشراء، الوقف الجديد = bid − 15 نقطة؛ للبيع، ask + 15 نقطة. الترس لا يتراجع أبداً — يتحرك للأمام فقط، ولا يُعدَّل إلا إذا كان المستوى الجديد يتفوق على القديم بنقطة واحدة على الأقل. يبقى الهدف الأصلي عند 100 نقطة في مكانه ما لم يتدخَّل الوقف المتابع أولاً، لذا يمكن للـ EA أن يأخذ هدف 2R كاملاً أو يقفل أرباحاً مفتوحة بحسب سلوك السعر بعد الاختراق.

الطبقة البصرية هي الجزء الأكثر تفصيلاً في الكود. تُعيد DrawDonchianChannel() بناء الخطوط العلوية والسفلية والوسطى عند كل تيكة باستخدام مقاطع OBJ_TREND لآخر 100 شمعة، ملوَّنة بالأخضر اللايم (العلوي) والأحمر (السفلي) افتراضياً، مع خط متوسط رمادي مُتقطِّع بسماكة 1. تبني CreateDashboard() لوحة بقياس 280×260 في الزاوية العلوية اليسرى تعرض الرمز، الإطار الزمني، فترة القناة، قيم القناة الحيّة، حالة الجلسة، الإشارة الحالية، حالة المركز، إجمالي الصفقات، والربح التراكمي. تُعاد كتابة كل تسمية عبر CreateLabel() وتُحدَّث عند كل تيكة من UpdateDashboard() التي تقرأ آخر قيم للمخزن المؤقت وحالة IsInSession() الحالية. في OnDeinit() يمشي EA على قائمة كائنات الرسم البياني ويزيل كل ما يحتوي اسمه على "Donchian_"، فيترك الرسم نظيفاً عند إزالة الـ EA.

طبقة التحصين تعكس بقية EAs سلسلة EX02. تتحقق IsSafeToTrade_EX02025() من كل قرار عند شمعة جديدة. تبدأ بـ IsMarketOpen_EX02025() — التي ترجع false قبل الإثنين 22:00 GMT وبعد الجمعة 22:00 GMT، فلا تُحرَّك شموع نهاية الأسبوع أي دخول. ثم InActiveSession_EX02025() التي، عند تفعيل InpUseGMTSessions (متوقف افتراضياً)، تقصّر التداول على اتحاد جلستي لندن (7–16 GMT) ونيويورك (12–21 GMT)؛ الزوج الأبسط UseSessionFilter + SessionStartHour/SessionEndHour (7–16 UTC افتراضياً) يدير فلتر الجلسة بديلاً. فلتر الأخبار يستدعي IsNewsTime_EX02025() التي تستعلم CalendarValueHistory عن أحداث عالية الأهمية في نافذة ±30 دقيقة وتمنع التداخل (مفعَّل افتراضياً). على مستوى الحساب: عند ضبط InpCapAmount، يُقصَّر رأس المال الفعلي إلى min(cap, equity) ويرفض EA التداول إذا نزل الناتج تحت InpCapFloor (افتراضي 1000). حارس الانسحاب يرفض التداول عندما تهبط Equity تحت 70% من الرصيد الابتدائي. حدّ الخسارة اليومية 5% من الرصيد الابتدائي ومؤقِّت g_cooldownUntil الذي يضبطه OnTradeTransaction بعد 5 خسائر متتالية (تجميد 4 ساعات) يوفران طبقة حماية ثالثة.

OnTradeTransaction() هو أيضاً مقرّ عدّاد الصفقات ومراكمات الأرباح والخسائر. يُصفّي إلى الصفقات التي يطابق DEAL_MAGIC فيها الرقم السحري MagicNumber (22202025) والرمز فيها رمز الشارت الحالي، ثم يضيف ربح الصفقة + سواب + عمولة إلى g_realizedToday وg_realizedWeek، ويزيد g_tradesToday، ويزيد أو يصفّر g_consecLosses بحسب ما إذا كانت الصفقة خاسرة. تدور UpdateDailyCounters_EX02025() هذه العدادات عند حدود اليوم والأسبوع.

التنفيذ مُحصَّن ضد أخطاء الشبكة المعتادة. تدور OpenPosition() وClosePosition() وModifyPosition() ثلاث مرات على TRADE_RETCODE_REQUOTE وTRADE_RETCODE_TIMEOUT وTRADE_RETCODE_PRICE_OFF وTRADE_RETCODE_PRICE_CHANGED، مع تحديث السعر بعد سكون 200 مللي ثانية وإعادة حساب SL/TP من السعر الجديد. نمط التعبئة ORDER_FILLING_IOC، وتسامح الانزلاق هو Slippage (10 نقاط افتراضياً)، وتعليق الصفقة InpTradeComment النصي القابل للضبط "Psgrowth.com Expert_02025".

تُرجع OnTester() المعيار profit × profitFactor / maxDD بشرط 10 صفقات كحدّ أدنى، ما يُفضِّل الاستراتيجيات التي تجمع بين الربحية والانسحاب الضحل، لا الربح الصافي وحده.

خلاصة القول: EX02025 هو تنفيذ أمين وبسيط لاختراق Donchian الكلاسيكي على طريقة Turtle. إن أردت القناة الأصلية ذات 20 شمعة مع نسبة 1:2 ووقف متابع قائم على النقاط على EURUSD M5، فهذا هو. إن أردت فلتر حالة، أو تأكيد متعدد، أو إغلاق جزئي، فابحث في EAs أخرى من السلسلة EX02.

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

تعمل OnTick() على تشغيل بوابة الأمان IsSafeToTrade_EX02025() أولاً، ثم تحقق جلسة لندن الاختيارية IsInSession()، ثم تقيِّم الاختراق على الشمعة المغلقة (shift = 1). تُعاد حسابة قناة Donchian عند كل تيكة داخل CalculateDonchianChannel() بتمشيط آخر DonchianPeriod شمعة وتخزين الحد العلوي والسفلي والوسطى في مخازن مؤقتة متسلسلة. تُعيد DrawDonchianChannel() بناء الخطوط البصرية الثلاثة وتُجدِّد UpdateDashboard() لوحة الحالة الحيّة، ليرى المتداول تغيّر القناة وحالة الإشارة في الزمن الحقيقي. يضمن حارس الشمعة الجديدة (lastBarTime guard) أن الإشارات وفحوصات الوقف المتابع تنطلق شمعة M5 واحدة، لا عند كل تيكة. تُجري OpenPosition() فحص الهامش عبر OrderCalcMargin() وتُكرِّر المحاولة حتى ثلاث مرات على أخطاء requote أو تغيّر السعر قبل الاستسلام.

إشارة الدخول

يشتري EA عند كسر أعلى الشمعة المغلقة السابقة (M5) للحد العلوي لقناة Donchian ذات 20 شمعة، ويبيع عند كسر الأدنى للحد السفلي. تُحسَب القناة يدوياً في CalculateDonchianChannel() كحدٍّ أقصى تراكمي لـ iHigh وحدٍّ أدنى تراكمي لـ iLow على امتداد DonchianPeriod شمعة. في حال وجود مركز معاكس، يُغلقه EA أولاً عبر CloseAllPositions() قبل فتح الصفقة الجديدة. يخضع الدخول أيضاً لبوابة IsSafeToTrade_EX02025() التي تتحقق من ساعات السوق، ونوافذ الجلسة الاختيارية، والأخبار، وظروف سلامة الحساب.

إشارة الخروج

تحدُث الخروج بفضل هدف ربح ثابت 100 نقطة، ووقف متابع يُرفَع 15 نقطة خلف السعر بعد 30 نقطة من الحركة لصالحه، وإشارة اختراق معاكسة تقلب المركز. يُرسَل الهدف والوقف داخل OpenPosition() ويُحفَظان على المركز. تعمل ApplyTrailingStop() عند كل شمعة جديدة ولا تحرّك الوقف إلا إلى الأمام. لا يوجد خروج مبني على الزمن — يبقى المركز مفتوحاً حتى SL، أو TP، أو اختراق عكسي.

وقف الخسارة

وقف الخسارة ثابت عند 50 نقطة عند الدخول (StopLossPips × 10 × point على وسطاء 5 أرقام)، يُضبَط داخل OpenPosition() ويُحفَظ على المركز. ما إن تتحرك الصفقة 30 نقطة لصالحها، تستبدل ApplyTrailingStop() الوقف الستاتيكي بوقف متابع 15 نقطة لا يتراجع. يكون SL هو المستوى الستاتيكي إذا لم يبدأ التتابع بعد، وإلا فهو آخر مستوى تتابع.

جني الأرباح

هدف الربح ثابت عند 100 نقطة عند الدخول — ضعف SL، نسبة 1:2 صعبة. يُرسَل TP إلى الوسيط عند الفتح ويبقى على المركز بصرف النظر عن نشاط الوقف المتابع. إذا ضرب الوقف المتابع قبل هدف 100 نقطة، يُغلَق المركز على الوقف المتابع بدلاً من TP.

الأنسب لـ

EX02025 مبنيٌّ لزوج EURUSD على إطار M5 بمستوى مخاطرة متوسط ووديعة أدنى 100 دولار. مخاطر 1% افتراضية على كل صفقة مع وقف 50 نقطة تستهدف مسافة 50 نقطة تقريباً، لذا يُنتج حساب 100 دولار بحجم لوت أدنى الصفقات المفهومة؛ 500–1000 دولار هي المنطقة العملية المريحة. جلسة 7–16 UTC الافتراضية تعني ساعات لندن، وعلم InpUseGMTSessions الاختياري يضيف نيويورك 12–21 GMT لإطار لندن ونيويورك مجتمعين. يُوصى بوكيل ECN فروقات ضيقة لأن نسبة 1:2 تترك هامشاً ضيقاً لتضخّم فروق الأسعار على وقف 50 نقطة.

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

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

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

الوصف: Classic Donchian Channel breakout (Turtle Trading) EA with session filter, risk-based sizing, trailing stop, and visual dashboard. WFO-validated strategy

المؤشرات:

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

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

  • CalculateDonchianChannel()
  • DrawDonchianChannel()
  • IsInSession()
  • CountPositions()
  • GetCurrentPositionType()
  • CalculateLotSize()
  • NormalizeLot()
  • OpenPosition()
  • CloseAllPositions()
  • ClosePosition()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX02025 Breakout — Execution Flow (from source analysis)
// Family: Breakout
// Classic Donchian Channel breakout (Turtle Trading) EA with session filter, risk-based sizing, trailing stop, and visual dashboard. WFO-validated strategy

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
الرموز المُحسّنة:
EURUSD
الأطر الزمنية المُحسّنة:
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

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

المعاملالافتراضيالوصف
DonchianPeriod20Donchian Channel Period
UseSessionFiltertrueUse Session Filter
SessionStartHour7Session Start Hour (UTC)
SessionEndHour16Session End Hour (UTC)
RiskPercent1.0Risk Per Trade (%)
FixedLotSize0.01Fixed Lot Size (if Risk=0)
MaxPositions1Max Open Positions
StopLossPips50Stop Loss (pips)
TakeProfitPips100Take Profit (pips)
UseTrailingStoptrueEnable Trailing Stop
TrailingStartPips30Trailing Start (pips)
TrailingStepPips15Trailing Step (pips)
ShowDashboardtrueShow Dashboard
ShowChanneltrueShow Donchian Channel
UpperChannelColorclrLimeUpper Channel Color
LowerChannelColorclrRedLower Channel Color
ChannelWidth2Channel Line Width
MagicNumber22202025Magic Number
Slippage10Max Slippage (points)
InpTradeComment"Psgrowth.com Expert_02025"Trade Comment
InpNewYorkEndGMT21--- Hardening: Capital Protection ---
InpCapAmount0.0Capital cap amount (0=disabled)
InpDailyLossLimitPct5.0--- Hardening: Trade Safety ---
InpNewsBufferMinutes30+------------------------------------------------------------------+
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX02025.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX02025 Donchian_Channel_EA — classic Donchian channel breakout with trailing, full 12-layer stack."

//+------------------------------------------------------------------+
//| INPUT PARAMETERS                                                  |
//+------------------------------------------------------------------+
input group "=== DONCHIAN CHANNEL SETTINGS ==="
input int      DonchianPeriod     = 20;           // Donchian Channel Period
input bool     UseSessionFilter   = true;         // Use Session Filter
input int      SessionStartHour   = 7;            // Session Start Hour (UTC)
input int      SessionEndHour     = 16;           // Session End Hour (UTC)

input group "=== RISK MANAGEMENT ==="
input double   RiskPercent        = 1.0;          // Risk Per Trade (%)
input double   FixedLotSize       = 0.01;         // Fixed Lot Size (if Risk=0)
input int      MaxPositions       = 1;            // Max Open Positions
input int      StopLossPips       = 50;           // Stop Loss (pips)
input int      TakeProfitPips     = 100;          // Take Profit (pips)

input group "=== TRAILING STOP ==="
input bool     UseTrailingStop    = true;         // Enable Trailing Stop
input int      TrailingStartPips  = 30;           // Trailing Start (pips)
input int      TrailingStepPips   = 15;           // Trailing Step (pips)

input group "=== VISUAL SETTINGS ==="
input bool     ShowDashboard      = true;         // Show Dashboard
input bool     ShowChannel        = true;         // Show Donchian Channel
input color    UpperChannelColor  = clrLime;      // Upper Channel Color
input color    LowerChannelColor  = clrRed;       // Lower Channel Color
input int      ChannelWidth       = 2;            // Channel Line Width

input group "=== EA SETTINGS ==="
input int      MagicNumber        = 22202025;     // Magic Number
input int      Slippage           = 10;           // Max Slippage (points)
input string   InpTradeComment    = "Psgrowth.com Expert_02025"; // Trade Comment

//+------------------------------------------------------------------+
//| GLOBAL VARIABLES                                                  |
//+------------------------------------------------------------------+
int g_donchianHandle;
double g_upperBuffer[];
double g_lowerBuffer[];
double g_middleBuffer[];

// Dashboard label names
string g_dashLabels[];
int g_dashLabelCount = 0;

// Statistics
int g_totalTrades = 0;
int g_winTrades = 0;
double g_totalProfit = 0;

// Channel object names
string g_upperLineName = "DonchianUpper";
string g_lowerLineName = "DonchianLower";
string g_middleLineName = "DonchianMiddle";

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

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

الوسوم:ex02025breakoutpipsgrowthfreemt5eurusd

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

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

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

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

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

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

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

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