Pipsgrowth EX18039 TrendFollow — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5
Pipsgrowth EX18039 TrendFollow — HMA slope reversal on last closed bar confirmed by HTF EMA trend + ADX regime + ATR-based SL/TP/trail. Full spec. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX18039 TrendFollow هو مستشار خبير لعكس ميل المتوسط المتحرك Hull مصمم لشراء أول شمعة من انعطافة HMA صاعدة وبيع أول شمعة من انعطافة HMA هابطة على XAUUSD M5. يُحسب HMA داخل دالة CalcHMA() من بدائيات WMA (بدون iCustom، بدون .mqh، بدون مؤشر خارجي): يبني raw[i] = 2*WMA(period/2) - WMA(period) لـ sqrt(period)+1 شمعة، ثم يوزِّع أوزان WMA على المتسلسلة الخام بحيث تحمل الشمعة الأحدث الوزن الأعلى. مع InpHMAPeriod = 21 يكون نصف النافذة 10 والنافذة الكاملة 21 ونافذة التنعيم 4 — وهي وصفة Hull القياسية. تُقيِّم دالة الإشارة HmaSignal() الميل_now = h1 - h2 والميل_prev = h2 - h3 على آخر شمعة مغلقة (الإزاحة 1) وتُصدر إشارة شراء فقط عندما يكون الميل_prev <= 0 والميل_now > 0، أو بيعًا في الحالة المعكوسة. هذا تقاطع صفري صارم لميل HMA، وليس نمط ارتداد سعري. يُشتق مستوى الثقة من |الميل| / h1 * 1000 * 50 + 25، يُقَص عند 100، وترفض TryEntry() أي إشارة بثقة أقل من 30.
تُحكَم الدخولات عبر فحص توافق الاتجاه مع الإطار الزمني الأعلى. تسحب HTFTrendDir() متوسط EMA(50) على الإطار المختار (InpHTFTrendTF = 8 يمر عبر MapTimeframeInt() التي تسقط على PERIOD_H1 لأي قيمة خارج النطاق 1..7، وبالتالي الإطار الفعلي H1) وتُرجع +1 فقط إذا كان إغلاق H1 فوق EMA وEMA يرتفع، أو -1 فقط إذا كان الإغلاق تحت وEMA ينخفض. تُرفض انعطافة HMA الصاعدة مع اتجاه H1 هابط، ويُسجل سبب الرفض بوصف "HTF trend disagrees". يُفرض أيضًا حد أدنى لنسبة المخاطرة/العائد 1.0 — إذا انخفض InpATRSLmult / InpATRTPmult تحت 1 يرفض المستشار الإرسال.
يعمل مصنِّف النظام ClassifyRegime() في كل تيك ويقرأ 50 شمعة من ATR(14)، و3 شموع من ADX(14) الرئيسي، و30 شمعة من عرض Bollinger Bands(20, 2.0). يُرجع واحدة من ست حالات: REG_STRONG_TREND (ADX >= 22 وATR-percentile > 0.6)، وREG_WEAK_TREND (ADX >= 18 وATR-percentile > 0.4)، وREG_COMPRESS (عرض BB الحالي < عرض آخر 30 شمعة * 0.75 وATR-percentile < 0.35)، وREG_EXPAND (عرض BB الحالي > العرض السابق * 1.35 وATR-percentile > 0.55)، وREG_CHOPPY (ADX < 15 أو ATR-percentile < 0.20)، وREG_RANGE كحالة متبقية. حالة CHOPPY هي الوحيدة التي تحظر الدخولات بشكل صارم في CanTradeNew(). كل الأنظمة الأخرى سياقات تداول صالحة؛ تسمح حالاتا COMPRESS وEXPAND للمستشار بالتصرف على تقلصات وتوسعات التذبذب دون إجبار دفتر مسطح.
يُحسَب حجم المخاطرة من مجمع رأس المال الفعال. تقرأ UpdateEffectiveCapital() حقوق حساب الملكية، وإذا كان InpCapitalCapAmount > 0 تقيده عند ذلك الإدخال، وإلا تستخدم كامل الحقوق. تحوِّل CalcLot() مسافة SL المعتمدة على ATR إلى لوتات عبر tick_value / tick_size، مع تطبيق ClampVolume() على خطوة اللوت وحدود min/max لدى الوسيط. مع InpRiskPercent = 0.5 يستهدف المستشار 0.5% من رأس المال الفعال في المخاطرة لكل صفقة، ويفرض InpDailyLossLimitPercent = 3.0 قاطع دائرة خسارة يومية محققة بنسبة 3% (يُمسح من سجل الصفقات المُصفَّى بـ DEAL_MAGIC)، وInpCapitalCapFloor = 50 يحظر أي دخول تحت عتبة حقوق الملكية تلك. تراقب منطق التهدئة في OnTradeTransaction() ثلاث خسائر متتالية في أحداث DEAL_ENTRY_OUT وتُفعِّل إغلاقًا لمدة 4 ساعات (g_cooldown_until = TimeCurrent() + 4*3600) قبل إعادة العداد إلى الصفر. مع InpMaxConcurrent = 3 يقيِّد المستشار عدد المراكز المفتوحة عند 3.
إدارة المراكز مُطبَّقة على طبقات. تعمل ManagePositions() مرة في كل تيك قبل أي محاولة دخول جديدة. عند InpBreakEvenR = 1.0 يُرفَع وقف الخسارة إلى سعر الفتح بمجرد أن يتحرك السعر 1R في الربح، ويُفرض ذلك عبر EnforceStopsDistance() التي تحترم SYMBOL_TRADE_STOPS_LEVEL لدى الوسيط. عند نفس عتبة 1R، يُغلَق 50% من المركز عبر TryClosePartial_EX18039()، مع بوابة تضمن أن الحجم المتبقي يتجاوز 1.5 * LotsMin. يقدِّم وقف الخسارة المتحرك 2.5*ATR (بأسلوب Chandelier) الوقف إلى الأمام فقط — لا يتراجع أبدًا — ويعيد استخدام EnforceStopsDistance لإرضاء الوسيط. تُربط المخارج بثلاثة أحداث: انعطافة HMA معاكسة تستدعي TryClose_EX18039()، وتحول النظام إلى CHOPPY مع r_dist <= 0 يستدعي نفس دالة الإغلاق (بحيث تنهار المراكز تحت الماء في التذبذب)، ومخرج زمني عند 200 شمعة يعمل إذا ظل الصفقة مفتوحة أطول من InpMaxBarsInTrade. تحصل كل محاولة إغلاق/تعديل على ثلاث محاولات إعادة مع فاصل 200ms (إغلاق) أو 100ms (تعديل) عند رموز REQUOTE أو TIMEOUT أو PRICE_OFF أو PRICE_CHANGED.
سلامة التنفيذ ليست تافهة. تستدعي SendMarket() دالة OrderCalcMargin() قبل أي إرسال صفقة، وترفض إذا كان margin_req > free_margin، وتشغل حلقة إعادة من محاولتين عند رموز requote/timeout/price-off/price-changed. مع InpDryRun = true الافتراضي، تُسجَّل كل طلبات عبر PrintFormat ببادئة [DRYRUN] بدلًا من إرسالها للوسيط، مما يتيح تداول المستشار افتراضيًا من النهاية إلى النهاية على حساب حقيقي. يكشف SetTypeFillingBySymbol() تلقائيًا عن FOK / IOC / Return لكل رمز. ترفض بوابة الانتشار في SpreadOK() الدخول عندما يتجاوز الانتشار الحي SYMBOL_SPREAD * 3 + 10 نقاط، وتحظر SessionOK() عطلات نهاية الأسبوع إضافة إلى النطاق الزمني 21:00–07:00 بتوقيت الخادم. لا يوجد تغذية أخبار متصلة — المستشار محكوم بالجلسة والانتشار والنظام، لا بالأحداث.
على جانب الاختبار، تُرجع OnTester() القيمة (STAT_PROFIT * STAT_PROFIT_FACTOR) / (1 + STAT_EQUITY_DD)، مع حد أدنى 30 صفقة وأدنى equity-DD عند 1.0 لتجنب القسمة على صفر. الدالة مسماة صراحةً بحيث يمكن فرز جولات المُحسِّن بهذا الناتج المركب بدلًا من صافي الربح الخام. في الاستخدام الحي، يتداول المستشار انعكاسات ميل HMA المُصفَّاة باتفاق اتجاه H1، مع مصنِّف نظام من ست حالات، ونسبة مخاطرة/عائد 1:1.5، وأثر Chandelier قائم على ATR، وجني ربح جزئي عند 1R، وحد زمني 200 شمعة. المستخدم الذي يريد صفقات بأعلى اقتناع يمكنه رفع InpHMAPeriod إلى 28 أو 34 (انعكاسات أبطأ) ورفع عتبة الثقة في المصدر من 30 إلى 45، مما سيقلل آليًا من عدد الصفقات ويركِّز الدخولات على انعكاسات HMA الأقوى.
تفاصيل الاستراتيجية
في كل تيك، تقرأ ClassifyRegime() 50 شمعة من ATR(14)، و3 شموع من ADX(14)، و30 شمعة من عرض Bollinger Bands(20, 2.0) لتُرجع واحدة من ست حالات (StrongTrend, WeakTrend, Compress, Expand, Range, Choppy)؛ وChoppy هي الحالة الوحيدة التي تحظر الدخولات بشكل صارم في CanTradeNew(). تأتي الإشارة بعدها من HmaSignal() التي تقيِّم الميل_now = h1 - h2 مقابل الميل_prev = h2 - h3 على آخر شمعة مغلقة لـ HMA(21) محسوب داخليًا، متطلبة الميل_prev <= 0 < الميل_now للشراء (معكوس للبيع)، مع درجة ثقة |الميل|/السعر * 1000 * 50 + 25 وحد أدنى 30. يُقرأ التأكيد على الإطار الأعلى من HTFTrendDir() من EMA(50) على H1 (إدخال InpHTFTrendTF = 8 يسقط افتراضيًا عبر MapTimeframeInt إلى PERIOD_H1)، وتُرفض انعطافة HMA الصاعدة مع اتجاه H1 هابط. يُحسب حجم اللوت في CalcLot() مقابل رأس المال الفعال (كامل الحقوق أو مقيَّد عند InpCapitalCapAmount)، مستهدفًا InpRiskPercent = 0.5% لكل صفقة. تعمل إدارة المراكز في ManagePositions() على كل تيك: نقطة التعادل عند 1R عبر EnforceStopsDistance، وإغلاق 50% جزئي عند 1R، ووقف Chandelier متحرك عند 2.5*ATR يرفع الوقف إلى الأمام فقط، إضافة إلى مخارج الإشارة المعاكسة والنظام المتذبذب وحد 200 شمعة الزمني. تعمل بوابتا الانتشار والجلسة في SpreadOK() (متوسط * 3 + 10 نقاط) وSessionOK() (الإثنين-الجمعة 07:00–21:00 بتوقيت الخادم)، وتُفعِّل OnTradeTransaction() تهدئة 4 ساعات بعد 3 خسائر متتالية في DEAL_ENTRY_OUT.
دخول شراء عند انعكاس صارم لميل HMA(21) على آخر شمعة مغلقة: الميل_prev = h2 - h3 يجب أن يكون <= 0 والميل_now = h1 - h2 يجب أن يكون > 0 (معكوس للبيع). يجب أن يتفق اتجاه H1 EMA(50)، والثقة المحسوبة من |الميل|/السعر >= 30، والانتشار الحي ضمن SYMBOL_SPREAD * 3 + 10 نقاط داخل نافذة 07:00–21:00 بتوقيت الخادم في يوم عمل.
تتراكم أربعة أحداث للمخارج: انعطافة HMA معاكسة تستدعي دالة الإغلاق، وتحول النظام إلى CHOPPY مع r_dist <= 0 يفرض إغلاقًا، وحد 200 شمعة زمني يستدعي TryClose_EX18039، و50% من المركز تُؤخذ عند 1R عبر TryClosePartial_EX18039 مع رفع وقف الخسارة المتحرك إلى الأمام عند 2.5*ATR(14) بمجرد أن يكون السعر في الربح.
وقف الخسارة الابتدائي يبعد 2.0 * ATR(14) عن الدخول، مع توسيع EnforceStopsDistance() للـ SL كلما كان SYMBOL_TRADE_STOPS_LEVEL لدى الوسيط سيُنتهك خلاف ذلك. ترفع دالة نقطة التعادل SL إلى سعر الفتح بمجرد أن يتحرك السعر 1R، ثم يقدِّم وقف Chandelier المتحرك عند 2.5*ATR الوقف إلى الأمام فقط.
جني الأرباح الابتدائي يبعد 3.0 * ATR(14) عن الدخول، مما يعطي نسبة مخاطرة/عائد 1:1.5 مقابل وقف 2.0*ATR. يُغلَق نصف المركز أيضًا عند 1R عبر TryClosePartial_EX18039، ليحقق المستشار ربحًا جزئيًا قبل أن يتسلم وقف الخسارة المتحرك بقية الصفقة.
مناسب بشكل أفضل لـ XAUUSD على الإطار الزمني M5 برصيد أدنى موصى به 100$ (InpCapitalCapFloor = 50 يحظر فعليًا حقوق ملكية دون 50$، ومخاطرة 0.5% لكل صفقة تتدرج بسلاسة فوق هذا الحد). استخدم وسيط ECN منخفض الانتشار مع تسامح انزلاق 20 نقطة، وشغِّله خلال نافذة 07:00–21:00 بتوقيت الخادم كي يقرأ اتفاق اتجاه H1 EMA(50) شموعًا مستقرة، واقرنه بملف المخاطر MEDIUM الافتراضي — نسبة 1:1.5 R:R إضافة إلى أثر 2.5*ATR تتوقع أن يميل الأصل لا أن يتذبذب، لذا سيُقصِّر خطاف HMA على أزواج XAUUSD المثبَّتة في نطاقات ضيقة.
منطق الاستراتيجية
Pipsgrowth EX18039 TrendFollow — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: TrendFollow
الماجيك: 22218039
الإصدار: 2.00
الوصف:
HMA slope reversal on last closed bar confirmed by HTF EMA trend + ADX regime + ATR-based SL/TP/trail. Full spec
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
HMA_WMA()CalcHMA()NormPrice()ClampVolume()StopsLevelPoints()EnforceStopsDistance()DailyRealizedPnL()UpdateEffectiveCapital()RegimeName()HmaSignal()
// Pipsgrowth EX18039 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// HMA slope reversal on last closed bar confirmed by HTF EMA trend + ADX regime + ATR-based SL/TP/trail. Full spec
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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpMagic | 22218039 | Magic number (id) |
| InpDeviation | 20 | Slippage allowed (points) |
| InpDryRun | true | Dry-run: log only, no sends (bool) |
| InpKillSwitch | false | Kill switch: blocks new entries (bool) |
| InpTradeComment | "Psgrowth.com Expert_18039" | Order comment |
| InpCapitalCapAmount | 0.0 | Cap on real-money equity ($) |
| InpCapitalCapFloor | 50.0 | Floor: block entries if effective<$ (money) |
| InpRiskPercent | 0.5 | Risk per trade (% of effective) |
| InpDailyLossLimitPercent | 3.0 | Daily loss limit (% of effective) |
| InpMaxConcurrent | 3 | Max concurrent positions (count) |
| InpHMAPeriod | 21 | Hull MA period (bars) |
| InpHTFTrendTF | 8 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // HTF trend timeframe (TF) |
| InpADXMinTrend | 22.0 | Min ADX main for trend regime (adx) |
| InpATRPeriod | 14 | ATR period (bars) |
| InpATRSLmult | 2.0 | SL = mult * ATR (mult) |
| InpATRTPmult | 3.0 | TP = mult * ATR (mult) |
| InpBreakEvenR | 1.0 | Break-even trigger at R multiple (R) |
| InpTrailATRmult | 2.5 | ATR trailing multiplier (mult) |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX18039 GB10 5.2 — self-contained Hull MA Trend-Follow EA, full spec stack."
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>
//================== INPUTS ==========================================
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_InpHTFTrendTF = PERIOD_H1;
input group "=== Identity & Exec ==="
input int InpMagic = 22218039; // Magic number (id)
input int InpDeviation = 20; // Slippage allowed (points)
input bool InpDryRun = true; // Dry-run: log only, no sends (bool)
input bool InpKillSwitch = false; // Kill switch: blocks new entries (bool)
input string InpTradeComment = "Psgrowth.com Expert_18039"; // Order 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;الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.