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

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

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

Pipsgrowth EX09001 MeanReversion — RSI mean-reversion — RSI cross of overbought/oversold threshold on closed bar. 12 layers: REGIME (ADX/ATR-pct/BB-wid gat. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX09001 MeanReversion هو إكسبرت إرجاع للمتوسط (Mean Reversion) قائم على مؤشر RSI ومخصص لزوج واحد (XAUUSD) على الإطارين M5 وH1. يخرج الإكسبرت من العلبة مع الإعداد InpDryRun = true — أي أنه يطبع ما كان ليفعله دون إرسال أوامر حقيقية. للانتقال إلى التداول الفعلي، يجب على المستخدم ضبط هذا الإعداد يدوياً على false. هذا خيار تصميمي مقصود: الإكسبرت يفترض أن المتداول سيتحقق من الاستراتيجية أولاً على حساب تجريبي أو في MT5 Strategy Tester، ويعتبر التداول الفعلي خياراً واعياً يفعّله المستخدم.

الفكرة الأساسية واضحة. في كل تيكة، يحسب الإكسبرت مؤشر RSI(21) ويبحث عن الشمعة التي عاد فيها المؤشر للتو داخل نطاق ذروة الشراء أو ذروة البيع، المحدد بـ InpRSILevel (افتراضياً 70، أي أن ذروة الشراء هي 70 وما فوق، وذروة البيع هي 30 وما دون). يُفحص التقاطع على الشمعة المغلقة (الإزاحة 1) وليس على الشمعة قيد التشكّل، حتى لا تُطلَق الإشارة بسبب ضوضاء لحظية. ترجع RsiSignal() قيمة +1 لإشارة شراء (RSI2 ≤ 30 و RSI1 > 30) أو -1 لإشارة بيع (RSI2 ≥ 70 و RSI1 < 70)، وتضع درجة ثقة بحسب عمق وصول المؤشر قبل العودة. الحد الأدنى للثقة هو 30، بحيث تُسجَّل حتى حالات الدخول السطحية؛ أما حالات الانخفاض العميق فترفع الدرجة.

تُصفَّى تلك الإشارة الخام بعد ذلك عبر مصنّف Regime. تقرأ DetectRegime() قيم ATR(14) وADX(14) وعرض بولينجر بندر على مدى 100 شمعة. ومن هذه المدخلات تُنتج سبع حالات: Choppy أو StrongTrend أو WeakTrend أو Range أو Compress أو Expand أو Breakout. تُعرَّف StrongTrend عندما يكون ADX ≥ 30 — وإذا رافقت ذلك نسبة مئوية ضاغطة من ATR، يُسمَّى النظام Breakout بدلاً من StrongTrend. يُطلَق Compress عندما تكون نسبة ATR المئوية تحت 30، أو عندما يكون عرض بولينجر الحالي أقل من 60% من المتوسط المتحرك. يُطلَق Expand عند نسبة ATR ≥ 70. يغطي WeakTrend الفترة 20 ≤ ADX < 30. وRange هو الباقي من حالات التذبذب المنخفض. يعني الإعداد الافتراضي InpRequireRangeRegime = true أن الدخول محصور في Range و Compress و WeakTrend فقط — تُستبعد حالات الترند القوي والاختراق عمداً، على افتراض أن صفقة الإرجاع للمتوسط إحصائياً ضعيفة حين يكون السوق في حركة أحادية الاتجاه.

تضيف ConfirmEntry() ثلاثة مرشحات إضافية. الأول هو فحص HTF-EMA (افتراضياً InpConfirmHTF = true). يحسب الإكسبرت متوسطاً أسياً 50 على إطار H1، بصرف النظر عن الإطار الزمني للشارت الحالي. وعلى نحو غير متوقَّع، تتطلب إشارة الشراء أن يكون إغلاق H1 تحت الـ EMA على H1، وإشارة البيع تتطلب أن يكون H1 فوق المتوسط — أي أن الدخول ارتداد نحو الترند، وليس استمراراً له. هذا هو النمط الكلاسيكي «تخفيف الموجة»، ويفترض أن ترند H1 هو القوة المهيمنة التي تجاوزها RSI على M5 بمدى مفرط. إذا كان الإطار الأعلى بالفعل على نفس جانب الإشارة، تُتخطَّى الصفقة. المرشح الثاني هو فحص التذبذب المعقول: إذا كانت نسبة ATR الحالية في حالة قصوى، تُحظر الصفقة. والثالث سقف سبريد صلب: سبريد أعلى من MAX_SLIPPAGE_POINTS (30 نقطة) يُرفض فوراً.

المخاطرة ثابتة ومنخفضة: 0.5% من رأس المال الفعّال لكل صفقة. رأس المال الفعّال هو أصغر قيمة بين حقوق الحساب وسقف صلب اختياري (InpCapitalCapAmount)؛ إذا لم يُعيَّن أي منهما، تُستخدم حقوق الحساب كاملة. تحوّل CalcLotByRisk() مسافة وقف الخسارة بالنقاط السعرية إلى تكات، وتستعلم عن tick_value وtick_size عند الوسيط، وتقرّب حجم اللوت نزولاً إلى درجة اللوت في الرمز. ومن ثمَّ فإن تحديد حجم الصفقة ميكانيكي ومرتبط بالوسيط: وقف خسارة 2.0×ATR على XAUUSD مع ATR قدره 30 نقطة ينتج لوتاً مختلفاً عند وسيط ذهب بـ 5 أرقام مقارنةً بوسيط بـ 2 رقم.

تُدار الصفقات في كل تيكة. وقف الخسارة الكامل 2.0×ATR، وجني الأرباح الكامل 1.5×ATR. ينتج عن ذلك هدف بنسبة 0.75 R:R — أقل من 1:1 عمداً، رهاناً على نسبة فوز عالية لا على مكاسب كبيرة. تُضاف فوق ذلك آلية جني أرباح جزئي: عندما يصل السعر إلى 1.0×ATR في الربح، يُغلَق نصف الصفقة على مستوى جني الأرباح الجزئي. تستمر البقية نحو الهدف الكامل. يُضبط التعادل (Break-Even) عندما يصل السعر إلى +1.0×ATR لصالح الصفقة، فيُنقل وقف الخسارة إلى سعر الدخول. يعمل وقف متابع قائم على ATR (TRAIL_ATR_MULT = 2.5) على رفع وقف الخسارة تدريجياً، بشرط أن يكون المرشَّح الجديد أمام السابق وأمام سعر الدخول — لا يتخلَّى عنه أبداً. إذا كانت الصفقة في ربح ولم تصل بعد إلى الجني الجزئي، يُفعَّل وقف زمني بعد MAX_BARS_IN_TRADE (240 شمعة — 20 ساعة على M5، 10 أيام على H1). يوجد أيضاً سقف خسارة محقَّقة يومي 3%، وأسبوعي 6%، وفترة تهدئة 5 شموع بعد ثلاث خسائر متتالية. مرشّح الجلسة من 7:00 إلى 20:00 بتوقيت خادم الوسيط، وهو ما يقع عند معظم وسطاء الـ ECN ضمن الفترة الممتدة من بداية الجلسة الأوروبية حتى إغلاق الجلسة الأمريكية.

ما لا يفعله هذا الإكسبرت: لا يضاعف (لا InpMaxConcurrent يتجاوز 1، ولا InpMaxSymbolExp يتجاوز 1، لا مارتينجال، لا شبكة). لا يُشغّل مرشحات أخبار ولا يكتشف فرق التوقيت بين الخادم وUTC — تُفسَّر نافذة 7 إلى 20 كما يبلّغها TimeCurrent(). ترجع OnTester() القيمة (صافي الربح × معامل الربح) / (1 + أقصى تراجع٪)، بحد أدنى 30 صفقة — هذه نقطة هادئة لكنها مهمة لمن يشغّل Strategy Tester، لأن الإكسبرت لن يُحسِّن نتائج اختبارات backtests بأقل من 30 صفقة في كل تمريرة.

مجموعة المعلمات العشرين مقسَّمة إلى ست مجموعات (Identity، Risk & Sizing، Capital Allocation Cap، Signal & Regime، Exit / Manage، Operational). أكثر المفاتيح حسماً هي InpDryRun (افتراضي true)، وInpRequireRangeRegime (افتراضي true)، وInpConfirmHTF (افتراضي true)، وInpOppositeSignalExit (افتراضي false). ضبط الأخير على true يضيف إغلاقاً مبكراً حين تُطلَق إشارة RSI معاكسة في منتصف الصفقة — مفيد في حالات الانعكاس القوي، لكن المقايضة مزيد من حالات الإغلاق بالضرب في أيام الترند.

توقُّعات الـ backtest: على XAUUSD M5، تتداول هذه الاستراتيجية بشكل متفرِّق — دخول واحد لكل شمعة، لكن مع نسبة رفض شموع عالية. توقَّع منحنى حقوق سلساً مع مكاسب صغيرة في المتوسط وخسائر صغيرة إلى متوسطة، أقرب إلى ملف تعريف صانع سوق منه إلى نظام ترند اتجاهي. على H1، يُطلَق نفس المنطق مرات أقل بكثير، مع تذبذبات لكل صفقة أكبر نسبياً.

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

في كل تيكة، يصنّف الإكسبرت السوق ضمن إحدى سبع حالات Regime بقراءة ATR(14) وADX(14) وعرض بولينجر بندر على مدى 100 شمعة — Choppy أو StrongTrend أو WeakTrend أو Range أو Compress أو Expand أو Breakout — ويرفض الدخول خارج حالات Range/Compress/WeakTrend. تتحقّق RsiSignal() بعد ذلك من تقاطع RSI(21) على شمعة مغلقة عائداً داخل نطاق ذروة الشراء/البيع؛ إذا اجتازت بوابة الـ Regime، تضيف ConfirmEntry() مرشّح ارتداد H1 EMA(50) وسقوف السبريد/التذبذب. تُفتح الصفقة بمخاطرة 0.5% على وقف 2.0×ATR، وتتجه نحو هدف كامل 1.5×ATR مع إغلاق جزئي 50% عند 1.0×ATR، وترقّي وقف الخسارة عبر التعادل ووقف متابع 2.5×ATR. يُفرض مرشّح الجلسة 7:00–20:00، وسقوف الخسارة اليومية 3% والأسبوعية 6%، وفترة تهدئة 5 شموع بعد ثلاث خسائر، إلى جانب بوابات الـ Regime والحد الأدنى لرأس المال. مع InpDryRun = true افتراضياً، يطبع الإكسبرت الأوامر المقصودة في السجل بدلاً من إرسالها — ضبطها على false هو خطوة الإعداد الوحيدة المطلوبة للانتقال إلى التداول الفعلي.

إشارة الدخول

يدخل الإكسبرت عند تقاطع RSI(21) على شمعة مغلقة عائداً إلى داخل نطاق ذروة الشراء/البيع المحدد بـ InpRSILevel (افتراضياً 70/30)، لكن فقط عندما يصنّف مصنّف الـ Regime — المبني على نسبة ATR(14) المئوية وADX(14) وعرض بولينجر — السوق على أنه Range أو Compress أو WeakTrend. تضيف ConfirmEntry() مرشّح ارتداد EMA(50) على H1 (يجب أن يكون السعر على الجانب العاكس من ترند الإطار الأعلى) وسقف سبريد صلب 30 نقطة قبل تحديد الحجم بـ 0.5% من رأس المال الفعّال. يُفرض دخول واحد لكل شمعة عبر بوابة gLastEntryBar.

إشارة الخروج

الهدف الكامل هو 1.5×ATR من الدخول — هدف بنسبة 0.75 R:R عمداً. يُفعَّل جني الأرباح الجزئي 50% عند 1.0×ATR، فيُغلَق نصف الصفقة؛ ثم تستمر البقية نحو الهدف الكامل أو تركب الوقف المتابع. ينقل التعادل وقف الخسارة إلى سعر الدخول بمجرد أن يصل السعر إلى +1.0×ATR، ويعمل وقف متابع 2.5×ATR(14) على رفع وقف الخسارة من تلك النقطة. إذا توقَّف السعر، يُغلق وقف زمني 240 شمعة الصفقة، ويُغلق InpOppositeSignalExit الاختياري الصفقة إذا أُطلقت إشارة RSI معاكسة في منتصفها.

وقف الخسارة

وقف الخسارة الكامل هو 2.0×ATR(14) من سعر الدخول، مُحسَّب ليتجاوز نطاقات التذبذب الأخيرة. ينقل منطق التعادل وقف الخسارة إلى سعر الدخول بمجرد أن يتحرّك السعر +1.0×ATR لصالح الصفقة، ثم يعمل الوقف المتابع 2.5×ATR على رفع الوقف تدريجياً. مسافة وقف الخسارة هي أيضاً مدخل CalcLotByRisk()، الذي يحدّد حجم الصفقة بحيث يكون 0.5% من رأس المال الفعّال هو المخاطرة الدولارية على الوقف.

جني الأرباح

جني الأرباح الكامل هو 1.5×ATR(14) من سعر الدخول، وينتج هدف 0.75 R:R مقصوداً يعتمد على نسبة الفوز لا على حجم العائد. يُغلَق نصف الصفقة عند 1.0×ATR (جني جزئي) قبل تفعيل الهدف الكامل، وإما أن تصل البقية إلى الهدف الكامل أو تركب الوقف المتابع 2.5×ATR. يرث الوقف المتابع التحكُّم بوقف الخسارة إذا فُوِّت الهدف الكامل.

الأنسب لـ

مصمَّم لـ XAUUSD على M5 أو H1 مع رصيد أدنى $100 وملف مخاطر MEDIUM — لكن تحديد الحجم 0.5% لكل صفقة وسقوف الخسارة 3% اليومية و6% الأسبوعية تعني أن حساباً من $500 إلى $1,000 هو الأنسب لتحقيق ارتفاعات ذات معنى. تفترض نافذة 7:00–20:00 بتوقيت خادم الوسيط أن يكون خادم MetaTrader مضبوطاً على EET/EEST أو GMT+2/+3؛ إذا كان الوسيط على GMT، تتوقَّع أن تقع الجلسة على افتتاح أوروبا حتى إغلاق أمريكا. وسطاء الـ ECN منخفضو السبريد (Exness, IC Markets, Pepperstone) مطلوبون — لا يمكن تخطّي سقف السبريد 30 نقطة على حساب retail مرتفع السبريد. الأفضل نشره كمُنوِّع لمحفظة إلى جانب استراتيجية ترند: هذا الإكسبرت مبني لطحن مكاسب صغيرة حين يكون السوق في حالة تذبذب.

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

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

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

الوصف: RSI mean-reversion — RSI cross of overbought/oversold threshold on closed bar. 12 layers: REGIME (ADX/ATR-pct/BB-wid gate, only Range/Compress/WeakTrend), SIGNAL, ENTRY, CONFIRM (HTF-EMA + RSI), NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE (BE + partial TP + ATR trail), EXIT, SCALING (OFF), OnTester

المؤشرات:

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

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

  • DetectRegime()
  • Percentile()
  • AverageBBWidth()
  • RegimeName()
  • RsiSignal()
  • ConfirmEntry()
  • CanTrade()
  • CalcLotByRisk()
  • NormalizeVolume()
  • SendOrder()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX09001 MeanReversion — Execution Flow (from source analysis)
// Family: MeanReversion
// RSI mean-reversion — RSI cross of overbought/oversold threshold on closed bar. 12 layers: REGIME (ADX/ATR-pct/BB-wid gate, only Range/Compress/WeakTrend), SIGNAL, ENTRY, CONFIRM (HTF-EMA + RSI), NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE (BE + partial TP + ATR trail), EXIT, SCALING (OFF), 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

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

المعاملالافتراضيالوصف
InpMagic22209001EA magic number (-)
InpTradeComment"Psgrowth.com Expert_09001"Trade comment (-)
InpRSIPeriod21RSI period (bars)
InpRSILevel70RSI OB/OS threshold (0-100)
InpRiskPercent0.5Risk per trade (% of effective_capital)
InpDailyLossLimitPct3.0Daily loss limit (% of effective_capital)
InpWeeklyLossLimitPct6.0Weekly loss limit (% of effective_capital)
InpMaxConcurrent1Max concurrent positions (-)
InpMaxSymbolExp1Max positions on this symbol (-)
InpCooldownLosses3Consecutive losses → cooldown (-)
InpCapitalCapAmount0.0Cap amount in REAL MONEY equity ($)
InpCapitalCapFloor50.0Floor below which entries are blocked ($)
InpRequireRangeRegimetrueRequire Range/Compress/WeakTrend regime (-)
InpConfirmHTFtrueRequire HTF-EMA agreement (reversal side) (-)
InpConfirmVolatilitytrueRequire ATR not in extreme percentile (-)
InpUseTrailingtrueEnable ATR trailing (-)
InpUseBreakEventrueEnable break-even (-)
InpOppositeSignalExitfalseClose on opposite RSI signal (-)
InpDryRuntrueDry-run (no live orders) (-)
InpKillSwitchfalseKill switch (block all new trades) (-)
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX09001.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX09001 RSI V2 EA — RSI mean-reversion + full 12-layer stack."

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>
#include <Trade\OrderInfo.mqh>
#include <Trade\DealInfo.mqh>

//============================ CONSTANTS ============================//
#define ATR_PERIOD              14
#define ATR_PCTILE_LOOKBACK     100
#define ATR_PCTILE_COMPRESS     30     // <= percentile → Compress
#define ATR_PCTILE_EXPAND       70     // >= percentile → Expand
#define ADX_PERIOD              14
#define ADX_STRONG_TREND        30.0
#define ADX_WEAK_TREND          20.0
#define BB_PERIOD               20
#define BB_DEVIATION            2.0
#define BB_WIDTH_COMPRESS_PCT   0.6   // relative to rolling avg → Compress
#define HTF_TREND_EMA_PERIOD    50
#define HTF_TIMEFRAME           PERIOD_H1
#define SL_ATR_MULT             2.0
#define TP_ATR_MULT             1.5   // base TP at 1R*1.5
#define TP1_ATR_MULT            1.0   // partial TP at 1.0 * ATR
#define PARTIAL_PCT             50    // % of position closed at TP1
#define TRAIL_ATR_MULT          2.5
#define BE_R_MULT               1.0   // move SL to entry + 0 once +1R
#define MAX_BARS_IN_TRADE       240   // time-based exit (bars)
#define MAX_SLIPPAGE_POINTS     30
#define RSI_LEVEL_THRESHOLD     70    // default overbought/oversold
#define SESSION_START_HOUR      7     // broker server time
#define SESSION_END_HOUR        20
#define NEWS_BLOCK_MINUTES      30
#define ROLLING_SPREAD_LOOKBACK 50
#define MAX_SPREAD_RATIO        2.0   // current/avg > this → no trade
#define SYMBOL_EXPOSURE_CAP_PCT 25.0  // % of effective_capital exposed per symbol
#define COOLDOWN_BARS_AFTER_LOSS 5

//============================ INPUTS ===============================//
input group "=== Identity ==="
input long              InpMagic           = 22209001;                  // EA magic number (-)
input string            InpTradeComment    = "Psgrowth.com Expert_09001"; // Trade comment (-)
input int               InpRSIPeriod       = 21;                       // RSI period (bars)
input int               InpRSILevel        = 70;                       // RSI OB/OS threshold (0-100)

input group "=== Risk & Sizing ==="
input double            InpRiskPercent     = 0.5;                      // Risk per trade (% of effective_capital)
input double            InpDailyLossLimitPct = 3.0;                    // Daily loss limit (% of effective_capital)
input double            InpWeeklyLossLimitPct = 6.0;                   // Weekly loss limit (% of effective_capital)
input int               InpMaxConcurrent   = 1;                        // Max concurrent positions (-)
input int               InpMaxSymbolExp    = 1;                        // Max positions on this symbol (-)
input int               InpCooldownLosses  = 3;                        // Consecutive losses → cooldown (-)

input group "=== Capital Allocation Cap ==="
// InpCapitalCapEnabled removed — use InpCapitalCapAmount=0 to disable                   // Enable capital cap (-)

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

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

الوسوم:ex09001meanreversionpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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