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

Pipsgrowth EX18095 TrendFollow — إكسبرت أدفايزر إكسبرت أدفايزر

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

Pipsgrowth EX18095 TrendFollow — RSI scalping EA entering on RSI oversold/overbought cross with target-based exits and bars-against timeout exit logic. 1. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

مستشار Pipsgrowth EX18095 هو نظام زخم بمقبض واحد لمؤشر القوة النسبية RSI(14) تمت هندسته، بطريقة مربكة بعض الشيء، حول تسميات عتبات معكوسة. يشحن قسم المدخلات ببوابتَي RSI تحملان بالاسم معنى ذروة البيع وذروة الشراء: RSI_Overbought = 54 وRSI_Oversold = 73. داخل الكود المصدري، تُعد هذه التسميات مضللة — فالقيمة الأعلى (73) هي في الحقيقة مشغّل الدخول لجانب الشراء، والقيمة الأدنى (54) هي مشغّل الدخول لجانب البيع. النتيجة هي استراتيجية تشتري عندما يدفع المؤشر نحو منطقة ذروة الشراء، وتبيع عندما ينخفض المؤشر إلى ذروة بيع طفيفة، وهو موقف استمرارية الزخم وليس موقف ارتداد إلى المتوسط. يعيش منطق الإشارة داخل CheckEntrySignals() ويقرأ شمعتين مغلقتين فقط لكل ذراع: تنطلق إشارة الشراء عندما rsi_two_bars_ago <= 73 && rsi_prev > 73؛ وتنطلق إشارة البيع عندما rsi_two_bars_ago >= 54 && rsi_prev < 54. تعمل بوابة الشمعتين السابقتين كمخمِّد وحيد في مسار الدخول — فالشريط الذي يلامس 73 دون أن يكون قد أغلق شمعة سابقة على الجانب الداخلي لا يُحدث إشارة.

تُعد إدارة المركز خيار التصميم الثاني الملحوظ. لا يُرفق أي وقف خسارة سعري ولا أي جني أرباح عند الفتح. تُستدعى كل من trade.Buy(LotSize, _Symbol, ask, 0, 0, InpTradeComment) وtrade.Sell(LotSize, _Symbol, bid, 0, 0, ...) بأقواس صفرية، لذا يسجّل الوسيط المركز بدون أي أوامر وقائية. توجد آلية الخروج الفعلية داخل CheckExistingPosition() وهي مدفوعة بمؤشر RSI بالكامل. في حالة مركز الشراء، تراقب الدالة أولاً الاختراق المعاكس: عندما يكون rsi_current < 73 على شريط مغلق، ينقلب rsi_against_position إلى true ويتزايد bars_against_count. إذا ظل المؤشر تحت 73 في الشريط التالي، يستمر العداد في التزايد؛ وفي اللحظة التي يصل فيها إلى BarsToWait (افتراضيًا 1)، يُغلق المركز قسريًا عبر TryClose_EX18095(). والأهم من ذلك، أن أي شريط يعود فيه المؤشر إلى الجانب الملائم (rsi_current >= 73 للشراء، rsi_current <= 54 للبيع) يُعيد العداد إلى صفر، لذا لا تنتهي المهلة إلا بعد سلسلة أعمدة متتالية معاكسة — ارتعاشة واحدة تُسامَح ما دام الشريط التالي يستعيد الموقف. يستخدم فرع البيع المتماثل rsi_current > 54 كاختراق معاكس.

تعتمد إ exits الأهداف على ركوب الزخم نحو أطراف مؤشر RSI. يُغلق الشراء عندما rsi_current >= RSI_Target_Buy = 87، ويُغلق البيع عندما rsi_current <= RSI_Target_Sell = 33. الفجوة بين عتبة الدخول والهدف متعمدة الاتساع: 14 نقطة RSI في جانب الشراء من 73 إلى 87، و21 نقطة في جانب البيع من 54 إلى 33. مع BarsToWait = 1، فإن الشراء الذي يخترق فوق 73 لكنه يفشل في الدفع نحو 87 خلال شريط واحد من الارتداد سيُقطع، لذا فإن الشكل العملي للصفقة هو دفع سريع نحو الطرف، أو لا شيء. تُعيد دالة ClosePosition() ضبط position_open وposition_ticket وrsi_against_position وbars_against_count إلى قيمها المحايدة بعد إغلاق ناجح.

التحجيم مُشفَّر كمدخل وحيد (LotSize = 50)، وعلى عقود XAUUSD القياسية (100 أونصة) يُعد ذلك حجمًا مؤسسيًا — حساب 100$ لا يمكنه تحمّل حتى صفقة واحدة بهذا الحجم. لا يوجد تحجيم متناسب مع الرصيد، ولا حساب نسبة مخاطر، ولا تحقق مسبق من الهامش، ولا مُحسِّن منحنى equity في OnTester(). يبقى حجم اللوت عند 50 إلى الأبد ما لم يُعدّل المُشغّل المدخل. وللاختبار بأموال حقيقية على رأسمال retail، يحتاج LotSize إلى التخفيض إلى نطاق الميكرو-لوت (0.01-0.10) قبل إرفاق المستشار بالشارت. غلاف CTrade مُهيأ بـSetDeviationInPoints(3) وSetTypeFilling(ORDER_FILLING_FOK)، لذا فإن التنفيذ كل-أو-لا-شيء على كل أمر؛ وهذا يستحق الأخذ في الاعتبار عند إعادة ضبط LotSize للتأكد من أن الوسيط يستطيع تنفيذ الحجم المطلوب دفعة واحدة.

تعبئة المنطق وإعادة المحاولة هي الشيء الوحيد في المستشار الذي يحتوي على أي تكرار. يُغلِّف TryClose_EX18095() دالة trade.PositionClose() في حلقة من 3 محاولات بفواصل زمنية 200 مللي ثانية على أكواد requote/timeout/price-off/price-changed، وهو مساعد إعادة المحاولة الوحيد الذي ينطلق فعليًا. كل من TryClosePartial_EX18095() وTryModify_EX18095() موجودان في الكود المصدري لكن غير مُشار إليهما — لا يُطلب أي إغلاق جزئي ولا أي تعديل SL/TP لأنه لا يُعيَّن أي وقف خسارة أو جني أرباح أبدًا. حزمة المؤشرات بسيطة: مقبض iRSI(_Symbol, g_TimeFrame, RSI_Period, g_RSI_Applied_Price) واحد مع افتراض RSI_Applied_Price على PRICE_CLOSE، يُقيَّم على كل شريط جديد من الإطار الزمني المُكوَّن.

يتم اختيار الإطار الزمني عبر مدخل TimeFrame (افتراضي 8)، الذي يُمرَّر إلى MapTimeframeInt(). يتعرّف المفتاح على القيم 1-7 (M1، M5، M15، M30، H1، H4، D1) ويسقط إلى PERIOD_H1 لأي قيمة أخرى، لذا فإن TimeFrame = 8 كما هو مشحون يستقر على H1 عند التشغيل. لا يوجد مرشح إطار زمني أعلى، ولا مصنف نظام سوقي، ولا بوابة جلسة، ولا غطاء سبريد، ولا مرشح أخبار في الكود. يحتوي الكود المصدري أيضًا على نسختين كاملتين من كل من MapTimeframeInt() وMapAppliedPriceInt() (واحدة في السطور 32-59، وأخرى في 64-91) — أثر قالب تلقائي يمتصه مترجم MQL5 دون اعتراض. بالنسبة للمتداولين الذين يريدون نشر هذا المستشار على حساب حقيقي، فإن الإضافات الأكثر فائدة ستكون وقف سعري (مهلة الأعمدة المعاكسة صارمة لكنها لا تستطيع تحديد فجوة شريط واحد)، وحساب حجم الصفقة مرتبطًا بـequity الحساب، ومرشح جلسة يقيد الإشارات على ساعتَي لندن ونيويورك عندما تكون العتبات غير المتماثلة 73/54 أكثر احتمالًا لرؤية اختراقات زخم نظيفة على XAUUSD. كما هو مشحون، يُعد المستشار أداة بحث تعرض فكرة عتبة غير متماثلة محددة؛ أما بقية شبكة الأمان فتُترك للمُشغّل.

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

في كل شريط جديد من الإطار الزمني المُكوَّن (H1 افتراضيًا)، تنسخ OnTick() آخر ثلاث قيم لـ RSI(14, close) إلى rsi_buffer[0..2] عبر UpdateRSI()، ثم تُشغّل CheckExistingPosition() لإدارة الصفقة الحية، ولا تستدعي CheckEntrySignals() إلا عندما يكون position_open خطأ. بوابة المركز الواحد هي المتغير البولياني position_open — لا يوجد مسح للمراكز، ولا تكديس، ولا تحوط. CTrade مُكوَّن بسحر 22218095، وانزلاق 3 نقاط، وORDER_FILLING_FOK، ويُغلِّف TryClose_EX18095 الإغلاق بـ3 محاولات بفاصل 200 مللي ثانية على أكواد requote/timeout/price-off/price-changed؛ TryClosePartial_EX18095 وTryModify_EX18095 مُترجمان لكن غير مُشار إليهما لأنه لا يُعيَّن أي SL/TP ولا يُطلب أي إغلاق جزئي. حزمة المؤشرات مقبض iRSI واحد — لا يوجد مرشح HTF، ولا مصنف نظام سوقي، ولا بوابة جلسة، ولا غطاء سبريد، ولا مرشح أخبار، ولا كاسر تراجع. يسقط إدخال TimeFrame=8 عبر مفتاح 1-7 في MapTimeframeInt إلى PERIOD_H1، ويحتوي المصدر على نسختين كاملتين من MapTimeframeInt وMapAppliedPriceInt (أثر قالب تلقائي يمتصه مترجم MQL5 دون تأثير على وقت التشغيل).

إشارة الدخول

تنطلق إشارة الشراء عندما يُغلق iRSI(14, close) شمعة عند 73 أو أقل وتُغلق الشمعة التالية فوق 73 (rsi_two_bars_ago <= 73 && rsi_prev > 73). تنطلق إشارة البيع بشكل متماثل عندما يُغلق المؤشر شمعة عند 54 أو أعلى وتُغلق الشمعة التالية تحت 54. يستخدم تخميد CheckEntrySignals() قيمة rsi_two_bars_ago بحيث لا تُحدث شمعة واحدة تلامس 73 دون إغلاق سابق تحتها أي إشارة، ولا تُقيَّم الإشارات إلا على أعمدة مغلقة من الإطار الزمني المُكوَّن (H1 افتراضيًا لأن TimeFrame=8 يسقط عبر مفتاح MapTimeframeInt).

إشارة الخروج

مساران للخروج في CheckExistingPosition(). المسار 1: الخروج المستهدف — يُغلق الشراء عندما rsi_current >= RSI_Target_Buy=87، ويُغلق البيع عندما rsi_current <= RSI_Target_Sell=33. المسار 2: مهلة الأعمدة المعاكسة — عندما يعبر مؤشر RSI عتبة الدخول في الاتجاه المعاكس على شريط مغلق (شراء: rsi_current < 73، بيع: rsi_current > 54)، يتزايد bars_against_count؛ وعندما يصل إلى BarsToWait (افتراضي 1) يُغلق المركز قسريًا عبر TryClose_EX18095()، ويُعاد العداد إلى صفر في اللحظة التي يعود فيها المؤشر إلى الجانب الملائم. لا يوجد خروج سعري عند الفتح — تُستدعى trade.Buy / trade.Sell بأقواس SL/TP قيمتها 0/0.

وقف الخسارة

لا يُرفق أي وقف سعري عند الفتح — تُستدعى trade.Buy وtrade.Sell بأقواس 0/0، لذا يسجل الوسيط المركز بدون أي وقف خسارة. الإبطال الوحيد هو مهلة الأعمدة المعاكسة لمؤشر RSI داخل CheckExistingPosition()، التي تُغلق الصفقة قسريًا عندما يبقى المؤشر على الجانب الخاطئ من عتبة الدخول لـ BarsToWait (افتراضي 1) شريط مغلق متتالٍ. على LotSize=50 المشحون مقابل حساب 100$، يُعد وقف الهامش لدى الوسيط الحماية السعرية المطلقة الوحيدة؛ ويجب على المُشغّل تقليل LotSize إلى نطاق retail قبل أي نشر حي.

جني الأرباح

مخارج الأهداف قائمة على مستوى RSI فقط — يُغلق الشراء عند RSI_Target_Buy=87، ويُغلق البيع عند RSI_Target_Sell=33. يقع الهدف عند طرف نطاق RSI(14) (87 في جانب الشراء من دخول عند 73، و33 في جانب البيع من دخول عند 54) وتُغلق الصفقة في اللحظة التي يطبع فيها الشريط الجاري عند الهدف أو بعده على أساس شريط مغلق. لا يوجد جني أرباح ثابت بالنقاط، ولا جني أرباح جزئي، ولا هدف متعدد الـR — إذا فشل المؤشر في بلوغ الهدف وانطلق عداد الأعمدة المعاكسة أولاً، يُغلق المركز قسريًا دون ملء TP.

الأنسب لـ

الأفضل على XAUUSD M5-H1 (H1 هو الإطار الافتراضي للتشغيل لأن TimeFrame=8 يسقط عبر MapTimeframeInt إلى PERIOD_H1). الحد الأدنى للإيداع المدرج في قاعدة البيانات وقدره 100$ ذو معنى فقط إذا خفّض المُشغّل LotSize من الـ50 المشحونة إلى نطاق retail (0.01-0.10 لكل صفقة)؛ عند 50 لوت على عقد XAUUSD بـ100 أونصة سيصطدم المستشار بنداء الهامش في المركز الأول، لذا فإن حسابًا بـ1,000-5,000$ مع LotSize مضبوط على نحو 0.05-0.20 هو نافذة التشغيل الواقعية. تظهر العتبات غير المتماثلة 73 شراء / 54 بيع كفكرة استمرارية زخم، لذا يعمل المستشار بشكل أفضل على جلسات الذهب ذات الاتجاه الواحد النظيف؛ يجب تقييد النشر الحي بساعتَي لندن ونيويورك عندما يتأرجح مؤشر RSI بنظافة بين 54 و87، واستخدام وسيط ECN منخفض السبريد للحفاظ على صدقية تنفيذ FOK — لا يوجد مرشح سبريد ولا مرشح أخبار في الكود.

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

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

العائلة: TrendFollow الماجيك: 22218095 الإصدار: 2.00

الوصف: RSI scalping EA entering on RSI oversold/overbought cross with target-based exits and bars-against timeout exit logic. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • UpdateRSI()
  • CheckExistingPosition()
  • CheckEntrySignals()
  • OpenBuyPosition()
  • OpenSellPosition()
  • ClosePosition()
  • TryClose_EX18095()
  • TryClosePartial_EX18095()
  • TryModify_EX18095()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX18095 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// RSI scalping EA entering on RSI oversold/overbought cross with target-based exits and bars-against timeout exit logic. 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
الأطر الزمنية المُحسّنة:
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اسحب الإكسبرت على رسم H4 أو اليومي للحصول على أفضل النتائج
  7. 7حدد فترات EMA وعتبة ADX وحجم اللوت في نافذة الإعدادات
  8. 8فعّل Allow Algo Trading واضغط OK

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

المعاملالافتراضيالوصف
InpTradeComment"Psgrowth.com Expert_18095"Trade Comment
TimeFrame8Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for Analysis
RSI_Period14RSI Period
RSI_Applied_Price1Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // RSI Applied Price
RSI_Overbought54RSI Overbought Level
RSI_Oversold73RSI Oversold Level
RSI_Target_Buy87RSI Target for Buy Exit
RSI_Target_Sell33RSI Target for Sell Exit
BarsToWait1Bars to wait when RSI goes against position
LotSize50Lot Size
MagicNumber22218095Magic Number
Slippage3Slippage in points
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX18095.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX18095 main — RSI scalping with target exits, full 12-layer stack."

#include <Trade\Trade.mqh>

//--- Input parameters
ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
   switch(tf)
   {
      case 1: return PERIOD_M1;
      case 2: return PERIOD_M5;
      case 3: return PERIOD_M15;
      case 4: return PERIOD_M30;
      case 5: return PERIOD_H1;
      case 6: return PERIOD_H4;
      case 7: return PERIOD_D1;
      default: return PERIOD_H1;
   }
}
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_TIMEFRAMES g_TimeFrame = PERIOD_H1;
ENUM_APPLIED_PRICE g_RSI_Applied_Price = PRICE_CLOSE;
input group "=== Identity ==="
input string InpTradeComment = "Psgrowth.com Expert_18095"; // Trade Comment
ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
   switch(tf)
   {
      case 1: return PERIOD_M1;
      case 2: return PERIOD_M5;
      case 3: return PERIOD_M15;
      case 4: return PERIOD_M30;
      case 5: return PERIOD_H1;
      case 6: return PERIOD_H4;
      case 7: return PERIOD_D1;
      default: return PERIOD_H1;
   }
}
ENUM_APPLIED_PRICE MapAppliedPriceInt(int ap)
{
   switch(ap)
   {
      case 1: return PRICE_CLOSE;

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

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

الوسوم:ex18095trendfollowpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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