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()
// 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)ملف التحسين
كيفية تثبيت الإكسبرت على MT5
- 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
- 2افتح برنامج MetaTrader 5 على حاسوبك
- 3من القائمة العلوية اختر File → Open Data Folder
- 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
- 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
- 6اسحب الإكسبرت على رسم H1 أو H4
- 7حدد فترة Bollinger Bands والانحراف ومستويات RSI وحجم اللوت
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpMagic | 22209001 | EA magic number (-) |
| InpTradeComment | "Psgrowth.com Expert_09001" | Trade comment (-) |
| InpRSIPeriod | 21 | RSI period (bars) |
| InpRSILevel | 70 | RSI OB/OS threshold (0-100) |
| InpRiskPercent | 0.5 | Risk per trade (% of effective_capital) |
| InpDailyLossLimitPct | 3.0 | Daily loss limit (% of effective_capital) |
| InpWeeklyLossLimitPct | 6.0 | Weekly loss limit (% of effective_capital) |
| InpMaxConcurrent | 1 | Max concurrent positions (-) |
| InpMaxSymbolExp | 1 | Max positions on this symbol (-) |
| InpCooldownLosses | 3 | Consecutive losses → cooldown (-) |
| InpCapitalCapAmount | 0.0 | Cap amount in REAL MONEY equity ($) |
| InpCapitalCapFloor | 50.0 | Floor below which entries are blocked ($) |
| InpRequireRangeRegime | true | Require Range/Compress/WeakTrend regime (-) |
| InpConfirmHTF | true | Require HTF-EMA agreement (reversal side) (-) |
| InpConfirmVolatility | true | Require ATR not in extreme percentile (-) |
| InpUseTrailing | true | Enable ATR trailing (-) |
| InpUseBreakEven | true | Enable break-even (-) |
| InpOppositeSignalExit | false | Close on opposite RSI signal (-) |
| InpDryRun | true | Dry-run (no live orders) (-) |
| InpKillSwitch | false | Kill switch (block all new trades) (-) |
#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 (-)الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية الارتداد للمتوسط
Pipsgrowth EX09013 MeanReversion — إكسبرت أدفايزر ارتداد للمتوسط
Pipsgrowth EX09013 MeanReversion — Bollinger Bands mean-reversion EA with EMA trend filter. BUY when price touches lower band (trend up); SELL when price t. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX09009 MeanReversion — إكسبرت أدفايزر ارتداد للمتوسط
Pipsgrowth EX09009 MeanReversion — Hanging Man (bearish) / Hammer (bullish) candlestick on last CLOSED bar + Stochastic confirmation (Stoch<20 Buy / Stoch>. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX09023 MeanReversion — إكسبرت أدفايزر ارتداد للمتوسط
Pipsgrowth EX09023 MeanReversion — Bollinger Band mean reversion EA that fades outer band touches with fixed SL/TP and single-position control, using the 1. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.