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

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

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

Pipsgrowth EX09015 MeanReversion — Bollinger Bands + RSI mean reversion EA for XAUUSD M5. BUY when price < Lower BB and RSI < oversold; SELL when price > U. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

اكس 09015 هو خبير آلي (EA) يعمل على منطق الارتداد إلى المتوسط (Mean Reversion) باستخدام بولينجر باند ومؤشر القوة النسبية RSI، ومهمته الوحيدة هي: الدخول المعاكس لتمدد السعر نحو الباند عندما يؤكد الأوسيلتوريه ذلك التمدد. الخبير مخصص لزوج XAUUSD (الذهب) على الإطار الزمني M5، بسحر 22209015، ويحافظ عمدًا على شجرة إشارات صغيرة — بافرَتان للمؤشر، شرطان بوليانيان، لا مصنّف حالة للسوق (regime)، لا فلتر إطار زمني أعلى، لا درجة مركبة. قرار الدخول بالكامل يتلخّص في: "هل الشمعة المغلقة السابقة أغلقت أسفل الباند السفلي وكان RSI(7) تحت 30، أو أغلقت فوق الباند العلوي وكان RSI(7) فوق 70؟"

يُخصَّص مؤشّران في دالة OnInit. hBB هو iBands(_Symbol, _Period, 20, 0, 2.0, PRICE_CLOSE) — بولينجر باند بفترة 20 وانحراف معياري 2.0 وبدون إزاحة. hRSI هو iRSI(_Symbol, _Period, 7, PRICE_CLOSE) — مؤشر RSI بفترة 7 على الإغلاق. تُنسخ البافر 1 (العلوي) و2 (السفلي) من مؤشر BB والبافر 0 من RSI عند بداية كل شمعة جديدة؛ يقرأ الخبير bufRSI[1] وbufBB_Upper[1] وbufBB_Lower[1] وiClose(_Symbol,_Period,1) بحيث يكون القرار دائمًا على آخر شمعة M5 مغلقة بالكامل، لا على الشمعة الحية. هذا مهم: قراءات RSI على التيك الحي تتأرجح حول العتبة في منتصف الشمعة، والاعتماد على الشمعة السابقة هو ما يحوّل الاستراتيجية من آلة ضوضاء إلى نظام منضبط.

الإشارة نفسها هي أبسط صورة لإعداد ارتداد إلى المتوسط بتأكيد مزدوج. شراء يُفعَّل عندما close[1] < lower1 && rsi1 < InpRSIOS (افتراضي 30)؛ بيع يُفعَّل عندما close[1] > upper1 && rsi1 > InpRSIOB (افتراضي 70). الشرطان مرتبطان بـ AND وليس OR — لمسة واحدة للباند دون تأكيد الأوسيلتوريه، أو تطرف الأوسيلتوريه دون لمسة الباند، لا تكفي عمدًا. تُستخدم بعد ذلك CountPositions لتحديد ما إذا كان يجب فتح صفقة جديدة أو إضافة طبقة هرمية. إن لم تكن هناك صفقة مفتوحة في جهة الإشارة، يفتح الخبير واحدة. إذا كانت الهرمة مفعّلة (افتراضيًا معطّلة) والعدد تحت InpMaxPositions (3) وIsGridSafe() يؤكد أن الطبقة الحالية في ربح لا يقل عن InpMinProfitPoints (200 نقطة)، يضيف الخبير طبقة أخرى بنفس ملف SL/TP.

حجم الصفقة هو المخاطرة المعيارية بنسبة 1%. CalculateLotSize(InpStopLoss) يجري نفس منطق عائلة EX09: يحوّل رصيد الحساب إلى ميزانية مخاطر بالدولار (account.Balance() * InpRiskPercent / 100.0)، ثم يقسمها على خسارة اللوت الواحد عند وقف 400 نقطة، التي تُعاد تركيبتها من tickValue / (tickSize / point) * stopLossPoints. تُقرَّب النتيجة إلى خطوة اللوت في الرمز، وتُقيَّد بين LotsMin() وLotsMax(). ضبط InpRiskPercent = 0 يُسقط على InpFixedLot = 0.01. يُحدّ حجم اللوت عند 5.0 عبر InpMaxLot، ودالة OpenBuy() / OpenSell() تتحقق من الهامش الحر بـ OrderCalcMargin قبل الإرسال وتُعيد المحاولة 3 مرات بـ 500ms بين المحاولات، فلا يكون عطل الهامش العابر سببًا في فشل الفتح.

وقف الخسارة وجني الأرباح نقطتان ثابتتان، لا مقياس ATR. الافتراضي 400 نقطة SL و600 نقطة TP بنسبة مخاطرة/عائد 1:1.5. OpenBuy() تضبط sl = ask - 400*point; tp = ask + 600*point؛ وOpenSell() هي المرآة. نوع التنفيذ مبرمج إلى ORDER_FILLING_FOK في OnInit، وهو ما يعمل على كتب ECN الرئيسية للذهب؛ تسامح الانزلاق 3 نقاط ضيق. إن كان الوسيط يرفض FOK على XAUUSD فهذا أول موضع ينكسر فيه الخبير — معظم ECNs الحديثة تعمل، لكن بعض كتب التجزئة لا تعرض سوى IOC.

التريلنج اختياري وهو القطعة الوحيدة من إدارة ما بعد الدخول. حين InpEnableTrail = true (افتراضي)، ManageProfitLock() تعمل على كل تيك وتُحرّك الوقف تدريجيًا بعد أن يتحرك السعر 300 نقطة في الربح (InpTrailStart). الوقف الجديد يبعد 150 نقطة عن BID (أو ASK للبيع)، والتيرنج للأمام فقط — newSL > position.StopLoss() للشراء وnewSL < position.StopLoss() للبيع (مع قبول خاص لو كان الوقف الحالي صفرًا). TryModify_EX09015 يعيد محاولة التعديل 3 مرات عند REQUOTE أو TIMEOUT مع نوم 100ms وينكسر على أي كود إرجاع آخر، ففي الأسواق السريعة قد يبقى التريلنج تيك أو اثنين خلف المستوى الأمثل لكنه يلحق في أول تيك صالح. لا توجد خطوة تعادل، لا إغلاق جزئي، لا خروج بإشارة معاكسة، لا توقف زمني، لا TP سلة — طريقتا إغلاق الصفقة الوحيدتان هما TP الثابت وSL الثابت (أو التريلنج إن صعد فوق SL).

طبقة الأمان تجري عبر IsSafeToTrade_EX09015() التي تتحقق من 9 شروط بالترتيب: الغطاء فعّال والاكويتي تجاوز الغطاء → منع؛ اكويتي تحت InpCapFloor (50) → منع؛ اكويتي تحت 95% من الرصيد الأولي (InpMinEquityPercent) → منع؛ المتحقق اليوم انخفض 3% من رأس المال الفعّال → منع؛ المتحقق الأسبوعي انخفض 6% (ضعف اليومي) → منع؛ كولداون الخسائر المتتالية (3 خسائر → 30 دقيقة) → منع؛ صفقات اليوم >= 50 → منع؛ السوق مغلق (الجمعة >=21:00 GMT، السبت بالكامل، الأحد <22:00 GMT) → منع؛ خارج جلسة لندن أو نيويورك مع تجنب آسيا (آسيا 0-7 GMT) → منع؛ واختياريًا قرب ±15 دقيقة من افتتاح لندن أو نيويورك. لاحظ أن الشرط التاسع، نافذة الأخبار، زمني (يفحص الساعة حول افتتاح الجلسة)، وليس تغذية أخبار MQL5 حقيقية — كما في باقي EX09 في هذه الدفعة.

معالجة GMT هي مسار الكشف التلقائي: DetectGMTOffset_EX09015() يمشي للخلف 100 شمعة ساعة، يجد أول فجوة > ساعتين (انتقالات DST أو لفّات عطلة نهاية الأسبوع)، يستنتج إزاحة ساعة الوسيط من dt.hour-22 ويقصرها عند ±12. التجاوز اليدوي عبر InpServerGMTOffset يختصر الكاشف. تُعرَّف الجلسات عندها بـ GMT: لندن 7-16، نيويورك 12-21، آسيا 0-7. مع InpAvoidAsia = true (افتراضي) الخبير صامت في ساعات آسيا الخالصة لكنه يتداول حين تتداخل آسيا مع لندن أو نيويورك.

لياقة OnTester هي الصيغة المعيارية المرجّحة بالجودة لعائلة EX09: n*p / (1+d) حيث n صافي الربح، p معامل الربح، d نسبة الانخفاض في الاكويتي. حد الـ 30 صفقة وتقسيم السحب يكافئان الاتساق على التوافق المنحني، فتجارب Strategy Tester المحسّنة التي تبدو انفجارية لكنها تراهن على ربح واحد كبير تُعاقب.

ما يمكن توقّعه في الباك تيست: تولّد تركيبة BB(20, 2.0) + RSI(7, 30/70) على XAUUSD M5 كثافة صفقات معتدلة — بضعة محفزات في الجلسة حين يكون XAUUSD في نطاق، وأقل حين يكون في اتجاه. حد السبريد 250 نقطة عريض عمدًا (التعليق في الكود يقول حرفيًا "Increased for Gold")، فالخبير سيستمر في الإطلاق في ارتفاعات السبريد المحفّزة بالأخبار التي كان الحد الأضيق سيوقفها، وهذا هو المقايضة: فرص أكثر لكن تكلفة انزلاق أعلى. كون الهرمة معطّلة افتراضيًا هو اختيار آمن عمدًا؛ تشغيلها مع بوابة 200 نقطة كحد أدنى يفتح هذا EA كخبير تجميع في نفس الاتجاه، وهي استراتيجية مختلفة تمامًا عن صفقة الارتداد الأساسية. استخدم هذا الخبير على تغذية ECN أو RAW منخفضة السبريد للذهب (أقل من 30 نقطة عادةً، وأقل من 100 نقطة في أسوأ الأحوال) واعمله على جلستي لندن ونيويورك تحديدًا؛ إشارات الجلسة الآسيوية على الذهب تميل لأن تكون أعلى ضوضاء وتُصفَّى افتراضيًا لهذا السبب.

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

يُخصَّص مؤشّران — iBands(20, 2.0) وiRSI(7) — في OnInit وتُقرأ قيمهما مرة لكل شمعة M5 على الشمعة السابقة، فلا يقرر الخبير أبدًا على شمعة حية. مسار OnTick تسلسل من أربع خطوات: UpdateDailyCounters تُحدّث P&L اليومي وعدّاد الصفقات، بوابة السبريد ترفض التيكات فوق InpMaxSpread (250 نقطة للذهب)، ManageProfitLock تُحرّك أي تريلنج مفتوح على كل تيك، وفقط على شمعة جديدة يستدعي الخبير IsSafeToTrade_EX09015 ثم CheckSignal. CheckSignal هو اختبار AND المزدوج على آخر شمعة مغلقة وبوابة الهرمة/المخاطرة التي تقرر الفتح أو التجميع. تُحسب أحجام الصفقات من 1% من رصيد الحساب مقسومًا على خسارة اللوت عند SL 400 نقطة، محدودة بـ 5.0 لوت، وحلقة الإرسال تعيد المحاولة 3 مرات بنوم 500ms مع تحقق مسبق من الهامش. تُدار الصفقات فقط بواسطة SL/TP الثابت والتريلنج الاختياري — لا مصنّف حالة، لا فلتر إطار زمني أعلى، لا إغلاق جزئي، لا خروج بإشارة معاكسة، لا توقّف زمني، مما يجعل الاستراتيجية ميكانيكية بسيطة ومنحنيات الباك تيست سهلة القراءة.

إشارة الدخول

إشارة الشراء تُفعَّل على آخر شمعة M5 مغلقة عندما يكون close[1] تحت الباند السفلي لـبولينجر (20, 2.0) AND مؤشر RSI(7) تحت عتبة التشبع البيعي (افتراضي 30). إشارة البيع هي المرآة: close[1] فوق الباند العلوي AND RSI(7) فوق التشبع الشرائي (افتراضي 70). الشرطان مرتبطان بـ AND؛ الخبير لن يُطلق عند لمسة الباند دون تأكيد الأوسيلتوريه. تُفتح صفقة جديدة فقط حين لا توجد صفقة في تلك الجهة، أو حين تكون الهرمة مفعّلة والطبقة الحالية في ربح لا يقل عن InpMinProfitPoints (200 نقطة).

إشارة الخروج

تُغلق الصفقات فقط عبر TP الثابت 600 نقطة، أو SL الثابت 400 نقطة، أو وقف تريلنج متدرّج بعد أن يتحرك السعر InpTrailStart (300 نقطة) في الربح. لا توجد خطوة تعادل، لا إغلاق جزئي، لا خروج بإشارة معاكسة، لا توقّف زمني، لا TP سلة — مسافة التريلنج 150 نقطة خلف bid/ask وتتدرّج إلى الأمام فقط. تعمل دالة الإدارة على كل تيك قبل بوابة الشمعة الجديدة، فيستجيب التيرنج لتحركات السوق السريعة دون انتظار إغلاق شمعة.

وقف الخسارة

وقف خسارة ثابت 400 نقطة على كل دخول، يُطبَّق متماثلًا (sl = ask - 400point للشراء، sl = bid + 400point للبيع). ليس بمقياس ATR. نوع التنفيذ مبرمج إلى ORDER_FILLING_FOK وتسامح الانزلاق 3 نقاط. التريلنج حين يُفعَّل لا يحرّك الوقف إلا في الاتجاه المربح وهو الطريقة الوحيدة لتعديل الـ SL الأولي.

جني الأرباح

جني أرباح ثابت 600 نقطة على كل دخول، بنسبة مخاطرة/عائد 1:1.5 مقابل SL 400 نقطة. يُطبَّق متماثلًا (tp = ask + 600point للشراء، tp = bid - 600point للبيع). لا يُعدَّل الـ TP بالتريلنج أو بالتدرّج؛ إن صعد الوقف المتدرّج يبقى TP الأصلي في مكانه وتخرج الصفقة عند أيهما يضربه السوق أولًا.

الأنسب لـ

الأفضل على XAUUSD M5 بحد أدنى للإيداع 100$ (مخاطرة متوسطة) وعلى تغذية ECN أو RAW spread للذهب حيث يكون السبريد المعتاد تحت 30 نقطة ويبقى تحت 100 حتى وقت الأخبار. جلستا لندن (07:00-16:00 GMT) ونيويورك (12:00-21:00 GMT) هما حيث يطلق إعداد اللمسة المزدوجة BB(20, 2.0) + RSI(7) بأعلى موثوقية؛ تُصفّى آسيا افتراضيًا لهذا السبب. يجب إبقاء مفتاح الهرمة معطّلًا ما لم يرد المتداول استراتيجية تجميع في نفس الاتجاه — مع بوابة 200 نقطة كحد أدنى، تعمل كمارتينجال م controlled لا كارتاد كلاسيكي. كون InpCapAmount=0 افتراضي يعني أن الخبير يحسب الحجم من كامل اكويتي الحساب، لذا اضبط غطاءً (مثلًا 500) وأرضية (مثلًا 50) إن كنت تشغّله على حساب فرعي لا يجب أن تستنزفه جلسة سيئة واحدة.

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

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

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

الوصف: Bollinger Bands + RSI mean reversion EA for XAUUSD M5. BUY when price < Lower BB and RSI < oversold; SELL when price > Upper BB and RSI > overbought. Includes trailing stop, pyramiding (off by default), and the 12-layer stack: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • OnTradeTransaction()
  • CheckSignal()
  • OpenBuy()
  • OpenSell()
  • ManageProfitLock()
  • IsGridSafe()
  • CalculateLotSize()
  • CountPositions()
  • EffectiveCapital_EX09015()
  • DetectGMTOffset_EX09015()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX09015 MeanReversion — Execution Flow (from source analysis)
// Family: MeanReversion
// Bollinger Bands + RSI mean reversion EA for XAUUSD M5. BUY when price < Lower BB and RSI < oversold; SELL when price > Upper BB and RSI > overbought. Includes trailing stop, pyramiding (off by default), 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
الأطر الزمنية المُحسّنة:
M5

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

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

المعاملالافتراضيالوصف
InpBBPeriod20Bollinger Bands Period
InpBBDeviation2.0BB Deviation
InpRSIPeriod7RSI Period
InpRSIOB70.0RSI Overbought
InpRSIOS30.0RSI Oversold
InpRiskPercent1.0Risk Percent per Trade
InpFixedLot0.01Fixed Lot (if Risk=0)
InpStopLoss400Stop Loss (points)
InpTakeProfit600Take Profit (points)
InpMagicNumber22209015Magic Number
InpTradeComment"Psgrowth.com Expert_09015"Trade Comment
InpMaxSpread250Max Spread (points) (Increased for Gold)
InpSlippage3Slippage
InpEnableTrailtrueEnable Trailing Stop
InpTrailStart300Trail Start Distance (points)
InpTrailStep100Trail Step (points)
InpTrailDistance150Distance behind price (points)
InpEnablePyramidfalseEnable Pyramiding (Max 3)
InpMaxPositions3Max Open Positions
InpMinProfitPoints200Min Profit to Add Next
InpMaxConsecLosses3--- Handles
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX09015.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX09015 BBRSI_XAUUSD_5M — BB+RSI mean reversion for Gold, full 12-layer stack."

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

CTrade         trade;
CPositionInfo  position;
CSymbolInfo    mysymbol;
CAccountInfo   account;

//--- Input Groups
input group "=== Strategy Parameters ==="
input int      InpBBPeriod       = 20;       // Bollinger Bands Period
input double   InpBBDeviation    = 2.0;      // BB Deviation
input int      InpRSIPeriod      = 7;        // RSI Period
input double   InpRSIOB          = 70.0;     // RSI Overbought
input double   InpRSIOS          = 30.0;     // RSI Oversold

input group "=== Money Management ==="
input double   InpRiskPercent    = 1.0;      // Risk Percent per Trade
input double   InpFixedLot       = 0.01;     // Fixed Lot (if Risk=0)
input int      InpStopLoss       = 400;      // Stop Loss (points)
input int      InpTakeProfit     = 600;      // Take Profit (points)

input group "=== Identity ==="
input int      InpMagicNumber    = 22209015;  // Magic Number
input string   InpTradeComment   = "Psgrowth.com Expert_09015"; // Trade Comment

input group "=== Trade Management ==="
input int      InpMaxSpread      = 250;      // Max Spread (points) (Increased for Gold)
input int      InpSlippage       = 3;        // Slippage

input group "=== Profit Lock / Trailing ==="
input bool     InpEnableTrail    = true;     // Enable Trailing Stop
input int      InpTrailStart     = 300;      // Trail Start Distance (points)
input int      InpTrailStep      = 100;      // Trail Step (points)
input int      InpTrailDistance  = 150;      // Distance behind price (points)

input group "=== Pyramiding / Scaling ==="
input bool     InpEnablePyramid  = false;    // Enable Pyramiding (Max 3)
input int      InpMaxPositions   = 3;        // Max Open Positions
input int      InpMinProfitPoints= 200;      // Min Profit to Add Next

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;

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

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

الوسوم:ex09015meanreversionpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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