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

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

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

Pipsgrowth EX18082 TrendFollow — AlphaTrend EA for XAUUSD M5 using EMA fast/slow crossover with RSI pullback/breakout confirmation, Donchian channel, and. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

إكس 18082 ألفاترند هو مستشار خبير لتتبع الاتجاه مُصمم خصيصاً لزوج XAUUSD على الإطار الزمني M5. تعتمد محركات إشاراته على ثلاث طبقات قرار مستقلة: تقاطع المتوسطين المتحركين السريع والبطيء، ومؤشر RSI بسبعة فترات لاكتشاف الارتدادات، وقناة دونشيان لإمساك الاختراقات. فوق هذه الطبقات يعمل مرشح ميل هيكن آشي الداخلي الذي يحدد أي اتجاه مسموح له بالانطلاق أصلاً. النتيجة نظام يمكنه إما شراء الارتدادات داخل اتجاه قائم أو شراء الاختراق عند كسر النطاق، وكل ذلك من مسار كود واحد.

يتم حساب مرشح الاتجاه داخل دالة CalculateHASlope(). تبني الدالة إغلاق هيكن آشي للشمعة المغلقة الأخيرة ((فتح+أعلى+أدنى+إغلاق)/4) ولنفس الشمعة قبل فترة lookback (افتراضياً 10 شموع)، ثم تأخذ الفرق بالنقاط. علامة هذا الميل تعطي trend_dir: موجبة عند صعود هيكن آشي، وسالبة عند هبوطه، وصفر عند الميل المسطح أو شبه المسطح. مدخل InpMinSlopePoints مضبوط افتراضياً على 0.0، مما يسمح للفلتر بتأكيد أي انحياز اتجاهي غير صفري؛ ورفعه يُشدد البوابة. لا يمكن لأي دخول ارتداد أو اختراق أن ينطلق ضد trend_dir.

فرع الارتداد (يُفعَّل عبر InpEnablePullback، افتراضياً true) هو الدخول الأكثر شيوعاً. يتطلب توافق ثلاثة شروط على الشمعة المغلقة الأخيرة: المتوسط السريع EMA(21) فوق المتوسط البطيء EMA(55)، ومؤشر RSI(7) أقل من مستوى ارتداد الثيران (افتراضياً 40)، وtrend_dir موجب للدخول الطويل. وال Short هو المرآة: سريع تحت بطيء، وRSI أعلى من 60، وtrend_dir سالب. مستويات ارتداد RSI متعمدة داخل المنطقة المحايدة، فالنظام لا يشتري قيعان التشبع البيعي بل يشتري الانخفاضات داخل الاتجاه الصاعد.

فرع الاختراق (يُفعَّل عبر InpEnableBreakout، افتراضياً true) لا ينطلق إلا إذا لم يُطلق فرع الارتداد. تستخدم دالة GetDonchian() الدالتين iHighest/iLowest على مدى 30 شمعة سابقة (بتجاهل الشمعة 0) لاسترجاع الأعلى والأدنى السابقين. الإغلاق فوق أعلى 30 شمعة السابقة مع trend_dir موجب يعني دخول شراء؛ والمرآة للدخول على Short. ولأن فحص الاختراق يعمل على الشمعة المغلقة، فإن النظام لا يلاحق القمة الجديدة، بل ينتظر الشمعة التالية للتأكيد.

يتم فلترة التذبذب عبر ATR(14) وموضعه الطبيعي في النطاق 0-1، الذي يتحكم فيه InpMinAtrNorm (0.15) وInpMaxAtrNorm (0.85). عندما يكون الوضع النسبي لـ ATR الحالي خارج هذا النطاق، يتخطى المستشار الدخول. والهدف هو تجنب كل من الانضغاط (تذبذب محدود) والتمدد (فوضى ما بعد الأخبار). كما يوجد فحص current_atr <= 0 للعودة المبكرة. السبريد محدد بسقف صلب: أي تيك يتجاوز فيه سبريد الرمز 200 نقطة يُسقَط على الأرض قبل تشغيل الإدارة.

يتم تحديد حجم كل صفقة جديد عبر GetLotSize() بميزانية مخاطرة افتراضية 1% من الرصيد، مع العودة إلى 0.01 لوت ثابت عندما يكون InpRiskPercent صفراً. مسافة وقف الخسارة بالنقاط تُحسب كـ ATR(14) * InpSlAtrMult (افتراضياً 1.4)، لذا فإن وقف الخسارة ديناميكي ويتنفس مع السوق. جني الأرباح هو ATR(14) * InpTpAtrMult (افتراضياً 2.2)، أي ما يعادل نسبة مخاطرة إلى عائد 1:1.57 تقريباً. الحد الأقصى للوت لكل صفقة محدد بـ 10 عبر InpMaxLotSize، والنتيجة تُقرَّب لأسفل إلى خطوة اللوت، ثم تُقصَّ إلى حدود الرمز.

التحوط الآمن (InpUsePyramid = true افتراضياً) يسمح بحد أقصى 3 مراكز على نفس الرمز بنفس الرقم السحري. ترفض دالة CheckPyramidSafety() الإضافة إذا كان مركز في الاتجاه المعاكس مفتوحاً، وترفض الإضافة إذا كان وقف الخسارة للصفقة الحالية لم يُدفع بعد إلى منطقة الربح بمقدار InpPyramidMinProfit (100 نقطة) على الأقل، وترفض الإضافة إذا وصل العدد إلى InpMaxPyramidTrades. هذا تحوط بـ'ربح مؤمَّن' وليس مارتينجال — كل دخول إضافي مشروط بمركز أخضر بالفعل بمبلغ محدد.

تعمل إدارة المراكز في كل تيك عبر ManageProfitLock(). عندما يكون المركز رابحاً بمقدار InpLockTrigger (300) نقطة على الأقل، تتم إعادة كتابة وقف الخسارة إلى السعر الحالي ± InpLockDistance (100 نقطة)، لكن فقط إذا كان وقف الخسارة الجديد أفضل من وقف الخسارة الحالي بفارق InpLockStep (50 نقطة) على الأقل. ينتج عن ذلك قفل تدريجي تصاعدي: وقف الخسارة لا يرتخي أبداً، بل يشتد فقط، ويتقدم بزيادات 50 نقطة بمجرد أن يصل الصفقة إلى 300 نقطة ربح. جني الأرباح لا يُمَس.

فلتر الوقت مُفعَّل افتراضياً. تحلل دالة IsTradingTime() المدخلات InpStartTime ("08:00") وInpEndTime ("20:00") ولا تسمح بالدخول إلا بين هذه الساعات بتوقيت السيرفر. خارج النافذة، يستمر المستشار في إدارة المراكز المفتوحة لكنه يحظر الدخول الجديد؛ ومع InpCloseAtEnd، يُجبر السلة على الإغلاق في وقت النهاية. تمنع بوابة الشمعة الجديدة (iTime shift 0) تعدد الدخول لكل شمعة.

على جانب التنفيذ، يستخدم المستشار CTrade مع ORDER_FILLING_FOK وتسامح انزلاق 10 نقاط. تُعيد TryModify_EX18082() المحاولة 3 مرات بسكون 100 مللي ثانية عند requote/timeout؛ وتُعيد TryClose_EX18082() وTryClosePartial_EX18082() المحاولة 3 مرات بسكون 200 مللي ثانية عند نفس أكواد الإعادة المؤقتة. لا توجد لوحة معلومات على الشارت ولا دالة OnTester مخصصة — يعتمد المستشار على مقاييس تحسين MT5 القياسية.

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

تبدأ دالة OnTick بإسقاط أي تيك يتجاوز فيه السبريد 200 نقطة، ثم تُشغِّل ManageProfitLock() على كل مركز موجود، ثم تطبّق فلتر الوقت (08:00-20:00 بتوقيت السيرفر، مفعَّل افتراضياً). عند شمعة M5 الجديدة تقرأ خلية واحدة من كل مؤشر (EMA21 وEMA55 وRSI7 وATR14)، وتحسب ميل HA داخلياً على مدى 10 شموع، وتجعل trend_dir يفلتر الإشارة. ينطلق فرع الارتداد عندما يكون المتوسط السريع في الاتجاه الصحيح من البطيء وRSI(7) دخل منطقة الارتداد 40/60؛ وينطلق فرع الاختراق عندما يكون الإغلاق في الاتجاه الصحيح من نطاق دونشيان 30 شمعة. تُتجاوَز الشمعة الجديدة إذا كان الوضع النسبي لـ ATR خارج 0.15-0.85. تحديد الحجم هو 1% من الرصيد مقسوماً على مسافة وقف الخسارة بالنقاط المعتمدة على ATR، مع التقريب لأسفل إلى خطوة اللوت والاقتصار بـ InpMaxLotSize. الإضافات في التحوط مشروطة بـ CheckPyramidSafety: يجب أن يكون وقف الخسارة لكل مركز مفتوح في الربح بـ 100 نقطة على الأقل، ويجب ألا يتجاوز العدد 3. يدفع قفل الربح 300/50/100 وقف الخسارة للأمام بخطوات 50 نقطة بمجرد تجاوز الربح 300 نقطة، تاركاً مسافة 100 نقطة من السعر الحالي.

إشارة الدخول

تُولَّد الإشارات عند إغلاق كل شمعة M5 عبر أحد فرعين قابلين للتبديل. فرع الارتداد (افتراضي مفعَّل): المتوسط السريع EMA(21) فوق البطيء EMA(55)، ومؤشر RSI(7) تحت مستوى الثيران (40) للشراء، مع بوابة trend_dir > 0 من ميل HA. فرع الاختراق (افتراضي مفعَّل): إغلاق الشمعة السابقة فوق أعلى 30 شمعة دونشيان (أو تحت الأدنى للبيع) مع نفس البوابة. يجب أن يكون ATR(14) داخل النطاق الطبيعي 0.15-0.85 وأن يكون السبريد تحت 200 نقطة.

إشارة الخروج

ثلاثة مسارات للخروج: (1) تحقيق جني الأرباح المعتمد على ATR (2.2x)، (2) تفعيل وقف الخسارة، (3) قفل الربح يدفع وقف الخسارة للأمام بخطوات 50 نقطة بمجرد أن يصل الصفقة إلى 300 نقطة ربح، مع ترك مسافة قفل 100 نقطة، لذا فإن الاتجاه الممتد لا يعيد أبداً أكثر من 100 نقطة من الربح المفتوح. مع InpCloseAtEnd، تُغلَق جميع المراكز قسراً عند نهاية نافذة التداول (20:00 بتوقيت السيرفر).

وقف الخسارة

وقف الخسارة ديناميكي: ATR(14) * 1.4 (افتراضي 1.4x) يُحسب على كل شمعة جديدة من مقبض المؤشر. يعمل مرشح ميل HA والنطاق الطبيعي لـ ATR كبوابات للصفقة لكنهما لا يحركان وقف الخسارة. يمكن لقفل الربح بخطوة 50 نقطة أن يشدد وقف الخسارة لما يصل إلى 100 نقطة خلف السعر الحالي بمجرد أن يصل الصفقة إلى 300 نقطة ربح.

جني الأرباح

جني الأرباح هو ATR(14) * 2.2 (افتراضي 2.2x) يُقاس من سعر الدخول على لقطة الشمعة الجديدة، مما يعطي نسبة مخاطرة إلى عائد ثابتة 1:1.57 تقريباً مقارنة بوقف ATR 1.4x. جني الأرباح لا يُتابَع — قفل الربح يحرك وقف الخسارة فقط.

الأنسب لـ

الحد الأدنى للرصيد: 100 دولار. الأنسب لزوج XAUUSD على M5 بمخاطرة 1% من الرصيد لكل صفقة. شغّله خلال نافذة السيرفر النشطة 08:00-20:00 حتى تجد مشغلات HA وميل دونشيان سيولة لندن ونيويورك خلفها؛ المستشار مصمم لأنظمة الذهب متوسطة التذبذب ويرفض الدخول عندما يتجاوز الوضع الطبيعي لـ ATR 0.85 (فوضى ما بعد الأخبار) أو ينخفض تحت 0.15 (انضغاط). يُفضَّل حساب ECN أو حساب سبريد منخفض حتى لا يبدأ سقف 200 نقطة في رفض إعدادات M5 الصالحة.

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

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

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

الوصف: AlphaTrend EA for XAUUSD M5 using EMA fast/slow crossover with RSI pullback/breakout confirmation, Donchian channel, and ATR-normalized volatility filter. Includes Heiken Ashi slope filter, safe pyramiding, profit lock/trailing, and time filter. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • CalculateHASlope()
  • GetDonchian()
  • CheckPyramidSafety()
  • ManageProfitLock()
  • GetLotSize()
  • RefreshRates()
  • IsTradingTime()
  • StrToTime()
  • CloseAllPositions()
  • TryClose_EX18082()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX18082 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// AlphaTrend EA for XAUUSD M5 using EMA fast/slow crossover with RSI pullback/breakout confirmation, Donchian channel, and ATR-normalized volatility filter. Includes Heiken Ashi slope filter, safe pyramiding, profit lock/trailing, and time 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
الأطر الزمنية المُحسّنة:
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

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

المعاملالافتراضيالوصف
InpMagicNumber22218082Magic Number
InpEmaFast21Fast EMA Period
InpEmaSlow55Slow EMA Period
InpRsiPeriod7RSI Period
InpRsiBullPB40RSI Bull Pullback Level
InpRsiBearPB60RSI Bear Pullback Level
InpDonchianPeriod30Donchian Period
InpAtrPeriod14ATR Period
InpMinAtrNorm0.15Min ATR Normalized (0-1)
InpMaxAtrNorm0.85Max ATR Normalized (0-1)
InpEnablePullbacktrueEnable Pullback Entry
InpEnableBreakouttrueEnable Breakout Entry
InpHaSlopeLookback10HA Slope Lookback
InpMinSlopePoints0.0Minimum Slope (Points)
InpRiskPercent1.0Risk per trade (% of Balance)
InpFixedLot0.01Fixed Lot (if Risk=0)
InpMaxLotSize10.0Max Lot Size per trade
InpSlAtrMult1.4Stop Loss ATR Multiplier
InpTpAtrMult2.2Take Profit ATR Multiplier
InpTrailAtrMult1.0Trailing ATR Multiplier
InpSlippage10Max Slippage (Points)
InpMaxSpread200Max Spread (Points)
InpUsePyramidtrueEnable Safe Pyramiding
InpMaxPyramidTrades3Max Open Positions
InpPyramidMinProfit100Min Secured Profit (Points) for Next Add
InpUseProfitLocktrueEnable Profit Lock / Trailing
InpLockTrigger300Trigger Distance (Points in Profit)
InpLockStep50Step to advance SL (Points)
InpLockDistance100Distance to keep SL from Price (Points)
InpUseTimeFiltertrueEnable Time Filter
InpStartTime"08:00"Start Trading Time (Server)
InpEndTime"20:00"End Trading Time (Server)
InpCloseAtEndfalseClose all at end time
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX18082.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX18082 AlphaTrend_XAUUSD_5M — EMA+RSI+Donchian trend EA with pyramiding, full 12-layer stack."

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

// --- Global Objects ---
CTrade         m_trade;
CSymbolInfo    m_symbol;
CPositionInfo  m_position;
CAccountInfo   m_account;

// --- Inputs ---

input group "=== Identity ==="
input ulong    InpMagicNumber       = 22218082;    // Magic Number
input string   InpTradeComment      = "Psgrowth.com Expert_18082";

input group "=== Signal Settings ==="
input int      InpEmaFast           = 21;          // Fast EMA Period
input int      InpEmaSlow           = 55;          // Slow EMA Period
input int      InpRsiPeriod         = 7;           // RSI Period
input int      InpRsiBullPB         = 40;          // RSI Bull Pullback Level
input int      InpRsiBearPB         = 60;          // RSI Bear Pullback Level
input int      InpDonchianPeriod    = 30;          // Donchian Period
input int      InpAtrPeriod         = 14;          // ATR Period
input double   InpMinAtrNorm        = 0.15;        // Min ATR Normalized (0-1)
input double   InpMaxAtrNorm        = 0.85;        // Max ATR Normalized (0-1)
input bool     InpEnablePullback    = true;        // Enable Pullback Entry
input bool     InpEnableBreakout    = true;        // Enable Breakout Entry

input group "=== Heiken Ashi Slope Filter ==="
input int      InpHaSlopeLookback   = 10;          // HA Slope Lookback
input double   InpMinSlopePoints    = 0.0;         // Minimum Slope (Points)

input group "=== Money Management ==="
input double   InpRiskPercent       = 1.0;         // Risk per trade (% of Balance)
input double   InpFixedLot          = 0.01;        // Fixed Lot (if Risk=0)
input double   InpMaxLotSize        = 10.0;        // Max Lot Size per trade

input group "=== Trade Management ==="
input double   InpSlAtrMult         = 1.4;         // Stop Loss ATR Multiplier
input double   InpTpAtrMult         = 2.2;         // Take Profit ATR Multiplier
input double   InpTrailAtrMult      = 1.0;         // Trailing ATR Multiplier
input int      InpSlippage          = 10;          // Max Slippage (Points)
input int      InpMaxSpread         = 200;         // Max Spread (Points)

input group "=== Pyramid / Scaling ==="
input bool     InpUsePyramid        = true;        // Enable Safe Pyramiding
input int      InpMaxPyramidTrades  = 3;           // Max Open Positions
input int      InpPyramidMinProfit  = 100;         // Min Secured Profit (Points) for Next Add

input group "=== Profit Lock & Trail ==="
input bool     InpUseProfitLock     = true;        // Enable Profit Lock / Trailing
input int      InpLockTrigger       = 300;         // Trigger Distance (Points in Profit)

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

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

الوسوم:ex18082trendfollowpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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