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

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

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

Pipsgrowth EX13001 RSI_MA — RSI emerges from oversold while price is above D1-SMA => bullish pullback entry; mirror for shorts. RSI-cross-with-MA- b. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

اكسبيرت EX13001 RSI_MA هو روبوت انعكاس متوسط يصطاد اللحظة التي يرتد فيها مؤشر RSI(21) فوق أو تحت خط التشبع الشرائي/البيعي، بينما يؤكد المتوسط المتحرك البطيء أن الاتجاه العام ما زال سليماً. عدد أدوات الإشارة قليل — مؤشر تذبذب واحد، فلتر اتجاه واحد، توافق إطار زمني أعلى واحد، مصنف نظام سوق واحد — لكن بوابة اتخاذ القرار أوسع من الإشارة نفسها، إذ تتراكم فوقها سبع طبقات: مصنف النظام المكون من سبع حالات، فحص نسبة المخاطرة إلى العائد المرتكزة على ATR، فلتر الجلسة، قاطع خسارة يومي، فترة تهدئة ثلاث شموع بعد كل صفقة خاسرة. والصفقة التي تُفتح تُدار على ثلاث طبقات: إغلاق جزئي لـ50% عند +1R، قفل وقف الخسارة عند نقطة التعادل زائد نقطتين عند +1R، وقف متحرك يرتكز على ATR، انتهاء زمني عند 200 شمعة، وخروج إجباري عند وصول RSI إلى الطرف المعاكس.

جوهر الإشارة في ComputeSignal(). يسحب شموعتي RSI من الإطار الزمني الحالي وقيمة واحدة للمتوسط المتحرك. شرط الشراء: أن يكون RSI للشمعة السابقة عند أو تحت خط التشبع البيعي (100 − InpRSIThreshold، أي 30 افتراضياً)، وأن يكون RSI للشمعة الحالية فوق هذا الخط، وأن يكون إغلاق الشمعة السابقة فوق المتوسط المتحرك البطيء (21) — أي أن الانعكاس يحدث داخل اتجاه صاعد وليس داخل سوق هابط. شرط البيع هو المرآة. عند تحقق التقاطع، تُحسب درجة ثقة بناءً على مقدار اختراق RSI للعتبة (50 + 2 × المسافة، بحد أقصى 100) ويُسجل السبب في السجل.

التأكيد في ConfirmEntry() ويضيف أربع عقبات. الأولى: المتوسط المتحرك الأسي (50) على إطار H1 يجب أن يوافق — للإشارة الشرائية يجب أن يكون إغلاق H1 فوق المتوسط، وللبيعية تحته. إطار H1 مُعرَّف نهائياً عبر HTF_TREND_TF، ومقبض EMA(50) يُنشأ في OnInit. الثانية: السبريد الحالي يجب أن يكون تحت InpMaxSpreadPoints (30 افتراضياً) وألا يتجاوز ضعف المتوسط المتحرك لخمسين تكة الأخيرة. الثالثة: ساعة خادمBroker يجب أن تكون بين 07:00 و21:00، والنظام يجب ألا يكون CHOPPY. الرابعة: نسبة المخاطفة إلى العائد يجب ألا تقل عن InpMinRR (1.2) — مسافة وقف = 1.5 × ATR(14)، مسافة جني = 2 × الوقف.

مصنف النظام في ComputeRegime() هو القطعة الأكثر تميزاً في الكود. لا يعتمد على مقياس اتجاه واحد. يسحب 102 شمعة من ATR، و102 من عرض بولنجر، و3 من ADX، ثم يحسب النسبتين المئويتين 20 و80 لـ ATR، والنسبة 25 لعرض بولنجر، على آخر 100 شمعة. يستخرج منها علامتين منطقيتين: COMPRESS (ATR تحت النسبة 20 وعرض بولنجر تحت 25)، EXPAND (فوق النسبة 80 لـ ATR)، ثم يطويها مع نطاقات ADX عند 25 (قوي) و18 (ضعيف). الناتج enum من سبع حالات — STRONG_TREND, WEAK_TREND, RANGE, BREAKOUT, EXPAND, COMPRESS, CHOPPY — ومسار الدخول يرفض CHOPPY في مكانين (فحص OnTick قبل الإشارة وفحص ConfirmEntry). المصنف يعمل عند كل إغلاق شمعة بصرف النظر عن وجود إشارة، لتكون البوابة بسياق طازج عند عودة ComputeSignal().

إدارة رأس المال في دالتين منفصلتين. ComputeEffectiveCapital() ترجع حقوق الحساب مقيّدة بـ InpCapitalCapAmount عند تعيينه؛ يمكن تصفير Cap لتعطيله. إن كان Cap مفعلاً وانخفض رأس المال الفعال تحت InpCapitalCapFloor (50 افتراضياً)، ترفض NoTradeGate() فتح أي صفقة. ComputeLots() تحتسب حجم الصفقة من مسافة الوقف المتوقعة: المخاطرة = رأس المال الفعال × 0.5%، الخسارة لكل لوت = (مسافة الوقف / حجم التكة) × قيمة التكة، اللوتات = المخاطرة / الخسارة لكل لوت، ثم يُقرَّب لأقرب حجم مسموح به. الرقم نفسه يُستخدم لتطبيق قاطع الخسارة اليومي 3% (TodayLossRatio() يتصفح تاريخ الصفقات من منتصف الليل، يجمع الربح + السواب + العمولة لصفقات الإغلاق المسجلة بـ InpMagic، ويُعيد الخسارة كنسبة مئوية).

إدارة المراكز في ManageOpenPositions()، تعمل عند كل تكة طالما كان مقبض ATR يعطي قيمة. تتصفح PositionsTotal بالعكس، تصفي حسب الـ magic والرمز، وتطبق على كل مركز خمس خطوات بالتسلسل. الأولى: التعادل — بمجرد أن يتحرك السعر InpBE_RMultiple × مسافة الوقف (= 1.0R) في صالح الصفقة، يُضبط الوقف على سعر الفتح + نقطتين (BE_OFFSET_POINTS = 2) — قفل تعادل زائد حقيقي، ليس تعادلاً مسطحاً. الثانية: الوقف المتحرك بـ ATR — الوقف يصبح bid − 2.5 × ATR للشراء، ask + 2.5 × ATR للبيع، بشرط أن يكون المنحنى الجديد أضيق (أكبر من الحالي للشراء، أصغر للبيع) وأبعد من حد الوقف الأدنى لدى Broker. الثالثة: جني الأرباح الجزئي عند PARTIAL_TP_R = 1R، يُغلق 50% ويُترك الباقي ليصل إلى FULL_TP_R = 2R. الرابعة: الخروج الزمني عند MAX_BARS_IN_TRADE = 200 شمعة على الإطار الحالي. الخامسة: الخروج عند الإشارة المعاكسة — إن كان المركز شراء ووصل RSI الحالي إلى InpRSIThreshold أو تجاوزه، يُغلق المركز؛ المرآة للبيع. بعد كل خطوة تستدعي الدالة ModifyPositionSL() أو CloseThisPosition() أو ClosePartial()، وكل واحدة منها تمر عبر TryClose/TryClosePartial/TryModify_EX13001 — حلقات إعادة محاولة ثلاثية المحاولات مع توقف 200 مللي ثانية عند REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED للإغلاق، وREQUOTE/TIMEOUT فقط لتعديل الوقف.

المدخلات التسعة عشر موزعة على ست مجموعات: الهوية (magic = 22213001، التعليق، وضع المحاكاة الافتراضي TRUE، قاتل الإيقاف)، سقف رأس المال (مبلغ السقف، الأرضية)، المخاطرة والتسيير (نسبة المخاطرة 0.5%، حد الخسارة اليومي 3%، الحد الأقصى لمراكز متوازية 1، الحد الأدنى للمخاطرة للعائد 1.2)، الإشارة (فترة RSI 21، عتبة RSI 70، فترة المتوسط 21)، النظام/التأكيد/التنفيذ (الحد الأدنى ADX 18، الحد الأقصى للسبريد 30، الانزلاق 10)، الخروج/الإدارة (مضاعف ATR للوقف 1.5، مضاعف R للتعادل 1.0، مضاعف ATR للوقف المتحرك 2.5). وضع المحاكاة الافتراضي TRUE مقصود — يجبر الاكسبيرت على طباعة كل صفقة مقصودة في السجل دون إرسالها، ليرى المستخدم الإشارات والخروج والتعديلات على الشارت الحي قبل التبديل. قاتل الإيقاف يفرض وضع الإغلاق فقط دون الحاجة لإزالة الاكسبيرت من الشارت. فلتر الجلسة هو بتوقيت الخادم من 07:00 إلى 21:00 مع تخفيف الجمعة من 20:00 فصاعداً، وليس تقاطع لندن/نيويورك، لذا سلوك الاكسبيرت يعتمد على ساعة خادم Broker. معيار OnTester المخصص يُعيد (صافي الربح × عامل الربح) / (1 + نسبة السحب على رأس المال) عندما يكون إجمالي الصفقات ≥ 30، مما يكافئ الاستراتيجيات التي تجمع بين توقع إيجابي وسحب منخفض. لا توجد مارتينجال ولا شبكة ولا سلة ولا وحدة أخبار — NEWS_BLACKOUT_MINUTES مُعرَّف نهائياً لكن استدعاء CalendarValueHistory ترك فارغاً.

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

يُنشئ OnInit ستة مقابض مؤشرات — RSI(21) و MA(21) على الإطار الزمني للشارت، ATR(14) و ADX(14) و بولنجر (20, 2.0) لمصنف النظام، و EMA(50) على H1 لتأكيد الاتجاه الأعلى — ويُكوّن غلاف CTrade بالـ magic 22213001 وانزلاق 10 نقاط. في OnTick يحدّث أسعار الرمز، يتصفح تاريخ الصفقات بحثاً عن إغلاقات جديدة لتحديث عداد الخسائر المتتالية (الذي يضبط فترة تهدئة 3 شموع عند كل إغلاق خاسر)، ثم يشغّل ManageOpenPositions() بشكل غير مشروط بقيمة ATR الحالية. عند شمعة جديدة، يمشي على NoTradeGate() (قاطع الإيقاف، حد السبريد، توقيت الخادم 07:00-21:00 مع تخفيف الجمعة من 20:00، أرضية رأس المال، قاطع الخسارة اليومي 3%، حد المراكز المتوازية، حد التعرض للرمز، تهدئة الخسارة)، ثم ComputeRegime() لتصنيف الشمعة في إحدى سبع حالات، ثم مرشحات ADX والنظام، ثم ComputeSignal() لكشف تقاطع RSI مع انحياز المتوسط، ثم ConfirmEntry() لفحص توافق H1-EMA وحد السبريد وفحص الجلسة وفحص النظام والحد الأدنى 1.2 لـ R/R. إن اجتاز كل شيء، تحتسب ComputeLots() حجم الأمر من مسافة SL المتوقعة × 0.5% من رأس المال الفعال، وNormalizeize ComputeSLTP() الوقف والجني إلى حجم التكة وتدفع الوقف للخارج من حد الـ Broker، ويفتح SendOrder() الصفقة مع إعادة محاولة واحدة عند REQUOTE/PRICE_OFF/TIMEOUT. وضع المحاكاة الافتراضي TRUE لذا يطبع الاكسبيرت الأوامر المقصودة في تبويب Experts دون إرسالها حتى يقلبها المستخدم.

إشارة الدخول

إشارة الشراء تُفعَّل عندما يكون إغلاق الشمعة السابقة لـ RSI(21) عند أو تحت 30 (100 − InpRSIThreshold=70) ويكون إغلاق الشمعة الحالية فوق 30، وأن يكون إغلاق الشمعة السابقة فوق المتوسط المتحرك (21). إشارة البيع هي المرآة تماماً. تُرفض الإشارة ما لم يكن ADX(14) عند 18 على الأقل، ومصنف النظام يُرجع أي شيء عدا CHOPPY، و EMA(50) على H1 يوافق الاتجاه، والسبريد تحت 30 نقطة ولا يتجاوز ضعف المتوسط المتحرك لـ50 تكة، وساعة الخادم بين 07:00 و21:00، ونسبة المخاطرة للعائد المتوقعة (TP عند 2R مقابل SL عند 1.5×ATR) لا تقل عن 1.2.

إشارة الخروج

تخرج الصفقة بإحدى خمس طرق: إغلاق جزئي لـ50% عند +1R، وجني الأرباح النهائي عند +2R، وخروج إجباري عند الإشارة المعاكسة في اللحظة التي يصل فيها RSI إلى الطرف المعاكس (≥70 للشراء، ≤30 للبيع)، ووقف متحرك بـ ATR(14) عند 2.5×ATR يشد خلف السعر بعد تفعيل قفل التعادل+2، وخروج زمني عند 200 شمعة لأي صفقة لم تحسم نفسها.

وقف الخسارة

وقف الخسارة الابتدائي 1.5×ATR(14) تحت سعر الدخول للشراء (فوقه للبيع)، ولا يقترب أبداً من أقل من حد وقف الخسارة لدى Broker زائد 5 نقاط أمان. عند وصول السعر إلى +1R، يُشد الوقف إلى سعر الدخول + نقطتين (قفل تعادل زائد حقيقي)، ومن هناك يتولى الوقف المتحرك ATR(14)×2.5 ويستمر في الإحكام فقط.

جني الأرباح

TP1 عند +1R (يأخذ 50% عبر الإغلاق الجزئي) وTP2 للباقي عند +2R. يُضبط وقف جني الأرباح من جانب Broker على مستوى 2R عند الفتح، ثم تُضاف جزئية 1R فوقه عبر ClosePartial(). بوابة R/R الأدنى ترفض أي إشارة لا يمكن أن يصل TP المتوقع فيها إلى 1.2R على الأقل.

الأنسب لـ

الأنسب على XAUUSD M5 أو H1 مع حساب ECN أو RAW سبريد منخفض (تحت 30 نقطة على الذهب، تحت نقطتين على الأزواج الرئيسية) ووديعة لا تقل عن 100 دولار، مع التوصية بـ 300-500 دولار لاستيعاب وقف 1.5×ATR(14) على الذهب. نافذة الجلسة 07:00-21:00 بتوقيت الخادم تغطي لندن وافتتاح نيويورك في معظم ساعات خوادم Broker لكن الاكسبيرت يحترم ما يضبطه الخادم، لذا تحقق من فرق GMT لـ Broker قبل التشغيل. تجنب تشغيله على وسطاء يقدمون تسعير عطلة، وأثناء إصدارات FOMC/ECB/NFP (وحدة فلتر الأخبار غير مربوطة)، وعلى الحسابات تحت 100 دولار حيث تسيير المخاطرة 0.5% سيُقرَّب تحت الحد الأدنى لحجم اللوت لدى Broker.

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

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

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

الوصف: RSI emerges from oversold while price is above D1-SMA => bullish pullback entry; mirror for shorts. RSI-cross-with-MA- bias core gated by full 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • CopyBufSafe()
  • CopyCloseSafe()
  • CopyCloseSafeTF()
  • GetStopsLevelPrice()
  • NormalizePrice()
  • ClampVolume()
  • CheckMargin()
  • CurrentSpreadPoints()
  • ComputeEffectiveCapital()
  • ComputeTodayRealizedPnL()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX13001 RSI_MA — Execution Flow (from source analysis)
// Family: RSI_MA
// RSI emerges from oversold while price is above D1-SMA => bullish pullback entry; mirror for shorts. RSI-cross-with-MA- bias core gated by full 12 layers: 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

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

المعاملالافتراضيالوصف
InpMagic22213001Magic number (unique per EA)
InpTradeComment"Psgrowth.com Expert_13001"Trade comment
InpDryRuntrueDry-run mode (no live orders) (—)
InpKillSwitchfalseKill switch (true=close-only) (—)
InpCapitalCapAmount0.0Cap amount in account currency ($)
InpCapitalCapFloor50.0Floor below which new trades blocked ($)
InpRiskPercent0.5Risk per trade (% of effective capital)
InpDailyLossLimitPct3.0Daily loss limit (% of effective capital)
InpMaxConcurrent1Max concurrent positions (—)
InpMinRR1.2Minimum reward:risk to take entry (—)
InpRSIPeriod21RSI period (bars)
InpRSIThreshold70RSI extreme threshold (e.g. 70 => OB, 30 OS)
InpMAPeriod21Slow MA period (bars)
InpMinADX18.0Minimum ADX for entry (—)
InpMaxSpreadPoints30Max allowed spread (points)
InpSlippagePoints10Order slippage/deviation (points)
InpATR_SLMult1.5ATR multiplier for initial SL (xATR)
InpBE_RMultiple1.0Break-even trigger (x R-multiple)
InpTrailATRMult2.5ATR trailing-stop multiplier (xATR)
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX13001.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX13001 RSI MA V2 EA — RSI pullback + MA bias trend EA, 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>

//================== NON-INPUT TUNABLES (defines) ===================
#define MA_TF                   PERIOD_CURRENT  // Signal MA timeframe (chart TF)
#define MA_METHOD               MODE_SMA        // Slow trend-bias MA method
#define MA_APPLIED_PRICE        PRICE_OPEN      // Match source
#define RSI_APPLIED_PRICE       PRICE_OPEN      // Match source
#define HTF_TREND_TF            PERIOD_H1       // Higher-timeframe trend agreement
#define HTF_EMA_PERIOD          50              // HTF EMA period
#define ATR_PERIOD              14
#define ADX_PERIOD              14
#define BB_PERIOD               20
#define BB_DEVIATION            2.0
#define ATR_PCTILE_LOOKBACK     100
#define BB_PCTILE_LOOKBACK      100
#define REGIME_COMPRESS_PCTILE  20.0
#define REGIME_EXPAND_PCTILE    80.0
#define REGIME_STRONG_ADX       25.0
#define REGIME_WEAK_ADX         18.0
#define REGIME_BB_NARROW_PCT    25.0
#define PARTIAL_TP_RATIO        0.50            // Close 50% at TP1
#define PARTIAL_TP_R            1.0             // TP1 = 1R
#define FULL_TP_R               2.0             // Final TP = 2R
#define BE_TRIGGER_R            1.0             // Move to BE at +1R
#define BE_OFFSET_POINTS        2               // Lock +2 pts beyond entry
#define MAX_BARS_IN_TRADE       200
#define MAX_SYMBOL_EXPOSURE     1               // Max positions per symbol
#define COOLDOWN_BARS_AFTER_LOSS 3
#define MAX_DAILY_DRAWDOWN_CACHE_MS 60000
#define PYRAMID_ENABLED         false
#define PYRAMID_MAX_LEVELS      3               // hard-capped
#define PYRAMID_MIN_ATR_SPACING 1.0
#define SESSION_START_HOUR      7               // Broker server time
#define SESSION_END_HOUR        21
#define NEWS_BLACKOUT_MINUTES   0               // Manual news window minutes (0 = off)
#define SPREAD_ROLLING_LOOKBACK 50

enum ENUM_REGIME
  {
   REGIME_STRONG_TREND = 0,
   REGIME_WEAK_TREND   = 1,
   REGIME_RANGE        = 2,
   REGIME_BREAKOUT     = 3,
   REGIME_COMPRESS     = 4,
   REGIME_EXPAND       = 5,
   REGIME_CHOPPY       = 6
  };

//================== INPUTS (20 total) ==============================

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

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

الوسوم:ex13001rsi_mapipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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