Pipsgrowth EX03019 Grid — إكسبرت أدفايزر شبكة
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX03019 Grid — Grid + martingale system for XAUUSD. Places initial buy and a ladder of BuyLimit orders at fixed grid step intervals. Cl. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX03019 — GoldGridMartingale هو إكسبرت أدفايزر MT5 للشبكة بخطوة ثابتة واتجاه شرائي حصري على XAUUSD، مكتوب بأبسط صورة ممكنة للأسلوب الكلاسيكي "سلّم شراء + إغلاق السلة". تصف الترويسة بنية من 12 طبقة، لكن المصدر نفسه يعكس الواقع بصراحة: شراء market لبدء السلة، سلّم أوامر BuyLimit موضوعة مسبقاً على فترات سعرية ثابتة، هدف ربح على مستوى السلة، ومجموعة حماية (Hardening) تتحكم في متى يُسمح ببدء سلال جديدة. لا توجد مؤشرات على الشارت، ولا منطق تأكيد للإشارة، ولا وقف خسارة لكل صفقة. كل قرار يعتمد على السعر والعدد وبوابات الأمان على مستوى رأس المال والسحب.
مسار الدخول يعيش بالكامل داخل OnTick(). عند أول تيكت لا يحتوي فيه الإكسبرت على مراكز مفتوحة وتكون فيه قيمة active = false، يلتقط الإكسبرت سعر الـ ask الحالي، يضبط basketBase = ask، يفعّل active = true، ويستدعي TryBuy_EX03019(InpInitialLot, ask, 0, 0, ...) لتنفيذ الشراء الفوري بدون SL وبدون TP. الدالة تعمل فحص OrderCalcMargin مسبقاً، ثم تحاول حتى 3 مرات عند REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED مع Sleep() مدته 200 مللي ثانية. بعد قبول الأمر الفوري، يدور الإكسبرت من i = 1 إلى InpMaxLevels - 1 ويضع BuyLimit عند ask - i * InpGridStep * _Point. بالقيم الافتراضية — InpGridStep = 40 (أي 40 سنت من المسافة على تسعير الذهب بعشريتين، أو 0.40 على وسيط بـ 5 خانات يسعّر XAUUSD بخانتين عشريتين)، InpMaxLevels = 6، InpInitialLot = 0.01، InpMultiplier = 2.0 — السلّم بأكمله ست مراكز بسعة 0.01 لوت، لأن InpEnableMartingale معطّل افتراضياً. عند تفعيله، تتضاعف اللوتات إلى 0.01 ثم 0.02 ثم 0.04 ثم 0.08 ثم 0.16 ثم 0.32 (أو بحسب ما تسمح خطوة حجم الوسيط)، فيتغير ملف التعرض من "كل الدخول رخيص ومتساوي" إلى "انتقام محمّل على المقدمة" لحظة اختراق السعر لمستويات السلّم.
مسار الخروج هو السلة. BasketProfit() تمشي على PositionsTotal() بالعكس، تصفي بالماجيك 22203019 والرمز _Symbol، وتجمع أرباح المراكز. OpenCount() تفعل نفس الفحص وتُرجع العدد الصحيح. عند كل تيكت، يفحص الإكسبرت: if (cnt > 0 && basket >= InpTakeProfit * _Point * cnt * 100) — بالقيم الافتراضية، هذا يعني 80 سنت لكل مركز مفتوح بعملة الحساب، لأن XAUUSD يساوي 100 أونصة لكل لوت و _Point * 100 = $1 ربح/خسارة لكل لوت لكل دولار كامل من حركة السعر. إذن 1 مركز = $80، 3 مراكز = $240، بحد أقصى العدد الفعلي للمفتوح. لحظة بلوغ هذا الحد، تستدعي CloseAll() على قائمة المراكز وقائمة الأوامر، وتستدعي TryClose_EX03019 و TryOrderDelete_EX03019 لتصفير كل شيء وإلغاء أي BuyLimit معلق متبقي في المرور نفسه. يُعاد ضبط active = false، فتنطلق سلة جديدة عند أول تيكت مسطح.
لا يوجد وقف خسارة لكل صفقة، ولا trailing stop، ولا break-even، ولا إغلاق جزئي. مدخلات SL في trade.Buy() و trade.BuyLimit() مبرمجة على 0 بشكل ثابت. التحكم بالمخاطر يعيش بالكامل في مجموعة Hardening، ومعظمها معطّل افتراضياً:
InpEquityFloor= 0 — اضبطه على 200 مثلاً ليتوقف الإكسبرت عن فتح سلال جديدة حالما ينخفض رأس مال الحساب عن $200.InpDailyLossLimit= 0 — إذا تم ضبطه، فإنg_realizedToday<= -limit يحجب السلال الجديدة.InpWeeklyLossLimit= 0 — نفس الفكرة لكن على نافذة أسبوعية.InpCapitalCap= 0 — اضبطه على 500 مثلاً ولن يفتح الإكسبرت سلالاً جديدة بعد أن يصل الرصيد إلى $500 (أي "قف عن التداول فور وصول الحساب للهدف").InpMaxTradesPerDay= 50 — يحد من عدد التنفيذات في اليوم.InpCooldownMinutes= 30 مع مشغّل 3 خسائر متتالية ضمني — يتم تفعيلg_cooldownUntilداخلOnTradeTransactionبعد أن يصلg_consecLossesHDإلى 3.InpMaxConsecLosses= 0 — هذا المفتاح الرئيسي؛ تركه على 0 يعطل التبريد بالكامل.
أربعة إعدادات افتراضية يجب تضييقها قبل أي نشر مباشر: فعّل InpEquityFloor، فعّل InpDailyLossLimit، فعّل InpWeeklyLossLimit، وفعّل InpMaxConsecLosses بقيمة صغيرة مثل 3 أو 4. مع بقائها كلها على 0 وتعطيل martingale، يمكن لشبكة ذهبية من 6 مستويات أن تعيد أسابيع من الأرباح في حركة 240 سنت واحدة ضد السلة — الحساب ببساطة ليس في صالحك حين تواصل السلة تخفيض متوسط الدخول في اتجاه هارب.
الانضباط الزمني والجلسات مبني في InActiveSession_EX03019(). تسحب الدالة TimeCurrent()، تحوّلها إلى GMT عبر ServerToGMT_EX03019 (تطرح g_gmtOffset المكتشف تلقائياً بواسطة DetectGMTOffset_EX03019 — heuristic أفضل من -12 إلى +12 يسجّل أيام الأسبوع والساعات بين 07:00 و21:00)، وتفحص نافذتين: لندن 07:00–16:00 ونيويورك 12:00–21:00. إذا كان InpUseGMTSessions = true والساعة الحالية تقع خارج النافذتين، تُرجع IsSafeToTrade_EX03019 قيمة false ويرفض الإكسبرت فتح سلة. أيام السبت والأحد وجلسة آسيا (00:00–07:00 GMT) كلها مسطحة افتراضياً. هذا هو السلوك الصحيح لشبكة ذهبية شرائية فقط — السيولة الثقيلة التي تغلق السلال موجودة في لندن وصباح نيويورك.
خطاف OnTradeTransaction هو العمود الفقري للمحاسبة. كل حدث DEAL_ADD مفلتر بالماجيك 22203019 والرمز الحالي يُفك ترميزه: DEAL_ENTRY_IN يزيد g_dailyTrades؛ DEAL_ENTRY_OUT (أو DEAL_ENTRY_INOUT) يجمع profit + swap + commission في g_realizedToday و g_realizedWeek، ثم إما يزيد g_consecLossesHD (خسارة) أو يعيده إلى 0 (ربح). مشغّل التبريد مبرمج على 3 خسائر متتالية — لحظة تفعيله، g_cooldownUntil = TimeCurrent() + 30*60 ويصمد الإكسبرت 30 دقيقة قبل إعادة التقييم. تمرّر UpdateDailyCounters_EX03019 النافذة اليومية عند تغيير يوم الخادم والنافذة الأسبوعية عند تغيير يوم الأسبوع في الخادم، لذا السلة التي تعمل من إغلاق الجمعة إلى افتتاح الاثنين ستحافظ على استمرارية g_realizedWeek بينما يُعاد ضبط g_realizedToday عند منتصف الليل.
دالة لياقة OnTester سطر واحد: (profit / maxDD) * (pf > 1 ? pf : 0)، مقيّدة بـ maxDD > 0 و trades >= 10. هذه الصيغة تكافئ كلاً من معامل الاسترداد ومعامل الربح، لكن PF صفر يُرجع لياقة صفر — لذا يفضّل المحسّن المرور الذي يكون فيه معدل الربح مرتفعاً بما يكفي ليكون PF > 1 مؤثراً. بالنسبة لإكسبرت الشبكة، نادراً ما يمثل عدد الصفقات مشكلة، لكن بوابة 10 صفقات تحجب التحسين على الباك تests القصيرة جداً.
من الناحية الهيكلية، يستدعي الإكسبرت trade.SetExpertMagicNumber(22203019) و trade.SetDeviationInPoints(30) في OnInit، ثم يُكتشف g_gmtOffset تلقائياً ويُملأ g_dayStartTime و g_weekStartTime بقيمة TimeCurrent(). الـ OnDeinit فارغ — لا تنظيف، لا تفكيك لكائنات الشارت، لا لوحة معلومات. لا يوجد OnTrade، لا تايمر، لا معالج أحداث شارت؛ الإكسبرت بأكمله يدور على OnTick و callback معاملة التداول.
القراءة الصريحة: هذا إكسبرت شبكة بسيط عمداً. لا مؤشرات، لا فلتر نظام متطور، لا trailing لكل صفقة، لا break-even، لا إغلاق جزئي، لا ساق تحوط، لا فلتر أخبار. يشتري، يسلّم، ينتظر عودة السلة، ومجموعة الأمان هي ما يبقي الحساب حياً. الافتراضات حذرة على جانب الـ martingale (معطّل) وغير آمنة على جانب حدود الخسارة (كلها صفر) — فعّل حدود الخسارة قبل أن تفعّل الماجيك مباشراً.
تفاصيل الاستراتيجية
في كل تيكت، تستدعي OnTick() أولاً UpdateDailyCounters_EX03019() لتدوير نوافذ الربح/الخسارة اليومية/الأسبوعية عند منتصف الليل بتوقيت الخادم، ثم ترفض التيكت إذا SYMBOL_SPREAD > InpMaxSpread (50 نقطة افتراضياً) أو إذا أبلغت IsSafeToTrade_EX03019() عن حالة محجوبة. مع انفتاح البوابة، تجمع BasketProfit() و OpenCount() على المراكز المفلترة بـ InpMagicNumber = 22203019 و _Symbol؛ إن وُجدت مراكز وتم بلوغ هدف ربح السلة، تستدعي CloseAll() لتصفير كل شيء وإعادة ضبط علم active. إذا كان عدد المراكز صفراً و active = false — أي لا توجد سلة جارية — يلتقط الإكسبرت سعر ask الحالي في basketBase، يفعّل active = true، يطلق الشراء الفوري عبر TryBuy_EX03019، ويضع سلّماً من InpMaxLevels-1 من أوامر BuyLimit متباعدة بمقدار InpGridStep * _Point للأسفل. كل أمر يمر عبر حلقة إعادة محاولة من 3 محاولات عند REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED مع تراجع 200 مللي ثانية، وتعمل TryBuy_EX03019 فحص OrderCalcMargin مسبقاً صريحاً ليرفض نقص الهامش بسرعة دون حرق محاولات الإعادة. يربط OnTradeTransaction خطافاً بأحداث صفقات محرك التداول للحفاظ على g_realizedToday و g_realizedWeek و g_consecLossesHD، وثلاث خسائر متتالية تفعّل تلقائياً g_cooldownUntil = TimeCurrent() + InpCooldownMinutes*60 (افتراضي 30 دقيقة) كتوقف مؤقت. دالة لياقة OnTester هي (profit / maxDD) * (PF > 1 ? PF : 0) مع بوابة صلبة عند 10 صفقات — أي باك تست بعدد صفقات أقل أو maxDD <= 0 يُرجع 0 ويتخطى المحسّن تلك المرور.
ينطلق الإكسبرت عند أول تيكت لا يحتوي فيه على مراكز مفتوحة وتكون فيه قيمة active = false — يفتح شراء market بسعر ask الحالي، يلتقط ذلك السعر في basketBase، ثم يضع سلّماً من أوامر BuyLimit عددها InpMaxLevels-1 عند ask - i * InpGridStep * _Point لكل i من 1 إلى levels-1. مع تعطيل martingale (الافتراضي)، يستخدم كل مستوى شبكة نفس InpInitialLot = 0.01؛ وعند تفعيل martingale يتضاعف كل مستوى لاحق وفق InpInitialLot * pow(InpMultiplier, i) بمضاعف افتراضي 2.0. تُحجب الدخولات بفلتر السبريد (≤ InpMaxSpread = 50 نقطة)، وفلتر جلسات GMT (لندن 07:00–16:00 ونيويورك 12:00–21:00)، وحارس IsSafeToTrade الأوسع (الحد الأدنى لرأس المال، وحدود الخسارة اليومية/الأسبوعية، وحد الصفقات اليومية، والتبريد). ما إن تمتلئ السلة بمراكز، يصمد الإكسبرت حتى بلوغ هدف ربح السلة أو انطلاق بوابة أمان عالمية.
الخروج الأساسي هو هدف ربح على مستوى السلة: لحظة BasketProfit() >= InpTakeProfit * _Point * OpenCount() * 100، يستدعي الإكسبرت CloseAll() لتصفير كل المراكز وإلغاء كل BuyLimit معلق، ثم يعيد ضبط active = false لتتشكّل سلة جديدة عند أول تيكت مسطح. لا يوجد جني أرباح لكل أمر، ولا trailing stop، ولا break-even — تبقى أوامر الشبكة مفتوحة حتى بلوغ السلة للهدف أو انطلاق بوابة أمان عالمية. يراقب OnTradeTransaction كل DEAL_ADD ويراكم الربح/الخسارة المحقق في g_realizedToday و g_realizedWeek، اللذان يغذّيان فحوصات حدود الخسارة داخل IsSafeToTrade_EX03019. سلسلة خسائر بعدد InpMaxConsecLosses (افتراضي 0 = معطّل) تضع الإكسبرت في تبريد حتى g_cooldownUntil، فتتوقف السلال الجديدة بينما تستمر المراكز المفتوحة.
لا يحمل أي أمر شبكة فردي وقف خسارة — تُمرَّر مدخلات SL لكل صفقة كقيمة 0 إلى كل من trade.Buy و trade.BuyLimit. التحكم بالمخاطر على مستوى المحفظة: InpEquityFloor و InpDailyLossLimit و InpWeeklyLossLimit و InpCapitalCap كلها اختيارية وقيمها الافتراضية 0، ما يعني أن الإكسبرت لن يحجب سلالاً جديدة حتى تضبط واحداً منها على الأقل — وهذا أهم شيء تفعله قبل تشغيل شبكة ذهبية من 6 مستويات مباشراً.
جني أرباح السلة هو InpTakeProfit * _Point * OpenCount() * 100 — 80 (افتراضي) ثابتة لكل مركز مفتوح بعملة الحساب، فـ 1 مركز = $80، 3 مراكز = $240، بحد أقصى العدد الفعلي للمفتوح. لا يوجد TP لكل أمر، ولا إغلاق جزئي، ولا تخارج تدريجي — لحظة بلوغ السلة للهدف، تُغلق كل المراكز في تمريرة CloseAll() واحدة ويلغى سلّم BuyLimit المعلق في المرور نفسه.
شبكة ذهبية شرائية فقط بمخاطرة عالية جداً لـ XAUUSD على M5 و H1 بحد أدنى اسمي $100، لكن سلّم 6 مستويات ومضاعف martingale 2.0× لا معنى لهما إلا على حسابات بهامش حر لا يقل عن $1,000 لكل 0.01 لوت من الذهب — استخدم لوتات صغيرة (InpInitialLot = 0.01) واترك InpEnableMartingale على false للتداول المباشر. لندن (07:00–16:00 GMT) وفترة تداخل لندن–نيويورك (12:00–21:00 GMT) هما الجلستان النشطتان؛ عطلة نهاية الأسبوع وجلسة آسيا مسطحتان، فلا تتوقع تنفيذات خارج هاتين النافذتين. استخدم وسيط ECN بسبريد منخفض (Exness، IC Markets) واضبط InpMaxSpread = 30 أو أقل على الذهب، لأن السلة حساسة لتكلفة السبريد عند كل مستوى شبكة. قبل التشغيل المباشر، اضبط InpEquityFloor و InpDailyLossLimit و InpWeeklyLossLimit و InpMaxConsecLosses على قيم غير صفرية — تركها كلها على 0 يعني أن الإكسبرت سيواصل فتح السلال حتى يفرغ الحساب.
منطق الاستراتيجية
Pipsgrowth EX03019 Grid — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Grid
الماجيك: 22203019
الإصدار: 2.00
الوصف:
Grid + martingale system for XAUUSD. Places initial buy and a ladder of BuyLimit orders at fixed grid step intervals. Closes basket when combined profit target is reached. Martingale lot multiplier is OFF by default for safety. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
BasketProfit()OpenCount()CloseAll()DetectGMTOffset_EX03019()ServerToGMT_EX03019()InActiveSession_EX03019()UpdateDailyCounters_EX03019()IsSafeToTrade_EX03019()TryBuy_EX03019()TryBuyLimit_EX03019()
// Pipsgrowth EX03019 Grid — Execution Flow (from source analysis)
// Family: Grid
// Grid + martingale system for XAUUSD. Places initial buy and a ladder of BuyLimit orders at fixed grid step intervals. Closes basket when combined profit target is reached. Martingale lot multiplier is OFF by default for safety. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpEnableMartingale | false | Enable martingale lot progression |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX03019 GoldGridMartingale — grid + martingale for XAUUSD, full 12-layer stack."
#include <Trade\Trade.mqh>
input group "=== Settings ==="
input double InpInitialLot = 0.01;
input double InpMultiplier = 2.0;
input bool InpEnableMartingale = false; // Enable martingale lot progression
input int InpGridStep = 40;
input int InpMaxLevels = 6;
input int InpTakeProfit = 80;
input int InpMagicNumber = 22203019;
input int InpMaxSpread = 50;
input string InpTradeComment = "Psgrowth.com Expert_03019";
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 basketBase = 0;
bool active = 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;
void OnTick() {
UpdateDailyCounters_EX03019();
if(SymbolInfoInteger(_Symbol,SYMBOL_SPREAD) > InpMaxSpread) return;
if(!IsSafeToTrade_EX03019()) return;
double basket = BasketProfit();
int cnt = OpenCount();
if(cnt > 0 && basket >= InpTakeProfit * _Point * cnt * 100) { CloseAll(); active=false; return; }
if(cnt == 0 && !active) {
double ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
basketBase=ask; active=true;الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية شبكة
Pipsgrowth EX03022 Grid — إكسبرت أدفايزر شبكة
Pipsgrowth EX03022 Grid — Hedging + grid recovery EA that opens opposing positions at configurable distance. Uses a hedge-and-recover approach wit. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX03027 Grid — إكسبرت أدفايزر شبكة
Pipsgrowth EX03027 Grid — Equal-lot pyramid scalper using EMA crossover + SuperTrend confirmation. Pyramiding with fixed or auto lot capped by Max. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX03021 Grid — إكسبرت أدفايزر شبكة
Pipsgrowth EX03021 Grid — Grid system with optional martingale lot progression for major pairs. Places initial buy and a ladder of BuyLimit orders. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.