P
PipsGrowth
متابعة الاتجاهمفتوح المصدر - مجاني

Pipsgrowth EX16071 Trend — إكسبرت أدفايزر متابعة اتجاه

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

Pipsgrowth EX16071 Trend — Reverse strategy EA using Bollinger Bands (MA + StdDev) and RSI for mean-reversion entries. Buys when price touches lowe. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX16071 Trend هو إكسبرت يعتمد على استراتيجية الارتداد إلى المتوسط (Mean-Reversion) مبني حول نطاق بولينجر مُصمَّم داخل الكود، وليس متابعاً للاتجاه رغم تسميته العائلية. يبني ملف المصدر Pipsgrowth_com_EX16071.mq5 النطاق بنفسه: يحمّل iMA(symbol, PERIOD_CURRENT, MA_period=20, 0, MODE_SMA, PRICE_CLOSE) ومؤشر iStdDev(symbol, PERIOD_CURRENT, MA_period=20, 0, MODE_SMA, PRICE_CLOSE) بالتوازي، ثم يعامل الإطار كـ MA ± 2 × STDV. ويوفّر مؤشر iRSI بفترة 14 مرشح الزخم. تُنشأ المقابض الثلاثة (handle_iMA_M5 وhandle_iSTDV_M5 وhandle_iRSI_M5) كلها مقابل PERIOD_CURRENT، لذا يتكيّف الإكسبرت مع أي إطار زمني ترفقه به على الشارت.

لا يُفعِّل محرك الإشارات إلا على شمعة جديدة. في أول تيكة من كل شمعة جديدة، تأخذ OnTick لقطات من iMAGet وiSTDVGet وiRSIGet عند الفهرسين 0 و1 — أي الشمعة المنتهية والشمعة التي قبلها. يتطلب الدخول شراءً تحقق أربعة شروط معاً: إغلاق الشمعة السابقة تحت الحد الأدنى من النطاق (Previous_Close < MA_1 - 2*STDV_1)، وأن يكون إغلاق الشمعة الحالية قد عاد داخل هذا الحد الأدنى أو تجاوزه (Current_Close >= MA_0 - 2*STDV_0)، وأن يكون مؤشر RSI للشمعة السابقة تحت 30، وأن يكون RSI الحالي عند 30 أو أعلى. شرط الـRSI هو تقاطع حقيقي وليس مجرد عتبة — يجب أن تتزامن الشمعة التي أعادت السعر داخل النطاق مع تحوّل الزخم نحو الأعلى من منطقة التشبع البيعي. جانب البيع هو المرآة تماماً عند الحد الأعلى، مع تقاطع RSI هبوطاً عبر 70.

إذا تحققت الشروط، يحدّث الإكسبرت الأسعار ثم يحسب my_SL = Ask - STDV_0 وmy_TP = Ask + 2*STDV_0 للشراء (و+STDV_0 و-2*STDV_0 للبيع). نسبة المخاطرة إلى العائد مثبّتة عند 1:2 قياساً على مسافة الانحراف المعياري المباشر. تتحقّق m_trade.CheckVolume من الأمر وفقاً لقيود اللوت لدى الوسيط قبل إرسال m_trade.Buy أو m_trade.Sell بالسحر 22216071. حجم اللوت ثابت عند my_lot، وقيمته الافتراضية 1.0 — لا يوجد حساب بالنسبة المئوية للرصيد، ولا نسبة مخاطرة، ولا تحجيم ديناميكي، ولا تدرّج في الدخول، ولا مارتنغيل. توجد دوال TryClose_EX16071 وTryClosePartial_EX16071 وTryModify_EX16071 في الكود لكن مسار الدخول لا يستدعي أياً منها.

بمجرد فتح الصفقة، تؤدي حلقة OnTick مهمة وقائية واحدة: تراقب إغلاق الشمعة الحالية، وإذا وصل إغلاق الشراء إلى الحد الأعلى أو تجاوزه (Current_Close >= MA_0 + 2*STDV_0) تستدعي TryClose_EX16071(ticket) لإجبار الخروج؛ وتحصل صفقات البيع على المعاملة نفسها عند الحد الأدنى. هذه هي شبكة الأمان الرئيسية للإكسبرت للصفقات التي — رغم مُحفِّز الدخول — ترفض الارتداد. لا يوجد وقف متحرك، ولا تحريك لنقطة التعادل، ولا إغلاق جزئي، ولا خروج مبني على الوقت، ولا وقف للوقوع على مستوى رصيد. وقف الخسارة وجني الأرباح الثابتان المُرسَلان مع الأمر الأصلي هما المستويان الوقائيان الوحيدان حتى يتدخل الحد المقابل.

يتأثر ملف المخاطر بشكل مباشر بعرض النطاق نفسه. لأن وقف الخسارة يساوي STDV واحد بالضبط وجني الأرباح يساوي STDVان، تصبح الصفقة رهاناً على هلسيعكس لمس النطاق فعلاً أم سيتحول إلى استمرار. عندما يدفع يوم اتجاهي قوي سعر XAUUSD عبر الحد الأدنى ويواصل، يمكن لقيمة my_lot = 1.0 مع وقف STDV واحد على M5 أن تعطي تراجعاً ملموساً قبل أن يُفعَّل أي من الوقف الثابت أو إغلاق الحد العلوي. يجب على من يشغّل الاختبار الخلفي أن ينتبه بشكل خاص إلى فترات تجمّع الخسائر حول الأخبار ذات التأثير العالي، حيث يكون لمؤشر بولينجر للارتداد أسوأ معدل إصابة تاريخي.

يصف الترويسة مكدس «12 طبقة: REGIME وSIGNAL وENTRY وCONFIRM وNO-TRADE وCAPITAL CAP وRISK وSIZING وMANAGE وEXIT وSCALING وOnTester»، لكن التطبيق الفعلي أبسط بكثير. لا يوجد OnTester ولا مصنّف نظام ولا فلتر جلسة ولا فلتر أخبار ولا بوابة حد أقصى للسبريد ولا حد أقصى لعدد الصفقات المفتوحة ولا قاطع ربح/خسارة يومي ولا أرضية رصيد ولا مهلة تهدئة بعد خسائر متتالية ولا منطق تدرّج. سيُطلق الإكسبرت كل إشارة مؤهَّلة طالما كان الوسيط مفتوحاً. اعتبر ادعاء الترويسة للطبقات الـ12 قالباً على مستوى العائلة، وليس قائمة ميزات لهذا الملف تحديداً.

ثمة شرط مسبق قاطع يتجاوز كل شيء آخر: فحص IsHedging() داخل OnInit يُرجع INIT_FAILED على حسابات الـNetting. يجب ضبط الحساب على ACCOUNT_MARGIN_MODE_RETAIL_HEDGING. حسابات الـNetting أو حسابات البورصة لن تحمّل الإكسبرت على الإطلاق — يظهر Print("Hedging only!") وتُجهض التهيئة قبل إنشاء أي مقبض مؤشر. تعديل الـ3/5 خانات في m_adjusted_point (مضاعف 10 للرموز ذات 3 أو 5 خانات، وإلا 1) هو مسار الكود الوحيد المتعلق بالوسيط خارج التحقق من اللوت.

تتوزع معاملات الإدخال السبعة على ثلاث مجموعات. تحمل Identity الرقم السحري وتعليق الصفقة، وتحتوي Trade Settings على قيمة my_lot الوحيدة، وتكشف Indicators عن MA_period وRSI_period وRSI_overbought وRSI_oversold. لا توجد مدخلات لمسافة وقف الخسارة أو جني الأرباح أو نوافذ الجلسات أو الحد الأقصى للسبريد أو عدد الصفقات — كل ذلك مُبرمَج داخل جسم OnTick. إعداد XAUUSD الافتراضي في قائمة PipsGrowth يعكس نمط التذبذب المستهدف للملف، لكن الوصف المختصر في الترويسة يصف الإكسبرت بأنه «محمول» عبر العملات الرئيسية والمعادن الأخرى. منطق الإشارة محايد للرمز، لذا يجب أن يعمل الكود نفسه على EURUSD أو XAGUSD دون إعادة ترجمة، شرط ألا يأكل السبريد والعمولة لدى الوسيط هيكل 1:2.

من يريد توسيع الملف لديه نقطة بداية نظيفة. التخصيصان الطبيعيان هما: (أ) استبدال my_lot الثابت بحساب نسبة مئوية من الرصيد يستند إلى AccountInfoDouble(ACCOUNT_BALANCE) ومسافة الوقف المعتمدة على STDV، و(ب) إضافة مدخل max-spread وبوّابة لاستدعاء الدخول مشروطة بـ m_symbol.Spread() < MaxSpreadPoints. منطق إغلاق الحد المقابل في حلقة إدارة الصفقات يستحق الإبقاء كما هو — إنها الميزة الوحيدة التي تمنع الصفقة المفتوحة من الانجراف إلى انحراف سلبي متعدد الأيام دون خروج.

ملاحظة قصيرة عمّا يمكن توقّعه في Strategy Tester لـMT5. مع المدخلات الافتراضية، توقّع تكراراً عالياً للصفقات على M5 (تقاطع النطاق على غلاف فترة 20 حدث متكرر في الأسواق المتذبذبة)، ومنحنى رصيد حساس لافتراضات السبريد (سبريد 30 نقطة على XAUUSD سيضغط بشكل ملحوظ على نسبة 1:2)، وانخفاضات حادة أحياناً خلال أيام الاتجاه عندما يفشل ارتداد الحد الأدنى. الاختبار الخلفي صادق بشأن طبيعة الاستراتيجية: ارتداد بمقاربة السكالبينج، وليس捕捉 اتجاهاً. شغّل الاختبار عبر ثلاثة أنظمة تذبذب مختلفة على الأقل قبل تحديد حجم رأس المال الفعلي.

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

في أول تيكة من كل شمعة جديدة، تسحب OnTick قيم iMAGet وiSTDVGet وiRSIGet لكل من الشمعة المنتهية للتو (الفهرس 0) والشمعة التي قبلها (الفهرس 1) عبر ثلاثة مقابض أُنشئت مقابل PERIOD_CURRENT داخل OnInit، ثم تبني نطاق بولينجر تركيبي كـ MA ± 2×STDV. يُفعَّل الشراء عندما انتهت الشمعة السابقة تحت الحد الأدنى وأغلقت الشمعة الحالية للتو داخل النطاق، مع تقاطع RSI(14) صعوداً عبر 30 عند الانتقال نفسه؛ والبيع هو المرآة عند الحد الأعلى مع تقاطع RSI(14) هبوطاً عبر 70. يُرسَل OrderSend بعد ذلك بحجم my_lot ثابت (افتراضي 1.0)، ووقف عند 1×STDV_0 من سعر التنفيذ، وجني أرباح عند 2×STDV_0، موسوماً بالسحر 22216071. إذا لم يُملأ أي من المستويين، تمر إدارة صفقة منفصلة في استدعاء OnTick نفسه وتجبر الصفقة على الإغلاق في اللحظة التي يصل فيها إغلاق الشمعة الحالية إلى النطاق المقابل عبر TryClose_EX16071 التي تعيد المحاولة حتى ثلاث مرات ضد رموز أخطاء إعادة التسعير وتغير السعر. يُرجع فحص IsHedging() داخل OnInit قيمة INIT_FAILED على حسابات الـNetting، لذا يحمَّل الإكسبرت فقط على وسطاء التحوط للأفراد؛ لا يوجد وقف متحرك، ولا تحريك لنقطة التعادل، ولا إغلاق جزئي، ولا تدرّج، ولا مارتنغيل — التصميم متعمَّد البساطة: إشارة واحدة، دخول واحد، خروج واحد.

إشارة الدخول

يُفعَّل الشراء عندما كان إغلاق الشمعة السابقة تحت الحد الأدنى من نطاق بولينجر (MA_1 - 2*STDV_1) وأعاد إغلاق الشمعة الحالية الدخول إلى هذا الحد أو تجاوزه، بينما يتقاطع مؤشر RSI بفترة 14 صعوداً عبر عتبة التشبع البيعي 30 عند الانتقال نفسه. البيع هو المرآة الكاملة عند الحد الأعلى، مع تقاطع RSI(14) هبوطاً عبر 70. جميع قراءات المؤشرات الثلاثة تستخدم شموعاً مغلقة (iMAGet وiSTDVGet وiRSIGet عند الفهرس 1 لشرط الإطلاق، والفهرس 0 للتأكيد).

إشارة الخروج

هناك مخرجان ممكنان. ينطلق جني الأرباح الثابت عند 2 × STDV_0 من سعر الدخول (1:2 مقابل وقف STDV_0 واحد)، ويُرسَل كجني أرباح صلب مع الأمر الأصلي. إذا لم يُفعَّل أي من الوقف أو الجني، تجبر حلقة إدارة المراكز في OnTick على إغلاق الصفقة في اللحظة التي يصل فيها إغلاق الشمعة الحالية إلى النطاق المقابل — صفقات الشراء عند MA_0 + 2*STDV_0، وصفقات البيع عند MA_0 - 2*STDV_0 — عبر دالة TryClose_EX16071 التي تعيد المحاولة ثلاث مرات عند أخطاء إعادة التسعير أو تغير السعر. لا يوجد وقف متحرك، ولا تحريك لنقطة التعادل، ولا إغلاق جزئي، ولا خروج زمني، ولا وقف رصيد.

وقف الخسارة

يُحسب وقف الخسارة بالضبط عند 1 × STDV_0 من سعر الدخول — Ask - STDV_0 لصفقات الشراء، وBid + STDV_0 لصفقات البيع — ويُرسَل كوقف ثابت في استدعاء OrderSend الأصلي. لا تُعدَّل المسافة بعد الدخول، لذا تتناسب المخاطرة الفعلية طردياً مع التذبذب الحالي وقت التنفيذ. لا يوجد وقف على مستوى الحساب بالكامل ولا حد أقصى للتراجع.

جني الأرباح

يوضع جني الأرباح عند 2 × STDV_0 من سعر الدخول، مما يعطي نسبة مخاطرة إلى عائد 1:2 ثابتة على عرض النطاق. جني الأرباح حد صلب يُرسَل مع الأمر، وليس مستوى وقف متحرك. إذا وصل السعر إلى النطاق المقابل قبل ملء الجني، تُغلق حلقة OnTick الصفقة قسرياً، لذا يمكن أن يحدث الخروج الفعلي عند جني الأرباح الثابت أو عند إغلاق النطاق المقابل، أيهما يقع أولاً.

الأنسب لـ

يُنشر بأفضل صورة على XAUUSD M5 أو H1 حيث ينتج عرض النطاق بفترة 20 هيكل 1:2 قابلاً للاستخدام عند تذبذب الذهب النموذجي، مع كفاية رصيد أدنى قدره 100 دولار لصفقة بحجم 1.0 لوت. يتطلب وسيطاً يعمل بوضع التحوط للأفراد (Exness أو IC Markets أو Pepperstone في وضع التحوط) — يفشل الإكسبرت فشلاً قاطعاً على حسابات الـNetting. تجنّب تشغيله في أوقات الأخبار ذات التأثير العالي المُجدوَلة، حيث يكون لارتدادات الحد الأدنى أسوأ معدل إصابة تاريخياً، وتوقّع منحنى رصيد حساساً لافتراضات السبريد.

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

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

العائلة: Trend الماجيك: 22216071 الإصدار: 2.00

الوصف: Reverse strategy EA using Bollinger Bands (MA + StdDev) and RSI for mean-reversion entries. Buys when price touches lower band with oversold RSI, sells on upper band with overbought RSI. Hedging mode required. Includes ATR-based SL/TP and position management. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • SetMarginMode()
  • IsHedging()
  • RefreshRates()
  • iTime()
  • iMAGet()
  • iSTDVGet()
  • iRSIGet()
  • TryClose_EX16071()
  • TryClosePartial_EX16071()
  • TryModify_EX16071()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX16071 Trend — Execution Flow (from source analysis)
// Family: Trend
// Reverse strategy EA using Bollinger Bands (MA + StdDev) and RSI for mean-reversion entries. Buys when price touches lower band with oversold RSI, sells on upper band with overbought RSI. Hedging mode required. Includes ATR-based SL/TP and position management. 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اسحب الإكسبرت على رسم H4 أو اليومي للحصول على أفضل النتائج
  7. 7حدد فترات EMA وعتبة ADX وحجم اللوت في نافذة الإعدادات
  8. 8فعّل Allow Algo Trading واضغط OK

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

المعاملالافتراضيالوصف
m_magic22216071Magic number
InpTradeComment"Psgrowth.com Expert_16071"Trade comment
my_lot1lot size
MA_period20period of the MA and STDV
RSI_period14period of the RSI
RSI_overbought70RSI overbought signal
RSI_oversold30RSI oversold signal
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16071.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16071 Reverse_Strategy — Bollinger Bands + RSI mean-reversion EA, full 12-layer stack."

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

CPositionInfo  m_position;                   // trade position object
CTrade         m_trade;                      // trading object
CSymbolInfo    m_symbol;                     // symbol info object
CAccountInfo   m_account;                    // account info wrapper

//---- input parameters
input group "=== Identity ==="
input ulong    m_magic=22216071;                // Magic number
input string   InpTradeComment="Psgrowth.com Expert_16071"; // Trade comment

input group "=== Trade Settings ==="
input double      my_lot         =1;       // lot size

input group "=== Indicators ==="
input int         MA_period      =20;        // period of the MA and STDV
input int         RSI_period     =14;         // period of the RSI
input int         RSI_overbought =70;        // RSI overbought signal
input int         RSI_oversold   =30;        // RSI oversold signal
ENUM_ACCOUNT_MARGIN_MODE m_margin_mode;

double m_adjusted_point;             // point value adjusted for 3 or 5 points 
int    handle_iMA_M5;                // variable for storing the handle of the iMA indicator
int    handle_iSTDV_M5;              // variable for storing the handle of the iSTDV indicator
int    handle_iRSI_M5;               // // variable for storing the handle of the iRSI indicator
          
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   SetMarginMode();
   if(!IsHedging())
     {
      Print("Hedging only!");
      return(INIT_FAILED);
     }
//---
   m_symbol.Name(Symbol());                  // sets symbol name
   if(!RefreshRates())
     {
      Print("Error RefreshRates. Bid=",DoubleToString(m_symbol.Bid(),Digits()),
            ", Ask=",DoubleToString(m_symbol.Ask(),Digits()));
      return(INIT_FAILED);
     }
   m_symbol.Refresh();
//---
   m_trade.SetExpertMagicNumber(m_magic);    // sets magic number
//--- tuning for 3 or 5 digits
   int digits_adjust=1;

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

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

الوسوم:ex16071trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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