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

Pipsgrowth EX13007 RSI_MA — إكسبرت أدفايزر إكسبرت أدفايزر

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

Pipsgrowth EX13007 RSI_MA — RSI alert EA that sends buy signals when RSI drops to the lower level and sell signals when RSI reaches the upper level.. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

إكس 13007 من بيبس جروث هو روبوت متوسط-انعكاسي أحادي المذبذب يطلق إشارة شراء كلما انخفض مؤشر RSI لمدة 30 فترة على الإغلاق المرجح إلى 20 أو أقل، ويطلق إشارة بيع كلما وصل نفس المؤشر إلى 80 أو أعلى. مسار الإشارة هو الأنحف في عائلة إكس 13 — لا يوجد مرشح اتجاه، ولا تأكيد شموع، ولا مصنف نظام سوق، ولا مؤشر ثانٍ. تستدعي دالة RSI_Alert() ثلاث قيم من مقبض iRSI عبر iGetArray() وتتحقق من آخر قيمة مقابل عتبتين. نطاق 20/80 أوسع من النطاق التقليدي 30/70 تحديداً لأن تجانس الـ 30 فترة على الإغلاق المرجح يهدّئ المذبذب؛ فمؤشر RSI لمدة 14 فترة عند 30/70 كان سيطلق إشارات أكثر بكثير، واختيار 20/80 مقايضة مقصودة للوتيرة بالصرامة الانتقائية.

عند لمس العتبة، يستدعي الروبوت SendNotification() بالوسوم القابلة للتكوين من المستخدم ("Signal Buy" أو "Signal Sell" افتراضياً) ثم يمرر الصفقة عبر OpenPosition() إلى OpenBuy() أو OpenSell(). تبني هذه المُنشئات وقف الخسارة وجني الأرباح كإزاحات نقاط خام: الشراء يُفتح عند سعر الطلب مع جني أرباح = طلب + InpTakeProfit * SYMBOL_POINT ووقف خسارة = عرض - InpStopLoss * SYMBOL_POINT؛ البيع معكوس. كل من InpStopLoss وInpTakeProfit افتراضياً 200 نقطة، وهو ما يساوي تقريباً 2.00 دولار فوق وتحت الدخول على سعر XAUUSD العشري الثنائي. النسبة هي 1:1 بالضبط، ولا يُعدَّل وقف الخسارة وجني الأرباح لاحقاً — يبقون على خادم الوسيط طوال عمر الصفقة. حجم اللوت هو InpVolumeLotOrRisk (افتراضي 0.01)، الذي رغم تعليق الإدخال يُمرَّر مباشرة عبر NormalizeDouble(..., 2) ثم عبر CheckVolumeValue() التي لا تفرض سوى حدود SYMBOL_VOLUME_MIN/MAX/STEP لدى الوسيط. لا توجد صيغة مخاطر بنسبة من الرصيد، ولا تحجيم صفقة بناءً على المخاطرة — اللوت هو ما يكتبه المستخدم. تتولى TryOrderSend_EX13007() أمر الإرسال الفعلي: ثلاث محاولات، مع Sleep لمدة 200 مللي ثانية عند REQUOTE أو TIMEOUT أو PRICE_OFF أو PRICE_CHANGED، وكسر فوري عند أي رمز إرجاع آخر. نوع التعبئة FOK إذا سمح الوسيط، وإلا IOC.

لا توجد خطوة تعادل، ولا وقف متحرك، ولا إغلاق جزئي، ولا متوسطات، ولا مارتينجال، ولا شبكة، ولا طبقة تعافٍ. مدخل InpMaxPositions مضبوط على 10 مع تعليق '0 = OFF'، لكن السقف معلومة فقط — دالة CalculateAllPositions() معرَّفة في المصدر لكنها لا تُستدعى فعلياً داخل تدفق الفتح، لذلك في يوم اتجاه قوي يمكن للروبوت أن يطلق صفقة بعد صفقة في نفس الاتجاه حتى تتدخل بوابات الأمان. تحدث التخارجات فقط عند وقف الخسارة أو جني الأرباح على جانب الوسيط. تعليق إدخال الاستراتيجية يقول 'سقف أقصى الصفقات' لكن الكود أصدق: كل لمسة عتبة RSI تُنتج صفقة إضافية، فقط.

طبقة الأمان هي حيث يملك الملف عمقاً فعلياً. في كل تيك، تستدعي OnTick() أولاً UpdateDailyCounters_EX13007() لتصفير عدادات اليوم عند انتقال التاريخ، ثم IsSafeToTrade_EX13007() لتشغيل مكدس الأذونات الكامل ذو العشر بوابات. البوابات بالترتيب: إيقاف سقف رأس المال (إذا كان InpCapAmount غير صفري وكان الرصيد عند السقف أو أعلى، توقف)، إيقاف حد الرصيد الأدنى (رصيد أقل من InpCapFloor = 50، توقف)، قاتل الرصيد الأولي 95٪ (رصيد أقل من 95٪ من الرصيد الملتقط في OnInit، توقف)، حد خسارة يومي (الربح المتحقق على السحر ≤ -3٪ من رأس المال الفعال، توقف)، حد خسارة أسبوعي (الربح المتحقق ≤ -6٪ من رأس المال الفعال — ضعف عتبة اليوم بالضبط)، تهدئة ثلاث ضربات (بعد InpMaxConsecLosses=3 خسائر متتالية، يتوقف الروبوت لمدة InpCooldownMinutes=30 دقيقة)، سقف 50 صفقة يومية، فحص ساعات السوق (مغلق السبت، الأحد قبل 22:00 بتوقيت GMT، الجمعة من 21:00 بتوقيت GMT)، مرشح الجلسة (لندن 7-16 بتوقيت GMT أو نيويورك 12-21 بتوقيت GMT، مع تجنب آسيا 0-7 بتوقيت GMT صراحةً عند تشغيل InpAvoidAsia)، ومرشح أخبار اختياري (نافذة 15 دقيقة حول افتتاح لندن أو نيويورك عند تفعيل InpNewsFilter). تُصفّي OnTradeTransaction() صفقات DEAL_ENTRY_OUT حسب السحر، وتُراكم الربح+المبادلة+العمولة في g_realizedToday وg_realizedWeek، وتزيد g_tradesToday، وتزيد عداد الخسائر المتتالية في كل صفقة ربحها سالب (الذي يضبط g_cooldownUntil إلى الآن + 30*60 ثانية عند تفعيل التهدئة).

أوقات الجلسات مرتبطة بـ GMT، وليس وقت الخادم. تقرأ DetectGMTOffset_EX13007() قيمة InpServerGMTOffset إذا كانت غير صفرية؛ وإلا فتمشي خلال آخر 100 شمعة H1 بحثاً عن فجوة أكبر من ساعتين (بصمة انتقال التوقيت الصيفي) وتحسب الإزاحة عكسياً من حقل الساعة للشمعة الفاصلة. تُخزَّن تلك الإزاحة في g_gmtOffset وتُطرح داخل ServerToGMT_EX13007() قبل أي فحص جلسة أو أخبار. OnTester() هي دالة لياقة مخصصة: (net * pf) / (1 + dd)، ترجع 0 ما لم تكن هناك 30 صفقة على الأقل، ومعامل ربح موجب، وسحب موجب لمعاقبته. سيتسلق المحسّن في MT5 ضد تلك الدرجة.

يحتوي الملف المصدر على كمية كبيرة من الكود الميت. تُنشئ OnInit() مقبضين — handle_iRSI وhandle_MACD = iMA(_Symbol, PERIOD_CURRENT, 20, 0, MODE_SMA, PRICE_CLOSE) — لكن handle_MACD لا يُقرأ بعد إنشائه. بالمثل، المتغيرات m_trade_BuyLimit وm_trade_BuyStopLimit وtrade (CTrade ثانٍ) وm_money (CMoneyFixedMargin) وm_deal (CDealInfo)، والدوال المساعدة get_Stochastic وIsPositionExists وLotCheck ودالة MapAppliedPriceInt (المُعلنة ست مرات) كلها معرَّفة لكن لا تُستخدم في التدفق الحي. مدخل InpShift مُتحقَّق منه >= 1 عند البدء لكن RSI_Alert() تقرأ دائماً عند start_pos=0، لذا فإن الإزاحة لا تُزيح قراءة RSI فعلياً. لا يؤثر أي من هذا على السلوك الحي، لكنه يوضح لماذا يبلغ عدد الدوال 21 وهو أكبر بكثير من الاستراتيجية نفسها.

عملياً، الروبوت هو أداة انعكاس عكس-اتجاه كتابية على RSI مرجح لـ 30 فترة. سيؤدي أداءً جيداً في سوق متذبذب حيث يلامس المذبذب 20 و80 بانتظام وينعكس السعر إلى المتوسط؛ وسيُقطَّع في يوم اتجاهي، بافتتاح صفقة بعد أخرى ضد الاتجاه حتى يوقفه قاتل 95٪ أو حد الخسارة اليومي 3٪. لتكوين قابل للاستخدام: أبقِ الوسيط على سعر XAUUSD خماسي الأرقام مع سبريد أقل من 30 نقطة، واترك InpAvoidAsia مُفعّلاً (جودة إشارة الروبوت على XAUUSD سيئة في آسيا)، وفكر في التدخل اليدوي عندما يبقى مؤشر RSI لـ 30 فترة مثبتاً عند 20 لعشر شموع أو أكثر — هذا هو النظام الذي ينفد فيه هذا التصميم من المسار.

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

تبدأ OnTick() بتشغيل UpdateDailyCounters_EX13007() لتصفير عدادات اليوم عند انتقال التاريخ، ثم IsSafeToTrade_EX13007() لتقييم مكدس الأذونات الكامل ذو العشر بوابات (إيقاف السقف، حد الرصيد الأدنى، قاتل الرصيد الأولي 95٪، خسارة يومية 3٪، خسارة أسبوعية 6٪، تهدئة 30 دقيقة بعد 3 خسائر متتالية، سقف 50 صفقة يومية، ساعات السوق، جلسة GMT، مرشح أخبار اختياري). فقط عند أول تيك لشمعة جديدة تستدعي RSI_Alert()، التي تسحب ثلاث قيم من مقبض iRSI(30) عبر iGetArray()، وتقارن آخر قيمة بـ Inp_RSI_LevelDOWN وInp_RSI_LevelUP، وتطلق SendNotification() بالوسم المُكوَّن، وتمرر إلى OpenPosition(). تبني OpenBuy() وOpenSell() طلب MqlTradeRequest بجني أرباح ووقف خسارة كإزاحات نقاط خامة، وتختار نوع التعبئة المسموح للوسيط (FOK مفضل، IOC بديل)، وتمرر عبر TryOrderSend_EX13007() — ثلاث محاولات مع Sleep لمدة 200 مللي ثانية عند REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED وكسر فوري عند أي رمز إرجاع آخر. تُصفّي OnTradeTransaction() صفقات DEAL_ENTRY_OUT حسب السحر، وتُراكم الربح+المبادلة+العمولة في عدادات اليوم/الأسبوع التي تقرأها البوابات في التيك التالي، وتزيد g_consecLosses في كل صفقة ربحها سالب. ترجع OnTester() القيمة (net * pf) / (1 + dd) عندما تكون الصفقات >= 30 وكان pf وdd موجبين، وإلا 0.

إشارة الدخول

عند أول تيك لشمعة جديدة، تقرأ RSI_Alert() آخر قيمة لمؤشر RSI لمدة 30 فترة على الإغلاق المرجح وتقارنها بالعتبتين المُكوَّنتين: شراء عندما ينخفض RSI(0) إلى Inp_RSI_LevelDOWN (افتراضي 20) أو أقل، بيع عندما يصل RSI(0) إلى Inp_RSI_LevelUP (افتراضي 80) أو أعلى. كل إشارة مُطلقة تدفع تنبيهاً عبر SendNotification() بالوسم القابل للتكوين ("Signal Buy" / "Signal Sell") وتمرر مباشرة إلى OpenPosition().

إشارة الخروج

تُغلق الصفقات حصرياً عند وقف الخسارة أو جني الأرباح على جانب الوسيط، وكلاهما مضبوط افتراضياً على 200 نقطة من نقطة الدخول. لا توجد خطوة تعادل، ولا منطق وقف متحرك، ولا إغلاق جزئي، ولا يعدّل الروبوت الأوامر المفتوحة — بمجرد الإرسال، يبقى وقف الخسارة وجني الأرباح لدى الوسيط طوال عمر الصفقة.

وقف الخسارة

وقف الخسارة هو 200 نقطة ثابتة مضبوطة على خادم الوسيط عند الدخول، قابل للتكوين عبر InpStopLoss — على سعر XAUUSD العشري الثنائي يساوي تقريباً 2.00 دولار تحت الدخول للشراء وفوقه للبيع. لا يوجد تحجيم قائم على ATR، ولا تعديل تذبذب، ولا حساب نسبة مخاطرة لكل صفقة؛ وقف الخسارة ثابت لا يُعدَّل بعد إرسال الأمر.

جني الأرباح

جني الأرباح هو 200 نقطة ثابتة، مضبوط على خادم الوسيط وقابل للتكوين عبر InpTakeProfit، يعكس وقف الخسارة بنسبة 1:1 بالضبط. لا يوجد تحجيم، ولا إغلاق جزئي، ولا جني أرباح متحرك يُطبَّق — جني الأرباح ثابت يحتفظ به الوسيط على جانبه طوال عمر الصفقة.

الأنسب لـ

الرصيد الموصى به: 100 دولار حد أدنى، 1,000-5,000 دولار عملياً. شغّل على XAUUSD M5 أو H1 عند وسيط خماسي الأرقام بسبريد أقل من 30 نقطة ودعم تعبئة FOK أو IOC، ويفضل ECN/RAW. أبقِ مرشح جلسة لندن 7-16 بتوقيت GMT ونيويورك 12-21 بتوقيت GMT مُفعّلاً، واترك InpAvoidAsia مُفعّلاً (إشارات RSI على XAUUSD صاخبة في آسيا)، ولا تتجاوز أبداً قاتل حد الرصيد 95٪ أو سُقُف الخسارة اليومية 3٪ والأسبوعية 6٪. هذه أداة انعكاس عكس-اتجاه — اقرنها بسياق اتجاه يدوي على H1 واقبل أنه في يوم اتجاه قوي سيواصل الروبوت الإطلاق في الحركة حتى توقفه بوابات الأمان.

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

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

العائلة: RSI_MA الماجيك: 22213007 الإصدار: 2.00

الوصف: RSI alert EA that sends buy signals when RSI drops to the lower level and sell signals when RSI reaches the upper level. Trades with fixed SL/TP, lot/risk money management and max-positions cap. Full 12-layer stack: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • OnTradeTransaction()
  • DigitsLots()
  • CheckVolumeValue()
  • CheckMoneyForTrade()
  • OpenPosition()
  • iGetArray()
  • RefreshRates()
  • IsFillingTypeAllowed()
  • get_Stochastic()
  • IsPositionExists()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX13007 RSI_MA — Execution Flow (from source analysis)
// Family: RSI_MA
// RSI alert EA that sends buy signals when RSI drops to the lower level and sell signals when RSI reaches the upper level. Trades with fixed SL/TP, lot/risk money management and max-positions cap. Full 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
الأطر الزمنية المُحسّنة:
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

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

المعاملالافتراضيالوصف
InpVolumeLotOrRisk0.01The value for "Money management"
InpStopLoss200Stop Loss (SL)
InpTakeProfit200Take Profit (TP)
InpMaxPositions10Maximum number of positions ('0' -> OFF)
InpShift2Shift in bars (from 1 to 255)
InpMagic22213007Magic Number
InpDailyLossLimitPct3.0Daily loss limit (% of effective capital)
InpMaxLot5.0Hard lot cap per trade
InpServerGMTOffset0Server GMT offset hours (0=auto-detect)
InpLondonStartHour7London session start (GMT)
InpLondonEndHour16London session end (GMT)
InpNYStartHour12New York session start (GMT)
InpNYEndHour21New York session end (GMT)
InpAvoidAsiatrueAvoid Asian session
InpAsiaStartHour0Asian session start (GMT)
InpAsiaEndHour7Asian session end (GMT)
InpNewsFilterfalseAvoid trading near news session opens
InpNewsFilterMinutes15Minutes to avoid around news
InpMaxTradesPerDay50Maximum trades per day
InpMinEquityPercent95.0Stop trading if equity < this % of initial balance
InpCooldownMinutes30Cooldown minutes after consec losses
InpMaxConsecLosses3Max consecutive losses before cooldown
Inp_RSI_ma_period30RSI: averaging period
Inp_RSI_applied_price7Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // RSI: type of price
Inp_RSI_LevelUP80RSI Fast and Slow: Level UP
Inp_RSI_LevelDOWN20RSI Fast and Slow: Level DOWN
Inp_RSI_stringUP"Signal Sell"RSI Fast and Slow: Level UP label
Inp_RSI_stringDOWN"Signal Buy"RSI Fast and Slow: Level DOWN label
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX13007.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX13007 RSI_Alert — RSI overbought/oversold alert bot, full 12-layer stack."
#include <Trade\Trade.mqh>
//---

#include <Trade/Trade.mqh>
#include <Trade/SymbolInfo.mqh>
#include <Expert/Money/MoneyFixedMargin.mqh>
CPositionInfo  m_position;                   // trade position object
CTrade         m_trade;                      // trading object
CTrade         m_trade_BuyLimit     ;         // trade buy limit
CTrade         m_trade_BuyStopLimit  ;  
CTrade         trade;      // trade buy stop limit
CSymbolInfo    m_symbol;                     // symbol info object
//CAccountInfo   m_account;                    // account info wrapper
CMoneyFixedMargin  m_money;
CDealInfo      m_deal;
//--- input parameters
ENUM_APPLIED_PRICE MapAppliedPriceInt(int ap)
{
   switch(ap)
   {
      case 1: return PRICE_CLOSE;
      case 2: return PRICE_OPEN;
      case 3: return PRICE_HIGH;
      case 4: return PRICE_LOW;
      case 5: return PRICE_MEDIAN;
      case 6: return PRICE_TYPICAL;
      case 7: return PRICE_WEIGHTED;
      default: return PRICE_CLOSE;
   }
}
ENUM_APPLIED_PRICE g_Inp_RSI_applied_price = PRICE_CLOSE;
input group "=== General Setting ==="
input double               InpVolumeLotOrRisk      = 0.01;            // The value for "Money management"
input uint                 InpStopLoss             = 200;            // Stop Loss (SL)
input uint                 InpTakeProfit           = 200;            // Take Profit (TP)
input uchar                InpMaxPositions         = 10;              // Maximum number of positions ('0' -> OFF)
input uchar                InpShift             = 2;                    // Shift in bars (from 1 to 255)
input ulong                InpMagic              = 22213007;                 // Magic Number
input string              InpTradeComment        = "Psgrowth.com Expert_13007";

ENUM_APPLIED_PRICE MapAppliedPriceInt(int ap)
{
   switch(ap)
   {
      case 1: return PRICE_CLOSE;
      case 2: return PRICE_OPEN;
      case 3: return PRICE_HIGH;
      case 4: return PRICE_LOW;
      case 5: return PRICE_MEDIAN;
      case 6: return PRICE_TYPICAL;
      case 7: return PRICE_WEIGHTED;
      default: return PRICE_CLOSE;
   }
}
ENUM_APPLIED_PRICE g_Inp_RSI_applied_price = PRICE_CLOSE;

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

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

الوسوم:ex13007rsi_mapipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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