Pipsgrowth EX07009 MA — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX07009 MA — Basic MA crossover EA using Fast/Slow EMA. Entry: Fast EMA crosses above Slow EMA = BUY; crosses below = SELL. Fixed lot. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX07009 هو أبسط مستشار خبير في عائلة المتوسطات المتحركة (MA) — تقاطع تقليدي بين متوسط متحرك أسي سريع وآخر بطيء، بحجم لوت ثابت، ووقف خسارة بمسافة نقاط ثابتة، وهدف ربح بمسافة نقاط ثابتة، وسياسة تسمح بفتح صفقة واحدة فقط في كل مرة. لا يوجد مصنف لنظام السوق، ولا مرشح انحياز لإطار زمني أعلى، ولا إغلاق جزئي في التدفق الحي، ولا توقف زمني، ولا تعطيل للأخبار، ولا قطع في نهاية الأسبوع، ولا إدارة لمنحنى Equity، ولا فلتر جلسة، ولا إدارة رأس مال نسبي. كتلة الاستراتيجية في الكود المصدري هي بالضبط تقاطع 9/21 EMA الذي يظهر في كل كتاب تمهيدي عن التداول، تمت ترجمته إلى MT5 باستخدام مؤشرين iMA، وثلاثة مساعدات تداول MQL5، وسبعة مدخلات من المستخدم. نص تعليق الصفقة هو Psgrowth.com Expert_07009 والرقم السحري هو 22207009، وهو ما يظهر في تبويب التداول على كل صفقة وكل صفقة سابقة.
يقع اكتشاف الإشارة داخل OnTick() لكنه محكوم بفحص IsNewBar()، لذا يعمل مرة واحدة فقط عند إغلاق الشمعة. عندما تنفتح شمعة جديدة، ينسخ المستشار آخر ثلاث قيم من EMA السريع (9) وEMA البطيء (21)، كلاهما مطبق على أسعار الإغلاق للإطار الزمني العامل، في مصفوفتين صغيرتين. يتم التعرف على التقاطع بمقارنة الشمعة [2] بالشمعة [1]: تنطلق إشارة الشراء عندما كانت قيمة الشمعة [2] من EMA السريع عند أو تحت EMA البطيء وأغلقت الشمعة [1] فوقه للتو. تنطلق إشارة البيع على الحالة المعكوسة. لاحظ أن المقارنة تستخدم bar[2] وbar[1] وليس bar[1] وbar[0] — أي أن المستشار يبحث فعلياً شمعة إضافية للخلف ويطلق الإشارة فقط عند نمط مؤكد من شمعتين، مما يزيل خطر إعادة الرسم (repaint) الشائع الذي يأتي من قراءة الشمعة المفتوحة. بعد اكتشاف التقاطع، يستدعي المستشار HasOpenPosition() للتأكد من عدم وجود صفقة مفتوحة حالياً للرقم السحري والرمز، وعندها فقط يوجه الأمر إلى OpenBuy() أو OpenSell(). نظراً لعدم وجود تكديس (pyramiding)، فإن اللحظة التي تفتح فيها تذكرة، كل تيك لاحق يسجل شمعة جديدة سيصطدم بحارس HasOpenPosition() ويعود دون أي إجراء.
الدخول نفسه هو استدعاء واحد لـ CTrade. تقرأ دالة OpenBuy() سعر ASK الحالي عبر SymbolInfoDouble(_Symbol, SYMBOL_ASK)، وتطرح InpStopLoss * _Point للحصول على وقف الخسارة، وتضيف InpTakeProfit * _Point للحصول على الهدف، وترسل أمر سوق بحجم InpLotSize وتعليق الصفقة. تعكس دالة OpenSell() المنطق بالنسبة لسعر BID. الافتراضي لـ InpLotSize هو 0.01، ووقف الخسارة الافتراضي هو 50 نقطة، والهدف الافتراضي هو 100 نقطة، مما يعطي نسبة مخاطرة/مكافأة 1:2 في كل دخول دون أي تحجيم. ولأن حجم اللوت مشفر والوقف مشفر، فإن حجم الصفقة ثابت باللوتات والمخاطرة بالدولار هي أي ما يعادله 0.01 لوت عند 50 نقطة وقف على XAUUSD على الوسيط — حوالي 0.50 دولار لكل صفقة على سعر ذهب نموذجي من خمسة أرقام. يتم تكوين نسخة CTrade مرة واحدة في OnInit() باستخدام SetExpertMagicNumber(InpMagic) وSetDeviationInPoints(10)، لذا فإن 10 نقاط من الانزلاق (slippage) هي المخزن المؤقت الوحيد بين سعر الطلب والتنفيذ.
ينفذ OnInit أيضاً فحص سلامة: إذا كان InpFastEMAPeriod أكبر من أو يساوي InpSlowEMAPeriod، أو إذا كانت أي فترة غير موجبة، يطبع المستشار خطأ في السجل ويُرجع INIT_PARAMETERS_INCORRECT بحيث يُجبر المستخدم على إصلاح المدخلات قبل أن يبدأ الرسم البياني في التداول. بعد إنشاء كلا المؤشرين، تحرر دالة OnDeinit() المقابض في OnDeinit() بحيث لا يؤدي تبديل الإطار الزمني أو الرمز إلى تسرّب مقابض المؤشرات في Strategy Tester. مجموعة المؤشرات بالكامل هي مقبضي iMA — لا يوجد ATR، ولا ADX، ولا Bollinger Band، ولا EMA لإطار زمني أعلى، ولا فلتر حجم، ولا منطق لأنماط الشموع، ولا مذبذب زخم. هذا مقصود: يصف الكود المصدري المستشار بأنه BasicMAEA والتنفيذ يحترم هذا الوصف.
تُفوَّض إدارة الصفقات إلى الخادم. بمجرد إرسال الأمر، يحتفظ الوسيط بوقف الـ 50 نقطة وهدف الـ 100 نقطة على الصفقة. توجد دوال TryClose_EX07009 وTryClosePartial_EX07009 وTryModify_EX07009 في الكود المصدري لكنها لا تُستدعى من OnTick() في البناء الحالي — إنها موجودة كبنية تحتية لمنطق إدارة مستقبلي. جميع مساعدات إعادة المحاولة تكرر حتى ثلاث مرات عندما يُرجع الخادم TRADE_RETCODE_REQUOTE أو TRADE_RETCODE_TIMEOUT أو TRADE_RETCODE_PRICE_OFF أو TRADE_RETCODE_PRICE_CHANGED؛ تنام دالة الإغلاق والإغلاق الجزئي لمدة 200 مللي ثانية بين المحاولات، وتنام دالة التعديل لمدة 100 مللي ثانية. هذا يعني أن أي بناء مستقبلي يربط رatchet لوقف الخسارة، أو إغلاقاً جزئياً، أو وحدة وقف تعادل بـ OnTick() سيرث طبقة إعادة محاولة جاهزة مجاناً.
نظراً لأن الوقف والهدف على جانب الخادم ولا يقوم المستشار بإدارة الصفقة فعلياً بعد الدخول، فإن مسارات الخروج الوحيدة في البناء الحالي هي: (أ) يصل الوسيط إلى وقف الـ 50 نقطة ويغلق الصفقة بخسارة، (ب) يصل الوسيط إلى هدف الـ 100 نقطة ويغلق الصفقة بربح، (ج) يغلق المستخدم الصفقة يدوياً من Terminal، أو (د) تُولّد الشمعة التالية تقاطعاً جديداً في الاتجاه المعاكس ويرفض المستشار التصرف لأن الصفقة لا تزال مفتوحة، تاركاً الوقف والهدف الأصليين يقومان بالعمل. نسبة المخاطرة/المكافأة الافتراضية 1:2 مع تقاطع 9/21 EMA على M5 من XAUUSD تعني أن معظم الصفقات الرابحة ستكون عبر أخذ الوسيط لهدف الـ 100 نقطة، ومعظم الصفقات الخاسرة ستكون عبر أخذ الوسيط لوقف الـ 50 نقطة.
يُوصى باستخدام المستشار على XAUUSD بإطار M5 (الإطار الافتراضي)، لكن تُبنى مقابض المؤشرات باستخدام _Symbol و_Period لذا فهو قابل للنقل إلى أي رمز آخر وأي إطار زمني من M1 إلى H1. التبديل إلى H1 بتغيير الإطار الزمني للرسم البياني هو التعديل الأكثر شيوعاً — يُنتج تقاطع 9/21 على H1 إشارة واحدة تقريباً في اليوم على الذهب، ويتدرج وقف وهدف النقاط الثابتة 50/100 بنفس المضاعف الذي يحوّل تقلبات M5 إلى H1، لذا فإن مخاطرة الدولار لكل صفقة تكون أقل بشكل طبيعي على H1. مدخلات المستخدم محدودة عمداً: لا توجد كتلة لإدارة رأس المال، ولا مصنف لنظام السوق، ولا فلتر أخبار، ولا لوحة معلومات. أي شخص يبحث عن هذه الطبقات يجب أن ينظر إلى مستشارين آخرين في العائلة مثل EX07001 أو EX07003؛ EX07009 هو أرضية العائلة — مفيد كخط أساس نظيف يمكن مقارنة المستشارين الأكثر تعقيداً به، ومفيد كمثال تعليمي لأي شخص يريد أن يرى كيف يبدو مستشار MT5 بأدنى حد، ومصدر إشارة تقدير سريع عندما يكون الشيء المهم الوحيد هو ما إذا كان التقاطع السريع/البطيء صعودياً أم هبوطياً على الشمعة التالية.
تفاصيل الاستراتيجية
في كل تيك، تفحص IsNewBar() ما إذا كانت شمعة الإطار الزمني العامل قد دارت؛ إن لم تدر، تعود الدالة فوراً. عندما تنفتح شمعة جديدة، تنسخ OnTick() آخر ثلاث قيم من iMA(9) وiMA(21) في مصفوفتين صغيرتين، وتقارن الشمعة [2] بالشمعة [1] لكلتيهما، ولا تُطلق إشارة شراء أو بيع إلا عند استيفاء شرط تقاطع الشمعة المغلقة وتأكيد HasOpenPosition() عدم وجود تذكرة مفتوحة بالرقم السحري 22207009. يُرسل الأمر عبر CTrade.Buy أو CTrade.Sell بحجم اللوت 0.01 المكوَّن، ووقف الخسارة 50 نقطة المحسوب مقابل ASK/BID، وهدف 100 نقطة، وتعليق الصفقة Psgrowth.com Expert_07009. تم إعداد CTrade في OnInit() بـ 10 نقاط انزلاق والرقم السحري، ويتحقق المستشار من فترات EMA قبل الإطلاق. تُحرَّر مقابض المؤشرَين في OnDeinit() لتجنب التسرّب. مساعدات إدارة التداول الثلاثة — TryClose_EX07009 وTryClosePartial_EX07009 وTryModify_EX07009 — مُجمَّعة في الملف التنفيذي وتُجري حتى ثلاث محاولات مع فترات نوم 200/200/100 مللي ثانية على رموز الإرجاع REQUOTE وTIMEOUT وPRICE_OFF وPRICE_CHANGED، لكن لا يُستدعى أي منها من تدفق OnTick() الحي في هذا البناء.
تنطلق الدخول على تقاطع EMA سريع/بطيء لشمعة مغلقة: شراء عندما يغلق EMA(9) على الشمعة [1] فوق EMA(21) بعد أن كان عنده أو تحته على الشمعة [2]؛ بيع على الحالة المعكوسة. لا يتصرف المستشار إلا على افتتاح الشموع عبر بوابة IsNewBar()، وتحجب HasOpenPosition() أي دخول جديد بينما تذكرة بالرقم السحري 22207009 لا تزال مفتوحة — بمعنى أن التقاطع الثاني في الاتجاه المعاكس يُتجاهل حتى تُغلق الصفقة الحالية.
تُفوَّض الخروج إلى الخادم: يُغلق الوسيط الصفقة عند وقف الـ 50 نقطة أو هدف الـ 100 نقطة، وكلاهما يُرسل مع الأمر الأصلي. لا يوجد وقف متحرك، ولا وحدة وقف تعادل، ولا إغلاق جزئي، ولا خروج بإشارة عكسية مربوط بـ OnTick() في هذا البناء — توجد مساعدات إعادة المحاولة الثلاثة (TryClose_EX07009 وTryClosePartial_EX07009 وTryModify_EX07009) في الكود المصدري للتوسع المستقبلي لكنها غير مستدعاة حالياً.
وقف الخسارة الأولي هو InpStopLoss = 50 نقطة تحت سعر ASK لصفقات الشراء وفوق سعر BID لصفقات البيع، يُرسل إلى الخادم مع الأمر. لا يوجد رatchet من جانب العميل أو وقف تعادل في البناء الحالي — يظل الوقف ثابتاً طوال عمر الصفقة. تُكوَّن CTrade بـ 10 نقاط انحراف، وهي المخزن المؤقت الوحيد بين وقف الطلب والتنفيذ.
هدف الربح النهائي هو InpTakeProfit = 100 نقطة من نقطة الدخول، يُرسل إلى الخادم وقت الأمر. نسبة المخاطرة/المكافأة 1:2 ثابتة: مع وقف 50 نقطة وهدف 100 نقطة تنطبق نفس مسافة ATR ومقياس النقاط على كل صفقة، لذا فإن الرابح دائماً ضعف الخاسر من حيث السعر. لا يوجد هدف جزئي ولا خروج متدرج — تُغلق كل صفقة دفعة واحدة عند الوقف أو الهدف.
يُنشر بشكل أفضل على XAUUSD M5 (الرسم البياني الافتراضي) بحساب مايكرو 100 دولار، مع إبقاء المدخلات السبعة على قيمها الافتراضية: EMA 9/21، لوت 0.01، وقف خسارة 50 نقطة، هدف 100 نقطة، الرقم السحري 22207009. يعني الانحراف البالغ 10 نقاط في CTrade وهندسة النقاط الثابتة 50/100 أن المستشار يكون في أفضل حالاته على وسيط يظل فيه سبريد XAUUSD تحت 10 نقاط في معظم أوقات اليوم، وعلى رمز يكون فيه 0.01 لوت هو الحد الأدنى القابل للتداول. إن تحويل الرسم البياني إلى H1 دون تغييرات أخرى في المدخلات أنظف طريقة لإبطاء النظام إلى إشارة واحدة تقريباً في اليوم على الذهب؛ يُعطي تقاطع 9/21 على M1 لأي زوج FX رئيسي نسخة أعلى ضجيجاً but أكثر نشاطاً.
منطق الاستراتيجية
Pipsgrowth EX07009 MA — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: MA
الماجيك: 22207009
الإصدار: 2.00
الوصف:
Basic MA crossover EA using Fast/Slow EMA. Entry: Fast EMA crosses above Slow EMA = BUY; crosses below = SELL. Fixed lot sizing with SL/TP in points. Single position at a time. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
IsNewBar()HasOpenPosition()OpenBuy()OpenSell()TryClose_EX07009()TryClosePartial_EX07009()TryModify_EX07009()
// Pipsgrowth EX07009 MA — Execution Flow (from source analysis)
// Family: MA
// Basic MA crossover EA using Fast/Slow EMA. Entry: Fast EMA crosses above Slow EMA = BUY; crosses below = SELL. Fixed lot sizing with SL/TP in points. Single position at a time. 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اسحب الإكسبرت على رسم H4 أو اليومي للحصول على أفضل النتائج
- 7حدد فترات EMA وعتبة ADX وحجم اللوت في نافذة الإعدادات
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpTradeComment | "Psgrowth.com Expert_07009" | Trade Comment |
| InpMagic | 22207009 | Magic number |
| InpFastEMAPeriod | 9 | Fast EMA period |
| InpSlowEMAPeriod | 21 | Slow EMA period |
| InpLotSize | 0.01 | Fixed lot size |
| InpStopLoss | 50 | Stop Loss in points |
| InpTakeProfit | 100 | Take Profit in points |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX07009 BasicMAEA — Basic Fast/Slow EMA crossover, full 12-layer stack."
#include <Trade/Trade.mqh>
//--- Inputs
input group "=== Identity ==="
input string InpTradeComment = "Psgrowth.com Expert_07009"; // Trade Comment
input uint InpMagic = 22207009; // Magic number
input group "=== Strategy ==="
input int InpFastEMAPeriod = 9; // Fast EMA period
input int InpSlowEMAPeriod = 21; // Slow EMA period
input group "=== Money Management ==="
input double InpLotSize = 0.01; // Fixed lot size
input int InpStopLoss = 50; // Stop Loss in points
input int InpTakeProfit = 100; // Take Profit in points
//--- Global variables
CTrade g_trade;
int g_handleFastEMA;
int g_handleSlowEMA;
datetime g_lastBarTime = 0;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
// Check inputs
if(InpFastEMAPeriod >= InpSlowEMAPeriod || InpFastEMAPeriod <= 0 || InpSlowEMAPeriod <= 0)
{
Print("Invalid EMA periods");
return(INIT_PARAMETERS_INCORRECT);
}
// Set trade parameters
g_trade.SetExpertMagicNumber(InpMagic);
g_trade.SetDeviationInPoints(10);
// Create indicators
g_handleFastEMA = iMA(_Symbol, _Period, InpFastEMAPeriod, 0, MODE_EMA, PRICE_CLOSE);
g_handleSlowEMA = iMA(_Symbol, _Period, InpSlowEMAPeriod, 0, MODE_EMA, PRICE_CLOSE);
if(g_handleFastEMA == INVALID_HANDLE || g_handleSlowEMA == INVALID_HANDLE)
{
Print("Failed to create EMA handles");
return(INIT_FAILED);
}
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية متابعة الاتجاه
Pipsgrowth EX16080 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16080 Trend — EURUSD triple-EMA trend follower — trades EMA20/50 cross with EMA200 filter on H4, ATR-based SL/TP, risk-percent sizing . إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX16081 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16081 Trend — Gold trend EA catching major XAUUSD trends using EMA 50/ 200 crossover on H4 with daily structure swing high/low and Fib. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX16033 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16033 Trend — Price-action scalping EA using distance-based grid entries with net-take-profit targeting and optional lot multiplier. 1. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.