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

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

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

Pipsgrowth EX02031 Breakout — London and NY open breakout EA for XAUUSD that detects the pre-session range on M15 candles and places BuyStop/SellStop . إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX02031 XAUUSD Breakout هو إكسبرت متخصص صُمِّم حصراً للذهب، يفعَّل في توقيتَين محددَتَين من كل يوم تداول — الساعة 8:00 و13:00 بتوقيت السيرفر — ويُسلِّح أوامر معلَّقة مزدوجة (BuyStop/SellStop) على جانبَي نطاق الساعة السابقة على إطار M15. الاستراتيجية تتجاهل الاتجاه، والزخم، ونظام التذبذب، وتوافق المؤشرات؛ هي نظام اختراق مجدوَل صرف. كل قرار آخر في الكود يدور حول هل من الآمن وضع هذه الأوامر الآن، لا حول هل تبدو السوق مستعدة للاختراق.

يُبنى النطاق من آخر أربع شموع M15 مكتملة لحظة تفعيل الإشارة، لذا فإن BuyStop عند افتتاح لندن (8:00) يُوضَع بالنسبة للقمة والقاع لكتلة 7:00–7:45. نفس المنطق عند 13:00 يقرأ كتلة 12:00–12:45 لافتتاح نيويورك. قمة هذا النطاق تصبح محفز BuyStop، والقاع يصبح محفز SellStop، ويُضاف buffer قدره 10 نقاط (InpBreakoutBuf) على كل جانب حتى لا يجلس الأمر تماماً على الحد الذي تتكرر عنده الارتدافات العشوائية. يُحدَّد وقف الخسارة على بُعد 40 نقطة (InpStopLoss) خلف النطاق، وجني الأرباح على بُعد 80 نقطة (InpTakeProfit) في الجانب المربح، مما يعطي نسبة مخاطرة/عائد 1:2 على كل عملية اختراق مُسلَّحة.

يُرسَل كلا الأمرين المعلَّقَين في tick واحد عبر CTrade.BuyStop وCTrade.SellStop، مع تحقق مسبق من الهامش عبر OrderCalcMargin: لو لم يكن في مقدور ACCOUNT_MARGIN_FREE تمويل الـ BuyStop المتوقَّع، يتخطى الإكسبرت الدورة وينتظر افتتاح الجلسة التالية. تُتحقق من قبول الأمر عبر TRADE_RETCODE_DONE أو TRADE_RETCODE_PLACED، ويُعيد الإكسبرت المحاولة حتى ثلاث مرات عند الأخطاء العابرة (REQUOTE، TIMEOUT، PRICE_OFF، PRICE_CHANGED) مع 200ms بين المحاولات. أي خطأ ليس عابراً يكسر الحلقة فوراً وينتقل الإكسبرت.

حارس اسمه HasTrade() يعمل في بداية الدورة ويرفض أي محاولة تسليح لو كان هناك مركز مفتوح فعلاً على نفس الرمز ونفس magic. هذا يعني أنه يمكن تشغيل محاولة اختراق واحدة فقط في كل وقت — بمجرد تعبئة الأمر المعلَّق وافتتاح المركز، يُكبَح الأمر المعلَّق الثاني (أو إعداد الجلسة التالية) حتى يُغلَق المركز. هناك throttle ثانٍ على نفس المتغير وهو lastSession: طابع زمني يمنع إعادة التسليح خلال 3000 ثانية (~50 دقيقة) من آخر تسليح، لذا حتى لو فُعِّلت الإشارتان في نفس شمعة M15، الإكسبرت يضع الأوامر مرة واحدة فقط.

طبقة التحصين أثقل من المعتاد بالنسبة لإكسبرت بهذه البساطة. DetectGMTOffset_EX02031 يمشي بكل إزاحة من −12 إلى +12 ويُقيِّم كل واحدة بحسب يوم الأسبوع (الإثنين–الجمعة +10) والساعة (07:00–21:00 +5) لاختيار إزاحة GMT الأكثر احتمالاً لدى الوسيط. IsMarketOpen_EX02031 يحظر التداول يوم السبت والأحد، ويحظر أول ساعتين من الإثنين (rollover الوسيط)، ويحظر آخر ساعتين من الجمعة. InActiveSession_EX02031 يقرأ InpUseGMTSessions، و— عند true — يقيِّد التداول على نافذة لندن (07:00–16:00 GMT) أو نافذة نيويورك (12:00–21:00 GMT)؛ الافتراضي لذلك المتغير false، مما يعني في التكوين الافتراضي أن فلتر الجلسات متساهل ويفعِّل فقط محفز الساعة.

IsNewsTime_EX02031 يجلب CalendarValueHistory لنافذة ±30 دقيقة حول وقت السيرفر الحالي ويُعلِّم أي حدث عالي الأهمية، ويحظر الدخول عندما يكون InpFilterNews على true. تتكوَّن حماية رأس المال من أربعة مدخلات: InpCapAmount يُحدِّد رأس المال الفعلي عند قيمة غير صفرية، InpCapFloor (افتراضياً 1000) هو الحد الأدنى لرأس المال الفعلي الذي يجب أن يبقى، InpMinEquityPct (70%) هو أرضية Equity نسبةً للرصيد الأولي الملتقط عند OnInit، وInpDailyLossLimitPct (5%) يقطع التداول لحظة تجاوز الأرباح/الخسائر المحققة اليومية لتلك النسبة من الرصيد الأولي. العدادات اليومية — g_tradesToday، g_realizedToday، g_consecLosses — تُدوَّر عند حدود اليوم بواسطة UpdateDailyCounters_EX02031، مع عداد أسبوعي منفصل لمجموع P&L المحقق.

دورة حياة الصفقة تُتابَع عبر OnTradeTransaction: فقط DEAL_ENTRY_OUT وINOUT وOUT_BY تُجمَع في الأرباح/الخسائر المحققة (الدخول يُتجاهَل)، ورقم الربح يشمل swap والعمولة حتى يتفاعل منطق cooldown مع الخسارة الصافية، لا الإجمالية. بعد InpMaxConsecLosses (افتراضياً 5) خسائر متتالية، يضبط الإكسبرت g_cooldownUntil على الوقت الحالي زائد InpCooldownHours × 3600 (4 ساعات) ويرفض كل المداخل الجديدة حتى يمر ذلك الطابع الزمني. روتين OnTester بسيط مركَّب: profit × profit factor ÷ max equity drawdown، مع تثبيت profit factor عند 1.0 لو خرج من النطاق (0, 1000) وتثبيت drawdown عند 1.0 لتجنب القسمة على صفر؛ النتيجة تُصفَّر لو كان إجمالي الصفقات أقل من 10، وهي الحد الأدنى لحجم العينة الذي يحتاجه هذا الإكسبرت في الباك تيست لاعتبار النتيجة ذات معنى.

ما يعنيه هذا عملياً: المتداول الذي يحمِّل EX02031 على شارت XAUUSD M15 يحصل على سلوك واحد محدد جيداً — مرتين يومياً، يضع الإكسبرت شراء فوق النطاق الأخير وبيع تحته، وإما أن يتعبأ أحدهما (يُكبَح الآخر بواسطة HasTrade) أو لا يتعبأ أي منهما وتُعاد الدورة عند افتتاح الجلسة التالية. لا يوجد إغلاق جزئي، ولا ترحيل إلى نقطة التعادل، ولا trailing stop، ولا pyramiding، ولا إدارة TP مرتبطة بالأخبار. الخروج هو إما أن SL أو TP يُفعَّل أولاً، أو يُغلَق المركز بواسطة الوسيط بسبب الهامش/نهاية الجلسة، أو مسار cooldown الخاص بالإكسبرت بعد سلسلة خسائر. هذه هي الاستراتيجية كاملةً.

محفز الساعة نفسه هو توقيت السيرفر، لا GMT — يقرأ الإكسبرت TimeCurrent داخل MqlDateTime ويتحقق من dt.hour==8 && dt.min==0 أو dt.hour==13 && dt.min==0. هذا يعني أن المنطقة الزمنية لسيرفر الوسيط تحدد متى يرى الإكسبرت افتتاحَي لندن ونيويورك، وهذا هو سبب وجود DetectGMTOffset_EX02031: الإزاحة تُستخدم لتقييم حراس الجلسة والأخبار بشكل صحيح رغم أن ساعات المحفز مُكوَّدة داخل الكود بتوقيت السيرفر. على وسيط GMT+2 أو GMT+3 يتماشى المحفز طبيعياً مع افتتاح الجلسة الفعلي؛ على وسيط GMT المحفز هو 8 و13 GMT، أي بعد ساعة من افتتاح لندن القياسي (08:00 GMT) وبالضبط افتتاح نيويورك (13:00 GMT) — هذه الفجوة مقصودة في الكود، والمتداول الذي يريد سلوكاً مختلفاً عليه إما أن يُزيح InpLondonStartGMT/InpNewYorkStartGMT داخل بوابة InpUseGMTSessions الاختيارية، أو يشغِّل الإكسبرت على وسيط توقيت سيرفره يطابق تعريف الجلسة المفضَّل لديه.

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

في كل tick، يتحقق الإكسبرت من ساعة السيرفر: إذا كانت تماماً 8:00 (افتتاح لندن) أو 13:00 (افتتاح نيويورك)، تنطلق الدورة؛ وإلا يعود الـ tick فوراً. عند انطلاق الدورة، تكدِّس IsSafeToTrade_EX02031 سبعة حُرَّاس مستقلين — حظر عطلة نهاية الأسبوع، فلتر جلسة GMT اختياري، فلتر أخبار (±30 دقيقة أحداث عالية الأهمية)، أرضية رأس مال فعلي، أرضية انخفاض Equity، حد خسارة يومية، وcooldown خسائر متتالية — وأي فشل منفرد يُجهض التسليح. لو نجح كل الحراس ولم يكن هناك مركز بنفس الـ magic مفتوح، يقرأ الإكسبرت قمة وقاع آخر 4 شموع M15 لبناء نطاق الجلسة، يحسب أسعار محفز BuyStop/SellStop مع buffer قدره 10 نقاط، ويُقدِّم كلا الأمرين المعلَّقَين في tick واحد مع 3 محاولات عند الأخطاء العابرة. throttle الـ 50 دقيقة في lastSession يضمن أن محفِّزي الجلسة في نفس شمعة M15 لا يُكرِّران التسليح. مخارج المراكز هي SL/TP صرف — لا trailing ولا جزئي ولا إدارة مرتبطة بالأخبار — وOnTradeTransaction يُجمِّع P&L المحقق لدفع عداد الخسائر المتتالية والـ cooldown الذي مدته 4 ساعات.

إشارة الدخول

عند افتتاح لندن (8:00 بتوقيت السيرفر) وافتتاح نيويورك (13:00 بتوقيت السيرفر)، يقرأ الإكسبرت قمة وقاع آخر 4 شموع M15 مكتملة، ثم يُسلِّح BuyStop عند قمة النطاق + buffer قدره 10 نقاط وSellStop عند قاع النطاق − 10 نقاط، كل منهما بـ 40 نقطة مخاطرة و80 نقطة عائد. تُكبَح الدورة لمدة 50 دقيقة بعد كل تسليح وتُتجاوز كلياً لو كان مركز بنفس الـ magic مفتوحاً بالفعل.

إشارة الخروج

تُغلَق المراكز عند TP الثابت (80 نقطة) أو SL (40 نقطة)؛ لا يوجد trailing stop ولا ترحيل إلى نقطة التعادل ولا إغلاق جزئي في هذا الإكسبرت. أوامر الجلسة المعلَّقة هي أيضاً أحادية الإطلاق — بمجرد تعبئة أحدها، يكبح حارس HasTrade محاولات الدخول الجديدة حتى يُغلَق المركز المفتوح.

وقف الخسارة

وقف خسارة ثابت قدره 40 نقطة (InpStopLoss) يوضع على الجانب البعيد من النطاق السابق للجلسة — تحت rangeLow لتعبئة BuyStop، وفوق rangeHigh لتعبئة SellStop. تحقق OrderCalcMargin السابق للأمر يصفي أيضاً ضمنياً الصفقات التي لا يستطيع الحساب تحمل هامشها.

جني الأرباح

جني أرباح ثابت قدره 80 نقطة (InpTakeProfit)، يُوضَع على الجانب المربح من دخول الاختراق، مما يعطي نسبة مخاطرة/عائد 1:2 على كل مركز يُفتَح من أمر معلَّق مُعبَّأ.

الأنسب لـ

الأنسب لمتداولي XAUUSD M15 الذين يريدون اختراق ميكانيكي منخفض القرار يُفعَّل فقط عند افتتاحَي لندن ونيويورك ويستطيعون قبول نسبة مخاطرة/عائد ثابتة 1:2 بدون إدارة trailing أو إغلاق جزئي. الحد الأدنى للرصيد الموصى به $1,000 عند تفعيل حد رأس المال (InpCapFloor=1000) أو الإيداع نفسه عند تعطيل InpCapAmount=0 للحد؛ حجم 0.01 لوت الافتراضي و SL/TP 40/80 نقطة يعني أن حساب $100 يمكنه تسليح الأوامر، رغم أن equity أضيق يرفع خطر تفعيل حد الخسارة اليومي. شغِّله على حساب ECN أو RAW بسبريد منخفض على VPS مع اتصال موثوق بالساعة والتقويم (فلتر الأخبار واكتشاف GMT يعتمدان على CalendarValueHistory وساعة سيرفر مستقرة)، وتجنَّب التشغيل على وسطاء لديهم stops_level يتجاوز buffer الاختراق البالغ 10 نقاط.

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

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

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

الوصف: London and NY open breakout EA for XAUUSD that detects the pre-session range on M15 candles and places BuyStop/SellStop pending orders with buffer, SL and TP

المؤشرات:

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

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

  • HasTrade()
  • OnTradeTransaction()
  • DetectGMTOffset_EX02031()
  • ServerToGMT_EX02031()
  • IsMarketOpen_EX02031()
  • InActiveSession_EX02031()
  • IsNewsTime_EX02031()
  • IsSafeToTrade_EX02031()
  • UpdateDailyCounters_EX02031()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX02031 Breakout — Execution Flow (from source analysis)
// Family: Breakout
// London and NY open breakout EA for XAUUSD that detects the pre-session range on M15 candles and places BuyStop/SellStop pending orders with buffer, SL and TP

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

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

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

المعاملالافتراضيالوصف
InpMagicNumber22202031Magic Number
InpTradeComment"Psgrowth.com Expert_02031"Trade Comment
InpNewYorkEndGMT21--- Hardening: Capital Protection ---
InpCapAmount0.0Capital cap amount (0=disabled)
InpDailyLossLimitPct5.0--- Hardening: Trade Safety ---
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX02031.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX02031 XAUUSDBreakout — London/NY open breakout on XAUUSD, full 12-layer stack."

#include <Trade\Trade.mqh>
input group "=== Identity ==="
input int      InpMagicNumber   = 22202031;   // Magic Number
input string   InpTradeComment  = "Psgrowth.com Expert_02031"; // Trade Comment

input group "=== Strategy Parameters ==="
input int    InpRangeCandles  = 4;
input int    InpBreakoutBuf   = 10;

input group "=== Trade Management ==="
input double InpLotSize       = 0.01;
input int    InpStopLoss      = 40;
input int    InpTakeProfit    = 80;
CTrade trade; datetime lastSession=0;

//--- Hardening Globals
int      g_gmtOffset       = 3;
int      g_tradesToday     = 0;
datetime g_dayStartTime    = 0;
double   g_initialBalance  = 0.0;
datetime g_cooldownUntil   = 0;
int      g_consecLosses    = 0;
double   g_realizedToday   = 0.0;
double   g_realizedWeek    = 0.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;

// --- Hardening: Trade Safety ---
input group "=== Trade Safety (Hardening) ===";
input int     InpMaxTradesPerDay      = 10;
input int     InpMaxConsecLosses      = 5;
input int     InpCooldownHours        = 4;
input bool    InpFilterNews           = true;
input int     InpNewsBufferMinutes    = 30;

int OnInit() {
   trade.SetExpertMagicNumber(InpMagicNumber);
   trade.SetDeviationInPoints(30);

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

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

الوسوم:ex02031breakoutpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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