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

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

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

Pipsgrowth EX16067 Trend — Grid trading EA using ADX flat-level filter to place pending orders in both directions with configurable grid spacing, v. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX16067 Trend Proffessor v3 هو مستشار خبير يعمل وفق نموذج الشبكة الاتجاهية، يستخدم مؤشر متوسط مؤشر الاتجاه ADX ليقرر ما إذا كان السوق في حالة هدوء (تذبذب) أو في اتجاه مؤكد، ثم يفعّل شبكة من الأوامر المعلقة (وقف وحدود) في الاتجاه الذي يشير إليه ADX. المقبض الوحيد للمؤشر هو iADX(14) يُقرأ عند الفهرس 2 (الشمعة الثالثة قبل الحالية، وليس عند آخر تيك)، والقرار ثنائي: إذا كان خط ADX الرئيسي أقل من العتبة f (افتراضياً 40، وهي قيمة مرتفعة مقارنة بالعتبة التقليدية 25)، يصنّف السوق على أنه عرضي مسطح؛ وإذا كان فوق 40 يصنّفه على أنه اتجاه. داخل كل نظام، تُقارن قيمة +DI مع -DI لتحديد الجهة: إذا كانت +DI أكبر من -DI، يذهب المنطق إلى فرع الشراء، والعكس إلى فرع البيع.

بعد تحديد الاتجاه، تُنفّذ OnTick صفقة سوقية بحجم أساسي InpLots = 0.1 افتراضياً، دون وقف خسارة أو جني أرباح على الأمر نفسه. مباشرة بعد تنفيذ صفقة السوق، يبدأ المستشار بنشر شبكة أوامر معلقة حول الصفقة الجديدة. يُوضع أول أمر أمان على بُعد InpDelta_1 نقطة (افتراضياً 70، مع تعديل إلى 700 نقطة على الوسطاء ذوي 3 و5 منازل عشرية عبر معامل m_adjusted_point) في الاتجاه المعاكس، ثم تدخل حلقة تضيف InpMaxLines (افتراضياً 5) طبقات إضافية. المسافة بين الطبقات تُحسب كـ ExtDelta_2 + ExtPlusDelta * x / 2.0، أي أن الطبقة الثانية تجلس على بُعد 60 + (-5) * 2 / 2 = 55 نقطة، والثالثة على 60 + (-5) * 3 / 2 = 52.5 نقطة، وهكذا، فتضيق الشبكة كلما تعمّقت. حجم كل طبقة يُحسب عبر LotCheck(Lots * InpCoefLot + InpPlusLot) — أي حجم الطبقة السابقة مضروباً في InpCoefLot (افتراضياً 1.0، سلّم ثابت) ومضافاً إليه InpPlusLot (افتراضياً 0.01)، ثم يُقرّب إلى خطوة اللوت لدى الوسيط عبر LotCheck(). ولأن InpCoefLot يساوي 1.0 افتراضياً، فإن الزيادات ثابتة بـ +0.01 لكل طبقة ما لم يرفع المستخدم المعامل.

شكل الشبكة يعتمد على النظام. في الفرعين العرضيين، يضع المستشار أوامر BUY_LIMIT وSELL_LIMIT متقابلة حول السعر الحالي، مشكّلاً نطاق تحوط. في الفرعين الاتجاهيين، يضع أوامر SELL_STOP وBUY_STOP بعيداً عن نقطة الدخول، مشكّلاً سلّم مارتينغال يدخل في الصفقة كلما تحرك السعر ضدها. تبقى السلة مفتوحة حتى يصل مجموع ربح جميع المراكز التي تحمل الرقم السحري 22216067 إلى ProfitClose (افتراضياً +15.0 بعملة الحساب) أو يهبط إلى LossClose (افتراضياً -150.0). يُنفّذ الفحص عند كل تيك عبر ProfitAllPositions() التي تجمع العمولات والتمويل العائم والربح عبر كل المراكز على الرمز المتطابق مع الرقم السحري. عند تجاوز أي من العتبتين، يُضبط m_close_all على true ويبدأ التفكيك: CloseAllPositions() تستدعي TryClose_EX16067 على كل تذكرة مع إعادة المحاولة حتى ثلاث مرات ضد TRADE_RETCODE_REQUOTE / TIMEOUT / PRICE_OFF / PRICE_CHANGED، ثم DeleteAllPendingOrders() تحذف الشبكة المعلقة المتبقية.

بوابة الجلسة الزمنية منفّذة في الدالة Time(): تقرأ TimeCurrent()، تحوّلها إلى MqlDateTime، وتُرجع true فقط إذا كانت ساعة الخادم بين InpStartHour (افتراضياً 0) وInpEndHour (افتراضياً 24)، أي أن المستشار يعمل على مدار الساعة افتراضياً ولا يصبح هذا المدخل مفيداً إلا إذا ضيّق المستخدم النافذة. المدخل InpWorkTimeFrame (افتراضياً 0، يُترجم عبر MapTimeframeInt إلى H1) هو الإطار الزمني الذي يُحسب عليه iADX — ولا ينتظر فتح شمعة جديدة، بل تُقيَّم الإشارات عند كل تيك.

ملاحظات عملية من المصدر. دوالا OpenBuy وOpenSell تمرّران صفراً للـ SL وTP — المراكز تعتمد كلياً على إغلاق السلة، لا على وقف فردي. دوال إعادة المحاولة TryClosePartial_EX16067 وTryModify_EX16067 معرّفة لكنها لا تُستدعى من OnTick أو OnTradeTransaction؛ فقط TryClose_EX16067 موصولة بمسار إغلاق الكل. سياسة التعبئة تُختار آلياً حسب الرمز عبر m_trade.SetTypeFillingBySymbol()، الانزلاق ثابت عند 10 نقاط عبر m_slippage، وكل أمر يحمل التعليق Psgrowth.com Expert_16067. الرقم السحري 22216067 يُضبط عالمياً على كائن CTrade عبر SetExpertMagicNumber(m_magic) داخل OnInit. معالج OnTradeTransaction موجود لكنه فارغ — لا يوجد منطق غير متزامن، كل القرار يحدث تزامنياً في OnTick. لمنحنى الأرباح في الباك تيست: يعتمد بشدة على النظام. فرع الشبكة العرضية المقلّمة يربح عندما يتأرجح السعر داخل القناة المشكّلة من Delta_1 وسلّم Delta_2 + PlusDelta؛ فرع الشبكة الاتجاهية يربح عندما يكون توسّع ADX في اتجاه واحد مستداماً بما يكفي لترك نطاق المتوسّط خلفه. كلا الفرعين يعتمد على هدف ربح واحد للسلة كاملة، لا على مخارج فردية، وأقصى عدد مراكز مفتوحة في وقت واحد هو تقريباً 1 (دخول السوق) + 2 * InpMaxLines (أزواج الأمان)، وأسوأ انسحاب يتناسب مع InpLots وInpCoefLot وInpPlusLot وتكلفة السبريد على كل تفعيل طبقة.

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

عند كل تيك، يتحقق المستشار مما إذا كانت هناك أي مركز مفتوح بالرقم السحري 22216067 — إن لم يوجد، تعمل بوابة Time() ويُرجع مقبض ADX(14) المُنشأ مرة في OnInit عند فهرس الشمعة 2 الخط الرئيسي و+DI و-DI. مقارنة الخط الرئيسي مع f (افتراضياً 40) تقسم المنطق إلى نظام عرضي وآخر اتجاهي، ومقارنة +DI مع -DI تختار الجهة. كل توليفة من الأربعة تفتح أمر سوق بحجم InpLots، ثم تُطلق أمر أمان معلق على بُعد 70 نقطة في الاتجاه المعاكس، ثم تُشغّل حلقة تنشر InpMaxLines (5) أوامر إضافية حيث تتقلّص خطوة السعر لكل طبقة كلما أُضيف ExtPlusDelta (افتراضياً -5) بنصف وزن إلى فهرس الطبقة. حجم كل طبقة هو InpLots * InpCoefLot + InpPlusLot، يُقرّب إلى خطوة اللوت لدى الوسيط عبر LotCheck(). شكل الأوامر الطبقية يعتمد على النظام: الفروع العرضية تكدّس أوامر حدود مقلّمة حول نقطة الدخول لتشكل نطاق تحوط، والفروع الاتجاهية تكدّس أوامر وقف بعيداً عن نقطة الدخول لتشكل سلّم متوسط. بعد فتح المراكز، تُستطلع ProfitAllPositions() عند كل تيك، وعندما تصل السلة إلى سقف ProfitClose (+15.0) أو أرضية LossClose (-150.0)، ينقلب m_close_all، وتُنفّذ CloseAllPositions() عبر TryClose_EX16067 مع 3 محاولات على requote/timeout/price-changed، ثم DeleteAllPendingOrders() لتنظيف الشبكة المسلحة.

إشارة الدخول

يحدد الاتجاه من ADX(14) على الشمعة رقم 2: ADX فوق 40 يُعدّ نظام اتجاه، وتحت 40 نظام عرضي، ومقارنة +DI مع -DI تختار شراء أم بيع. الإجراء الأول في كلتا الحالتين هو أمر سوق بحجم 0.1 لوت، ثم يُفعّل أمر أمان معلق على بُعد 70 نقطة في الاتجاه المعاكس، وتُنشر شبكة من 5 طبقات حدود أو أوامر وقف حول نقطة الدخول، كل طبقة إضافية تبتعد 60 ناقص 2.5 نقطة إضافية، وحجمها بحجم الأساس + 0.01 لكل طبقة.

إشارة الخروج

لا يوجد مخرج فردي. يستطلع المستشار ProfitAllPositions() عند كل تيك، ويجمع العمولات والتمويل العائم والربح عبر كل المراكز بالرقم السحري 22216067 على الرمز؛ عندما يتجاوز ربح السلة +15.0 يُفعّل إغلاقاً سلساً، وعند هبوطه دون -150.0 يُفعّل نفس العلم. تسلسل التفكيك هو CloseAllPositions() عبر TryClose_EX16067 (3 محاولات على requote/timeout/price-change) ثم DeleteAllPendingOrders() لإزالة أي طبقات شبكة لا تزال مسلحة.

وقف الخسارة

لا يوجد وقف خسارة فردي ملحق بصفقة السوق — OpenBuy وOpenSell تمرّران 0.0 للـ SL. التحكم في المخاطر على مستوى السلة كلياً عبر مدخل LossClose (افتراضياً -150.0 بعملة الحساب): عندما يهبط مجموع الربح والتمويل والعمولات عبر كل مراكز الشبكة دون هذا الحد، تُغلق كل المراكز والأوامر المعلقة على الرمز في عملية تفكيك واحدة.

جني الأرباح

جني الأرباح الوحيد هو هدف السلة ProfitClose (افتراضياً +15.0 بعملة الحساب)، يُقيَّم عند كل تيك على الربح التراكمي لتجميع الرقم السحري 22216067؛ لا يوجد جني أرباح فردي. بمجرد تجاوز العتبة، تُغلق كل المراكز عبر TryClose_EX16067 وتُحذف شبكة الأمان المعلقة في العملية نفسها.

الأنسب لـ

المتداولون الذين يعملون بحساب لا يقل عن 100 دولار ويريدون نظام شبكة تلقائي على XAUUSD M5 أو H1 بنافذة جلسة افتراضية 24/7؛ يحتاج المستشار إلى وسيط ECN/RAW بسيط منخف وعمق سيولة لأن كل طبقة شبكة تدفع سبريداً عند التفعيل، وأرضية الخسارة -150 (بالعملة لا بالنقاط) تعني أن حجم الحساب يجب أن يُضبط بحيث تكون هذه الخسارة انسحاباً محتملاً لا نداءً للهامش.

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

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

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

الوصف: Grid trading EA using ADX flat-level filter to place pending orders in both directions with configurable grid spacing, volume multiplication and addition. Closes all on profit/loss targets. Includes session hour filter. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • OnTradeTransaction()
  • RefreshRates()
  • CheckVolumeValue()
  • LotCheck()
  • iADXGet()
  • IsPositionExists()
  • IsPendingOrdersExists()
  • OpenBuy()
  • OpenSell()
  • PrintResultTrade()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX16067 Trend — Execution Flow (from source analysis)
// Family: Trend
// Grid trading EA using ADX flat-level filter to place pending orders in both directions with configurable grid spacing, volume multiplication and addition. Closes all on profit/loss targets. Includes session hour filter. 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_magic22216067Magic number
InpTradeComment"Psgrowth.com Expert_16067"Trade comment
InpLots0.1Lots
InpCoefLot1.0Multiplication of volume
InpPlusLot0.01Addition of volume
InpMaxLines5Max Lines (maximum number of pending orders in each direction)
InpPlusDelta-5Grid distance increase factor
InpDelta_170Delta 1: distance to the safety of a pending order
InpDelta_260Delta 2: distance inside the grid
ProfitClose15.0Profit Close: profit target
LossClose-150.0Loss Close: maximum loss
f40Level of flat ADX
bar2Currenr bar ADX
InpWorkTimeFrame0Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Work TimeFrame
InpStartHour0Start hour
InpEndHour24End hour
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16067.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16067 Proffessor_v3 — ADX grid trading EA, full 12-layer stack."
//---
#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>  
#include <Trade\OrderInfo.mqh>
CPositionInfo  m_position;                   // trade position object
CTrade         m_trade;                      // trading object
CSymbolInfo    m_symbol;                     // symbol info object
COrderInfo     m_order;                      // pending orders object
//--- 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_InpWorkTimeFrame = PERIOD_H1;
input group "=== Identity ==="
input ulong    m_magic=22216067;                 // Magic number
input string   InpTradeComment="Psgrowth.com Expert_16067"; // 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;

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

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

الوسوم:ex16067trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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