Pipsgrowth EX18034 TrendFollow — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5
Pipsgrowth EX18034 TrendFollow — Multi-filter trend consensus (Trend EMA + inlined Hull-MA slope + SuperTrend side + Heikin-Ashi color) gated by ADX + AT. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
إكس 18034 هو محرك توافق اتجاهي بأربعة مرشحات مستقلة. بدلا من المراهنة على تقاطع متوسط متحرك واحد، يطرح على الشمعة المغلقة الأخيرة من إطار M5 أربعة أسئلة منفصلة ولا يتصرف إلا حين تتفق الإجابات. المرشحات الأربعة هي: موقع الإغلاق نسبة إلى المتوسط الأسي EMA(50) على الإطار الحالي، وإشارة منحدر هال MA(20) المُعاد بناؤه داخل الكود، وجانب السوبرترند (22، 3.0×ATR) المُضمَّن بحالة، ولون شمعة هايكين آشي الأخيرة. كل مرشح يحصل على صوت واحد، ودالة TrendSignal() لا تُرجع توجها إلا إذا اتفق ثلاثة من الأربعة وكان الرابع صامتا. ثم تُبلَّغ الثقة بعد الأصوات مضروبة في خمسة وعشرين؛ التصويت الثلاثي يُسجّل 75 والإجماع الرباعي يُسجّل 100. هذه القيمة معلوماتية لأن البوابة هي قاعدة الثلاثة من أربعة وليس الرقم.
تم إعادة بناء هال MA(20) في الكود من مقبضَي LWMA بدلا من استدعاء مؤشر هال جاهز. دالة HullValue() تسحب LWMA بالطول الكامل وLWMA بنصف الطول، وتحسب اثنين مضروبة في نصف ناقص الكامل، ثم تشغّل LWMA نهائية بطول sqrt(20)≈4 على هذا الفرق — وهي إعادة بناء هال الكلاسيكية. أما HullSlope() فتقارن القيمة عند shift=1 مع shift=2 وتُرجع +1 أو -1 أو 0. السوبرترند كذلك مُضمَّن في الكود. دالة SuperTrendSide() تحتفظ بالحالة السابقة للنطاق والاتجاه في متغيرات على مستوى الوحدة (st_prev_dir وst_prev_upper وst_prev_lower) كي يتحرّك النطاق بالطريقة المعيارية للسوبرترند: إغلاق فوق الحد العلوي السابق يقلب الجانب إلى +1، وإغلاق تحت الحد السفلي السابق يقلبه إلى -1، والنطاق الحالي هو أضيق قيمة بين الحدّين المحلّيّين أو القيمة المحمّلة بالنظر إلى إغلاق الشمعة السابقة. أما لون هايكين آشي فيُحسب بالمشي العكسي عبر شمعتين — الهايكين-أوبن للشمعة المغلقة الأخيرة هو متوسط الهايكين-أوبن والهايكين-كلوز السابقين، والهايكين-كلوز هو متوسط OHLC الأساسية. لا حاجة لأي مؤشر خارجي في حزمة الإشارة.
بوابة النظام التي تعلو التوافق هي مصنّف بخمسة حالات بدلا من سبعة كما في بعض الإصدارات الشقيقة. دالة RegimeGet() تقرأ ATR(14) وADX(14) وBollinger Bands(20, 2.0) وتحسب نسبة ATR المئويّة على نافذة 100 شمعة (InpAtrLookback=100) ونسبة عرض BB المئويّة على نفس النافذة. الحالات الخمس هي: REG_BREAKOUT حين يكون ADX عند أو فوق InpAdxTrendMin (20) ويكون كل من ATR وBB-width عند أو فوق المئين السبعين، وREG_STRONG_TREND لـ ADX فوق 20 دون تأكيد تذبذب السعر، وREG_WEAK_TREND لـ ADX بين 18 و20، وREG_RANGE لضغط التذبذب المنخفض عند المئين الثلاثين أو دونه في كل من ATR وBB-width، وREG_CHOPPY كحالة متبقية. النافذة 100 شمعة ذاكرة أطول من نافذة 50 شمعة المستخدمة في الإصدارات الأخرى من العائلة، مما يجعل تصنيف النظام أبطأ في التحوّل وأقل ميلا للاهتزاز حول أحداث الأخبار.
تطبَّق خطوة التأكيد بعد صدور الإشارة. دالة Confirm() تقرأ EMA(50) على H1 وتطالب بأن يكون إغلاق H1 على الجانب الصحيح منها، وترفض التصرف حين يكون ADX دون 18 حتى لو نجح توافق الأربعة، وترفض الصفقات حين تكون المكافأة إلى المخاطرة المكوّنة دون 1.0. لا يوجد مُدخل لاختيار الإطار الزمني الأعلى — الإطار H1 مُبرمج ثابتا. نسبة المخاطرة الافتراضية 1.5R تغذّي مباشرةً مُنشئ الصفقة، فيكون بُعد جني الأرباح 1.5× بُعد وقف الخسارة.
يستخدم تحديد وقف الخسارة ATR(14) بمضاعف 2.0 ثابت. كما تُجبر دالة SendOrder() على احترام مستويات stops-level وfreeze-level لدى الوسيط عبر AdjustForStops()، فتدفع الوقف والجني نقطتين أو ثلاثا أبعد إذا كانت الحدود الدنيا للوسيك ستُخالف. يُضبط جني الأرباح على بُعد 3.0×ATR من الدخول (2.0×ATR للوقف × نسبة 1.5R). يُحسَب حجم اللوت من رأس المال الفعّال، الذي في التشغيل الأول يساوي إجمالي حقوق الحساب ولكن يمكن كبحه عبر InpCapAmount عند إعطاء قيمة غير صفر. الافتراضي 0 يعني أن السقف مُعطّل عمليا ويُستخدم كامل الحقوق. دالة CalcLots() تضرب رأس المال الفعّال في 0.5٪ نسبة المخاطرة، وتقسم على خسارة اللوت الواحدة المستنبطة من بُعد وقف ATR وقيمة التك للرمز، ثم تطبّع على درجة اللوت لدى الوسيط. تُرجع CalcLots() صفرا إذا هبط رأس المال الفعّال تحت InpCapFloor (50 افتراضيا)، وهذا ما يحجب الدخول على حساب منهار.
إدارة الصفقة المفتوحة لها ثلاث أرجل وتعمل على كل تيك بصرف النظر عن النظر في دخول جديد. ما إن يتحرك السعر R واحدا في الاتجاه المواتي، يُرفع وقف الخسارة إلى سعر الدخول زائدا نقطتين ناقص حد الوقف لدى الوسيط، فيُحقَّق كسر-حتى بدون ربح. الإغلاق الجزئي 50٪ يطلق لحظة وصول bid/ask إلى سعر الدخول زائدا 1.5×R، فيُنصَف المركز ويترك النصف للجري. وقف الخسارة المتابع هو 2.5×ATR يتحرّك للأمام فقط ويُحدَّث على كل تيك ولا يتقهقر أبدا. إذا انقلب توافق الأربعة ضد المركز المفتوح، يُغلق كامل المركز بسعر السوق عبر TryClose_EX18034() التي تدور ثلاث محاولات مع نوم 200 مللي ثانية على requote وtimeout وprice-off وprice-changed. لا يوجد خروج زمني، ولا سقف يومي للصفقات، ولا حد خسارة أسبوعي في هذا الإصدار — القتل الوحيد على مستوى الحساب هو سقف 3٪ PnL يومي محقق لكل سحر، ومدخل InpKillSwitch العام.
الإضافات الهرمية (Pyramid) مُجمَّعة في البرنامج لكن المُدخل الافتراضي false، فخارج الصندوق لن يُكدّس إكس 18034 مراكز. إذا قلبت InpPyramidEnabled إلى true، ستبوِّب PyramidAllowed() دخول الإضافات خلف شرط أن لا يكون النظام CHOPPY أو RANGE، وأن تكون شمعة جديدة قد تشكّلت منذ آخر دخول، وأن يكون العدد الإجمالي للمراكز تحت أصغر قيمتَي خمس وInpMaxOpen، وأن يكون المركز القائم في نفس الاتجاه في ربح فعلا. معيار OnTester القياسي هو (net × profit-factor) / (1 + relative drawdown) مع عتبة 30 صفقة، فيُفضِّل المُحسِّن التشغيلات التي تجمع بين الربحية وانسيابية منحنى الأسهم بدلا من سلسلة حظ منفردة.
في وضع dry-run (الافتراضي)، يطبع المستكشف ما كان سيفعله دون إرسال أوامر. اقلب InpDryRun إلى false للانتقال إلى الإنتاج. وسوم الأوامر تحمل السحر 22218034 والنص Psgrowth.com Expert_18034 ليُصفّى في الباك تيست واليوميات الحية. يذكر الترويسة XAUUSD M5 كنشر مقترح لكن كل المُعاملات مستقلة عن الرمز — وجّه المستكشف لأي XAU/USD أو XAG/USD أو زوج رئيسي يقدّمه وسيطك، وعلى أي إطار زمني، وستعمل المنطق نفسه.
تفاصيل الاستراتيجية
على كل تيك يُحدِّث المستكشف الرمز ويسحب المقابض الأربعة الأساسية (ATR(14) وADX(14) وBB(20,2) وEMA(50)) إضافة إلى H1 ATR وH1 EMA لخطوة التأكيد. تُصنِّف RegimeGet() السوق إلى واحدة من خمس حالات باستخدام نسبة ATR المئوية على 100 شمعة ونسبة عرض BB المئوية على 100 شمعة، وCHOPPY هي الحالة الوحيدة التي تحجب مباشرة. ثم تسأل TrendSignal() المرشحات الأربعة عن صوت كل منها — منحدر هال، وجانب السوبرترند المُضمَّن، ولون هايكين آشي المُضمَّن، وجانب EMA — ولا تُصدر توجها إلا حين يتفق ثلاثة على الأقل والرابع صامت. ثم تضع Confirm() فحص تقاطع H1 EMA وأرضية ADX≥18 وفحص سلامة R/R في الأعلى. تُحجَّم SendOrder() اللوتات من رأس المال الفعّال، وتبني وقف 2.0×ATR وجني 1.5R، وتستدعي الوسيط بانزلاق 20 نقطة وإعادة محاولة واحدة على requote/timeout. تعمل ManagePositions() على كل تيك لتطبيق أرجل الكسر-حتى والجزئي والمتابع، ولقلب المركز حين ينعكس التوافق.
الدخول هو توافق 3 من 4 بأوزان متساوية: الإغلاق مقابل EMA(50)، ومنحدر هال MA(20) المُضمَّن، وجانب السوبرترند (22، 3.0×ATR) المُضمَّن، ولون شمعة هايكين آشي الأخيرة. ثم تطلب بوابة Confirm() أن يكون إغلاق H1 EMA(50) على نفس الجانب، وADX≥18، وأن لا يكون النظام CHOPPY، وأن تكون نسبة R/R المكوّنة فوق 1.0 قبل إرسال الصفقة.
تعمل المخارج على ثلاث سكك: رatchet كسر-حتى إلى الدخول+2pt لمرة واحدة عند بلوغ السعر 1R، وإغلاق جزئي 50٪ عند الدخول+1.5R، ووقف متابع 2.5×ATR يتحرك للأمام فقط. يُطلَق الإغلاق الكامل حين ينقلب توافق الأربعة ضد الجانب المفتوح، ويُرسَل عبر حلقة إعادة محاولة بثلاث محاولات على requote وtimeout.
وقف الخسارة الأوّلي هو 2.0×ATR(14) من الدخول، مع أرضية من stops-level وfreeze-level لدى الوسيط عبر AdjustForStops(). ولمّا يصل السعر إلى 1R، يُسحب الوقف لمرة واحدة إلى الدخول+2pt، ثم يتولّى وقف متابع 2.5×ATR للأمام فقط من هناك.
جني الأرباح هو 1.5× بُعد الوقف، يُضبط على جانب الوسيط وقت الإرسال. يعمل إغلاق جزئي 50٪ داخل المستكشف عند الدخول+1.5R، فيُحرَّر النصف المتبقي من مركز مقفل الربح. ثم يتولّى أثر 2.5×ATR المتبقي حتى يطلق إغلاق الإشارة المعاكسة.
يناسب حدا أدنى للإيداع قدره 100 دولار على XAUUSD M5 مع حساب ECN أو سبريد خام. جلسة 1-23 بتوقيت الخادم واسعة عمدا، فأكثر الخيارات العملية وسيط سبريد منخفض يدير دورة لندن-نيويورك-آسيا كاملة. يجعل سقف الخسارة اليومي 3٪ وأرضية رأس المال 50 دولارا ومدخل InpKillSwitch المستكشف صالحا لحسابات تحدي شركات التمويل وكذلك الحسابات الاستهلاكية المعتادة، بشرط أن يحترم الوسيط منطق المتابعة على حد أدنى 0.01 لوت.
منطق الاستراتيجية
Pipsgrowth EX18034 TrendFollow — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: TrendFollow
الماجيك: 22218034
الإصدار: 2.00
الوصف:
Multi-filter trend consensus (Trend EMA + inlined Hull-MA slope + SuperTrend side + Heikin-Ashi color) gated by ADX + ATR-percentile + BB-width regime. Entry fires on last closed bar; CONFIRM requires HTF EMA + ADX strength + candle-close + R/R. ATR SL/TP, break-even at R, partial 50%, ATR trail, momentum-decay, opposite-signal, max-bars exits. Capital allocation cap governs all risk. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
RegimeGet()HullValue()HullSlope()SuperTrendSide()HeikinAshiColor()TrendSignal()HtfTrendUp()HtfTrendDown()NoTradeReason()EffectiveCapital()
// Pipsgrowth EX18034 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// Multi-filter trend consensus (Trend EMA + inlined Hull-MA slope + SuperTrend side + Heikin-Ashi color) gated by ADX + ATR-percentile + BB-width regime. Entry fires on last closed bar; CONFIRM requires HTF EMA + ADX strength + candle-close + R/R. ATR SL/TP, break-even at R, partial 50%, ATR trail, momentum-decay, opposite-signal, max-bars exits. Capital allocation cap governs all risk. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpAdxTrendMin | 20.0 | Min ADX for StrongTrend (units) |
| InpAtrLookback | 100 | ATR percentile lookback (bars) |
| InpBBPeriod | 20 | Bollinger width period (bars) |
| InpHullPeriod | 20 | Hull MA period (bars) |
| InpSTPeriod | 22 | SuperTrend ATR period (bars) |
| InpSTMult | 3.0 | SuperTrend ATR multiplier (xATR) |
| InpTrendEmaPeriod | 50 | Trend EMA period (bars) |
| InpRiskPercent | 0.5 | Per-trade risk (% of eff. capital) |
| InpDailyLossPct | 3.0 | Daily loss limit (% of eff. capital) |
| InpMaxOpen | 5 | Max concurrent positions (count) |
| InpPyramidEnabled | false | Pyramid add-ons (default OFF) |
| InpCapAmount | 0.0 | Capital cap amount ($ equity) |
| InpCapFloor | 50.0 | Capital cap floor ($ equity) |
| InpDryRun | true | Dry-run mode (no live orders) |
| InpKillSwitch | false | Global kill switch (bool) |
| InpAtrSLMult | 2.0 | SL distance (xATR) |
| InpRR | 1.5 | Reward:Risk for TP (R multiple) |
| InpTrailAtrMult | 2.5 | ATR trailing distance (xATR) |
| InpBEActivationR | 1.0 | Break-even trigger (R multiple) |
| InpSessionStart | 1 | Session start hour (broker time, 0-23) |
| InpSessionEnd | 23 | Session end hour (broker time, 0-23) |
| InpMagic | 22218034 | Magic number (id) |
| InpTradeComment | "Psgrowth.com Expert_18034" | Order comment |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX18034 EX30 — multi-filter trend consensus (Hull+SuperTrend+HA+EMA) with regime gate and capital cap."
#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) ==========================
input group "=== Regime Gate ==="
input double InpAdxTrendMin = 20.0; // Min ADX for StrongTrend (units)
input int InpAtrLookback = 100; // ATR percentile lookback (bars)
input int InpBBPeriod = 20; // Bollinger width period (bars)
input group "=== Signal (Trend Consensus) ==="
input int InpHullPeriod = 20; // Hull MA period (bars)
input int InpSTPeriod = 22; // SuperTrend ATR period (bars)
input double InpSTMult = 3.0; // SuperTrend ATR multiplier (xATR)
input int InpTrendEmaPeriod = 50; // Trend EMA period (bars)
input group "=== Risk & Sizing ==="
input double InpRiskPercent = 0.5; // Per-trade risk (% of eff. capital)
input double InpDailyLossPct = 3.0; // Daily loss limit (% of eff. capital)
input int InpMaxOpen = 5; // Max concurrent positions (count)
input bool InpPyramidEnabled = false; // Pyramid add-ons (default OFF)
// InpCapEnabled removed — use InpCapAmount=0 to disable // Capital cap active (bool)
input double InpCapAmount = 0.0; // Capital cap amount ($ equity)
input double InpCapFloor = 50.0; // Capital cap floor ($ equity)
input bool InpDryRun = true; // Dry-run mode (no live orders)
input bool InpKillSwitch = false; // Global kill switch (bool)
input group "=== Exit & Trail ==="
input double InpAtrSLMult = 2.0; // SL distance (xATR)
input double InpRR = 1.5; // Reward:Risk for TP (R multiple)
input double InpTrailAtrMult = 2.5; // ATR trailing distance (xATR)
input double InpBEActivationR = 1.0; // Break-even trigger (R multiple)
input group "=== Session & ID ==="
input int InpSessionStart = 1; // Session start hour (broker time, 0-23)
input int InpSessionEnd = 23; // Session end hour (broker time, 0-23)
input int InpMagic = 22218034; // Magic number (id)
input string InpTradeComment = "Psgrowth.com Expert_18034"; // Order comment
//====================== END INPUTS =================================
//====================== GLOBALS ====================================
CTrade trade;
CPositionInfo posInfo;
CSymbolInfo sym;
CAccountInfo acc;
COrderInfo ordInfo;
CDealInfo dealInfo;
// Handles (created in OnInit, freed in OnDeinit)
int h_atr = INVALID_HANDLE; // ATR(current)
int h_atr_htf = INVALID_HANDLE; // ATR(HTF) - reused for trailالكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.