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()
// 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)ملف التحسين
كيفية تثبيت الإكسبرت على MT5
- 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
- 2افتح برنامج MetaTrader 5 على حاسوبك
- 3من القائمة العلوية اختر File → Open Data Folder
- 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
- 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
- 6اسحب الإكسبرت على رسم H4 أو اليومي للحصول على أفضل النتائج
- 7حدد فترات EMA وعتبة ADX وحجم اللوت في نافذة الإعدادات
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpFastEMA | 8 | Fast EMA period (bars) |
| InpSlowEMA | 21 | Slow EMA period (bars) |
| InpTrendEMA | 89 | Trend EMA period (bars) |
| InpSuperTrendMult_x10 | 22 | SuperTrend ATR mult x10 (22=2.2) |
| InpUseHeikenFilter | true | HeikinAshi color filter |
| InpUseSuperTrend | true | SuperTrend side filter |
| InpADXPeriod | 14 | ADX period (bars) |
| InpMinADX | 18.0 | Min ADX for trend (units) |
| InpATRPeriod | 14 | ATR period (bars) |
| InpBBPeriod | 20 | Bollinger period (bars) |
| InpCapitalCapAmount | 0.0 | Capital cap amount ($ equity) |
| InpRiskPercent | 0.5 | Risk per trade (% eff. capital) |
| InpDailyLossLimitPct | 3.0 | Daily loss limit (% eff. capital) |
| InpATRSLmult | 2.0 | SL = ATR x mult (units) |
| InpRRtarget | 2.0 | Reward:Risk TP ratio (units) |
| InpATRTrailMult | 2.5 | ATR trailing multiplier (units) |
| InpMaxBarsInTrade | 240 | Max bars in trade (bars) |
| InpDryRun | true | Dry-run (no live sends) |
| InpKillSwitch | false | Emergency kill switch |
| InpMaxSpreadPoints | 50 | Max spread (points) |
| InpMaxConcurrent | 3 | Max concurrent trades (units) |
| InpTradeComment | "Psgrowth.com Expert_18033" | Order comment |
#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;الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية متابعة الاتجاه
Pipsgrowth EX16080 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16080 Trend — EURUSD triple-EMA trend follower — trades EMA20/50 cross with EMA200 filter on H4, ATR-based SL/TP, risk-percent sizing . إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX16081 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16081 Trend — Gold trend EA catching major XAUUSD trends using EMA 50/ 200 crossover on H4 with daily structure swing high/low and Fib. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX16033 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16033 Trend — Price-action scalping EA using distance-based grid entries with net-take-profit targeting and optional lot multiplier. 1. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.