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

Pipsgrowth EX09022 MeanReversion — إكسبرت أدفايزر ارتداد للمتوسط

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

Pipsgrowth EX09022 MeanReversion — Mean reversion / trend EA using fast and slow MA crossover with ATR-based volatility bands. When price deviates from the. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

EX09022 مبني على فكرة صغيرة ومتعمدة: رسم متوسط متحرك بسيط سريع ومتوسط متحرك بسيط بطيء على نفس سلسلة أسعار الإغلاق، ثم رسم حزمة عرضها ATR حول المتوسط البطيء، والسماح لأي من شرطين مستقلين بفتح صفقة. الشرط الأول هو التقاطع الكلاسيكي السريع فوق البطيء. الشرط الثاني هو محفز ارتداد إلى المتوسط يُفعَّل عندما يبتعد السعر عن المتوسط البطيء بأكثر من مضاعف ATR ثابت. كلاهما يدخل في نفس متغيرَي الشراء والبيع عبر بوابة OR، لذلك يتعامل المستشار مع التقاطع والارتداد كمحفزين متكافئين لا كمنظومتين متنافستين. هذا غير مألوف داخل عائلة EX09: معظم أفراد العائلة يختارون اتجاهًا واحدًا (اتجاه صرف، ارتداد صرف، أو تبديل نظام صريح). EX09022 ببساطة يدمج الاثنين في نموذج دخول واحد ويترك للشمعة التالية أن تقرر أيهما تحقّق.

مجموعة المؤشرات هي ثلاثة مؤشرات فقط لا غير. متوسط بسيط لمدة 20 على الإغلاق، متوسط بسيط لمدة 50 على الإغلاق، ومؤشر ATR لمدة 14. لا يوجد RSI، ولا بولينجر، ولا ADX، ولا KAMA، ولا دونتشيان. المتوسطان هما نفس الاستدعاء iMA(_Symbol, PERIOD_CURRENT, N, 0, MODE_SMA, PRICE_CLOSE) مع اختلاف الفترة، ما يعني أن المستشار يعتمد نفس طريقة المتوسط ونفس سعر التطبيق لكلا الخطين ولا يخلط EMA في زوج SMA. يستخدم ATR الإعداد الافتراضي iATR(_Symbol, PERIOD_CURRENT, 14) وهو المدخل الوحيد للتذبذب الذي تستهلكه الاستراتيجية فعليًا. كل شيء آخر - المضاعف، مسافات وقف الخسارة وجني الأرباح، حجم اللوت - هو مُدخل ثابت. يروّج الترويسة لـ 12 طبقة (REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester) لكن عمليًا فقط SIGNAL وENTRY وNO-TRADE وCAPITAL CAP وRISK وSIZING وEXIT وOnTester تحمل كودًا. لا يوجد مصنف نظام، ولا مرحلة تأكيد، ولا إدارة داخل الصفقة (لا وقف متحرك، ولا نقطة تعادل، ولا إغلاق جزئي)، ولا طبقة تحجيم. وصفه بمكدس من 12 طبقة هو أمر طموحي؛ هو أقرب إلى مكدس من 8 طبقات بأربعة مقاعد فارغة.

بناء الإشارة يعيش داخل OnTick(). تسحب الدالة ثلاث أعمدة من المتوسط السريع وثلاثة من المتوسط البطيء وعمودين من ATR عبر CopyBuffer. إشارة الشراء الاتجاهية تُفعَّل عندما prev_fast_ma <= prev_slow_ma && current_fast_ma > current_slow_ma؛ إشارة البيع الاتجاهية هي المرآة الدقيقة. إشارة شراء الارتداد تُفعَّل عندما current_price < current_slow_ma - current_atr * ATR_Multiplier؛ إشارة بيع الارتداد تُفعَّل عندما current_price > current_slow_ma + current_atr * ATR_Multiplier. الافتراضي ATR_Multiplier = 2.0 يعني أن السعر يجب أن يمتد بمقدار وحدتي ATR(14) كاملتين بعيدًا عن المتوسط البطيء قبل أن يستيقظ ذراع الارتداد، وهو ما يترجم على إطار 5 دقائق لزوج XAUUSD وقيمة ATR-14 بين 200 و300 نقطة تقريبًا إلى امتداد أحادي الجانب قدره 20 إلى 30 دولارًا. يُدمج المتغيران كـ buy_signal = trend_buy_signal || reversion_buy_signal ونفس الشيء للبيع، لذلك يمكن لشمعة واحدة نظريًا أن تستوفي كلا الذراعين في نفس الوقت. بوابة الصفقة بسيطة: has_open_positions تتكرر على PositionsTotal() بحثًا عن أي صفقة على _Symbol بسحر المستشار، ويُتخطى كتلة التداول بالكامل طالما أن هناك صفقة مفتوحة. لا تجميع، ولا شبكة، ولا هرم - EX09022 هو مستشار بصفقة واحدة لكل رمز على الجانب الحي.

إنشاء الأمر يمر عبر صنف CTradeValidator بدلًا من استدعاء OrderSend الخام. يقرأ الصنف في التهيئة SYMBOL_VOLUME_MIN/MAX/STEP وSYMBOL_POINT وSYMBOL_DIGITS وSYMBOL_TRADE_STOPS_LEVEL، ويُطبّع اللوت المطلوب (LotSize = 0.1) وفق خطوة الوسيط، ويتحقق من الهامش الحر عبر OrderCalcMargin مع عازلة 15%. إذا كان الهامش غير كافٍ، يخفض الصنف اللوت بنسبة 25% بشكل متكرر حتى يجد حجمًا صالحًا أو يصل إلى حد الوسيط الأدنى ويُرجع 0. يُحسب وقف الخسارة وجني الأرباح أولًا كـ entry_price ± SL_Points/TP_Points * GetPoint() ثم يُعاد التحقق منهما عبر ValidateStopLoss وValidateTakeProfit مقابل مستوى الوقف لدى الوسيط، مع عازلة أمان إضافية 20% فوق ما يُبلّغه الوسيط. الافتراضيات هي SL_Points = 500 وTP_Points = 1000، وهو ما يعني على XAUUSD بنقطة 0.01 وقفًا قدره 5 دولارات وهدفًا قدره 10 دولارات، أي نسبة مخاطرة/عائد نظيفة 1:2. إذا رفض الوسيط المستوى المطلوب، يُزيح المُحقّق وقف الخسارة أو جني الأرباح إلى أقرب سعر صالح بدلًا من إلغاء الصفقة، ولهذا تظهر بعض التنفيذات الحية بوقف أضيق من 500 نقطة حين يحدد الوسيط مستوى وقف مرتفعًا.

إعادة المحاولة مزدوجة الطبقات. دالة ExecuteTrade الخارجية تلف ثلاث مرات، وتُجدّد السعر من المُحقّق بين المحاولات وتنام 100 مللي ثانية بين المحاولات. الداخلية TryOrderSend_EX09022 تلف أيضًا ثلاث مرات وتنام 200 مللي ثانية، لكن فقط على رموز الإرجاع العابرة الأربعة (REQUOTE, TIMEOUT, PRICE_OFF, PRADE_CHANGED)؛ عند أي فشل آخر تكسر الحلقة فورًا. الطبقتان معًا تعنيان أن الصفقة الحقيقية يمكنها استيعاب ما يصل إلى تسع محاولات إرسال قبل أن يستسلم المستشار، بفواصل 100/200/200/200/100/200/200/200 مللي ثانية بينها. الانحراف مُثبّت عند 10 نقاط ولا يوجد مُدخل له. توجد روتينية صفقة أمان منفصلة تُنفَّذ مرة في بداية أي تشغيل في المُختبر بالسحر 999999 للتأكد من أن مسار الوسيط يعمل قبل أن يبدأ المستشار بتسجيل صفقاته الخاصة.

إدارة المخاطر مغلفة داخل IsSafeToTrade_EX09022 وهي بوابة AND من 8 شروط. الشروط بالترتيب: سقف رأس المال (الوصول إلى InpCapAmount ثم توقف)، أرضية رأس المال (InpCapFloor = 50 تحت الرصيد ثم توقف)، أرضية الرصيد الأولي (95% من الرصيد عند التهيئة ثم توقف)، حد الخسارة اليومي (3% من رأس المال الفعال ثم توقف)، تهدئة الخسائر المتتالية (3 خسائر متتالية تُفعّل إيقافًا لمدة 30 دقيقة عبر g_cooldownUntil)، الحد الأقصى للصفقات اليومية (50)، السوق مفتوح (لا السبت، ولا الأحد قبل الساعة 22 بتوقيت غرينتش، ولا الجمعة بعد الساعة 21 بتوقيت غرينتش)، والجلسة نشطة (لندن 7-16 بتوقيت غرينتش أو نيويورك 12-21 بتوقيت غرينتش، مع كتلة اختيارية لتجنب آسيا 0-7 بتوقيت غرينتش). يضيف InpNewsFilter الاختياري تعتيمًا زمنيًا قدره ±15 دقيقة حول ساعتي افتتاح لندن ونيويورك - الوقت يُفحص وفق الجدول وليس وفق تغذية أخبار MQL5، لذلك هو مرشح زمني-proxy وليس مرشح تقويم اقتصادي حقيقي. معالج OnTradeTransaction يحافظ على صدق عدادات اليوم: يستمع لأحداث TRADE_TRANSACTION_DEAL_ADD، ويتجاهل كل ما لا يطابق السحر، ويجمع الربح+سواب+العمولة في g_realizedToday، ويزيد g_consecLosses عند الخسارة أو يعيدها إلى الصفر عند الربح.

صيغة OnTester هي الافتراضية لعائلة EX09: n * p / (1 + d) حيث n صافي الربح وp عامل الربح وd نسبة الانخفاض النسبي للرصيد. تُرجع الدالة 0 إذا كان عدد الصفقات أقل من 30 أو إذا كان p أو d غير موجب، لذلك يتم تجاهل التحسينات ذات الأرقام الفردية من الصفقات تلقائيًا. طبقة السقف (InpCapAmount/InpCapFloor) اختيارية حقًا - ضبط InpCapAmount = 0 يعطل السقف بالكامل ويعامل المستشار كامل رصيد الحساب كرأس مال له، مع بقاء InpCapFloor = 50 كأرضية وحيدة.

ما يمكن توقعه في اختبار خلفي: EX09022 على XAUUSD M5 بمضاعف ATR الافتراضي 2.0 هو مستشار بتردد صفقات منخفض. إشارات التقاطع على زوج SMA 20/50 تنطلق بضع مرات في الأسبوع على المعادن، ومحفزات الارتداد تتطلب امتدادًا قدره 2-ATR وهو حركة ذات معنى على M5. اختبار خلفي لستة أشهر يقع عادة بين 30 و80 صفقة حسب نظام التذبذب. انحياز 1:2 في نسبة المخاطرة للعائد يعني أن الرابح أكبر من الخاسر في المتوسط، لذلك يمكن لمعدل فوز 45-50% أن ينتج منحنى رصيد إيجابي ما دام المستشار لم يُوقف عند أرضية 95% من الرصيد أو إيقاف 3 خسائر خلال نظام متذبذب. غياب الإيقاف المتحرك ونقطة التعادل مقصود: المستشار لا يقفل ربحًا أبدًا، ولا ينقل إلى نقطة التعادل، ولا يُحجّم داخل الرابح، لذلك حركة اتجاه تتجاوز هدف 2-ATR ببساطة تخرج عند جني الأرباح ويعيد المستشار تسليح نفسه. استخدم وسيط ECN فروقات ضيقة للزوج المعدني حتى لا تأكل فروق الأسعار مسافة SL_Points في كل تنفيذ، واحترم أرضية 95% من الرصيد بالتشغيل على رصيد يمنح الاستراتيجية بضعة أسابيع من المساحة قبل أن يبدأ حد الخسارة اليومي في تقييدها.

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

مع كل تيك، يُجدّد المستشار الربح والخسارة اليومي وعدادات الصفقات، ثم يمر عبر بوابة IsSafeToTrade ذات الـ 8 شروط. إن نجح، تنسخ OnTick() آخر ثلاث أعمدة للمتوسطين البسيطين 20 و50 وآخر عمودين لـ ATR-14. يُسجَّل الشراء عند تحقق أحد الشرطين: المتوسط السريع يعبر فوق المتوسط البطيء، أو السعر المتوسط يقع بأكثر من 2.0 ATR تحت المتوسط البطيء؛ البيع هو المرآة. يمر إنشاء الأمر عبر CTradeValidator الذي يُطبّع اللوت وفق خطوة الوسيط، ويتحقق من الهامش الحر مع عازلة 15%، ويتحقق من وقف الخسارة وجني الأرباح مقابل مستوى الوقف لدى الرمز قبل الإرسال. تمر إخفاقات الإرسال عبر طبقة إعادة محاولة مزدوجة: ثلاث محاولات في ExecuteTrade بفواصل 100 مللي ثانية وتحديث للسعر، ملفوفة حول ثلاث محاولات أخرى في TryOrderSend_EX09022 بفواصل 200 مللي ثانية على REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED. يوجّه معالج OnTradeTransaction الربح والسواب والعمولة لكل صفقة مغلقة إلى عدّاد اليوم، ما يفرض حد الخسارة اليومي 3% وإيقاف 3 خسائر على تيار الصفقات لا على دفاتر المستشار. دالة لياقة OnTester هي n*p/(1+d) مع حد أدنى 30 صفقة وتصفير عند عامل ربح أو انخفاض غير موجب.

إشارة الدخول

تُفعَّل الدخولات عند تحقق أي من شرطين مُدمجين عبر بوابة OR: تقاطع اتجاهي عندما يعبر المتوسط البسيط لمدة 20 فوق المتوسط البسيط لمدة 50، أو محفز ارتداد عندما يمتد السعر بأكثر من 2.0 مضاعف ATR(14) بعيدًا عن المتوسط البطيء. يُتخطى كتلة التداول بالكامل طالما أن أي صفقة على الرمز بالسحر 22209022 مفتوحة.

إشارة الخروج

الخروج بوقف الخسارة وجني الأرباح فقط. لا يوجد وقف متحرك، ولا نقطة تعادل، ولا إغلاق جزئي، ولا خروج عند الإشارة المعاكسة. تترك الصفقة ببساطة لتصل إلى المستوى الذي يُضرب أولًا عند نسبة 1:2 الافتراضية ويُعيد المستشار تسليح نفسه.

وقف الخسارة

وقف الخسارة ثابت عند SL_Points = 500 (نحو 5 دولارات على XAUUSD بنقطة 0.01)، يُتحقق منه مقابل مستوى الوقف لدى الوسيط مع عازلة إضافية 20% داخل صنف CTradeValidator. لا يوجد تعديل داخل الصفقة.

جني الأرباح

جني الأرباح ثابت عند TP_Points = 1000 (نحو 10 دولارات على XAUUSD)، مما يعطي نسبة مخاطرة/عائد نظيفة 1:2 مقابل وقف 500 نقطة. يُزيح المُحقّق جني الأرباح إلى أقرب سعر مقبول لدى الوسيط إذا كان المستوى المطلوب قريبًا جدًا من الدخول.

الأنسب لـ

يناسب المتداولين الذين يشغّلون XAUUSD على M5 أو M15 على وسيط ECN فروقات ضيقة برصيد لا يقل عن 100 دولار، ويقبلون مستشارًا منخفض تردد الصفقات يعتمد إما على تقاطع SMA 20/50 أو امتداد 2-ATR. ترشيح جلستَي لندن ونيويورك يستبعد آسيا (قابل للتبديل)، لذلك يؤدي المستشار أفضل ما يمكن عندما يتزامن توقيت خادم الوسيط مع توقيت غرينتش بشكل معقول وخلال نوافذ التداخل 7-16 و12-21 بتوقيت غرينتش.

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

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

العائلة: MeanReversion الماجيك: 22209022 الإصدار: 2.00

الوصف: Mean reversion / trend EA using fast and slow MA crossover with ATR-based volatility bands. When price deviates from the fast MA by ATR multiplier, it enters expecting reversion to the mean. Includes full trade validation with safety-trade fallback and validated SL/TP. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • ExecuteTrade()
  • OnTradeTransaction()
  • EffectiveCapital_EX09022()
  • DetectGMTOffset_EX09022()
  • ServerToGMT_EX09022()
  • IsMarketOpen_EX09022()
  • InActiveSession_EX09022()
  • IsNewsTime_EX09022()
  • IsSafeToTrade_EX09022()
  • UpdateDailyCounters_EX09022()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX09022 MeanReversion — Execution Flow (from source analysis)
// Family: MeanReversion
// Mean reversion / trend EA using fast and slow MA crossover with ATR-based volatility bands. When price deviates from the fast MA by ATR multiplier, it enters expecting reversion to the mean. Includes full trade validation with safety-trade fallback and validated SL/TP. 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اسحب الإكسبرت على رسم H1 أو H4
  7. 7حدد فترة Bollinger Bands والانحراف ومستويات RSI وحجم اللوت
  8. 8فعّل Allow Algo Trading واضغط OK

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

المعاملالافتراضيالوصف
Magic_Number22209022Magic Number for EA
InpTradeComment"Psgrowth.com Expert_09022"Trade comment
Fast_MA_Period20Fast MA Period
Slow_MA_Period50Slow MA Period
ATR_Period14ATR Period for volatility
ATR_Multiplier2.0ATR Multiplier for Mean Reversion
LotSize0.1Standard Lot Size
SL_Points500Stop Loss in points
TP_Points1000Take Profit in points
InpCapFloor50.0Global variables
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX09022.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX09022 Mean Reverse — MA crossover with ATR mean-reversion bands, full 12-layer stack."

// Input parameters for Mean Reversion/Trend strategy
input group                "=== Identity ==="
input int                  Magic_Number = 22209022;   // Magic Number for EA
input string               InpTradeComment = "Psgrowth.com Expert_09022"; // Trade comment
input group                "=== Strategy ==="
input int                  Fast_MA_Period = 20;     // Fast MA Period
input int                  Slow_MA_Period = 50;     // Slow MA Period
input int                  ATR_Period = 14;         // ATR Period for volatility
input double               ATR_Multiplier = 2.0;    // ATR Multiplier for Mean Reversion
input group                "=== Risk Management ==="
input double               LotSize = 0.1;           // Standard Lot Size
input int                  SL_Points = 500;         // Stop Loss in points
input int                  TP_Points = 1000;        // Take Profit in points

input group "=== Hardening: GMT Sessions ==="
input int    InpServerGMTOffset    = 0;
input int    InpLondonStartHour    = 7;
input int    InpLondonEndHour      = 16;
input int    InpNYStartHour        = 12;
input int    InpNYEndHour          = 21;
input bool   InpAvoidAsia          = true;
input int    InpAsiaStartHour      = 0;
input int    InpAsiaEndHour        = 7;
input bool   InpNewsFilter         = false;
input int    InpNewsFilterMinutes  = 15;
input int    InpMaxTradesPerDay    = 50;
input double InpMinEquityPercent   = 95.0;
input int    InpCooldownMinutes    = 30;
input int    InpMaxConsecLosses    = 3;
input double InpDailyLossLimitPct  = 3.0;
input group "=== Capital Allocation Cap ==="
// InpCapEnabled removed — use InpCapAmount=0 to disable
input double InpCapAmount         = 0.0;
input double InpCapFloor          = 50.0;

// Global variables
int Fast_MA_Handle;                                // Handle for fast MA indicator
int Slow_MA_Handle;                                // Handle for slow MA indicator
int ATR_Handle;                                    // Handle for ATR indicator
bool safety_trade_executed = false;                // Flag for Safety-Trade execution
bool already_checked_history = false;              // Flag for History-Check
bool EnableSafetyTrade = true;                     // Safety Trade for validation is always enabled

int      g_gmtOffset = 0;
int      g_consecLosses = 0;
datetime g_cooldownUntil = 0;
double   g_realizedToday = 0;
int      g_tradesToday = 0;
datetime g_lastTradeDate = 0;
double   g_initialBalance = 0;

//+------------------------------------------------------------------+
//| Validator class for complete trade validation                     |
//+------------------------------------------------------------------+

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

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

الوسوم:ex09022meanreversionpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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