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)، ينتقل وقف الخسارة إلى currentPrice − TrailingStartPips للصفقات الشرائية (أو + 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()
// 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)ملف التحسين
كيفية تثبيت الإكسبرت على 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| UseMoneyManagement | true | Use Dynamic Risk % |
| RiskPercent | 2.0 | Risk Percent per Trade |
| FixedLotSize | 0.01 | Fixed Lot Size (if MM false) |
| RSI_Period | 14 | RSI Period |
| RSI_Oversold | 30 | RSI Oversold Level |
| RSI_Overbought | 70 | RSI Overbought Level |
| RSI_ExitLevel | 50 | RSI Exit Level |
| StopLossPips | 15 | Stop Loss (pips) |
| TakeProfitPips | 25 | Take Profit (pips) |
| Slippage | 3 | Max Slippage (points) |
| InpMagicNumber | 22209014 | Magic Number |
| InpTradeComment | "Psgrowth.com Expert_09014" | Trade Comment |
| UseTrailingStop | true | Use Trailing Stop |
| TrailingStartPips | 10 | Trailing Start (pips) |
| TrailingStepPips | 5 | Trailing Step (pips) |
| UseSpreadFilter | true | Use Spread Filter |
| MaxSpreadPips | 25.0 | Max Spread (pips) |
| UseTimeFilter | false | Use Time Filter |
| StartTime | "08:00" | Start Time (HH:MM) |
| EndTime | "17:00" | End Time (HH:MM) |
| UseRSIExitOnly | true | Exit on RSI level only |
| InpMaxConsecLosses | 3 | Global Variables |
#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;الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.