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

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

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

Pipsgrowth EX18106 TrendFollow — Detects swing highs/lows and Market Structure Shifts (MSS) using a fractal-style pivot scan, then draws break levels and. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

EX18106 ليس مستشارًا خبيرًا ينفّذ صفقات. النص البرمجي لا يُطلق أي أوامر، ولا يُرفق أي أوامر وقف، ولا يعدّل أي مراكز. بدلاً من ذلك، تُشغّل دالة OnTick() مسحًا محوريًا بأسلوب الفراكتال لتحديد القمم والقيعان المتأرجحة على الرسم البياني الحالي، ثم تنتظر أن يتجاوز السعر هذه المستويات المتأرجحة، وتُصنّف الاختراق الناتج إما كـ'اختراق' عادي أو كحدث 'اختراق (MSS)' يمثّل تحوّلًا في هيكل السوق. منطق الكشف مضغوط - 8 دوال فقط - وتُختزل واجهة المُدخلات إلى رقم سحري وسلسلة تعليق صفقة، دون أي مُعامل لطول التأرجح أو اللون أو العتبة أو نموذج المخاطر. يدّعي سطر #property description 'بنية 12-طبقة كاملة'، لكن التطبيق الفعلي عبارة عن كاشف أحادي المرور: مسح محوري + مخزن مؤقت دوّار + مصنّف اختراق + تعليق على الرسم البياني.

تعمل خوارزمية الكشف عن المحاور على نافذة ثابتة بسعة 10 أعمدة مُعرَّفة بـconst int length = 10;. عند كل شريط جديد مؤكد، يمشي النص مسافة curr_bar = length (الشريط 10) للوراء من الشريط الحالي ويقارن القمة والقاع بأعمدة على يساره ويمينه ضمن نفس الحي بسعة 10 أعمدة. إذا كان high(curr_bar) أكبر من high(curr_bar - a) وhigh(curr_bar) أكبر من high(curr_bar + a) لكل a من 1 إلى 10، يُوسم الشريط بأنه isSwingHigh = true. الشرط المتماثل لـisSwingLow يعمل بالتوازي: low(curr_bar) أصغر من low(curr_bar - a) وlow(curr_bar) أصغر من low(curr_bar + a) لكل a في النطاق نفسه. لا ينطلق الفحص إلا عند شريط جديد - يحتفظ العداد الساكن prevBars بعدد الأشرطة من التيك السابق ويُعيد ضبط isNewBar إلى true فقط عندما يتغيّر iBars(_Symbol, _Period) بين التيكات.

عند العثور على قمة متأرجحة، يُخزَّن السعر في مخزن دوّار بسعة عنصرين swingHighs_Array[] ويستدعي النص drawSwingPoint() لرسم OBJ_ARROW أزرق (كود wingdings 77) عند شريط التأرجح مع تسمية 'BoS' (اختراق هيكل) مُثبَّتة أسفل السعر. تُرسم القيعان المتأرجحة بالأحمر بنفس الكود، مُثبَّتة أعلى. كل استدعاء لـdrawSwingPoint يُنشئ أيضًا OBJ_TEXT مقترنًا بالسلسلة الحرفية 'BoS' عبر ObjectSetString(..., OBJPROP_TEXT, ' ' + text)، فتظهر التسمية بمسافتين بادئة. يقصّ المخزن بسعة عنصرين أقدم إدخال في كل مرة تُضاف قمة جديدة: ArrayRemove(swingHighs_Array, 0, 1) يحذف الفهرس 0، وArrayResize يمدّ بمقدار 1، وتستقر القيمة المتأرجحة الجديدة في الخلف. بعد تغيير الحجم، يرمي ArrayPrint المخزن إلى السجل مع ترويسة 'POPULATED!' الحرفية - مفيد للتتبّع في الاختبار العكسي، وغير ضار على المباشر.

يعمل فحص اختراق الهيكل في كل تيك، وليس فقط على الأشرطة الجديدة. بعد مرحلة الكشف عن المحاور، يقرأ النص SymbolInfoDouble(_Symbol, SYMBOL_ASK) وSymbolInfoDouble(_Symbol, SYMBOL_BID)، ثم يطرح سؤالين: هل اخترق السعر قمة متأرجحة مخزنة (Ask > swing_H)، أم هل اخترق قاعًا متأرجحًا مخزنًا (Bid < swing_L)؟ عند اكتشاف اختراق، يمسح النص أولًا حتى length * 2 + 1000 = 1020 شريطًا للخلف من الشريط الحالي لتحديد فهرس الشريط الأصلي الذي ظهرت فيه swing_H (أو swing_L)، ثم يُقيّم شرط MSS:

  • MSS صاعد: swingHighs_Array[0] > swingHighs_Array[1] وswingLows_Array[0] > swingLows_Array[1]. كل من القمة الأخيرة والقاع الأخير أعلى من سابقَيهما - تسلسل قمة-أعلى وقاع-أعلى.
  • MSS هابط: swingHighs_Array[0] < swingHighs_Array[1] وswingLows_Array[0] < swingLows_Array[1]. تسلسل قمة-أدنى وقاع-أدنى.

عندما يكون MSS صحيحًا، يرسم drawBreakLevel_MSS() خطًا بسهم عرضه 4 بكسلات بلون clrDarkGreen (صاعد) أو clrBlack (هابط) من شريط التأرجح الأصلي إلى الشريط الحالي، مع تسمية 'Break (MSS)' بعرض 13 نقطة مُثبَّتة على الحافة اليمنى. عندما يكون MSS خطأ، يرسم drawBreakLevel() خطًا أرق عرضه 2 بكسل بلون clrBlue أو clrRed مع تسمية 'Break' بعرض 10 نقاط. الفرق البصري بينهما متعمَّد - خطوط MSS أسمك وتستخدم ألوانًا مميزة لجعل تحوّلات الاتجاه على الأطر الزمنية العليا بارزة على الرسم البياني بنظرة واحدة.

بعد رسم الاختراق، يُعاد ضبط المرجع المتأرجح (swing_H = -1.0; أو swing_L = -1.0;) وتُرجع الدالة مبكرًا، فلا يمكن لتيك واحد أن يُطلق تعليقات اختراق متعددة متتالية. التأرجح التالي الذي يتكوّن على شريط مستقبلي سيُعيد ملء المخزن الدوّار وتُستأنف الدورة. حتى ذلك الحين، تتخطّى فحوصات Ask/Bid في بداية OnTick ببساطة - لا يتحقّق شرط swing_H > 0 ولا swing_L > 0 بينما المراجع سالبة.

ثلاث مُساعدات متعلقة بالصفقات - TryClose_EX18106() وTryClosePartial_EX18106() وTryModify_EX18106() - مُعرَّفة بل ومُنشَأة (CTrade g_trade_wrappers_EX18106;) لكنها لا تُستدعى من OnTick(). وهي موجودة في الملف كسقالة، يُفترض أن تُربط في إصدار مستقبلي يُضيف تنفيذ الصفقات. الترويسة المُضمَّنة <Trade\Trade.mqh> غير مستخدمة أيضًا في وقت التشغيل. سترمي عبارات Print() داخل كتل الكشف عن التأرجح والاختراق سجلّ Experts بعبارات مثل 'WE DO HAVE A SWING HIGH @ BAR INDEX 10 H: 2543.21' و'$$$$$$$$$ BUY SIGNAL NOW. BREAK OF SWING HIGH'. هذه ليست تنبيهات صفقات فعلية - إنها طباعة تشخيصية، والمتداول الذي يشغّل المستشار على رسم XAUUSD بفاصل 5 دقائق خلال جلسة لندن أو نيويورك نشطة سيراها تنطلق بشكل متكرر.

حالات الاستخدام. EX18106 الأنسب للمتداولين التأرجحيين التقديريين الذين يريدون طريقة آلية لوسم محاور التأرجح ومستويات BOS/MSS على رسم XAUUSD M5 أو H1 دون رسم خطوط اتجاه يدويًا. نافذة المحور بسعة 10 أعمدة مُشفَّرة - لا يمكن ضبطها للكشف عن محورات قصيرة بسعة 5 أعمدة أو محورات تأرجحية بسعة 20 عمودًا. يعني المخزن الدوّار بسعة عنصرين أن تصنيف MSS لا ينطلق إلا بعد تكوّن المحور الثالث في أي اتجاه؛ أول محورين يُعلَّمان ببساطة كـ BoS دون انحياز اتجاهي. نظرًا لعدم فتح أي مراكز، لا يتحمّل EX18106 أي مخاطر تنفيذية ويمكن تشغيله على حساب مايكرو بـ100 دولار أو حساب مؤسسي بـ100,000 دولار بسلوك مطابق. الوسيط غير مهم للكشف نفسه، لكن يجب تثبيت المستشار على رسم بياني يملك تاريخ سعر مرئي (مسح 10 أعمدة لليسار و10 لليمين يحتاج أعمدة سابقة لتكون صالحة)، والرسم البياني المفتوح حديثًا بأقل من 20 عمودًا من البيانات لن يُنتج أي إشارات. بالنسبة للمتداولين الذين يريدون متراكب مؤشر خالص دون تداول آلي، يُعدّ EX18106 نقطة بداية. أما من يريد مستشارًا يفتح صفقات فعليًا على اختراقات MSS، فإن EX18106 قشرة تصوير - منطق دخول الصفقات لم يُضَف بعد.

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

في كل شريط جديد مؤكد، يمشي EX18106 مسافة 10 أعمدة إلى اليسار و10 إلى اليمين من الشريط في الفهرس 10 بحثًا عن قمة محلية وقاع محلي - مسح محوري فراكتالي كلاسيكي بسعة 10 أعمدة. كل تأرجح مؤكد يملأ مخزنًا مؤقتًا دوّارًا بسعة عنصرين (swingHighs_Array أو swingLows_Array) يحتفظ دائمًا بأحدث محورين في الذاكرة، مع إزالة الأقدم عند كل إضافة جديدة. كل تيك - وليس فقط الأشرطة الجديدة - يفحص ما إذا كان Ask قد تجاوز آخر قمة متأرجحة أو Bid قد هبط تحت آخر قاع متأرجح؛ إن حدث ذلك، يُصنّف النص الاختراق إما كـ BOS (اختراق هيكل) عادي عندما لا تشكّل التأرجحات السابقة سلسلة قمة-أعلى/قاع-أعلى أو قمة-أدنى/قاع-أدنى، أو كـ MSS (تحوّل هيكل السوق) عندما تفعل ذلك. تُرسم خطوط MSS بعرض 4 بكسلات بالأخضر الداكن (صاعد) أو الأسود (هابط)، بينما تُرسم الاختراقات العادية بعرض 2 بكسلات بالأزرق أو الأحمر - هرمية بصرية تُتيح للمتداول التمييز بنظرة واحدة بين اختراقات الاستمرار وتحوّلات الاتجاه الحقيقية. غلاف CTrade المُضمَّن والمساعدات الثلاث TryClose وTryClosePartial وTryModify هي كود ميت لا يستدعيه الإصدار الحالي، لذا لا تُفتح أي صفقات على الرغم من ادّعاء وصف #property 'بنية 12-طبقة كاملة'.

إشارة الدخول

لا يفتح EX18106 أي صفقات. تُطبع 'إشارة شراء' في سجل Experts ويُرسم خط بسهم أزرق على الرسم البياني عندما يتجاوز سعر Ask آخر قمة متأرجحة مخزنة. بالمقابل، تُطبع 'إشارة بيع' ويُرسم خط أحمر عندما يهبط سعر Bid تحت آخر قاع متأرجح مخزّن. يعمل الكشف في كل تيك، لكن يُعاد ضبط المرجع المتأرجح بعد كل اختراق، لذا تتطلّب الإشارات المتتالية تكوّن محور فراكتالي جديد بسعة 10 أعمدة على شريط لاحق.

إشارة الخروج

لا توجد مراكز للخروج منها لأنه لا يتم فتح أي مراكز. أقرب ما يُشبه 'الخروج' هو إعادة ضبط المرجع المتأرجح: بمجرد أن يتجاوز Ask مستوى swing_H (أو Bid يتجاوز swing_L)، يُعيّن النص swing_H = -1.0 (أو swing_L = -1.0) ويعود مبكرًا، لذا لا يمكن لنفس الاختراق أن ينطلق مرتين. الإشارة التالية تنتظر تكوّن محور جديد على شريط لاحق قبل أن يُرسم تعليق اختراق آخر.

وقف الخسارة

لا يُربط أي وقف خسارة على الإطلاق. المُساعدات الثلاث لإعادة محاولة CTrade (TryClose_EX18106 وTryClosePartial_EX18106 وTryModify_EX18106) مُعرَّفة ومُنشأة لكنها لا تُستدعى من OnTick، والنص لا يفتح أي صفقة أصلًا. لذلك وقف الخسارة لا ينطبق على هذا المستشار.

جني الأرباح

لا يُربط أي جني أرباح على الإطلاق. منطق جني الأرباح غير منفَّذ أيضًا؛ حدث 'جني الأرباح' الوحيد للمستشار هو التعليق التوضيحي على الرسم البياني عند اختراق محور. لا يوجد إغلاق جزئي، ولا جني أرباح سلة، ولا قفل حقوق ملكية - فقط خطوط MSS / Break البصرية على الرسم البياني.

الأنسب لـ

EX18106 الأنسب للمتداولين التأرجحيين التقديريين على XAUUSD M5 أو H1 الذين يريدون تعليق محاور التأرجح وBOS/MSS تلقائيًا على الرسم البياني دون رسم خطوط اتجاه يدويًا. لا يمكن ضبط نافذة المحور الثابتة بسعة 10 أعمدة، لذا على المتداولين الذين يحتاجون كشف تأرجح أقصر أو أطول البحث عن بدائل. نظرًا لعدم فتح أي صفقات، فإن المستشار آمن للتشغيل على حساب مايكرو بـ100 دولار مع أي وسيط يدعم MetaTrader 5 - جودة التنفيذ والسبريد والانزلاق غير ذات صلة بسلوكه.

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

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

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

الوصف: Detects swing highs/lows and Market Structure Shifts (MSS) using a fractal-style pivot scan, then draws break levels and MSS annotations on the chart to visualise trend confirmation

المؤشرات:

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

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

  • high()
  • low()
  • time()
  • drawSwingPoint()
  • drawBreakLevel()
  • drawBreakLevel_MSS()
  • TryClose_EX18106()
  • TryClosePartial_EX18106()
  • TryModify_EX18106()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX18106 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// Detects swing highs/lows and Market Structure Shifts (MSS) using a fractal-style pivot scan, then draws break levels and MSS annotations on the chart to visualise trend confirmation

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

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

المعاملالافتراضيالوصف
InpMagic22218106Magic number
InpTradeComment"Psgrowth.com Expert_18106"Trade comment
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX18106.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX18106 MSS_EA — Market Structure Shift detector, full 12-layer stack."
#include <Trade\Trade.mqh>

//+------------------------------------------------------------------+
//| === Identity ===                                                 |
//+------------------------------------------------------------------+
input int    InpMagic         = 22218106;       // Magic number
input string InpTradeComment  = "Psgrowth.com Expert_18106"; // Trade comment

double swingHighs_Array[];
double swingLows_Array[];


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick(){
   
   static bool isNewBar = false;
   int currBars = iBars(_Symbol,_Period);
   static int prevBars = currBars;
   if (prevBars == currBars){isNewBar = false;}
   else if (prevBars != currBars){isNewBar = true; prevBars = currBars;}
   
   const int length = 10; // >2
   int right_index, left_index;
   int curr_bar = length;
   bool isSwingHigh = true, isSwingLow = true;
   static double swing_H = -1.0, swing_L = -1.0;
   
   if (isNewBar){
      for (int a=1; a<=length; a++){
         right_index = curr_bar - a;
         left_index = curr_bar + a;
         //Print(a," <> ",right_index," > ",left_index);
         if ( (high(curr_bar) <= high(right_index)) || (high(curr_bar) < high(left_index)) ){
            isSwingHigh = false;
         }

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

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

الوسوم:ex18106trendfollowpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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