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

Pipsgrowth EX07007 MA — إكسبرت أدفايزر إكسبرت أدفايزر

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

Pipsgrowth EX07007 MA — Triple SMA crossover EA using three moving averages with configurable spread separation. Entry: MA1 > MA2 > MA3 with min. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX07007 MA هو مستشار آلي مبني على تقاطع ثلاث متوسطات متحركة بسيطة، وفكرته الأساسية واضحة: المتوسطات الثلاثة يجب أن تصطف بترتيب صحيح، وأن تفصل بينها مسافة دنيا بالنقاط قبل السماح بأي صفقة. لا يوجد فلتر نظام سوق، ولا حجب أخبار، ولا بوابة جلسات، ولا مارتينجال، ولا شبكة، ولا إغلاق جزئي. الاستراتيجية مقصودة في بساطتها — إشارة اتجاه خالصة مع طبقة بسيطة من فلتر ضد الانعكاسات السريعة — وهذا يجعل المستشار قابلاً للنقل بين أزواج العملات الرئيسية والمعادن، ويبقى مفهوماً بعد قراءة واحدة للكود المصدري.

ثلاثة مؤشرات iMA تدفع كامل عملية اتخاذ القرار. تُنشأ في OnInit عبر iMA(symbol, period, period_MA, shift, MODE_SMA, PRICE_CLOSE) وتُربط كالتالي: MA1 بفترة 9 وإزاحة 0، MA2 بفترة 14 وإزاحة 1، MA3 بفترة 29 وإزاحة 2. تتبع الفترات الافتراضية تتابعاً سريعاً/متوسطاً/بطيئاً، فتتفاعل MA1 أولاً، وتؤكد MA2، وتحدد MA3 الاتجاه العام. قيم الإزاحة غير صفرية على الخطين الأبطأ (شمعة واحدة للخلف لـ MA2، شمعتان للخلف لـ MA3)، مما يؤخر دورانها قليلاً ويشدد تعريف الاتجاه — فالخط السريع يجب أن يتجاوز خطوطاً متأخرة عمداً، فيكون التقاطع الصحيح حاسماً بما يكفي لإغلاق الفجوة. يُحسب m_adjusted_point من m_symbol.Point() مضروباً في 1 أو 10 حسب عدد الخانات العشرية للرمز (العملات الثلاثية أو الخماسية الخانات تأخذ الضرب في 10)، ثم يُعرَّف ExtMAspread على أنه InpMAspread (افتراضياً 10 نقاط) مضروباً في m_adjusted_point. المسافة الداخلية التي تحتاجها المتوسطات الثلاثة بينها هي فجوة سعرية حقيقية، وليس مجرد عدد نقاط خام، مما يحافظ على ثبات العتبة على XAUUSD (بخانتين عشريتين) وعلى EURUSD (بخمس خانات).

الدخول ميكانيكي بحت. في كل تيكة، تنسخ OnTick() قيمة الشمعة-0 الحالية من كل مقبض iMA عبر iMAGet()، ثم تقيّم شرطين بالتتابع. يُسمح بالشراء فقط عندما ma1_0 > ma2_0 + ExtMAspread و ma2_0 > ma3_0 + ExtMAspread، مع count_buys == 0. والبيع هو المرآة: ma1_0 < ma2_0ExtMAspread و ma2_0 < ma3_0ExtMAspread، مع count_sells == 0. الشرطان معاً يعنيان أن الخط السريع يجب أن يكون فوق الأوسط بفجوة واضحة، والأوسط فوق البطيء بفجوة واضحة، وألا تكون هناك صفقة معاكسة مفتوحة بالفعل. بعد عودة OpenBuy(0.0, 0.0) أو OpenSell(0.0, 0.0)، تنهي الدالة عملها فوراً حتى لا يُفعَّل الاتجاه الثاني على نفس التيكة. تمرر كل من OpenBuy و OpenSell القيمة 0.0 لكل من sl و tp، وهذا مقصود: الاستراتيجية لا تستخدم وقف خسارة أو هدف ربح صلبين على الأمر نفسه.

منطق الخروج غير متماثل مقارنة بالدخول، وهو المكان الذي يوجد فيه التحكم الفعلي في المخاطرة. يُغلق الشراء المفتوح عبر TryClose_EX07007 عندما ma1_0 < ma2_0ExtMAspread/2.0، ويُغلق البيع المفتوح عندما ma1_0 > ma2_0 + ExtMAspread/2.0. تتطلب بوابة الدخول ExtMAspread كاملة بين MA1 و MA2، لكن بوابة الخروج تُفعَّل بنصف تلك المسافة. الأثر العملي هو أن الصفقة المفتوحة تبقى في مكانها عبر التراجعات الطفيفة (انجراف الخط السريع نحو الأوسط دون أن يتقاطع فعلياً)، وتُغلق في اللحظة التي ينكسر فيها الهيكل فعلاً. لا يوجد تريلينج ستوب، ولا نقل لنقطة التعادل، ولا وقف زمني — المسار الوحيد للخروج من صفقة هو انعكاس MA1/MA2 المعتمد على الفجوة.

حجم الصفقة ثابت عند InpLots (افتراضياً 0.1). تُشغَّل CheckVolumeValue() في OnInit للتأكد من أن قيمة اللوت تقع بين m_symbol.LotsMin() و m_symbol.LotsMax() وأنها مضاعف دقيق لـ m_symbol.LotsStep()؛ وإن فشل الاختبار، يرفض المستشار البدء بـ INIT_PARAMETERS_INCORRECT. تُستدعى CTrade.CheckVolume أيضاً قبل OrderSend مباشرة للحماية من نقص الهامش، وتختار m_trade.SetTypeFillingBySymbol وضع التعبئة الصحيح للوسيط تلقائياً. الانزلاق مضبوط على 10 نقاط عبر m_trade.SetDeviationInPoints(10)، والرقم السحري 22207007 مضبوط عبر SetExpertMagicNumber. تعليق الأمر قابل للضبط عبر InpTradeComment.

منطق إعادة المحاولة مدمج في ثلاثة أغلفة. TryClose_EX07007 و TryClosePartial_EX07007 و TryModify_EX07007 يلف كل منها حتى ثلاث مرات عند TRADE_RETCODE_REQUOTE و TRADE_RETCODE_TIMEOUT و TRADE_RETCODE_PRICE_OFF و TRADE_RETCODE_PRICE_CHANGED مع نوم 200 مللي ثانية بين المحاولات (غلاف التعديل ينام 100 مللي ثانية ولا يعيد المحاولة إلا عند REQUOTE/TIMEOUT). عند أي retcode آخر تنكسر الحلقة فوراً. الأغلفة معرَّفة لكن TryClose_EX07007 فقط هو الموصول بالمنطق الحي — لا يوجد مسار تريلينج أو جزئي يستدعيها في هذا البناء. هذا التفاوت يستحق الانتباه لأي شخص يقرأ الكود: شبكة الأمان موجودة للمسار الذي يستخدمه المستشار فعلاً.

يتحدث ترويسة الملف عن بنية من اثنتي عشرة طبقة (نظام السوق، الإشارة، الدخول، التأكيد، عدم التداول، سقف رأس المال، المخاطرة، التحجيم، الإدارة، الخروج، التوسع، OnTester)، لكن التطبيق الفعلي أكثر اختصاراً. الطبقات التي تعمل فعلاً على كل تيكة هي: قراءة المتوسطات → فحص الصفقات → إغلاق أي صفقة انهارت فيها فجوة MA1/MA2 → وإلا فتح اتجاه جديد إن توسعت الفجوة. لا يوجد فلتر جلسات، ولا حجب أخبار، ولا حارس خسارة يومية، ولا حماية لحد أدنى من الرصيد، ولا مارتينجال، ولا صيغة OnTester. أي شخص يتوقع إطار الاثنتي عشرة طبقة بالكامل يجب أن يدرك أن هذا البناء يقدم نسخة مختصرة.

عملياً، يُستخدم EX07007 من قبل متداول يريد مصدر إشارة صغيراً وشفافاً ومستعداً لإدارة مخاطر المحفظة بنفسه — على سبيل المثال، تشغيله داخل إعداد متعدد المستشارين مع سقف مخاطر خارجي، أو تداول الإشارة كاداة فرز. ولأنه لا يوجد وقف لكل صفقة، فإن السوق الذي يفجوة أو يتجه بقوة ضد الدخول سيبقي الصفقة مفتوحة حتى ينعكس هيكل المتوسطات أخيراً. على المستخدم الذي يحتاج إلى وقوف صلبة للامتثال لشركات التمويل أن يضيفها خارجياً، أو يختار بناءً آخر في هذه العائلة يوصل SL/TP إلى OpenBuy/OpenSell (هذه المعاملات 0.0 في هذا الملف وتحتاج إلى ضبط في المصدر). لاستخدامه المقصود — متابعة اتجاه بثلاثة خطوط على أدوات سائلة مع تعريف تقاطع واضح — يكون المستشار صريحاً فيما يفعله وسهل القراءة.

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

تُنشئ OnInit ثلاثة مقابض iMA على رمز الرسم البياني والإطار الزمني عبر iMA(symbol, period, period, shift, MODE_SMA, PRICE_CLOSE) وتحول InpMAspread (افتراضياً 10 نقاط) إلى مسافة سعرية حقيقية عبر m_adjusted_point. في كل تيكة، تقرأ OnTick() قيم الشمعة-0 من المقابض الثلاثة عبر iMAGet() وتمشي على الصفقات المفتوحة بالعكس: أي شراء انخفض فيه MA1 إلى ما دون MA2 بنصف ExtMAspread يُغلق عبر TryClose_EX07007، وأي بيع ارتفع فيه MA1 فوق MA2 بنصف ExtMAspread يُغلق بالطريقة نفسها. إن لم يُغلَق شيء، تتحقق الدالة من الفرص الجديدة — شراء عندما يكون MA1 فوق MA2 و MA3 بـ ExtMAspread كاملة مع عدم وجود شراء مفتوح، وبيع في الحالة المعاكسة. حجم الصفقة ثابت عند InpLots (افتراضياً 0.1) مع CTrade.CheckVolume كحماية قبل الإرسال. لا يوجد فلتر جلسات، ولا مصنف نظام سوق، ولا حجب أخبار، ولا حماية لحد أدنى من الرصيد، ولا سقف خسارة يومية، ولا مارتينجال، ولا صيغة OnTester — قائمة الاثنتي عشرة طبقة في ترويسة الملف طموحية؛ المنطق الحي الفعلي هو تقاطع الخطوط الثلاثة مع عتبة خروج بنصف الفجوة.

إشارة الدخول

يُفعَّل الشراء عندما يكون المتوسط السريع (فترة 9) فوق المتوسط الأوسط (فترة 14، إزاحة 1) بفجوة لا تقل عن InpMAspread (افتراضياً 10 نقاط) والمتوسط الأوسط فوق المتوسط البطيء (فترة 29، إزاحة 2) بنفس الفجوة، مع عدم وجود صفقة شراء مفتوحة. البيع هو المرآة. تمرر كل من OpenBuy و OpenSell القيمة 0.0 لوقف الخسارة وجني الأرباح — لا يوجد وقف صلب على الأمر في الخادم.

إشارة الخروج

تُغلق صفقة الشراء المفتوحة عندما ينخفض المتوسط السريع تحت المتوسط الأوسط بنصف مسافة InpMAspread (5 نقاط بالإعدادات الافتراضية)، وتُغلق صفقة البيع المفتوحة عند الشرط المعاكس. لا يوجد تريلينج ستوب، ولا نقل لنقطة التعادل، ولا وقف زمني — مسار الخروج الوحيد هو انعكاس MA1/MA2. يمر الإغلاق المعاكس عبر TryClose_EX07007، الذي يعيد المحاولة حتى ثلاث مرات عند رموز requote و timeout و price-off و price-changed مع نوم 200 مللي ثانية بين المحاولات.

وقف الخسارة

لا يُرفق أي وقف خسارة بالأمر — تستدعي كل من OpenBuy و OpenSell دوال m_trade.Buy/Sell بقيمة sl = 0.0. تُدار مخاطر الصفقة كلياً عبر خروج انعكاس MA1/MA2، لذا قد تبقى الصفقة مفتوحة عبر حركة معاكسة كبيرة حتى ينهار الإشارة المعتمدة على الفجوة.

جني الأرباح

لا يُرفق أي جني أرباح بالأمر — تستدعي كل من OpenBuy و OpenSell دوال m_trade.Buy/Sell بقيمة tp = 0.0. تحدث حالات الخروج فقط عبر إشارة انعكاس MA1/MA2. تُعرَّف TryModify_EX07007 في المصدر لكنها غير موصولة بأي مسار حي في هذا البناء، فلا يحدث أي تعديل SL/TP بعد الدخول.

الأنسب لـ

الحد الأدنى للرصيد الموصى به: 100 دولار. الأنسب للمتداولين الذين يريدون إشارة اتجاه شفافة بثلاثة خطوط ومستعدين لإدارة مخاطر المحفظة بأنفسهم — المستشار لا يحمل وقف خسارة لكل صفقة، لذا على المستخدم الذي يحتاج إلى متطلبات الامتثال لشركات التمويل أن يضيف الوقوف خارجياً أو يختار بناءً مختلفاً. يُشغَّل على أزواج العملات الرئيسية السائلة أو XAUUSD على M5H1؛ تحمل الانزلاق 10 نقاط، لذا فإن حساباً قياسياً أو ECN بنقاط انتشار نموذجية كافٍ. لا يوجد بوابة جلسات في المستشار، فيختار المتداول النافذة الزمنية — للحصول على إشارة تقاطع نظيفة على المعادن، تعطي ساعات لندن ونيويورك أكثر فصل حاسم بين المتوسطات.

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

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

العائلة: MA الماجيك: 22207007 الإصدار: 2.00

الوصف: Triple SMA crossover EA using three moving averages with configurable spread separation. Entry: MA1 > MA2 > MA3 with minimum spread = BUY; MA1 < MA2 < MA3 = SELL. Exits on MA1/MA2 reversal. Fixed lot sizing. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • OnTradeTransaction()
  • RefreshRates()
  • CheckVolumeValue()
  • iMAGet()
  • OpenBuy()
  • OpenSell()
  • PrintResultTrade()
  • TryClose_EX07007()
  • TryClosePartial_EX07007()
  • TryModify_EX07007()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX07007 MA — Execution Flow (from source analysis)
// Family: MA
// Triple SMA crossover EA using three moving averages with configurable spread separation. Entry: MA1 > MA2 > MA3 with minimum spread = BUY; MA1 < MA2 < MA3 = SELL. Exits on MA1/MA2 reversal. Fixed lot sizing. 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)

ملف التحسين

الوسطاء المُحسّنون:
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اسحب الإكسبرت على رسم H4 أو اليومي للحصول على أفضل النتائج
  7. 7حدد فترات EMA وعتبة ADX وحجم اللوت في نافذة الإعدادات
  8. 8فعّل Allow Algo Trading واضغط OK

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

المعاملالافتراضيالوصف
InpTradeComment"Psgrowth.com Expert_07007"Trade Comment
m_magic22207007Magic Number
InpLots0.1Lots
InpMAspread10MA's spread (in pips)
Inp_ma_period_MA19MA 1: averaging period
Inp_ma_shift_MA10MA 1: horizontal shift
Inp_ma_period_MA214MA 2: averaging period
Inp_ma_shift_MA21MA 2: horizontal shift
Inp_ma_period_MA329MA 3: averaging period
Inp_ma_shift_MA32MA 3: horizontal shift
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX07007.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX07007 sma — Triple SMA crossover with spread separation, full 12-layer stack."
#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>  
CPositionInfo  m_position;                   // trade position object
CTrade         m_trade;                      // trading object
CSymbolInfo    m_symbol;                     // symbol info object
//--- input parameters
input group "=== Identity ==="
input string   InpTradeComment   = "Psgrowth.com Expert_07007"; // Trade Comment
input ulong    m_magic           = 22207007; // Magic Number

input group "=== Trading ==="
input double   InpLots           = 0.1;      // Lots
input ushort   InpMAspread       = 10;       // MA's spread (in pips)

input group "=== Indicators ==="
input int      Inp_ma_period_MA1 = 9;        // MA 1: averaging period
input int      Inp_ma_shift_MA1  = 0;        // MA 1: horizontal shift
input int      Inp_ma_period_MA2 = 14;       // MA 2: averaging period
input int      Inp_ma_shift_MA2  = 1;        // MA 2: horizontal shift
input int      Inp_ma_period_MA3 = 29;       // MA 3: averaging period
input int      Inp_ma_shift_MA3  = 2;        // MA 3: horizontal shift
//---
ulong          m_slippage=10;                // slippage

double ExtMAspread=0;

int    handle_iMA1;                          // variable for storing the handle of the iMA indicator
int    handle_iMA2;                          // variable for storing the handle of the iMA indicator
int    handle_iMA3;                          // variable for storing the handle of the iMA indicator

double m_adjusted_point;                     // point value adjusted for 3 or 5 points
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(!m_symbol.Name(Symbol())) // sets symbol name
      return(INIT_FAILED);
   RefreshRates();

   string err_text="";
   if(!CheckVolumeValue(InpLots,err_text))
     {
      Print(__FUNCTION__,", ERROR: ",err_text);
      return(INIT_PARAMETERS_INCORRECT);
     }
//---
   m_trade.SetExpertMagicNumber(m_magic);
   m_trade.SetMarginMode();
   m_trade.SetTypeFillingBySymbol(m_symbol.Name());
   m_trade.SetDeviationInPoints(m_slippage);
//--- tuning for 3 or 5 digits
   int digits_adjust=1;

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

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

الوسوم:ex07007mapipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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