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

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

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

Pipsgrowth EX18033 TrendFollow — EMA(8/21) cross on closed bar biased by EMA(89) trend slope, inlined HeikinAshi color and SuperTrend side. ADX/ATR- perc. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX18033 TrendFollow ينتظر تقاطع المتوسطين المتحركين السريع والبطيء على الشمعة المغلقة ثم يضيف فوقه ثلاث مرشحات تحيز مستقلة قبل أي حساب لحجم الصفقة. الإشارة الأساسية هي تقاطع المتوسط السريع 8 مع المتوسط البطيء 21 على الشمعة 1 المغلقة — شراء عندما يكون السريع فوق البطيء عند إغلاق الشمعة 1 وكان عنده أو تحته في الشمعة 2، وبيع في الحالة المعاكسة. التقاطع وحده لا يكفي. يوفر المتوسط 89 بمثابة تحيز ميل الاتجاه: إذا كان متوسط الاتجاه يهبط خلال آخر شمعتين تُقبل إشارة الشراء بنتيجة ثقة 20 (الصفقة مسموح بها لكن المحرك يعلن أن الإطار الزمني الأكبر غير متوافق). إذا كان الميل متفقاً مع الإشارة يمر المحرك بعد ذلك على فلتر هيكن آشي المُدمج (الإدخال InpUseHeikenFilter وقيمته الافتراضية true) الذي يعيد بناء ha_open و ha_close من شمعتي open و high و low و close السابقتين، ويرفض الإشارة عندما تكون الشمعة المركبة باللون الخاطئ — تنخفض الثقة إلى 25. وأخيراً تُحسب قناة SuperTrend داخلياً بدون حالة (الإدخال InpUseSuperTrend وقيمته الافتراضية true، المضاعف 2.2 — حيث يُقسم الرقم 22 في InpSuperTrendMult_x10 على 10 عند التشغيل) كقيمة median(high,low) ± 2.2 × ATR(14) على الشمعة 1؛ فإذا كان الإغلاق على الجانب الخاطئ من القناة تنخفض الثقة إلى 30. عندما تنجح الفلاتر الثلاثة تُعيد الدالة CoreSignal() قيمة ±1 الأصلية مع ثقة 70 وتُمرَّر الصفقة إلى طبقة التأكيد.

تُدار طبقة التأكيد بواسطة ClassifyRegime() و ConfirmEntry(). يقرأ مصنف النظام ADX(14) و ATR(14) وفرقة بولنجر 20 على نفس الإطار. يقارن عرض فرقة اليوم بعرض الشمعة السابقة بحدود 5 بالمئة توسع و 5 بالمئة انضغاط، ويحسب نسبة مئوية لترتيب ATR الحالي مقابل آخر 50 شمعة. عندما يكون ADX ≥ 18 يُرجع المحرك REG_EXPAND إذا كانت الفرق تتسع، أو REG_STRONG_TREND إذا كان ATR في أعلى 30 بالمئة من توزيعه على 50 شمعة، وإلا REG_WEAK_TREND. وعندما يكون ADX تحت 18 يُرجع REG_COMPRESS أو REG_BREAKOUT أو REG_RANGE أو REG_CHOPPY تبعاً لحركة الفرق ومرتبة ATR. تحظر دالة NoTradeReason() صراحةً نظامي REG_CHOPPY و REG_COMPRESS_NO_BREAKOUT قبل أي فلتر آخر، وتطلب ConfirmEntry() أن يكون النظام الناجي أحد REG_STRONG_TREND أو REG_WEAK_TREND أو REG_BREAKOUT أو REG_EXPAND. تعيد ConfirmEntry() أيضاً قراءة ميل المتوسط 89 على آخر 5 شموع وتتحقق من أن إغلاق الشمعة 1 انتهى على الجانب الصحيح من إغلاق الشمعة 2، لذلك فإن التقاطع الذي تم إلغاؤه بالفعل بسحب سريع على شمعة واحدة لا يصل أبداً إلى تذكرة الأمر.

طبقة المخاطرة مبنية حول نسبة 0.5 بالمئة مخاطرة لكل صفقة (InpRiskPercent = 0.5) تُطبَّق على رأس المال الفعال الذي يكون عادةً كامل حقوق الحساب. من الناحية الفنية يربط الغطاء بـ InpCapitalCapEnabled في مسار حساب الحجم بـ OnTick، لكن هذا العلم أُزيل من المدخلات — ويخبر التعليق في الكود المستخدم بضبط InpCapitalCapAmount = 0 لتعطيله، ولا يزال حارس الأرضية في NoTradeReason() يرفض التداول عندما تنخفض حقوق الملكية تحت INP_CAP_FLOOR_DOLLARS = 50. حد الخسارة اليومي 3 بالمئة من رأس المال الفعال، وحد الخسارة الأسبوعي 6 بالمئة (INP_WEEKLY_LOSS_PCT)، وعدّاد 3 خسائر متتالية يُفعِّل فترة تهدئة على مستوى الجلسة. حساب حجم اللوت يتبع طريقة مسافة النقاط المعيارية: riskMoney / (slDistance / tickSize × tickValue)، تُقرَّب إلى درجة اللوت، وتُقص إلى الحد الأدنى للوت، وتُحصر عند 5.00 لوت. يتم فحص الهامش بهامش أمان 1.2× قبل أي إرسال.

يرتبط كل من وقف الخسارة وجني الأرباح بسعر الدخول من خلال ATR(14). يُوضع وقف الخسارة على بعد 2.0 × ATR (InpATRSLmult) تحت الشراء أو فوق البيع، ويُوضع جني الأرباح بنسبة مخاطرة إلى مكافأة 1:2 (InpRRtarget = 2.0)، أي أن جني الأرباح على بعد 4.0 × ATR من الدخول. تفرض دالة ExecuteEntry() أيضاً حداً أدنى لمسافة الوقف لدى الوسيط من خلال SYMBOL_TRADE_STOPS_LEVEL، ويُرسل الأمر كأمر سوقي مع انحراف 20 نقطة عبر غلاف CTrade القياسي، مع إعادة محاولة واحدة في حالات REQUOTE أو TIMEOUT أو PRICE_OFF.

كتلة إدارة الصفقة المفتوحة مطابقة في البنية لباقي EAs في عائلة TrendFollow v2.00 لكنها تستخدم ملف خروج مختلفاً. الصفقة التي تصل إلى +1R تُحرَّك وقتها إلى نقطة التعادل (سعر الدخول + stopsPts × point، حركة لمرة واحدة)، والصفقة التي تصل إلى +1.5R يُغلق نصفها في السوق (vol/2 مقرَّب إلى درجة اللوت، فقط عندما يبقى الباقي فوق الحد الأدنى لدى الوسيط). بعد نقطة التعادل يتولى وقف الخسارة المتابع لـ ATR عند 2.5 × ATR(14) (InpATRTrailMult) ولا يتحرك إلا للأمام — لا ينسحب عند الارتداد ولا ينخفض تحت سعر الدخول الأصلي بعد تفعيل التعادل. يوقف مؤقت زمني عند 240 شمعة (InpMaxBarsInTrade، أي عشرون ساعة من شموع M5) أي صفقة لم تنتج حركة تثبيت ربح. ميزة البيريmid مُجمَّعة لكن قيمتها الافتراضية مطفأة (INP_USE_PYRAMID = false)؛ وعند تفعيلها تتيح حتى 3 إضافات متباعدة 1.5 × ATR، وكلها يجب أن تكون في ربح قبل إضافة أخرى. حد المراكز المتزامنة 3 (InpMaxConcurrent).

يُرشَّح التنفيذ بحد فروق 50 نقطة (InpMaxSpreadPoints = 50، أي 5 نقاط لفرق سعري XAUUSD خماسي الأرقام)، ونطاق جلسة من 1 إلى 23 بتوقيت الخادم (INP_SESSION_START_HOUR و INP_SESSION_END_HOUR)، وحواجز لعطلة نهاية الأسبوع ولجمعة بعد الساعة 22:00، إلى جانب إعدادات kill switch و dry-run الافتراضية. تأتي InpDryRun بقيمة true افتراضياً، أي أن الـ EA يطبع الأوامر المقصودة في السجل دون إرسالها للوسيط حتى يُفعِّل المستخدم التنفيذ الحي. تعليق الأمر هو "Psgrowth.com Expert_18033" والرقم السحري 22218033. تُسجِّل دالة OnTester() نتيجة الاختبار الخلفي كحاصل ضرب netProfit × profitFactor / (1 + balance drawdown) مع حد أدنى 30 صفقة، وهو نفس الهدف المستخدم في كل سلسلة TrendFollow v2.00.

ما يمكن توقّعه عملياً: في يوم اتجاه نظيف على XAUUSD M5 يطلق تقاطع المتوسطات مرة أو مرتين ويسير المحرك مع ميل 89-EMA، ويخرج عند 1:2R أو يتم سحبه بوقف 2.5×ATR. في يوم نطاق يهبط المصنف إلى REG_RANGE أو REG_CHOPPY وتحظر NoTradeReason() الدخول، فيجلس الـ EA دون فعل حتى تبدأ الفرق في التوسع مجدداً. بادئة الرقم السحري 22218033 تعني أن كل صفقة يفتحها هذا الـ EA يمكن تمييزها في سجل التداول بهذا الرقم تماماً، وهو الرافعة التي يجب استخدامها عند مطابقة تقارير الاختبار الخلفي مع كشف الوسيط.

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

تعيد كل تذكرة تحديث أسعار الرمز، وإعادة حساب رأس المال الفعال، وتقديم التاريخ اليومي للأمام عند الحاجة، واستدعاء RefreshRealized() لجمع أرباح وخسائر اليوم والأسبوع المحققة، وتخرج مبكراً إذا كان سقف الخسارة اليومية 3 بالمئة قد تم تجاوزه بالفعل. ثم تقرأ ClassifyRegime() قيم ADX(14) و ATR(14) وفرقة بولنجر 20، وتحسب نسبة مئوية لـ ATR مقابل آخر 50 شمعة، وتُرجع أحد سبعة أنظمة؛ ويحظر بوابة عدم التداول نظامي CHOPPY و COMPRESS قبل أي عمل على الإشارة. تسحب CoreSignal() قيم EMA(8) و EMA(21) و EMA(89) لآخر شمعتين أو ثلاث شموع مغلقة، وتكشف عن تقاطع جديد، ثم تُخفِّض الثقة بالتتابع عبر فحوصات ميل الاتجاه وهيكن آشي الداخلي و SuperTrend الداخلي حتى تُحدَّد حالة التحيز الناجية. تعيد ConfirmEntry() قراءة ميل 89-EMA على خمس شموع، وتطلب أن يكون النظام أحد الحالات الأربع المؤهلة للاتجاه، وتتحقق من أن إغلاق الشمعة 1 على الجانب الصحيح من إغلاق الشمعة 0. وبعد كل ذلك فقط تحتسب ExecuteEntry() حجم اللوت من نسبة المخاطرة 0.5 بالمئة، وتجري CheckMargin()، وترسل الأمر مع إعادة محاولة واحدة عند requote أو timeout. تعمل ManageExits() عند كل تذكرة وتُطبِّق بالترتيب: الوقف الزمني، ونقطة التعادل، وجني الأرباح الجزئي، والمتابع 2.5×ATR(14) الذي لا يتحرك إلا للأمام، بينما تُسطِّح CloseOpposite() المراكز على الجانب الخاطئ من الإشارة الجديدة قبل حساب حجم الصفقة الجديدة.

إشارة الدخول

تُفعَّل إشارة الشراء عندما يُغلق المتوسط 8 فوق المتوسط 21 على الشمعة 1 مع تقاطع سابق، ويكون ميل المتوسط 89 غير سالب، ويتفق لون هيكن آشي الداخلي، ويقع الإغلاق داخل الجانب الطويل من قناة SuperTrend عند 2.2×ATR(14). وتعكس إشارات البيع هذه الشروط. لا تصل الثقة إلى 70 إلا بعد اجتياز فحوصات التحيز الثلاثة (ميل الاتجاه، لون HA، جانب SuperTrend)، ويجب أن يكون النظام STRONG_TREND أو WEAK_TREND أو BREAKOUT أو EXPAND.

إشارة الخروج

تخرج الصفقات عند وقف زمني 240 شمعة M5، أو عند تفعيل وقف الخسارة، أو عند جني الأرباح 1:2R، أو عند وقف متابع 2.5×ATR(14) بعد تفعيل التعادل، أو عند إغلاق جزئي 50 بالمئة عند +1.5R يليه سحب الباقي، أو عند إشارة معاكسة تغلق الجانب الآخر أولاً عبر CloseOpposite() قبل إعادة تقييم الدخول.

وقف الخسارة

وقف الخسارة الابتدائي على بعد 2.0×ATR(14) من سعر الدخول، مع تقييده فوق الحد الأدنى لـ SYMBOL_TRADE_STOPS_LEVEL لدى الوسيط. بعد أن تصل الصفقة إلى +1R يُحرَّك الوقف إلى نقطة التعادل (سعر الدخول + نقطة واحدة من stops-level)، ومن هناك يتولى المتابع 2.5×ATR(14) ولا يتحرك إلا للأمام.

جني الأرباح

جني الأرباح بنسبة مكافأة إلى مخاطرة 1:2 (TP = 4.0×ATR(14) من الدخول، لأن SL = 2.0×ATR). يُفعَّل إغلاق جزئي 50 بالمئة عند +1.5R قبل الـ TP الكامل، ثم يُدار الباقي بواسطة المتابع المعتمد على ATR.

الأنسب لـ

يُفضَّل تشغيله على XAUUSD M5 برصيد ابتدائي 100 دولار، على وسيط ECN أو RAW بفارق سعري منخفض حيث نادراً ما يتم تجاوز حد الـ 50 نقطة (5 نقاط على السعر خماسي الأرقام). يغطي نطاق الجلسة من 1 إلى 23 بتوقيت الخادم كامل يوم التداول تقريباً، لذلك فإن وسيط GMT+2 أو GMT+3 يتوافق بدقة مع جلستي لندن ونيويورك، ويجعل سقف الخسارة الأسبوعي 6 بالمئة وفترة التهدئة بعد 3 خاسر اختياراً منطقياً للمتداولين الذين يريدون EA اتجاه لزوج واحد بمخاطرة صريحة لكل صفقة وسقف صلب للتراجع.

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

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

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

الوصف: EMA(8/21) cross on closed bar biased by EMA(89) trend slope, inlined HeikinAshi color and SuperTrend side. ADX/ATR- percentile/Bollinger-width regime gates entries, sizing, and ATR trail. Full 12-layer stack with capital allocation cap. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • CopyBufSafe()
  • HourOf()
  • DateStart()
  • ClassifyRegime()
  • CoreSignal()
  • NoTradeReason()
  • ConfirmEntry()
  • ComputeLot()
  • CheckMargin()
  • RefreshRealized()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX18033 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// EMA(8/21) cross on closed bar biased by EMA(89) trend slope, inlined HeikinAshi color and SuperTrend side. ADX/ATR- percentile/Bollinger-width regime gates entries, sizing, and ATR trail. Full 12-layer stack with capital allocation cap. 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

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

المعاملالافتراضيالوصف
InpFastEMA8Fast EMA period (bars)
InpSlowEMA21Slow EMA period (bars)
InpTrendEMA89Trend EMA period (bars)
InpSuperTrendMult_x1022SuperTrend ATR mult x10 (22=2.2)
InpUseHeikenFiltertrueHeikinAshi color filter
InpUseSuperTrendtrueSuperTrend side filter
InpADXPeriod14ADX period (bars)
InpMinADX18.0Min ADX for trend (units)
InpATRPeriod14ATR period (bars)
InpBBPeriod20Bollinger period (bars)
InpCapitalCapAmount0.0Capital cap amount ($ equity)
InpRiskPercent0.5Risk per trade (% eff. capital)
InpDailyLossLimitPct3.0Daily loss limit (% eff. capital)
InpATRSLmult2.0SL = ATR x mult (units)
InpRRtarget2.0Reward:Risk TP ratio (units)
InpATRTrailMult2.5ATR trailing multiplier (units)
InpMaxBarsInTrade240Max bars in trade (bars)
InpDryRuntrueDry-run (no live sends)
InpKillSwitchfalseEmergency kill switch
InpMaxSpreadPoints50Max spread (points)
InpMaxConcurrent3Max concurrent trades (units)
InpTradeComment"Psgrowth.com Expert_18033"Order comment
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX18033.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX18033 EX210 — EMA cross + HA/SuperTrend, ADX/ATRpct/BB-width regime, capital cap, full in-trade management."

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

//+------------------------------------------------------------------+
//| INPUTS (22 total, grouped)                                       |
//+------------------------------------------------------------------+
input group "=== Strategy ==="
input int      InpFastEMA            = 8;       // Fast EMA period (bars)
input int      InpSlowEMA            = 21;      // Slow EMA period (bars)
input int      InpTrendEMA           = 89;      // Trend EMA period (bars)
input int      InpSuperTrendMult_x10 = 22;      // SuperTrend ATR mult x10 (22=2.2)
input bool     InpUseHeikenFilter    = true;    // HeikinAshi color filter
input bool     InpUseSuperTrend      = true;    // SuperTrend side filter

input group "=== Regime ==="
input int      InpADXPeriod          = 14;      // ADX period (bars)
input double   InpMinADX             = 18.0;    // Min ADX for trend (units)
input int      InpATRPeriod          = 14;      // ATR period (bars)
input int      InpBBPeriod           = 20;      // Bollinger period (bars)

input group "=== Risk & Sizing ==="
// InpCapitalCapEnabled removed — use InpCapitalCapAmount=0 to disable    // Capital allocation cap ON
input double   InpCapitalCapAmount   = 0.0;   // Capital cap amount ($ equity)
input double   InpRiskPercent        = 0.5;     // Risk per trade (% eff. capital)
input double   InpDailyLossLimitPct  = 3.0;     // Daily loss limit (% eff. capital)
input double   InpATRSLmult          = 2.0;     // SL = ATR x mult (units)
input double   InpRRtarget           = 2.0;     // Reward:Risk TP ratio (units)

input group "=== In-Trade Management ==="
input double   InpATRTrailMult       = 2.5;     // ATR trailing multiplier (units)
input int      InpMaxBarsInTrade     = 240;     // Max bars in trade (bars)

input group "=== Execution ==="
input bool     InpDryRun             = true;    // Dry-run (no live sends)
input bool     InpKillSwitch         = false;   // Emergency kill switch
input int      InpMaxSpreadPoints    = 50;      // Max spread (points)
input int      InpMaxConcurrent       = 3;       // Max concurrent trades (units)
// 22 inputs above. Optional extras below use sensible defaults inside code.

//+------------------------------------------------------------------+
//| Globals                                                          |
//+------------------------------------------------------------------+
CTrade            trade;
CPositionInfo     posInfo;
CSymbolInfo       symbolInfo;
CAccountInfo      accountInfo;
COrderInfo        orderInfo;
CDealInfo         dealInfo;

int h_fastEMA, h_slowEMA, h_trendEMA, h_adx, h_atr, h_bb;

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

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

الوسوم:ex18033trendfollowpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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