P
PipsGrowth
شبكةمفتوح المصدر - مجاني

Pipsgrowth EX03023 Grid — إكسبرت أدفايزر شبكة

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

Pipsgrowth EX03023 Grid — XAUUSD grid strategy EA that places layered buy/sell grid orders at fixed step intervals and closes the entire basket wh. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX03023 هو خبير آلي (EA) يعمل بمنطق شبكة يعتمد على خطوات سعرية ثابتة، ومصمم خصيصًا لزوج XAUUSD على الإطار الزمني M5 (ويعمل كذلك على H1). لا يقرأ هذا الخبير أي مؤشر فني، ولا يحسب أي مقياس لنمط السوق، ولا ينتظر تقاطع متوسطات أو عتبة زخم. كل قرار آلي بالكامل: يُسلّم سلّمًا ثابتًا من أوامر الليمنت المعلقة على فواصل 50 نقطة من نقطة الارتكاز، ويترك السوق ليقرر أي الأوامر تُنفّذ، ثم يُغلق السلة بأكملها في اللحظة التي يتجاوز فيها الربح الإجمالي غير المحقق عتبة واحدة. هذه البساطة هي جوهر الخبير — لا يوجد نموذج يحتاج إلى إعادة معايرة، ولا مرشح تقلّب يُحارب، ولا غموض إشاري. إما أن الشبكة مسلحة وفي حالة انتظار، أو أنها مغلقة وخامدة.

منطق التسليح يعيش داخل OnTick(). في كل تيكة يبدأ الخبير بحارس الانسحاب الحاد: يحسب (balance - equity) / balance * 100، وإذا تجاوزت النتيجة InpMaxDrawdown (20% افتراضيًا) يستدعي CloseAllTrades() وينهي المعالجة. هذا هو زر الذعر للخبير — ما إن يُسجَّل انحراف بنسبة 20% من القمة إلى القاع على الحساب الحي حتى يتم تسطيح السلة وحذف كل أمر معلق في المرور نفسه. بعد حارس الانسحاب يتحقق الخبير من السبريد الحي عبر SymbolInfoInteger(_Symbol, SYMBOL_SPREAD) ويُجهض بقية المعالجة إذا كان السبريد أعلى من InpMaxSpread (50 نقطة). بعدها تتحقق IsSafeToTrade_EX03023() من الجلسة، ووقت التهدئة، وأرضيةEquity، وخسارة اليوم والأسبوع المحققة، وسقف رأس المال، وأقصى عدد صفقات في اليوم، وعدد الخسائر المتتالية قبل أن يبدأ أي منطق جديد.

إذا كانت السلة لا تزال حيّة، يُقيّم الخبير شرط الإغلاق. GetBasketProfit() تتجاوز PositionsTotal() من الأحدث إلى الأقدم وتجمع الربح والتمويل والعمولة لكل صفقة تطابق رقم السحر InpMagicNumber (22203023) والرمز البياني للرمز الحالي. عندما يكون CountOpenTrades() > 0 ويكون المجموع أكبر من أو يساوي InpTakeProfit * _Point * InpGridLevels * InpLotSize * 100 يستدعي الخبير CloseAllTrades() ويُعيد gridInitialised إلى false وينتظر دورة جديدة. مع الإعدادات الافتراضية InpTakeProfit=100 وInpGridLevels=5 وInpLotSize=0.01، فإن عتبة الإغلاق لزوج XAUUSD تخرج إلى حوالي 0.50 دولار من الربح العائم المجمّع عبر السلة — هدف صغير ومتكرر صُمم ليُحقَّق كثيرًا بدلًا من أن يُحقَّق بشكل بطولي.

إذا لم تكن هناك صفقات مفتوحة وgridInitialised يساوي false، يلتقط الخبير قيمة ask وbid الحاليين ويخزنهما في gridBuyBase وgridSellBase ويُعيّن gridInitialised = true. ثم يستدعي OpenBuyGrid() التي تضع أوامر BuyLimit بعدد InpGridLevels تتدرج إلى الأسفل بدءًا من gridBuyBase بفواصل InpGridStep * _Point. مع خطوة 50 نقطة افتراضية على XAUUSD، ينتج عن ذلك خمسة BuyLimits عند نحو -0.00 و-0.50 و-1.00 و-1.50 و-2.00 دولار نسبة إلى نقطة الارتكاز. نقطة الارتكاز هي سعر ask لحظة فتح السلة، لذا فإن المستوى الأول يكون عند السبريد أو داخله ويُمتلئ عادةً فورًا ليُصبح الصفقة البذرة، والباقي تصطف أدناه كلما انخفض السعر. كل أمر يُرسَل عبر TryBuyLimit_EX03023 التي تعيد المحاولة حتى ثلاث مرات عند REQUOTE أو TIMEOUT مع نوم 200ms بين المحاولات قبل الاستسلام.

إذا ضُبط InpBothDirections على true، يستدعي الخبير أيضًا OpenSellGrid() التي تعكس السلم نفسه إلى الأعلى من gridSellBase — خمسة SellLimits تصعد بفواصل 50 نقطة. مع القيمة الافتراضية false، يتسلّح فقط سلم الشراء. هذا هو مقبض الاتجاه في الخبير: متغير بولياني واحد يحوّل الشبكة أحادية الجانب إلى شبكة مزدوجة متماثلة.

لا توجد أوامر وقف خسارة لكل صفقة على حدة ولا أهداف جني أرباح لكل صفقة. كل مستوى يدخل بالحجم نفسه (InpLotSize = 0.01) ولا يخرج إلا عند إغلاق السلة بالكامل. هناك طريقتان فقط تُغلق بهما السلة: (1) الوصول إلى عتبة الربح — تُنفّذ CloseAllTrades() ويُلغي الخبير كل الأوامر المعلقة ويُعيد gridInitialised وتُستأنف الدورة عند أول تيكة بصفر صفقة؛ أو (2) تفعيل حارس الانسحاب حيث يُسَطِّح الخبير كل شيء فورًا.

OnTradeTransaction() هي القطعة الوحيدة من الخبير التي تُحدّث الحالة خارج OnTick(). عند إضافة صفقة (deal) تطابق رقم السحر والرمز، تزيد g_dailyTrades عند الدخول، وتُراكم الربح/الخسارة المحقق في g_realizedToday وg_realizedWeek عند الخروج، وتزيد g_consecLossesHD عند الخسارة. إذا تراكمت ثلاث خسائر متتالية، يُعيّن الخبير g_cooldownUntil = TimeCurrent() + InpCooldownMinutes * 60 (افتراضيًا 30 دقيقة) ويرفض أي دخول جديد حتى انقضاء المؤقت. هذا عتبة مشفّرة بقيمتها (3) — InpMaxConsecLosses الذي يقرأه المستخدم (افتراضي 0، معطل) هو حارس منفصل تقرأه IsSafeToTrade_EX03023() ويُفعَّل عند أي عتبة يحددها المستخدم؛ أما تهدئة الثلاثين دقيقة فهي أرضية الأمان المدمجة في الخبير.

مرشّح الجلسة يستخدم DetectGMTOffset_EX03023() لاختيار إزاحة GMT تلقائيًا بين -12 و+12 عبر تقييم المرشحين على صلاحية أيام الأسبوع وضمن ساعات التداول، ثم يمشي الوقت المحلي للخادم عبر تلك الإزاحة. InActiveSession_EX03023() تحظر عطلة نهاية الأسبوع بالكامل، ثم ترجع true لأي ساعة بين InpLondonStartGMT (7) وInpLondonEndGMT (16) وأي ساعة بين InpNewYorkStartGMT (12) وInpNewYorkEndGMT (21). مع ضبط InpUseGMTSessions على true، يعمل الخبير فقط داخل اتحاد هاتين النافذتين — نطاق ضيق وسائل يلتقط الجزء الأكبر من حجم XAUUSD دون إهدار موارد الخادم على ساعات آسيا الميتة عندما لا يزال النطاق اليومي النموذجي للذهب قيد التشكّل.

OnTester() ترجع (profit / maxDD) * (pf > 1 ? pf : 0) وتضع بوابة على maxDD > 0 وtrades >= 10، لذا فإن التحسين يُفضّل ملفات E/R متينة تنجو من عشر دورات محلولة على الأقل ولها عامل ربح أعلى من 1. مع هدف السلة الصغير البالغ 0.50 دولار، فإن التشغيل المعتاد في Strategy Tester سيُغلق عشرات السلال عبر باك تيست متعدد السنوات، مما يمنح المقياس عينات كافية للتفريق بين مجموعات المعايير دون الإفراط في التوافق مع صفقة واحدة.

عمليًا، هذا يعني أن الخبير يُنتج مكاسب صغيرة متكررة (سلال مُغلقة) تتخللها دورات خسارة أكبر عرضيًا (تسطيحات بسبب الانسحاب). مقبض InpMaxDrawdown الحقيقي هو قرص المخاطرة: خفضه إلى 10% يُقصّر دورات الخسارة لكنه يرفع خطر الخروج من دورة انعكاس قسريًا، وتركه عند 20% يمنح السلال مساحة أكبر للعودة إلى المتوسط على حساب انحرافات أعمق من القمة إلى القاع. خطوة الشبكة وحجم اللوت يحددان معًا عدد اللوتات المُعرَّضة إذا امتلأ كل مستوى قبل أن تحلّ السلة — عند 5 مستويات × 0.01، هذا 0.05 لوت من XAUUSD يتحرك ضد الاتجاه خلال حركة مستمرة، بلا أوامر وقف على الأرجل الفردية. هذا الخبير ليس نظامًا للمتداولين الذين يطلبون وقف خسارة لكل صفقة. إنه بنية للمتداولين الذين يفكرون بسلات، ويقبلون ملف المخاطرة لشبكة بلا أوامر وقف، ويريدون رؤية كل قرار في الكود دون الخوض في تركيب المؤشرات.

ملاحظتان عمليتان قبل النشر. أولاً، مرشّح InpMaxSpread البالغ 50 نقطة مُعدّل للسبريد النموذجي لزوج XAUUSD الذي يتراوح بين 15–30 نقطة على وسيط منخفض التكلفة؛ توسيعه سيُتيح للخبير العمل على منصات أكثر ضوضاءً لكنه يُعرّضه لانزلاق سعر الدخول. تضييقه تحت 20 سيمنع الخبير من تسلّح الشبكة خلال الدقائق المتقلبة الأولى من افتتاح لندن. ثانيًا، عتبة ربح السلة تتناسب طرديًا مع InpTakeProfit * InpGridLevels * InpLotSize * 100، لذا فإن أي تركيبة تحافظ على الناتج — مثلًا InpTakeProfit=200, InpGridLevels=5, InpLotSize=0.01 — تُنتج هدف سلة بقيمة 1.00 دولار، بينما تخفيض أي منها للنصف يُخفض الهدف للنصف. العلاقة الرباعية هي المقبض الوحيد المهم لموازنة معدل الربح مقابل حجم الربح، وهو مكشوف عمدًا.

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

في كل تيكة يُنفّذ الخبير حارس انسحاب من القمة إلى القاع على الحساب الحي؛ إذا تجاوز (balance - equity) / balance * 100 قيمة InpMaxDrawdown (20%) تستدعي CloseAllTrades() وتُسَطِّح الصفقات وتحذف الأوامر المعلقة في مرور واحد. بعد الحارس يتحقق مرشّح السبريد (50 نقطة) وIsSafeToTrade_EX03023() من نافذة التداول: الجلسة، مؤقت التهدئة، أرضية Equity، خسارة اليوم والأسبوع، سقف رأس المال، أقصى صفقات في اليوم، وعدد الخسائر المتتالية. مع بقاء السلة حيّة ونظافة السبريد، تجمع GetBasketProfit() الربح والتمويل والعمولة عبر كل الصفقات التي تطابق السحر 22203023 والرمز البياني؛ إذا تجاوز هذا المجموع InpTakeProfit * _Point * InpGridLevels * InpLotSize * 100 تُغلق السلة قسريًا وتُستأنف الدورة. عندما يكون عدد الصفقات صفرًا يلتقط الخبير سعر ask/bid الحاليين كنقطة ارتكاز ويُعيّن gridInitialised = true ويُسلّم سلم الشراء (وسلم البيع اختياريًا) بفواصل 50 نقطة. تُحدّث OnTradeTransaction() الربح/الخسارة المحقق وعدد صفقات اليوم وعدّاد الخسائر المتتالية؛ ثلاث خسائر متراكمة تُفعّل تهدئة 30 دقيقة مشفّرة عبر g_cooldownUntil.

إشارة الدخول

يُسلّم سلّمًا ثابتًا من أوامر BuyLimit تتدرج إلى الأسفل من سعر ask الحالي بفواصل 50 نقطة (5 مستويات افتراضيًا بحجم 0.01 لوت لكل مستوى). إذا كان InpBothDirections true، يُسلّم أيضًا سلم SellLimit معكوسًا يصعد من سعر bid بنفس الخطوة والحجم. لا توجد مؤشرات ولا إشارة — الشبكة ميكانيكية بالكامل.

إشارة الخروج

يُغلق السلة بالكامل (الصفقات والأوامر المعلقة) في اللحظة التي يصل فيها مجموع الربح العائم إلى InpTakeProfit * _Point * InpGridLevels * InpLotSize * 100 أو يتجاوزها. مع الإعدادات الافتراضية، هذا نحو 0.50 دولار عبر سلة XAUUSD. لا توجد أوامر وقف أو أهداف لكل صفقة — الإغلاق على مستوى السلة فقط.

وقف الخسارة

لا يوجد وقف خسارة لكل صفقة على حدة. حارس انسحاب عالمي يراقب (balance - equity) / balance * 100 في كل تيكة؛ إذا تجاوز InpMaxDrawdown (افتراضي 20%) يستدعي الخبير CloseAllTrades() ويُسَطِّح كل شيء. هذا هو الوقف الوحيد في النظام.

جني الأرباح

هدف ربح السلة فقط: InpTakeProfit * _Point * InpGridLevels * InpLotSize * 100 نقطة × قيمة اللوت، افتراضيًا نحو 0.50 دولار عبر 0.05 لوت. لا يوجد جني أرباح لكل صفقة. السلة تُعيد التسليح تلقائيًا بعد إغلاق ناجح عند أول تيكة بصفر صفقة.

الأنسب لـ

المتداولون الذين لديهم على الأقل 100 دولار رأس مال مبدئي ويرغبون في شبكة شفافة وخالية من المؤشرات على XAUUSD M5 (تعمل على H1) ومستعدون لقبول ملف المخاطرة على مستوى السلة. الأنسب للتشغيل على وسيط سبريد منخفض (مرشّح 50 نقطة يفترض سبريد نموذجي 15–30 نقطة) داخل نوافذ لندن 7:00–16:00 ونيويورك 12:00–21:00 بتوقيت GMT حيث سيولة XAUUSD في أعمق مستوياتها. سقف الانسحاب 20% وتهدئة 30 دقيقة بعد ثلاث خسائر تجعله مناسبًا للحسابات التي تتحمل انسحابات عميقة وغير متكررة مقابل مكاسب سلال صغيرة متكررة.

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

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

العائلة: Grid الماجيك: 22203023 الإصدار: 2.00

الوصف: XAUUSD grid strategy EA that places layered buy/sell grid orders at fixed step intervals and closes the entire basket when overall profit target is reached. Includes drawdown safety and spread filter

المؤشرات:

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

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

  • OpenBuyGrid()
  • OpenSellGrid()
  • FillMissingLevels()
  • GetBasketProfit()
  • CountOpenTrades()
  • CountTrades()
  • CountPendingOrders()
  • CloseAllTrades()
  • DetectGMTOffset_EX03023()
  • ServerToGMT_EX03023()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX03023 Grid — Execution Flow (from source analysis)
// Family: Grid
// XAUUSD grid strategy EA that places layered buy/sell grid orders at fixed step intervals and closes the entire basket when overall profit target is reached. Includes drawdown safety and spread filter

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اسحب الإكسبرت على رسم بياني — يُنصح بـ H1 أو H4 لروبوتات الشبكة
  7. 7حدد خطوة الشبكة (نقاط)، الحد الأقصى للأوامر، وحجم اللوت في نافذة الإعدادات
  8. 8فعّل Allow Algo Trading واضغط OK

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

المعاملالافتراضيالوصف
InpMagicNumber22203023Magic Number
InpTradeComment"Psgrowth.com Expert_03023"Trade Comment
InpGridStep50Grid Step (points between levels)
InpGridLevels5Maximum Grid Levels
InpLotSize0.01Lot Size per level
InpTakeProfit100Basket Take Profit (points)
InpMaxDrawdown20.0Max Drawdown % to pause
InpBothDirectionsfalseTrade both Buy and Sell grids
InpMaxSpread50Max Spread (points)
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX03023.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX03023 XAUUSDGridStrategy — layered grid with basket profit close, full 12-layer stack."

#include <Trade\Trade.mqh>

input group "=== Identity ==="
input int    InpMagicNumber   = 22203023;  // Magic Number
input string InpTradeComment  = "Psgrowth.com Expert_03023"; // Trade Comment

input group "=== Grid Settings ==="
input double InpGridStep      = 50;    // Grid Step (points between levels)
input int    InpGridLevels    = 5;     // Maximum Grid Levels
input double InpLotSize       = 0.01;  // Lot Size per level
input int    InpTakeProfit    = 100;   // Basket Take Profit (points)

input group "=== Safety ==="
input double InpMaxDrawdown   = 20.0;  // Max Drawdown % to pause
input bool   InpBothDirections = false; // Trade both Buy and Sell grids

input group "=== Trade Settings ==="
input int    InpMaxSpread     = 50;    // Max Spread (points)

input group "=== Hardening GMT Sessions ==="
input bool     InpUseGMTSessions  = true;
input int      InpLondonStartGMT  = 7;
input int      InpLondonEndGMT    = 16;
input int      InpNewYorkStartGMT = 12;
input int      InpNewYorkEndGMT   = 21;

input group "=== Hardening Capital Protection ==="
input double   InpEquityFloor     = 0.0;
input double   InpDailyLossLimit  = 0.0;
input double   InpWeeklyLossLimit = 0.0;
input double   InpCapitalCap      = 0.0;

input group "=== Hardening Trade Safety ==="
input int      InpMaxTradesPerDay = 50;
input int      InpCooldownMinutes = 30;
input int      InpMaxConsecLosses = 0;

CTrade trade;

double gridBuyBase  = 0;
double gridSellBase = 0;
bool   gridInitialised = false;

//--- Hardening Globals
double   g_realizedToday  = 0;
double   g_realizedWeek   = 0;
datetime g_dayStartTime   = 0;
datetime g_weekStartTime  = 0;
int      g_gmtOffset      = 3;
int      g_dailyTrades    = 0;
int      g_consecLossesHD = 0;
datetime g_cooldownUntil  = 0;

//+------------------------------------------------------------------+

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

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

الوسوم:ex03023gridpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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