Pipsgrowth EX18016 TrendFollow — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · USDJPY · M15
Pipsgrowth EX18016 TrendFollow — Hull MA + SuperTrend composite trend-follow with capped pyramid. HullFast (slope up/down) + HullSlow HTF (slope) agreeme. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
إكس 18016 يبني طبقة الإشارة من شيئين بدائيين مصنوعين يدوياً: متوسط هول المتحرك المكتوب من الصفر، و«سوبر ترند» مكتوب من الصفر أيضاً، ولا يصدر إشارة دخول إلا حين يتفق الاثنان ويؤكدهما الاتجاه في الإطار الزمني الأكبر وتسمح بيئة السوق بذلك. النتيجة روبوت تتبع اتجاه مخصص لزوج USDJPY على إطار M15، لا يطارد الارتداد ولا يلغي الاختراقات ولا يتداول على ضوضاء. صُمم للمتداولين الذين يريدون نموذج اتجاه نظيفاً مع توافق أطر زمنية متعددة، وتنظيم صريح لحالات السوق، وقاعدة توسع متحفظة يفضّلها معظم المستخدمين في وضع الصفقة الواحدة.
طبقة الإشارة مبنية داخل الكود دون الاستعانة بمؤشرات جاهزة. متوسط هول السريع يستخدم متوسطين موزونين خطياً بنصف المدة n/2 والمدة n كاملة، ثم يأخذ LWMA ثالثاً فوق سلسلة الفروقات بطول sqrt(n). دالة HullMAAt() تسحب كلا مخزني WMA الأساسيين، تبني السلسلة 2*WMA(n/2) − WMA(n)، ثم تطبّق نواة مثلثية من الأوزان على عيّنات sqrt(n). النتيجة منحنى هول بتباطؤ ضئيل مع فلترة للتموّجات السريعة. الفترة السريعة الافتراضية 20. فحص الميلان (القيمة الحالية مقارنة بالبار السابق) يحدد الاتجاه.
سوبر ترند مكتوب من الداخل أيضاً. دالة SuperTrendAt() تمشي للخلف عبر نافذة 50 بار، تحتفظ بحد أعلى وحد أدنى وعلَم اتجاه. عند كل بار تحسب الحد الأساسي من HL2 ± ATR*InpSTMultiplier، ثم تشد الحدود بقاعدة الحمل للأمام المعروفة (ترفع الحد الأدنى فقط حين إغلاق البار السابق فوق الحد الأعلى السابق، وتخفض الحد الأعلى فقط حين إغلاق البار السابق تحت الحد الأدنى السابق). ينعكس الاتجاه حين يخترق الإغلاق الحد النشط. النتيجة خط سوبر ترند نفسه الذي يعرفه معظم المتداولين، لكن معاد حسابه من بيانات ATR المكتوبة داخل الكود ليتحكم الروبوت بالرياضيات من البداية إلى النهاية. فترة ATR الافتراضية 10، المضاعف الافتراضي 3.0.
الإشارة لا تنطلق إلا حين يتفق ثلاثة شروط: هول السريع يميل للأعلى (أو للأسفل)، اتجاه سوبر ترند +1 (أو −1)، وإغلاق البار المغلق على الجانب الصحيح من هول. هذا القفل الثلاثي يلغي معظم الانفلاقات الكاذبة لمؤشر واحد. SignalComposite() يرجع +1 للشراء، −1 للبيع، و0 في الحالات الأخرى. الدالة تكتم الإشارات صراحةً في حالات Regime 2 (Range) و4 (Compress) و6 (Choppy) — الحالات الثلاث التي لا يملك فيها نموذج الاتجاه أي ميزة.
RegimeClassify() يجري تصنيفاً بسبع حالات في كل دورة. ADX (مدة 14) أعلى من 25 مع نسبة ATR المئوية (نظرة 50 بار) عند 60% أو أعلى = اتجاه قوي. ADX فوق 20 مع النسبة المئوية عند 40% أو أعلى = اتجاه ضعيف. توسع عرض بولينجر مع النسبة المئوية عند 70% أو أعلى = اختراق. توسع عرض بولينجر مع النسبة المئوية عند 50% أو أعلى = توسع. النسبة المئوية لـ ATR عند 20% أو أقل = انضغاط. ADX تحت 15 = تشنّج. كل ما عدا ذلك = نطاق. قناع 4-بت (REGIME_GATE_MASK = 0x4B) يقيّد الدخول الجديد بـ StrongTrend وWeakTrend وBreakout وExpand فقط. تُحظر Compress وRange وChoppy على طبقة النظام، ويُعاد التحقق منها في RegimeAllowed() كحزام أمان إضافي داخل NoTradeBlock().
ConfirmOK() يضيف فلتر الإطار الزمني الأعلى. هول HTF (مدة 50، افتراضياً H1) يجب أن يميل بنفس اتجاه هول السريع على M15، ويجب أن يجلس إغلاق البار المغلق على الجانب الصحيح من HTF EMA(50). كلا الشرطين إلزامي. فحص جدوى نسبة المخاطرة للعائد موجود أيضاً، ليتأكد الروبوت من أن مسافة وقف الخسارة ومسافة جني الأرباح (1.5×وقف الخسارة) كلتاهما موجبة وأن العائد/المخاطرة يتجاوز أرضية InpMinRR عند 1.5. تُفرض نافذة جلسة بتوقيت الخادم (افتراضياً 0–23، اليوم كاملاً)، مع إغلاق IsWeekendClose() لكل المراكز يوم الجمعة الساعة 22:00 بتوقيت الخادم ورفض فتح مراكز جديدة يوم السبت والأحد.
إدارة المخاطر وحساب اللوت يتبعان نموذج 0.5% من رأس المال، مع 0.01 لوت ثابت كاحتياطي حين يكون الحساب صغيراً جداً للرياضيات الصحيحة. غطاء رأس المال مدمج: EffectiveCapital() يرجع min(InpCapitalCapAmount, account_equity)، وأرضية 50 دولار توقف فتح مراكز جديدة حال نزول رأس المال الفعلي تحت هذا الحد. حد خسارة اليوم 3% من رأس المال الفعلي، محسوب من الأرباح والخسائر المحققة منذ منتصف الليل. غطاء رأس المال الافتراضي 0.0 معطّل، أي يُستخدم رصيد الحساب الخام — اضبطه فوق 0 لتقييد التعرض بمبلغ ثابت.
البيراميد هو الخيار الأكثر تميزاً. InpPyramidEnabled افتراضياً false، فخارج الصندوق الروبوت يحتفظ بمركز واحد فقط لكل جانب. عند التفعيل، PyramidAllowed() يفرض قاعدة بثلاث بوابات: الإضافة الجديدة تتطلب (1) أن يكون كل مركز من نفس الجانب رابحاً بمسافة لا تقل عن 1.0 ATR، (2) أن يكون وقف كل مركز من نفس الجانب مؤمَّناً (SL فوق الفتح للشراء، تحت الفتح للبيع)، (3) عدم تجاوز غطاء InpPyramidMaxLevels (افتراضياً 3) لكل جانب. الغطاء يُقصّ بعد ذلك إلى MAX_POSITIONS (5). هذه إضافة متحفظة، ليست مارتينغال ولا توسعة في مراكز خاسرة.
إدارة الصفقات تعمل في كل تيكة من ManageInTrade(). أغلفة TryClose_EX18016 وTryClosePartial_EX18016 وTryModify_EX18016 تعيد المحاولة حتى ثلاث مرات عند أخطاء requote وtimeout وprice-off وprice-changed، مع فترات انتظار 200 مللي ثانية و100 مللي ثانية بين المحاولات. إغلاق قائم على الوقت يُنهي المراكز المفتوحة أكثر من MAX_BARS_IN_TRADE (96 بار، أي نحو 24 ساعة على M15). إغلاق الإشارة المعاكسة يُنهي مراكز الشراء حين تنقلب الإشارة الحية إلى سلبية (والعكس)، محافظاً على سلوك قلب الاتجاه الأصلي. إغلاق جزئي 50% يُفعَّل مرة واحدة حين يصبح المركز رابحاً بمخاطرة أولية 1R على الأقل، شرط أن يكون الحجم المتبقي 1.5× الحد الأدنى للوت على الرمز. بعد أن يصبح المركز رابحاً بمخاطفة 1R، يُنقل الوقف إلى نقطة التعادل زائد عازلة نقطتين. من تلك النقطة، وقف متحرك بـ 2.5×ATR يرفع الوقف للأمام بخطوات 0.5×ATR. حين يكون النظام في حالة WeakTrend، تُنصَّف مسافة الوقف المتحرك (1.25×ATR) ليُحْبَس الربح في حالات الاتجاه الضعيف بشكل أسرع.
معيار OnTester() هو (net * profit_factor) / (1 + balance_drawdown) مع حد أدنى 30 صفقة. يكافئ هذا الاستراتيجيات التي تجمع بين الربحية وانخفاض السحب بالنسبة للربح المطلق — اختيار أشد صرامة من صافي الربح الخام، يُفضّل منحنى حقوق ملكية سلساً على منحنى بسعة عالية.
في اختبار خلفي على USDJPY M15 بنطاق سنوات متعددة بالإعدادات الافتراضية، توقّع ملفاً قليل التكرار وقليل عدد الصفقات، معظمها في ساعات تداخل لندن ونيويورك، مع تصفية نسبة كبيرة من الإشارات المحتملة عبر بوابات Choppy وCompress. InpDryRun الافتراضي true، فيسجّل الروبوت كل صفقة معتزمة في السجل دون إرسال أوامر — اضبطه على false قبل التشغيل الفعلي.
تفاصيل الاستراتيجية
في كل تيكة، تتولى OnTick() أولاً حماية نهاية الأسبوع (الجمعة 22:00 توقيت الخادم تُغلق كل شيء) وعدّادات تدحرج اليوم، ثم تُشغّل ManageInTrade() للمراكز القائمة. بوابة «مرة لكل بار» تحدّ تقييمات الدخول إلى تقييم واحد لكل بار مغلق. فحص غطاء رأس المال يرفض الصفقات حين ينخفض رأس المال الفعلي تحت أرضية 50 دولار، وفحص خسارة اليوم يرفض الصفقات حين تبلغ الخسائر المحققة 3% من رأس المال الفعلي. بعدها يُشغَّل خط الإنتاج: RegimeClassify() (ADX + نسبة ATR المئوية + عرض بولينجر → 7 حالات) وSignalComposite() (ميل هول المكتوب + اتجاه سوبر ترند المكتوب + الإغلاق مقابل هول) — ولا يُسمح بمرور الحالات StrongTrend وWeakTrend وBreakout وExpand فقط عبر قناع البوابة 0x4B. يطلب ConfirmOK() بعد ذلك أن يتفق ميل H1 هول، وأن يجلس الإغلاق على الجانب الصحيح من H1 EMA(50)، وأن تتجاوز نسبة R/R 1.5، وأن تكون ساعة الخادم داخل نافذة الجلسة. يضيف NoTradeBlock() رفض فارق السعر المتحرّك، وجدوى مستوى الوقف، وصلاحية تداول المنصة، ووضع التعبئة، وحد المراكز القصوى (5)، وحد الجانب للبيراميد. تحسب TryEntry() حجم اللوت من مخاطرة 0.5%، تقرّب SL/TP، تشغّل OrderCalcMargin، ولإضافة البيراميد فقط تستدعي PyramidAllowed() لتطبيق البوابة الثلاثية (كل نفس الجانب رابح، كل الوقوف مؤمّنة، حد المستويات). البيراميد مقيّد بـ 3 مستويات لكل جانب، معطّل افتراضياً، بمسافة 1.0×ATR.
تنطلق إشارة شراء أو بيع على بار M15 مغلق حين يتفق ثلاثة شروط: متوسط هول المكتوب (مدة 20) يميل في اتجاه الإشارة، سوبر ترند المكتوب (ATR مدة 10، مضاعف 3.0) على الجانب المقابل (+1 أو −1)، وإغلاق البار المغلق على الجانب الصحيح من هول السريع. تُقيَّد الإشارة كذلك بمصنّف حالات السوق بسبع حالات يسمح فقط بـ StrongTrend وWeakTrend وBreakout وExpand، وتحظر Choppy وCompress وRange. يتطلب التأكيد من الإطار الزمني الأعلى أن يميل هول H1 (مدة 50) في الاتجاه نفسه وأن يجلس إغلاق البار المغلق على الجانب الصحيح من EMA(50) على H1.
تُغلق المراكز عند أول بار جديد تنقلب فيه الإشارة الحية إلى الجانب المعاكس، لينتهي تتبع الاتجاه بسرعة حين يتغير لون التركيبة. إغلاق قائم على الوقت عند 96 بار (نحو 24 ساعة) يُنهي أي مركز لم يبلغ وقف الخسارة أو الهدف، مانعا إياه من النوم عبر عدة جلسات. إغلاق جزئي 50% يُفعَّل مرة واحدة عند علامة ربح 1R، شرط أن يتجاوز الحجم المتبقي 1.5× الحد الأدنى للوت، ليؤمَّن نصف المركز قبل أن يتسلم الوقف المتحرك المهمة.
يفتح كل مركز بوقف 3.0×ATR، مقرباً إلى دقات الرمز ومرفوعاً فوق مستوى الوقف الأدنى للوسيط. بعد أن يتحرك السعر ربحاً بمقدار 1R، يُرفع الوقف إلى نقطة التعادل زائد عازلة نقطتين، ومن هناك يتسلم وقف متحرك 2.5×ATR (بخطوات 0.5×ATR) المهمة ويضيق إلى 1.25×ATR حين يكون النظام في WeakTrend. وقف الخسارة الابتدائي قيمة واحدة 3×ATR عند الدخول؛ ثم يستبدله منطق جني الأرباح والوقف المتحرك تدريجياً.
يُشتق جني الأرباح من وقف الخسارة بنسبة مخاطرة/عائد 1:1.5. مع InpATRSLmult = 3.0 وInpMinRR = 1.5، يقترن وقف 3×ATR بهدف 4.5×ATR. يُقرَّب الهدف ويُرفع فوق مستوى الوقف الأدنى للوسيط عند الدخول. يؤدي الوقف المتحرك والإغلاق الجزئي معظم عمل الخروج الفعلي — أما الهدف فيعمل كسقف، لا كإغلاق قسري على كل صفقة رابحة.
صُمم هذا الروبوت لحساب بحد أدنى 100 دولار يعمل على USDJPY بإطار M15، بمستوى مخاطرة متوسط وإعدادات غطاء رأس مال متحفظة افتراضية. يناسب المتداول الذي يريد تتبع الاتجاه على زوج عملات واحد، مع تأكيد الإطار الزمني الأعلى H1 مدمج ومصنّف حالات سوق يصفّي ساعات التشنّج تلقائياً. شغّله على وسيط ECN أو ذي فروق سعرية منخفضة، واترك غطاء رأس المال عند 0.0 لاستخدام رصيد الحساب الخام، ولا تُفعّل البيراميد إلا بعد مراقبة الاستراتيجية مباشرة في وضع المحاكاة. إعداد Dry-run الافتراضي true يعني أنه لن تُرسَل أوامر حية حتى تُغيّر InpDryRun صراحةً إلى false في المدخلات.
منطق الاستراتيجية
Pipsgrowth EX18016 TrendFollow — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: TrendFollow
الماجيك: 22218016
الإصدار: 2.00
الوصف:
Hull MA + SuperTrend composite trend-follow with capped pyramid. HullFast (slope up/down) + HullSlow HTF (slope) agreement + SuperTrend direction + close-vs-HullFast trigger. Hull = LWMA(2*WMA(n/2) - WMA(n), sqrt(n)) [inlined from iMA]. Super = HL2 +/- ATR*mult, flip on close vs band [inlined iATR]. Pyramid hard-capped, ATR-spaced, profit-gated, side-capped, auto-disabled in choppy/news/high-spread. Default OFF. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
DayStamp()EffectiveCapital()TodayRealizedPnL()NormalizePrice()StopsLevelPrice()ClampVolume()CountOurs()CountOursByType()CloseAllOurs()IsWeekendClose()
// Pipsgrowth EX18016 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// Hull MA + SuperTrend composite trend-follow with capped pyramid. HullFast (slope up/down) + HullSlow HTF (slope) agreement + SuperTrend direction + close-vs-HullFast trigger. Hull = LWMA(2*WMA(n/2) - WMA(n), sqrt(n)) [inlined from iMA]. Super = HL2 +/- ATR*mult, flip on close vs band [inlined iATR]. Pyramid hard-capped, ATR-spaced, profit-gated, side-capped, auto-disabled in choppy/news/high-spread. Default OFF. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpMagicNumber | 22218016 | Magic Number (222xxx) |
| InpTradeComment | "Psgrowth.com Expert_18016" | Trade comment |
| InpDryRun | true | Dry-run (no live sends) |
| InpKillSwitch | false | Kill switch (block everything) |
| InpRiskPercent | 0.5 | Risk % per trade (of effective_capital) |
| InpFixedLot | 0.01 | Fixed lot fallback (risk=0) |
| InpDailyLossLimitPct | 3.0 | Daily loss limit % (of effective_capital) |
| InpCapitalCapAmount | 0.0 | Capital cap amount ($ REAL MONEY equity) |
| InpCapitalCapFloor | 50.0 | Capital floor ($ — block new entries below) |
| InpHullPeriod | 20 | Hull MA fast period (n) |
| InpSTPeriod | 10 | SuperTrend ATR period |
| InpSTMultiplier | 3.0 | SuperTrend ATR multiplier |
| InpADXMin | 20.0 | Min ADX for StrongTrend gating |
| InpHTFTimeframe | 8 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // HTF trend agreement TF |
| InpMinRR | 1.5 | Minimum reward:risk ratio |
| InpPyramidEnabled | false | Pyramid scaling (default OFF; capped) |
| InpPyramidMaxLevels | 3 | Max pyramid levels per side (cap) |
| InpATRSLmult | 3.0 | Initial SL = mult * ATR |
| InpBETriggerR | 1.0 | Break-even trigger (R multiples) |
| InpTrailATRmult | 2.5 | ATR trailing distance (mult) |
| InpPartialPct | 50.0 | Partial close % at TP1 (1R) |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX18016 USDJPY_Hull_Supertrend_Pyramid — Hull MA + SuperTrend composite + capped pyramid, 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 trade;
CPositionInfo position;
CSymbolInfo sym;
CAccountInfo acc;
//============================== 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_InpHTFTimeframe = PERIOD_H1;
input group "=== Identity ==="
input long InpMagicNumber = 22218016; // Magic Number (222xxx)
input string InpTradeComment = "Psgrowth.com Expert_18016";// Trade comment
input bool InpDryRun = true; // Dry-run (no live sends)
input bool InpKillSwitch = false; // Kill switch (block everything)
ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
switch(tf)
{
case 1: return PERIOD_M1;الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.