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

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

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

Pipsgrowth EX09014 MeanReversion — Gold scalping RSI reversion EA. BUY when RSI exits oversold with bullish reversal candle; SELL when RSI exits overbought. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX09014 MeanReversion هو مضارب آلي على الذهب يتعامل بمركز واحد فقط. يقرأ مؤشر RSI بفترة 14 على الرسم البياني M15 ولا يدخل صفقة إلا عندما يخرج المؤشر من مناطق 30/70، ويكون لون الشمعة الحالية متوافقًا مع اتجاه الانعكاس، وتكون الشمعة السابقة قد أظهرت إنهاكًا في الاتجاه المعاكس. الغرض من هذا النمط المكون من شمعتين هو تجنّب الدخول في سوقٍ يهوي: قراءة منخفضة لـ RSI وحدها ليست إشارة شراء، لأن الذهب قد يبقى في حالة تشبع بيعي لساعات خلال الجلسات الهادئة. الجمع بين شمعة الانعكاس الحالية والشمعة السابقة المُنهكة هو تفسير الـ EA لـ"نفاد ضغط البيع، ودخول المشترين". الجانب القصير يعكس ذلك تمامًا.

وقف الخسارة هو الحد الأقصى من ثلاثة عناصر: ATR(14) × 1.5، وStopLossPips الثابت للمستخدم (افتراضيًا 15) محوّلًا إلى سعر عبر GetPipSize()، وSYMBOL_TRADE_STOPS_LEVEL × 1.5 للوسيط. صيغة "الحد الأقصى" هي المفتاح: في الأيام الهادئة حيث يكون ATR صغيرًا، يتولى الحد الثابت بالبipsات ويكون وقف الخسارة 15 pip بالضبط؛ في الجلسات المتقلبة حيث انفجر ATR، يسود عنصر ATR ويتسع وقف الخسارة تلقائيًا. الحد الأدنى للمسافة موجود حتى لا يرسل الـ EA أوامر بوقف متقارب جدًا لدرجة أن الوسيط يرفضها. مع الإعدادات الافتراضية على XAUUSD، تستقر هذه القيمة عند 15 pip في الغالب في الاختبار العكسي.

معالجة جني الأرباح هي الجزء غير المعتاد. UseRSIExitOnly افتراضيًا true، ما يعني أن الأمر يُرسل بـ tpPrice = 0 — لا يوجد جني أرباح ثابت. تتم عمليات الخروج عبر ManageOpenPositions() الذي يعمل عند كل تكة (tick) وليس فقط عند ظهور شمعة جديدة. للصفقة الشرائية، لحظة وصول currentRSI >= RSI_ExitLevel (افتراضيًا 50) يُغلق المركز عبر TryClose_EX09014(). للصفقة البيعية، الانعكاس هو <= 50. خط الـ 50 هو مستوى محايد من حيث الزخم — "انفكّ تشبع RSI، خذ الربح". إذا أطفأ المستخدم وضع خروج RSI، يُضبط جني الأرباح عند slDist × 1.5 (نسبة مخاطرة/مكافأة 1.5:1).

يعمل منطق وقف الخسارة المتحرك (trailing stop) أيضًا عند كل تكة. بمجرد أن يتجاوز الربح TrailingStartPips × pipSize (افتراضيًا 10 pips)، ينتقل وقف الخسارة إلى currentPriceTrailingStartPips للصفقات الشرائية (أو + 10 pips للبيعية). بعد هذه الحركة الأولى، يتحرك وقف الخسارة فقط بزيادات قدرها TrailingStepPips (افتراضيًا 5 pips) — SafePositionModify يرفض أي تحديث لا يكون فيه وقف الخسارة الجديد أفضل بـ 5 pips على الأقل من الحالي. هذا هو "ال trailing المتدرج" وليس "ال ratchet عند كل تكة"، والغرض منه تقليل ازدحام طلبات التعديل لدى الوسيط على شموع M15 الصاخبة.

الفلاتر بسيطة لكنها صريحة. UseSpreadFilter افتراضيًا مُفعّل مع MaxSpreadPips = 25.0. على وسيط ذهب بفاصلتين عشريتين (مثل 1850.00) هذا يعادل 2.5 وحدة سعر خام — تسامح واسع عمدًا حتى لا يعطّل الـ EA نفسه على وسطاء التجزئة. UseTimeFilter افتراضيًا مُعطّل؛ عند تفعيله، يحدد المستخدم سلسلة StartTime/EndTime ويحظر الـ EA الإدخالات خارج النافذة. كلتا الفيلترين تعملان داخل CheckFilters() قبل بوابة عدم التداول.

طبقة التعزيز حقيقية هنا وليست مجرد كلام. IsSafeToTrade_EX09014() يرجع false في أي من الحالات التالية: حقوق الملكية >= InpCapAmount (وضع السقف مُفعّل)، حقوق الملكية < InpCapFloor (افتراضيًا 50$)، حقوق الملكية < 95% من g_initialBalance، الخسارة اليومية المحققة >= 3% من رأس المال الفعّال، الخسارة الأسبوعية المحققة >= 6%، ثلاث خسائر متتالية مع فترة راحة 30 دقيقة لا تزال نشطة، g_tradesToday >= InpMaxTradesPerDay (50)، السوق مغلق (الجمعة 21:00 GMT → الأحد 22:00 GMT)، لا توجد جلسة لندن أو نيويورك نشطة، أو نافذة الأخبار نشطة. فلتر الجلسات (InActiveSession_EX09014) يعامل لندن 07:00–16:00 GMT ونيويورك 12:00–21:00 GMT على أنها نشطة، ويحظر آسيا 00:00–07:00 GMT افتراضيًا، ولا يحسب حظر آسيا إلا إذا كانت لندن/نيويورك غير نشطتين. IsNewsTime_EX09014 هو وكيل حسابي على الساعة، وليس تغذية أخبار حقيقية: يحظر الإدخالات خلال ±InpNewsFilterMinutes (15) من ساعات افتتاح جلستي لندن ونيويورك. العلم مُعطّل افتراضيًا.

اكتشاف فارق GMT يعمل مرة واحدة في OnInit عبر DetectGMTOffset_EX09014. تمسح الدالة أعمدة H1 للخلف بحثًا عن فجوة > ساعتين بين عمودين متجاورين — تلك هي فجوة إغلاق نهاية الأسبوع — وتستنتج فارق GMT للخادم من ساعة الفجوة. يمكن للمستخدم التجاوز عبر InpServerGMTOffset.

حساب المخاطرة هو النمط القياسي بنسبة 2%. تأخذ CalculatePositionSize(slPips) قيمة AccountInfoDouble(ACCOUNT_BALANCE) × 0.02، وتقسمها على slPips × pipValuePerLot، وتقرّبها لأسفل إلى مضاعفات SYMBOL_VOLUME_STEP، وتقصّرها إلى حدود SYMBOL_VOLUME_MIN/MAX، وتُصغّر حجم اللوت أكثر إذا تجاوز الهامش المطلوب 90% من الهامش الحر. يُستخدم الحجم الثابت الاحتياطي (FixedLotSize = 0.01) عند UseMoneyManagement = false. يُفرض سقف اللوت الصلب InpMaxLot = 5.0 في OnInit. الرقم السحري هو 22209014 — عائلة EX09### تستخدم 22209###.

نقطتان من التفاصيل الفنية تستحقان المعرفة. أولًا، يحمل الـ EA مركزًا واحدًا فقط في كل وقت — CountPositions() >= 1 يحظر الإدخالات الجديدة في OnTick(). لا تكرار (pyramiding)، لا تحوط بنفس الرقم السحري. ثانيًا، صيغة OnTester هي (profit × profit_factor) / (1 + equity_dd_pct) مع حد أدنى 30 صفقة — وهي نتيجة مرجّحة بالجودة تعاقب على السحب بشدة، لذا فإن استراتيجية ذات عامل ربح مرتفع مع سحب 50% تحصل على نتيجة أقل من استراتيجية ذات عامل ربح معتدل وسحب 10%. هذا هو ما يصعد نحوه المحسّن (optimizer) خلال اختبارات MT5 العكسية.

كل من TryClose_EX09014 وTryModify_EX09014 يعيدان المحاولة ثلاث مرات على رموز MQL5 المؤقتة المعيارية (REQUOTE, TIMEOUT, PRICE_OFF, PRICE_CHANGED)، بفاصل 200ms و100ms على التوالي. SafePositionModify هو التحقق المسبق: يطبع وقف الخسارة/جني الأرباح إلى _Digits، ويتأكد من أن كل واحد في الجانب الصحيح من السعر، ويُزحلق إلى الحد الأدنى للوسيط إذا كان وقف المستخدم متقاربًا جدًا.

ما يمكن توقّعه في الاختبار العكسي: الانعكاس في المتوسط هو نمط ارتداد متوسط ويؤدي أفضل ما لديه في الجلسات المحدودة النطاق ذات التذبذب الكافي. XAUUSD M15 مع عتبات 30/70 الافتراضية ووقف الخسارة الأدنى 15 pip يتداول مرة كل بضع ساعات خلال لندن/نيويورك. معدل الربح مع UseRSIExitOnly=true يميل لأن يكون مرتفعًا (غالبًا +70%) لكن مضاعف R لكل ربح صغير (RSI عادةً لا يبتعد كثيرًا عن 50)، بينما تُحدّ الخسائر بمسافة وقف الخسارة. الملف الشخصي المتوقع هو "العديد من الأرباح الصغيرة، وخسائر كاملة على وقف الخسارة بين الحين والآخر" — منحنى الأسهم عمومًا صعود بطيء مع سحوبات دورية متجمعة حول رحلات الخسارة اليومية 3%. خروج RSI عند 50 يعني أن معظم الأرباح تُغلق بأرقام مفردة من الـ pips، لذا فإن العمولة والتمويل الليلي (swap) تهمّان أكثر على هذا الـ EA مقارنة بأتباع الاتجاه.

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

عند كل شمعة M15 جديدة، تقرأ GetReversionSignal() قيمتي RSI، ولوني شمعتين، وقيمة ATR(14) واحدة، ولا تُرجع إشارة إلا إذا كانت الشمعة السابقة قد أنهكت (RSI < 30 أو > 70) وظَهرت الشمعة الحالية كشمعة انعكاس اتجاهية تعقب شمعة من الاتجاه المعاكس — هذا النمط المكوّن من شمعتين هو بوابة الدخول. تبني OpenPosition() وقف الخسارة كـ max(ATR1.5, 15 pip, broker_min1.5)، وتُحدد حجم اللوت بنسبة 2% مخاطرة من الرصيد عند مسافة وقف الخسارة تلك عبر CalculatePositionSize()، وترسل أمر سوق بدون جني أرباح عند تفعيل UseRSIExitOnly. عند كل تكة، تتحقق ManageOpenPositions() مما إذا كان RSI قد عاد إلى 50 (للخروج)، ثم تطبّق وقف خسارة متحرك ببداية 10 pips وخطوة 5 pips عبر SafePositionModify. تعمل حزمة الأمان الكاملة — فلتر السبريد، فلتر الجلسات (لندن/نيويورك فقط، آسيا محظورة افتراضيًا)، اكتشاف GMT، حدود الخسارة اليومية/الأسبوعية، أرضية حقوق الملكية، وراحة 3 خسائر — في CheckFilters() وIsSafeToTrade_EX09014() قبل النظر في الإشارة.

إشارة الدخول

يدخل EX09014 صفقة شرائية عندما أُغلق مؤشر RSI للشمعة السابقة تحت 30 (الافتراضي RSI_Oversold) وارتفع RSI للشمعة الحالية، بشرط أن تكون الشمعة الحالية صاعدة (إغلاق > فتح) والشمعة السابقة هابطة — هذا النمط المكوّن من شمعتين هو قراءة الـ EA لإنهاك ضغط البيع. صفقة البيع هي المرآة الصارمة: RSI للشمعة السابقة فوق 70، RSI الحالي يهبط، الشمعة الحالية هابطة، الشمعة السابقة صاعدة. يُسمح بمركز واحد فقط في كل وقت، ويُقيَّم عند كل شمعة M15 جديدة.

إشارة الخروج

مع UseRSIExitOnly = true (الافتراضي)، تتم المعالجة عبر ManageOpenPositions() عند كل تكة: تُغلق الصفقة الشرائية لحظة currentRSI >= RSI_ExitLevel (افتراضيًا 50)، والبيعية لحظة currentRSI <= 50. إذا عُطّل خروج RSI، يستخدم المركز جني أرباح ثابت عند 1.5× مسافة وقف الخسارة، ويتولى وقف الخسارة المتحرك الأمر — بمجرد أن يتجاوز الربح 10 pips، يتحرك الوقف بزيادات 5 pips عبر SafePositionModify. لا يوجد وقف زمني؛ المراكز تبقى مفتوحة بين الجلسات افتراضيًا.

وقف الخسارة

وقف الخسارة هو الحد الأقصى من ثلاثة: ATR(14) × 1.5، وStopLossPips × pipSize (افتراضيًا 15 pip)، وSYMBOL_TRADE_STOPS_LEVEL × 1.5 — أكبرها يفوز. يبدأ وقف الخسارة المتحرك عند 10 pips ربح ويتحرك بزيادات 5 pips عبر SafePositionModify. يُغلق المركز قسريًا أيضًا بواسطة IsSafeToTrade_EX09014() إذا وصلت الخسارة اليومية إلى 3% من رأس المال الفعّال، أو الأسبوعية إلى 6%، أو انخفضت حقوق الملكية تحت 95% من الرصيد الأولي، أو فُعّلت فترة الراحة 30 دقيقة بعد ثلاث خسائر متتالية.

جني الأرباح

مع UseRSIExitOnly = true (الافتراضي)، يُرسَل الأمر بـ tpPrice = 0 والخروج مدفوع بـ RSI فقط: تُغلق الشرائية عند RSI >= 50 والبيعية عند RSI <= 50. إذا عُطّل خروج RSI، يُضبط جني الأرباح عند slDist × 1.5 (نسبة 1.5:1). صيغة OnTester هي (profit × profit_factor) / (1 + equity_dd_pct) مع حد أدنى 30 صفقة.

الأنسب لـ

الحد الأدنى للرصيد: 100$، لكن مخاطرة 2% لكل صفقة مع أرضية وقف خسارة 15 pip وسقف لوت 5.0 مُصمّمة لحساب ذهب ميكروي. XAUUSD M15 فقط — فترة M15 مبرمجة عبر iRSI(_Symbol, PERIOD_M15, ...) وiATR(_Symbol, PERIOD_M15, 14). استخدم وسيط فروقات ضيقة: سقف سبريد 25 pip متسامح عمدًا ليمرّر معظم وسطاء التجزئة، لكن الفروقات الأضيق (≤5 pips) ستحسّن تنفيذات خروج RSI. الجلسات النشطة: لندن 07:00–16:00 GMT ونيويورك 12:00–21:00 GMT — آسيا 00:00–07:00 GMT محظورة افتراضيًا. مستوى المخاطرة: متوسط.

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

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

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

الوصف: Gold scalping RSI reversion EA. BUY when RSI exits oversold with bullish reversal candle; SELL when RSI exits overbought with bearish reversal candle. Exit on RSI return to 50 or TP. Includes ATR-based SL, trailing, spread/time filters, and the 12-layer stack: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • SafePositionModify()
  • OnTradeTransaction()
  • RefreshIndicators()
  • GetReversionSignal()
  • OpenPosition()
  • CalculatePositionSize()
  • ManageOpenPositions()
  • IsNewBar()
  • GetPipSize()
  • CheckFilters()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX09014 MeanReversion — Execution Flow (from source analysis)
// Family: MeanReversion
// Gold scalping RSI reversion EA. BUY when RSI exits oversold with bullish reversal candle; SELL when RSI exits overbought with bearish reversal candle. Exit on RSI return to 50 or TP. Includes ATR-based SL, trailing, spread/time filters, and the 12-layer stack: 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
الأطر الزمنية المُحسّنة:
M15

كيفية تثبيت الإكسبرت على 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

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

المعاملالافتراضيالوصف
UseMoneyManagementtrueUse Dynamic Risk %
RiskPercent2.0Risk Percent per Trade
FixedLotSize0.01Fixed Lot Size (if MM false)
RSI_Period14RSI Period
RSI_Oversold30RSI Oversold Level
RSI_Overbought70RSI Overbought Level
RSI_ExitLevel50RSI Exit Level
StopLossPips15Stop Loss (pips)
TakeProfitPips25Take Profit (pips)
Slippage3Max Slippage (points)
InpMagicNumber22209014Magic Number
InpTradeComment"Psgrowth.com Expert_09014"Trade Comment
UseTrailingStoptrueUse Trailing Stop
TrailingStartPips10Trailing Start (pips)
TrailingStepPips5Trailing Step (pips)
UseSpreadFiltertrueUse Spread Filter
MaxSpreadPips25.0Max Spread (pips)
UseTimeFilterfalseUse Time Filter
StartTime"08:00"Start Time (HH:MM)
EndTime"17:00"End Time (HH:MM)
UseRSIExitOnlytrueExit on RSI level only
InpMaxConsecLosses3Global Variables
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX09014.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX09014 GoldScalper_RSIReversion — RSI extreme reversion for Gold, full 12-layer stack."

#include <Trade\Trade.mqh>

//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
input group "=== Risk Management ==="
input bool   UseMoneyManagement = true;       // Use Dynamic Risk %
input double RiskPercent        = 2.0;        // Risk Percent per Trade
input double FixedLotSize       = 0.01;       // Fixed Lot Size (if MM false)

input group "=== RSI Settings ==="
input int    RSI_Period         = 14;         // RSI Period
input int    RSI_Oversold       = 30;         // RSI Oversold Level
input int    RSI_Overbought     = 70;         // RSI Overbought Level
input int    RSI_ExitLevel      = 50;         // RSI Exit Level

input group "=== Trade Settings ==="
input int    StopLossPips       = 15;         // Stop Loss (pips)
input int    TakeProfitPips     = 25;         // Take Profit (pips)
input int    Slippage           = 3;          // Max Slippage (points)
input int    InpMagicNumber     = 22209014;                      // Magic Number
input string InpTradeComment    = "Psgrowth.com Expert_09014"; // Trade Comment

input group "=== Trailing Stop ==="
input bool   UseTrailingStop    = true;       // Use Trailing Stop
input int    TrailingStartPips  = 10;         // Trailing Start (pips)
input int    TrailingStepPips   = 5;          // Trailing Step (pips)

input group "=== Filters ==="
input bool   UseSpreadFilter    = true;       // Use Spread Filter
input double MaxSpreadPips      = 25.0;        // Max Spread (pips)
input bool   UseTimeFilter      = false;      // Use Time Filter
input string StartTime          = "08:00";    // Start Time (HH:MM)
input string EndTime            = "17:00";    // End Time (HH:MM)
input bool   UseRSIExitOnly     = true;       // Exit on RSI level only

input group "=== Hardening: Risk Management ==="
input double InpDailyLossLimitPct = 3.0;
input double InpMaxLot           = 5.0;
input group "=== Capital Allocation Cap ==="
// InpCapEnabled removed — use InpCapAmount=0 to disable
input double InpCapAmount         = 0.0;
input double InpCapFloor          = 50.0;
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;

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

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

الوسوم:ex09014meanreversionpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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