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

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

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

Pipsgrowth EX16030 Trend — Harami pattern + RSI confirm, MA trend, time exit 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX16030 Trend هو روبوت تداول متخصص في نمط هارامي المكون من شمعتين (نمط الاحتواء الداخلي) مع طبقة تأكيد من مؤشر القوة النسبية RSI ومرشح اتجاه من المتوسط المتحرك البسيط لمدة 5 فترات. ينتمي هذا الروبوت إلى فرع الاحتواء الداخلي في عائلة BullishBearish، ويستخدم على وجه التحديد مؤشر iRSI(37) كمؤشر تأكيد. هارامي كلمة يابانية تعني "الحامل"، وهي الهندسة التي يجلس فيها جسم الشمعة الثانية بالكامل داخل جسم الشمعة الأولى. بينما يتطلب نمط الابتلاع الصاعد أن يبتلع الجسم الثاني الجسم الأول من الخارج، فإن هارامي هو العلاقة المعكوسة: بعد شمعة كبيرة مسيطرة في الاتجاه السابق، تكون الشمعة التالية صغيرة ويتردد السوق فعلياً أو يرفض الحركة السابقة داخل جسمها. يبحث EX16030 عن هذا التوقف الدقيق، ثم يسأل مؤشر RSI والمتوسط 5-SMA ما إذا كان هذا التوقف انعكاساً حقيقياً أم مجرد توقف مؤقت لمتابعة الحركة.

يفرض اكتشاف النمط في CheckPattern() خمسة شروط لكل جانب. للحصول على هارامي صاعد في اتجاه هابط: يجب أن تكون الشمعة 1 صاعدة (Close(1) > Open(1))، والشمعة 2 - الشمعة السابقة - يجب أن تكون شمعة هابطة طويلة بحجم جسم أكبر من متوسط حجم الجسم لمدة 12 شمعة AvgBody(1)، ويجب أن يكون إغلاق الشمعة الصاعدة أقل من فتح الشمعة الهابطة السابقة، ويجب أن يكون فتح الشمعة الصاعدة أعلى من إغلاق الشمعة الهابطة السابقة (الاحتواء)، ويجب أن يكون MidPoint(2) = (High(2)+Low(2))/2 أقل من المتوسط 5-SMA CloseAvg(2) - مما يؤكد أن الاتجاه الأوسع لا يزال هابطاً. النسخة الهابطة تعكس كل مقارنة. يقوم مرشح الاتجاه هذا بسحب الفتائل: فتيلة سفلية طويلة على الشمعة السابقة تلطّف قراءة الاتجاه الهابط حتى لو كان الجسم السابق فوق المتوسط بشكل جيد. هذا هو الخيار المميز مقارنة بمرشح منتصف الجسم MidOpenClose(2) المستخدم في أشقاء الابتلاع، ويغير الإعدادات الفعلية التي تتأهل.

تعمل طبقة التأكيد عبر CheckConfirmation() التي تقرأ مؤشر RSI عند الشمعة 1. لا يُطلق نمط هارامي صاعد إلا إذا كان RSI(1) < 40 - يجب أن يظل مؤشر الزخم السابق في النصف الأدنى من نطاقه، مما يؤكد أن الحركة الهابطة السابقة كانت قوية وأن توقف الشمعة الداخلية هو إنهاك حقيقي، وليس مجرد ارتداد روتيني داخل اتجاه صاعد. ولا يُطلق نمط هارامي هابط إلا إذا كان RSI(1) > 60. تقع نطاقات 40/60 هذه عمداً داخل منطقة التشبع البيعي/الشرائي القياسية 30/70 - فهي تتطلب من النمط أن يقوم بمعظم العمل الاتجاهي، مع اكتفاء RSI بالتحقق من أن الحركة السابقة قد مدت المؤشر فعلياً إلى المنطقة ذات المعنى. هذا هو نفس تخطيط النطاق الذي تستخدمه طبقة تأكيد MFI في شقيق Harami-MFI، لكن RSI يجلب قراءة زخم سعري خالصة دون ترجيح حجمي ودون انحراف غير محدود مثل CCI.

الدخول هو أمر سوق عبر ExtTrade.Buy() أو ExtTrade.Sell() عند سعر العرض أو الطلب المتاح التالي، مع تحديد كل من وقف الخسارة وجني الأرباح بشكل مدمج. تبني PositionOpen() الوقف مع حارس تجاوز السبريد: إذا كان السبريد الحالي أوسع من InpSL أو InpTP المكون (بالنقاط)، فإن الروبوت يتراجع إلى خروج بسعر السبريد بدلاً من إرسال أمر محكوم بالفشل الواضح. يعمل هذا الحارس على كلا الساقين - وهو خيار مقصود لمنع الروبوت من إرسال أمر للوسيط بمسافة سلبية متوقعة لوقف الخسارة أو جني الأرباح لحظة الدخول. حجم اللوت ثابت عند 0.10 من InpLot. تقوم دالة OnInit() بتوجيه كائن الأمر عبر ExtTrade.SetDeviationInPoints(InpSlippage) = 10 وSetExpertMagicNumber(22216030)، لذا يتم تجاهل أي أوامر يتيمة من نسخة مختلفة أو رقم سحري بواسطة فحص وجود المراكز.

تتبع إدارة الصفقات إطار العمل ذي الساقين الذي تستخدمه العائلة في كل مكان: إغلاق نمط الانعكاس عبر CheckCloseSignal() الذي يقرأ تقاطعات RSI عند 70/30 (أربع تركيبات: إغلاق الشراء عند التشبع الشرائي، انزلاق الشراء عند التشبع البيعي، إغلاق البيع عند التشبع البيعي، استعادة البيع من التشبع الشرائي)، بالإضافة إلى وقف زمني عبر CloseByTime() الذي يفحص BarsHold(open_time) >= InpDuration (10 شموع). لا يوجد وقف متحرك، ولا توجد خطوة تعادل، ولا توجد طبقة مارتينجال أو شبكة - يخرج الروبوت إما عند إبطال النمط، أو عند وقف 200 نقطة، أو عند جني 200 نقطة، أو بعد 10 شموع، أيهما يأتي أولاً. يستخدم كل مسار إغلاق غلاف إعادة المحاولة TryClose_EX16030() المكون من 3 محاولات، والذي يعيد الإرسال عند REQUOTE وTIMEOUT وPRICE_OFF وPRICE_CHANGED مع تأخير 200 مللي ثانية. تم تعريف TryClosePartial_EX16030() وTryModify_EX16030() لكن لم يتم توصيلهما في مواقع الاستدعاء الحية - وهي سقالة متبقية من القالب.

يدّعي الترويسة بنية من 12 طبقة (REGIME وSIGNAL وENTRY وCONFIRM وNO-TRADE وCAPITAL CAP وRISK وSIZING وMANAGE وEXIT وSCALING وOnTester)، لكن الكود الفعلي يربط فقط المجموعة التشغيلية: REGIME عبر مرشح الاتجاه MidPoint-vs-SMA، وSIGNAL عبر اكتشاف هارامي المكون من 5 شروط، وENTRY عبر أمر السوق، وCONFIRM عبر فحص النطاق RSI<40 / RSI>60، وNO-TRADE عبر حارس فتح الشمعة التالية في OnTick()، وRISK عبر وقف 200 نقطة مع حارس تجاوز السبريد، وSIZING عبر اللوت الثابت 0.10، وEXIT عبر تقاطع RSI + الوقف الزمني لـ10 شموع + SL/TP. CAPITAL CAP ليست غطاء مخاطر مرتبطاً بالرصيد؛ هي مجرد مدخل لوت لكل صفقة. MANAGE لا تحتوي على طبقة وقف متحرك/تعادل. SCALING وOnTester غير موجودتين في الملف. بعد حساب الطبقات الموصلة فقط، هذا أقرب إلى بناء من 9 طبقات مرتدية سترة العائلة ذات الـ12 طبقة.

تم نقل عدة عيوب من أشقاء القالب. تم تعريف MapAppliedPriceInt() أربع مرات في المصدر (الأسطر 37-50 و58-71 و78-91 و95-108) مع إعلانات g_InpPrice المطابقة المكررة أربع مرات أيضاً - يقبل المترجم إعادة التعريف لكن التكرار مصدر مهدر. لا تزال رسالة خطأ تهيئة RSI في السطر 151 تقرأ 'Error creating CCI indicator' على الرغم من أن الاستدعاء الفعلي هو iRSI - سلسلة قديمة من شقيق قالب CCI. تتحقق تهيئة MA في السطر 157 من ExtIndicatorHandle بدلاً من ExtTrendMAHandle، لذا فإن INVALID_HANDLE الخاص بـMA لا يتم اكتشافه فعلياً بواسطة الفحص الخاص به (يتم اكتشافه بالصدفة فقط إذا فشل مؤشر RSI أولاً). إصدار OnDeinit في السطر 172 يحرر ExtIndicatorHandle فقط وينسى ExtTrendMAHandle - يتسرب مؤشر SMA عند تفريغ الروبوت. سطرا التصحيح Print('InpSL=', InpSL) وPrint('InpTP=', InpTP) في 139-140 ينطلقان عند كل تهيئة للروبوت. هذه مشاكل حقيقية في نظافة الكود وليست عيوب تسويقية، وأي منها يستحق تصحيحاً بسطر واحد.

هذا هو ساق RSI لعائلة هارامي + المؤشر. ساق MFI هو EX16029 (مع نطاقات تأكيد 40/60 المشتركة). تشكل EX16024 إلى EX16027 أبناء عمومة الابتلاع + المؤشر المتوازيين (CCI وMFI وRSI وStoch)، لذا فإن EX16030 هو أول تقاطع Harami-RSI وثاني متغير من عائلة Harami بشكل عام. يعمل كل منها برقم سحري خاص به (22216030 هنا) ويهدف إلى النشر كوحدة مستقلة - أرقام سحرية مختلفة، ودفاتر أوامر مختلفة، وبصمات بيانية مختلفة، حتى يتمكن المشغل من تشغيل عدة أشقاء على نفس الرمز ومقارنة الإعدادات دون تدخل في دفتر المراكز. فترة RSI(37) بطيئة عمداً للرسم البياني M5: مؤشر RSI لمدة 37 فترة على رسم بياني 5 دقائق يغطي حوالي 3 ساعات من الشريط، مما يجعل المؤشر بطيئاً بما يكفي لأن لا تستطيع قمة واحدة إلغاء القراءة. زوج SL/TP 200/200 هو نسبة مخاطرة إلى مكافأة ثابتة 1:1، لذا فإن الروبوت هو في الأساس متداول انعكاس ذو احتمالية أعلى مع الانضباط الزمني - هندسة الشمعة الداخلية هي ادعاء الاحتمالية الأعلى، و1:1 R:R هي الرياضيات، وغطاء الـ10 شموع هو الانضباط الذي يمنع سلاسل الخسارة من التصاعد.

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

عند كل شمعة M5 جديدة، تستدعي OnTick دالة CheckState التي تشغل CheckPattern لهندسة الاحتواء المكونة من 5 شروط لنمط هارامي مقابل متوسط حجم الجسم لـ12 شمعة، مع مرشح اتجاه المتوسط المتحرك البسيط لـ5 فترات عبر MidPoint(2). إذا ظهر نمط، تقرأ CheckConfirmation مؤشر iRSI(37) عند الشمعة 1 ولا تفعّل الإشارة إلا إذا كان RSI < 40 (صاعد) أو RSI > 60 (هابط). نمط هارامي المكون من 5 شروط هو القراءة الهيكلية، ونطاق RSI هو فحص الزخم المتقاطع، وSMA هو بوابة النظام - يجب أن تتفق ثلاث شاشات مستقلة قبل أن يضيف الروبوت أمر سوق في الطابور. ثم ترسل OnTick دخول السوق في التيك التالي عبر ExtTrade.Buy / ExtTrade.Sell مع تحديد كل من SL وTP مدمجاً. تعمل إدارة المراكز على ثلاث مخارج: CheckCloseSignal عند تقاطع RSI المكون من 4 حالات عند 70/30، أو CloseByTime بعد BarsHold >= 10 شموع، أو SL/TP 200/200 - أيهما يُغلق أولاً، مع TryClose_EX16030 الذي يعيد المحاولة على رموز الإعادة العابرة.

إشارة الدخول

الدخول للشراء عند نمط هارامي صاعد: الشمعة الأخيرة صاعدة، والشمعة السابقة شمعة هابطة طويلة بجسم أكبر من متوسط حجم الجسم لـ12 شمعة، وجسم الشمعة الحالية محتوً بالكامل داخل جسم الشمعة السابقة (إغلاق < فتح السابقة وفتح > إغلاق السابقة)، ونقطة منتصف نطاق الشمعة السابقة تحت المتوسط المتحرك البسيط لـ5 فترات - مع تأكيد فقط عندما يكون RSI(1) < 40. الدخول للبيع هو المرآة الصارمة باستخدام هارامي هابط، وسياق اتجاه صاعد، وRSI(1) > 60.

إشارة الخروج

تعمل المخارج على ثلاث مسارات: تقاطع RSI العكسي في CheckCloseSignal (إغلاق شراء عند RSI(1)<70 مع RSI(2)>70 السابق، أو عند RSI(1)<30 مع RSI(2)>30 السابق؛ مرآة البيع)، أو وقف زمني لـ10 شموع في CloseByTime عبر BarsHold()، أو وقف الخسارة 200 نقطة / جني الأرباح 200 نقطة أيهما يُضرب أولاً. لا يوجد وقف متحرك، ولا تعادل، ولا مارتينجال - تُسلم الصفقة عند أي إشارة تنطلق أولاً.

وقف الخسارة

وقف خسارة ثابت لكل صفقة قدره 200 نقطة (InpSL) عند كل دخول، مع حارس تجاوز السبريد في PositionOpen الذي يتراجع إلى خروج بسعر السبريد إذا كان السبريد الحالي يساوي أو يتجاوز وقف الخسارة المكون - يمنع إرسال أوامر تكون المسافة لوقف الخسارة فيها سلبية بالفعل. يُوضع وقف الخسارة مدمجاً عند الدخول؛ لا يوجد منطق وقف متحرك أو تعادل مربوط.

جني الأرباح

جني أرباح ثابت لكل صفقة قدره 200 نقطة (InpTP)، مع نفس حارس تجاوز السبريد المطبق عند الدخول - إذا كان السبريد الحالي يطابق أو يتجاوز InpTP، ينهار جني الأرباح إلى خروج بسعر السبريد. مع وقف الخسارة المتساوي 200 نقطة، يستهدف الروبوت نسبة مخاطرة إلى مكافأة ثابتة 1:1 في كل صفقة.

الأنسب لـ

مناسب لـ XAUUSD M5 مع H1 كإطار زمني أعلى لفحص السياق؛ الحد الأدنى للرصيد الموصى به 100 دولار مع 500 دولار+ لحجم اللوت الثابت 0.10 لاستيعاب وقف الخسارة 200 نقطة دون ضغط على الهامش. الأفضل على وسيط ECN أو RAW بفارق سعر منخفض - سيُطلق حارس تجاوز السبريد على الوسطاء التجزئة خلال نوافذ الأخبار. غطاء الـ10 شموع وملف 1:1 R:R يجعلانه متداول انعكاس يحتاج إلى انفجارات التقلب في بداية لندن أو نيويورك ليكون منتجاً؛ توقع أداءً مسطحاً خلال النطاق الآسيوي عندما نادراً ما تنتج هندسة الشمعة الداخلية اختراقات ذات معنى.

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

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

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

الوصف: Harami pattern + RSI confirm, MA trend, time exit 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • CheckState()
  • PositionOpen()
  • CloseBySignal()
  • CloseByTime()
  • PositionExist()
  • PositionExpiredByTimeExist()
  • BarsHold()
  • Open()
  • Close()
  • Low()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX16030 Trend — Execution Flow (from source analysis)
// Family: Trend
// Harami pattern + RSI confirm, MA trend, time exit 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

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

المعاملالافتراضيالوصف
InpAverBodyPeriod12period for calculating average candlestick size
InpMAPeriod5Trend MA period
InpPeriodRSI37RSI period
InpPrice1Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // price type
InpDuration10position holding time in bars
InpSL200Stop Loss in points
InpTP200Take Profit in points
InpSlippage10slippage in points
InpLot0.1lot
InpMagicNumber22216030Magic Number
InpTradeComment"Psgrowth.com Expert_16030"Trade comment
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16030.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16030 BullishBearish_Harami_RSI - Harami pattern + RSI confirm + MA trend filter, full 12-layer stack."
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>

#define SIGNAL_BUY    1             // Buy signal
#define SIGNAL_NOT    0             // no trading signal
#define SIGNAL_SELL  -1             // Sell signal

#define CLOSE_LONG    2             // signal to close Long
#define CLOSE_SHORT  -2             // signal to close Short

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_InpPrice = PRICE_CLOSE;
input group "=== Pattern Parameters ==="
input int  InpAverBodyPeriod=12;    // period for calculating average candlestick size
input int  InpMAPeriod      =5;     // Trend MA period
input int  InpPeriodRSI     =37;    // RSI period
input int InpPrice = 1; // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted)    // price type

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_InpPrice = PRICE_CLOSE;
input group "=== Trade Parameters ==="
input uint InpDuration=10;          // position holding time in bars
input uint InpSL      =200;         // Stop Loss in points
input uint InpTP      =200;         // Take Profit in points
input uint InpSlippage=10;          // slippage in points
ENUM_APPLIED_PRICE MapAppliedPriceInt(int ap)
{
   switch(ap)
   {

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

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

الوسوم:ex16030trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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