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

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

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

Pipsgrowth EX18023 TrendFollow — UT Bot Alert ATR trailing-stop trend-follow EA. Each closed bar the trail is walked forward using the canonical Pine por. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX18023 TrendFollow هو تطبيق UT Bot Alert أُعيد بناؤه من منفذ Pine Script القانوني على TradingView ونُقل إلى إكسبرت أدفايزر أحادي الرمز لمنصة MT5. يعامل الاستراتيجية السوق كسلسلة من انقلابات وقف trailing: على كل شمعة مغلقة يمشي الإكسبرت بوقف للأمام عبر غلاف حديث مقاس بمضاعفات ATR حول السعر، وعندما يخترق إغلاق آخر شمعة هذا الغلاف على الجانب الآخر، ينطلق انقلاب اتجاهي. بقية الملف مكرّس لتقرير ما إذا كان هذا الانقلاب يستحق التداول ولإدارة الصفقة الناتجة حتى إغلاق نظيف. الإكسبرت مُثبّت على السحر 22218023، افتراضيًا على USDJPY، ويأتي في الإصدار 2.00 بدون مارتينجال، بدون طبقة شبكة، وبدون تراكم هرمي — ما تراه في المصدر هو الاستراتيجية بأكملها، بدون فروع مخفية.

جوهر الإشارة يعيش في CoreSignal(). على كل شمعة مغلقة تنسخ الدالة N+1 من الإغلاقات وقيم N+1 من ATR(10) في مصفوفات as-series، تبذر متغير trail جارٍ بأقدم إغلاق، ثم تتقدم إلى الأمام عبر 250 شمعة (ثابت TRAIL_SYNC_LOOKBACK). عند كل شمعة يحسب الإكسبرت غلاف no-loss بسعة InpKeyValue × ATR(10) (الحساسية الافتراضية 2.0 × ATR). إذا كان الإغلاق الحالي والإغلاق السابق كلاهما فوق trail، يرتفع trail إلى max(trail, close − nLoss). إذا كانا تحته، ينخفض. إذا اختلفا، يُعاد ضبط trail إلى close ± nLoss. بعد التقدم يلتقط الإكسبرت قيمة trail عند الشمعة 1 (المغلقة الأخيرة) والشمعة 2 (التي قبلها)، يصنّف اتجاه كل شمعة كـ +1 / −1 / 0 بمقارنة close مع trail، ويُرجع +1 إذا كانت الشمعة 1 صاعدة والشمعة 2 لم تكن صاعدة — انقلاب الاتجاه القانوني. تُحسب الثقة كـ 100 × |close[1] − trail1| / nLoss1، محدودة بـ 100. مساعد CurrentTrend() يشغل نفس التقدم بدون منطق الانقلاب ويُستخدم في مسار الخروج. يجعل InpATRPeriod الافتراضي 10 الغلاف أضيق من المعتاد ATR(14)؛ القيمة الأقل تتداول انقلابات أكثر، والأعلى ترشّح لتأرجحات أكبر.

تأكيد الإطار الزمني الأعلى يجلس بين CoreSignal وتذكرة الأمر. تنسخ ConfirmEntry() قيمة إغلاق H1 EMA(50) (InpHTF=8 يمر عبر MapTimeframeInt إلى PERIOD_H1 — القيم 1–7 تحل أيضًا إلى M1/M5/M15/M30/H1/H4/D1 على التوالي، أي شيء آخر يقع على H1)، ثم تحظر أي شراء إغلاق شمعته-1 تحت H1 EMA وأي بيع إغلاق شمعته-1 فوقه. يُفرض أيضًا حد السبريد InpMaxSpreadPts=35.0 ونافذة الجلسة SESSION_START_HOUR=6 / SESSION_END_HOUR=21 داخل خطوة التأكيد هذه. هذه هي الطبقة التي تُسقط الإشارات المعاكسة للاتجاه خلال تحركات H1 القوية والتي تمنع الإكسبرت من التصرف خلال المنطقة الميتة الآسيوية أو نافذة نهاية الأسبوع الجمعة 21:00.

يُغذي مصنّف النظام بوابة عدم التداول ومنطق الخروج. يسحب DetectRegime() قيم ADX(14) وATR(14) والشريط العلوي والسفلي والوسطي لـ Bollinger Band (20, 2.0) على الشمعة المغلقة، ثم يحسب رتبة نسبة ATR المئوية بعدّ كم من آخر InpATRPctLookback=60 قيمة لـ ATR(14) أصغر من أو تساوي الـ ATR الحالي. تُصدر الدالة واحدة من سبع حالات enum: REG_STRONG_TREND عندما ADX≥30، REG_WEAK_TREND عندما ADXInpADXMin=20، REG_EXPAND عندما تكون نسبة ATR المئوية فوق 70 AND عرض BB الحالي على الأقل 15% أوسع من الشمعة السابقة، REG_COMPRESS عندما تكون النسبة تحت 25، REG_BREAKOUT عندما يكون عرض BB تحت 0.0015 مع ADX يصعد نحو الشمعة السابقة، وREG_RANGE كافتراضي. البيانات غير الكافية تُرجع REG_CHOPPY، التي تُعامل كحظر صارم. داخل OppositeAndRegimeExit() أي انتقال إلى REG_CHOPPY أو REG_RANGE أو REG_COMPRESS يُغلق قسريًا أي صفقة مفتوحة — يُستخدم نفس المصنّف عند الدخول (عبر NoTradeBlock) وعند الخروج.

بوابة عدم التداول التي تعمل قبل إرسال أي أمر بها تسعة فحوصات صريحة، لكل منها سلسلة سبب خاصة بها تُسجّل. بالترتيب: مفتاح الإيقاف مفعّل، السبريد فوق حد 35 نقطة، ساعة الخادم الحالية خارج النافذة 6–21، عاد النظام كـ CHOPPY، نطاق آخر شمعة مغلقة أكثر من 3× ATR(14) الحالي (حارس ارتفاعات الأخبار/الشموع الكبيرة)، هناك تهدئة نشطة بعد ثلاث خسائر متتالية، انخفض رأس المال الفعّال تحت عتبة 50$، استهلكت الأرباح/الخسائر المحققة اليوم InpDailyLossPct=3% من رأس المال الفعّال، أو وصل عدد الصفقات إلى MAX_OPEN_TRADES=1. كل حظر يُسجّل مع enum النظام وثقة الإشارة ليرى المستخدم لماذا يقف الإكسبرت ساكنًا.

يتبع تحجيم الصفقات صيغة المخاطرة لكل وقف القياسية. ترجع EffectiveCapital() قيمة حساب equity ما لم يتم تعيين InpCapitalCapAmount، وفي هذه الحالة تحدّ equity عند هذا المبلغ بالدولار — حساب بـ 200$ مع InpCapitalCapAmount=100 يتداول كأنه حساب 100$ لكل من التحجيم وحساب الخسارة اليومية. تقسم CalcLots() بعدها InpRiskPercent=0.5% من رأس المال الفعّال على خسارة اللوت عند مسافة الوقف، حيث الوقف هو InpATRSLMult=1.5 × ATR(14) على الشمعة المغلقة (محد أدنى عند مسافة مستوى الوقوفات لدى الوسيط). يُقرَّب اللوت إلى درجة خطوة اللوت لدى الرمز وإلى g_vol_min. يُحسب جني الأرباح كـ InpRRTP=2.0 × مسافة الوقف — هيكل نسبة مخاطرة/مكافأة ثابت 1:2. تُستدعى OrderCalcMargin قبل الإرسال؛ إذا كان الهامش الحر غير كافٍ يُحذف الإدخال مع سطر سجل. إغلاق الصفقة المقابلة هو جزء من TryEntry(): إذا انطلقت إشارة شراء بينما توجد صفقة بيع سحر 22218023 مفتوحة، تُغلق تلك الصفقة أولًا عبر TryClose_EX18023، ثم يُرسل الشراء. هذا هو سلوك انقلاب UT Bot القانوني — لا يحمل الإكسبرت الاتجاهين في وقت واحد.

تعمل إدارة الصفقات على كل تيكة عبر ManageExits(). التدفق: قراءة ATR(14) للشمعة المغلقة، حساب slDist = ATR × 1.5 والربح/الخسارة المفتوحة بمضاعفات R، ثم المرور بمسارات الخروج الأربعة بالترتيب. (1) نقطة التعادل عند +1R: إذا كان curSL تحت سعر الدخول، ارفعه إلى الدخول (مع مراعاة مستوى الوقوفات لدى الوسيط). (2) إغلاق جزئي 50% لمرة واحدة عند +1R: إذا أعادت PartialAlreadyDone() قيمة false للتذكرة، أغلق 50% من الصفقة وعلّم التذكرة كمنتهية. (3) trailing عند InpATRTrailMult=2.0 × ATR(14): للشراء، اضبط الوقف الجديد على bid − trailDist إذا كان فوق الوقف الحالي؛ للبيع، اضبطه على ask + trailDist إذا كان تحت الوقف الحالي. (4) الخروج الزمني عند MAX_BARS_IN_TRADE=100 شمعة: عُد الشموع بين وقت فتح الصفقة والوقت الحالي، أغلق قسريًا عند الوصول للحد. بعد الحلقة لكل صفقة، تعمل OppositeAndRegimeExit() مرورًا ثانيًا: أي صفقة جانبها يخالف CurrentTrend() تُغلق (انقلب UT Bot في الاتجاه الآخر)، وأي صفقة محتفظًا بها بينما النظام الآن CHOPPY / RANGE / COMPRESS تُغلق. تكرر مساعدات TryClose_EX18023 وTryClosePartial_EX18023 وTryModify_EX18023 حتى ثلاث محاولات على REQUOTE / TIMEOUT / PRICE_OFF / PRICE_CHANGED مع نوم 100–200 مللي ثانية — البنية القياسية لإعادة المحاولة في PipsGrowth.

تُغذّى أداة MT5 Strategy Tester بدالة لياقة مخصصة: (net_profit × profit_factor) / (1 + |balance_dd|)، مع حد أدنى صارم 30 صفقة. نتيجة PF عالية وDD منخفضة تحصل على أفضل درجة؛ نتيجة مربحة مع DD مرتفع أو PF منخفض ستُرجَّح في المُحسّن. مجموعة المدخلات الافتراضية مهندسة لشارت M15 — ذاكرة TRAIL_SYNC_LOOKBACK=250 شمعة تعطي trail وقتًا كافيًا ليستقر في الغلاف الحي. يعني الافتراضي InpDryRun=true أنه تُرسل عبارات Print() بدلًا من الأوامر الحقيقية، لذا يجب أن يكون الأسبوع الأول سجل فقط على حساب تجريبي، تراقب سطور سجل PrintFormat للنظام والثقة ومسافات SL/TP التي كانت ستُستخدم. ما إن يرتاح المستخدم للسلوك، يصبح قلب InpDryRun=false إلى false هو التغيير الوحيد المطلوب للانتقال للمباشر.

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

على كل تيكة تقرأ ManageExits() قيمة ATR(14) على الشمعة المغلقة، تمر على قائمة الصفقات المفتوحة، وتشغّل مسار نقطة التعادل / الجزئي / trailing / الخروج الزمني؛ مرور ثانٍ يُغلق على انقلاب UT Bot معاكس أو تغيير النظام. ما إن تُفتتح شمعة جديدة، تشغّل CoreSignal() التقدم الأمامي لـ 250 شمعة لغلاف UT Bot، تلتقط trail عند الشمعة 1 والشمعة 2، وتُرجع إشارة انقلاب الاتجاه وثقة 0–100. تفحص بوابة عدم التداول بعدها مفتاح الإيقاف، سبريد ≤ 35 نقطة، جلسة الخادم 6–21، النظام ليس CHOPPY، شمعة كبيرة (>3× ATR)، تهدئة بعد 3 خسائر، حد رأس المال 50$، خسارة يومية محققة 3%، وحد الصفقة الواحدة؛ يضيف تأكيد H1 EMA(50) توافق الإطار الزمني الأعلى، ثم تغلق TryEntry() أي صفقة معاكسة بالسحر قبل تحجيم اللوت بمخاطرة 0.5% وإرسال الأمر.

إشارة الدخول

ينطلق دخول شراء عندما تُرجع CoreSignal() قيمة +1 (إغلاق الشمعة 1 فوق trail UT Bot المحسوب من ATR(10) × 2.0، AND اتجاه الشمعة 2 لم يكن +1)، ويوافق تأكيد H1 EMA(50)، والنظام ليس CHOPPY، وتنجلّي بوابة عدم التداول. صفقات البيع هي المرآة. يتقدم مزامنة trail إلى الأمام عبر 250 شمعة مغلقة (TRAIL_SYNC_LOOKBACK) قبل الحكم على الانقلاب.

إشارة الخروج

تُغلق الصفقات على أي مما يُفعَّل أولاً: انقلاب اتجاه UT Bot معاكس (تنقلب CurrentTrend() على شمعة مغلقة)، تغيير النظام إلى CHOPPY / RANGE / COMPRESS، حد 100 شمعة الزمني، أو وصول الوسيط إلى SL أو TP. يرتفع وقف trailing بمقدار 2.0 × ATR(14) على كل تيكة ما إن تكون الصفقة في الربح.

وقف الخسارة

الوقف الأولي هو InpATRSLMult = 1.5 × ATR(14) على الشمعة المغلقة، محد أدنى عند مسافة مستوى الوقوفات لدى الوسيط. ينطلق نقل نقطة التعادل مرة واحدة عند +1R MFE، رافعًا الوقف إلى سعر الدخول. يرفع trailing 2.0 × ATR(14) بعدها الوقف في الاتجاه المربح على كل تيكة.

جني الأرباح

يُرسل جني أرباح ثابت عند 2.0 × مسافة الوقف (نسبة 1:2) مع الأمر عبر InpRRTP = 2.0. إضافة إلى ذلك، ينطلق إغلاق جزئي 50% لمرة واحدة عند +1R MFE ويقفل نصف الصفقة؛ يُترك النصف المتبقي للـ trailing أو لجني الأرباح.

الأنسب لـ

الأفضل نشره على USDJPY M15 (الشارت الافتراضي للسحر 22218023) بحساب أدنى 100$. يحافظ حد رأس المال 50$ ومخاطرة 0.5% لكل صفقة على ارتدادات منخفضة على الأرصدة الصغيرة، ويعني حد السبريد 35 نقطة أنه مطلوب حساب ECN أو قياسي بسبريد منخفض للاستخدام المباشر. تغطي جلسة الخادم 6–21 التداخل الكامل من لندن إلى نيويورك في معظم مناطق الوسيط الزمنية؛ تعمل شارتات M5 وH1 أيضًا، رغم أن الخروج الزمني 100 شمعة ومزامنة trail لـ 250 شمعة ستتدرج وفقًا لذلك.

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

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

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

الوصف: UT Bot Alert ATR trailing-stop trend-follow EA. Each closed bar the trail is walked forward using the canonical Pine port; signal fires on trend flip. Layered with ADX+ATR-pctile+ BB-width REGIME gate, HTF-EMA CONFIRM, full NO-TRADE filter, CAPITAL-ALLOCATION CAP, ATR SL/TP, break-even + partial TP + ATR trail, opposite-flip & regime-change exit, time-based exit, news-window skip, spread filter, magic-isolated daily-loss, OnTester custom criterion. All inlined from primitives. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

  • ADX
  • ATR
  • ATRUT
  • BB
  • HTFEMA

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

  • NormPrice()
  • ClampVol()
  • MinStopsDist()
  • SpreadPoints()
  • InSession()
  • IsNewBar()
  • PartialAlreadyDone()
  • MarkPartialDone()
  • EffectiveCapital()
  • RealizedPnLToday()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX18023 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// UT Bot Alert ATR trailing-stop trend-follow EA. Each closed bar the trail is walked forward using the canonical Pine port; signal fires on trend flip. Layered with ADX+ATR-pctile+ BB-width REGIME gate, HTF-EMA CONFIRM, full NO-TRADE filter, CAPITAL-ALLOCATION CAP, ATR SL/TP, break-even + partial TP + ATR trail, opposite-flip & regime-change exit, time-based exit, news-window skip, spread filter, magic-isolated daily-loss, OnTester custom criterion. All inlined from primitives. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

ON_INIT:
    Create indicator handles: ADX, ATR, ATRUT, BB, HTFEMA
    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
الرموز المُحسّنة:
USDJPY
الأطر الزمنية المُحسّنة:
M15M5H1

كيفية تثبيت الإكسبرت على 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

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

المعاملالافتراضيالوصف
InpMagic22218023Magic number (id)
InpTradeComment"Psgrowth.com Expert_18023"Trade comment
InpDryRuntrueDry-run: no real sends
InpKillSwitchfalseKill switch (closes all on tick)
InpMaxSpreadPts35.0Max spread (points)
InpATRPeriod10UT Bot ATR period (bars)
InpKeyValue2.0UT Bot sensitivity (x ATR)
InpADXMin20.0Min ADX for trend regime
InpATRPctLookback60ATR percentile lookback (bars)
InpHTF8Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // HTF trend time-frame
InpHTFEMA50HTF EMA period (bars)
InpCapitalCapAmount0.0Capital cap amount ($ equity)
InpCapitalCapFloor50.0Capital cap floor ($)
InpRiskPercent0.5Risk per trade (% of eff cap)
InpDailyLossPct3.0Daily loss limit (% eff cap)
InpATRSLMult1.5SL distance (x ATR)
InpRRTP2.0TP distance (x SL distance)
InpATRTrailMult2.0In-trade ATR trail (x ATR)
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX18023.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX18023 UT Bot EA — ATR trailing-stop trend follow, full 12-layer stack."

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

CTrade          g_trade;
CPositionInfo   g_pos;
CSymbolInfo     g_sym;
CAccountInfo    g_acc;

//=================== INPUTS (18 total) =============================
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_InpHTF = PERIOD_H1;
input group "=== Identity ==="
input long            InpMagic            = 22218023;  // Magic number (id)
input string          InpTradeComment     = "Psgrowth.com Expert_18023"; // Trade comment
input bool            InpDryRun           = true;      // Dry-run: no real sends
input bool            InpKillSwitch       = false;     // Kill switch (closes all on tick)
input double          InpMaxSpreadPts     = 35.0;      // Max spread (points)

ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
   switch(tf)
   {

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

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

الوسوم:ex18023trendfollowpipsgrowthfreemt5usdjpy

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

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

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

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

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

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

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

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