Pipsgrowth EX16063 Trend — إكسبرت أدفايزر متابعة اتجاه
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX16063 Trend — Advanced position manager with multi-level trailing stops (breakeven, progressive, fixed, percentage, ATR dynamic). Moni. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
إكسبرت EX16063 ليس مولِّد إشارات — بل أداة مساعدة في MT5 لا تفتح أي صفقة من تلقاء نفسها. يُلصَق على شارت مفتوح ويترقب المراكز التي فتحتها أنت أو إكسبرت آخر على نفس الرمز، ثم يتولى إدارة وقف الخسارة لكل واحد منها عبر تصعيد من خمس مراحل. الدورة الافتراضية تعمل كل ثانية (InpUpdateFrequency = 1) داخل OnTimer، وتستدعي ScanAndManagePositions() للمرور على كل مركز مفتوح في الحساب، ثم تفلتر حسب الرمز والرقم السحري، وتمرر الناجين إلى ManagePosition()، وهي الدالة الوحيدة التي تُجري تغييرات فعلية على الحالة. لا توجد إشارات دخول، ولا أهداف ربح، ولا حزمة مؤشرات، ولا معادلة OnTester — البرنامج بالكامل هو حلقة إدارة الوقف، مع لوحة معلومات وإشعار اختياري للجوال.
البنية متعددة المستويات هي ما يميز هذا الإكسبرت عن ترايلينج ستوب عادي. تعمل DetermineTargetLevel() على تمرير الربح العائم الحالي للمركز من خلال خمسة عتبات بالترتيب: عندما يتجاوز الربح المستوى 1 (200 نقطة افتراضياً) يُنقل الوقف إلى نقطة التعادل؛ وعندما يتجاوز المستوى 2 (500 نقطة) يُرفع الوقف إلى السعر الحالي ناقصاً 250 نقطة؛ ويُضيّق المستوى 3 (1000 نقطة) المسافة إلى 150 نقطة؛ ويمكن تفعيل مرحلتين إضافيتين عند 1500 و 2000 نقطة عبر InpEnableLevel4 و InpEnableLevel5 لربط أقصر، وهما معطلتان افتراضياً. يُسجَّل كل مستوى في بنية PositionData داخل g_positionTracking[] ولا يتحرك إلا إلى الأمام — يضمن IsBetterStopLoss() و InpOnlyMoveForward معاً أن الإكسبرت لا يمكنه تخفيف وقف سبق أن رفعه.
أربع استراتيجيات ترايلينج تشغّل الحساب الفعلي للوقف. MODE_BREAKEVEN_PROGRESSIVE (الافتراضي) ينقل الوقف إلى سعر الفتح زائد هامش قابل للتعديل عند المستوى 1، ثم يتبع السعر بمسافة ثابتة من Bid/Ask الحالي للمستويات 2-5. أما MODE_FIXED_DISTANCE فيتخطى خطوة التعادل ويبدأ التتبع فوراً بالمسافة المحددة لكل مستوى. و MODE_PERCENTAGE_BASED يقفل 0% / 30% / 50% / 70% / 80% من الربح العائم في المستويات 1-5 بالترتيب، عبر تحويل المبلغ المالي إلى فرق سعري بواسطة ConvertUnitsToPrice(). و MODE_ATR_DYNAMIC يستخدم iATR(InpSymbol, PERIOD_CURRENT, InpATRPeriod) مع InpATRPeriod=14 و InpATRMultiplier=2.0، ثم يُقلّص المضاعف إلى 0.5× في المستوى 1، و 1.0× في المستوى 2، و 0.7× في المستوى 3، و 0.5× في المستوى 4، و 0.4× في المستوى 5 — أي أنه كلما تراكم الربح في الصفقة، اقترب الوقف أكثر من السعر. لا يُنشأ مؤشر ATR إلا في OnInit() عند تفعيل هذا الوضع فعلياً؛ أما الأوضاع الثلاثة الأخرى فتعمل بحسابات سعرية صرفة.
محدد الوحدات (InpUnitType) هو الجزء الذي يخطئ فيه معظم المستخدمين. UNIT_POINTS يمرر قيم العتبات مباشرة إلى منطق التتبع — 200 نقطة على XAUUSD تساوي 2.00 دولار لكل لوت 0.01، وهو ما يفترضه الباك تيست. و UNIT_PIPS يضرب × 10 على التسعير بخمس وثلاث خانات ليصبح 200 بيب تعني 200 بيب فعلاً، لا 2000 نقطة. و UNIT_MONEY تقريبي: الكود يُرجع value × g_point × 10 كتقدير خام لفرق السعر من مبلغ بالدولار، وهو تحويل سريع يعمل فقط على أحجام لوت معينة؛ الأنظف هو ترك الإكسبرت على وضع النقاط وضبط العتبات بمصطلحات فرق السعر. الأرقام الموجودة في بلوك المدخلات (200، 500، 1000، 1500، 2000) جميعها مقومة بالوحدة المختارة.
قضبان الأمان تُغلِّف منطق التتبع. InpMagicNumberFilter قيمته الافتراضية 22216063 — نفس الرقم الذي يستخدمه هذا الإكسبرت — أي أنه افتراضياً لا يدير إلا مراكزة هو. وضبطه على 0 يجعله يلمس كل مركز على رمز الشارت بصرف النظر عن فاتحه — وهو أمر مفيد لإدارة صفقات الجوال اليدوية (التي تحمل magic = 0) لكنه محفوف بالمخاطر إن كنت تشغّل محفظة من إكسبرتس أخرى على نفس الأداة. أما InpMinDistanceFromPrice (10 نقاط افتراضياً) فيُفرض بواسطة EnsureMinimumDistance() كي لا يقترب الوقف من السبريد، و ModifyStopLoss() يرفض أيضاً التعديلات الأصغر من نقطة واحدة. أداة إعادة المحاولة TryModify_EX16063() تدور في حلقة تصل إلى 3 مرات مع Sleep(100) عند requote/timeout، وهي الأداة الوحيدة من أصل ثلاث (TryClose, TryClosePartial, TryModify) موصولة فعلياً بـ ManagePosition — أدوات الإغلاق معرَّفة لكن البرنامج لا يستدعيها، لأن الإغلاق متعمَّد خارجه عن نطاق مدير الوقف.
تُعاد بناء لوحة الشارت عند كل دورة تايمر. تحذف UpdateInfoPanel() الملصقات السابقة وتُنشئ كتلة جديدة في أعلى يسار الشارت تعرض الحالة والرمز والوضع وعدد المراكز وسطراً لكل مركز يعرض التذكرة والمستوى الحالي والربح الفوري، بحد أقصى خمسة مراكز مرئية. ويُرسل SendNotification() إشعار push عبر MetaQuotes إلى الجوال عند كل نجاح في ModifyStopLoss()، مع التذكرة والمستوى الجديد وسعر الوقف الجديد — نبضة مفيدة تُعلمك بأن مركزاً قد انتقل إلى التعادل أو إلى تريل أضيق. و OnDeinit() يستدعي EventKillTimer() و IndicatorRelease() لمقبض ATR و RemoveInfoPanel()، لذا فإن إزالة الإكسبرت من الشارت عملية نظيفة لا تترك أي عناصر يتيمة.
الاقتران العملي: بُني هذا الإكسبرت لِيُوضع فوق أي مولِّد إشارات (العائلة مُسمّاة Trend، لكن لا يوجد منطق ترند داخل .mq5) ويعمل كغلاف وقائي خالص. لن ينافس إكسبرت الإشارات على التحكم في الصفقة، لأنه لا يفتح ولا يوسّع ولا يُغلق — يُحفظ جني الأرباح في الأمر الأصلي عبر كل تعديل (تُستدعى TryModify_EX16063() مع الـ TP الموجود). وفي الحسابات التي يريد فيها المتداول البشري إدارة منطق الوقف من الشارت وترك الدخول للأتمتة، يُحوِّل ضبط InpMagicNumberFilter على 0 الإكسبرت إلى مساعد للصفقات اليدوية. وفي محافظ الإكسبرتس المتعددة، يُعدّ الإبقاء على فلتر الماجيك الافتراضي هو المسار الأكثر أماناً كيلا يتسرّب التريل إلى صفقات لم يُصمَّم ليرافقها.
تفاصيل الاستراتيجية
تستدعي OnTimer كل InpUpdateFrequency ثانية (افتراضياً 1)، ثم تُنشِّط ScanAndManagePositions() التي تمر على PositionsTotal() وتُصفّي حسب InpSymbol و InpMagicNumberFilter. تُوجَّه المراكز الناجية إلى ManagePosition(ticket) التي تسجِّل المركز في g_positionTracking[] (بنية PositionData تحوي التذكرة والمستوى الحالي وآخر وقف وآخر تعديل)، وتقرأ الربح الفوري بالوحدة المختارة، وتستدعي DetermineTargetLevel() لربط الربح بمستوى بين 0 و5، ثم إما أن تُرقي المستوى (إن كان targetLevel > currentLevel) أو تُعيد إحكام وقف التريل (إن كان targetLevel >= 2 ونجح SL الجديد في اختبار IsBetterStopLoss()). توجِّه CalculateNewStopLoss() إلى واحدة من أربع دوال حسابية — CalculateSL_BreakevenProgressive أو CalculateSL_FixedDistance أو CalculateSL_PercentageBased أو CalculateSL_ATRDynamic — بحسب InpTrailingMode. وتتولى EnsureMinimumDistance() و NormalizeDouble() تنظيف السعر، وتُشغِّل TryModify_EX16063() حلقة إعادة محاولة من 3 محاولات (مع Sleep(100) عند requote/timeout) قبل إرسال إشعار Push عبر MetaQuotes. تُعاد بناء لوحة الشارت كل دورة بواسطة UpdateInfoPanel() عبر CreateLabel() بالبادئة PMPanel_؛ و OnDeinit() يستدعي RemoveInfoPanel() لمحوها، و EventKillTimer() لإيقاف الحلقة، و IndicatorRelease() لتحرير مقبض ATR.
لا يُولِّد EX16063 إشارات دخول. إنه أداة لإدارة الوقف: يفحص المراكز المفتوحة على الرمز والرقم السحري المُكوَّنين، ثم يرفع وقف الخسارة لكل مركز عبر ما يصل إلى خمسة مستويات تدريجية مع نمو الربح العائم. لا توجد حزمة إشارات ولا محفز دخول ولا معادلة OnTester — تستدعي حلقة OnTimer الدالة ScanAndManagePositions() مرة كل ثانية.
لا يُغلق EX16063 أي صفقة أبداً. منطق الخروج وقائي خالص: عند تحريك وقف التريل، يُحرَّك إلى الأمام فقط (InpOnlyMoveForward = true افتراضياً)، ويُحفظ جني الأرباح الأصلي في كل استدعاء لـ TryModify_EX16063(). ولا تخرج الصفقة إلا عند تفعيل الوقف أو TP — وكلاهما يحدث على جانب البروكر لا داخل الإكسبرت.
الوقف هو جوهر عمل هذا الإكسبرت بأكمله. تتدفق OnTick و OnTimer إلى ManagePosition() التي تستدعي DetermineTargetLevel() لتحديد المستوى الحالي (0-5) من الربح العائم بالنقاط أو البيب أو المال، ثم CalculateNewStopLoss() توجِّه إلى أحد أوضاع حسابية أربعة: تعادل + تدريجي (الافتراضي)، مسافة ثابتة، قفل نسبة مئوية (0/30/50/70/80%)، أو ديناميكي بـ ATR باستخدام iATR(14) بمضاعف 2.0. ويحظر IsBetterStopLoss() و InpOnlyMoveForward معاً الحركات الخلفية، ويفرض EnsureMinimumDistance() حداً أدنى 10 نقاط من Bid/Ask الحالي.
لا يوجد منطق جني أرباح داخل EX16063. تحتفظ كل صفقة بهدف الربح الأصلي — يستدعي الإكسبرت trade.PositionModify(ticket, newSL, tp) داخل TryModify_EX16063()، ويمرِّر الـ TP الموجود كما هو. إن أراد المتداول إدارة الخروج عبر جني الأرباح، فيجب ضبطه عند فتح الصفقة (بواسطة إكسبرت الإشارات أو أمر يدوي أو أداة أخرى).
يُفضَّل إقرانه مع إكسبرت إشارات أو استخدامه كطبقة فوقية لإدارة الوقف لصفقات الجوال اليدوية، على XAUUSD M5-H1، في حسابات لا تقل عن 100$. الحد الأدنى للرصيد الموصى به 100$. يُبقي InpMagicNumberFilter الافتراضي = 22216063 التريل محصوراً بمراكزه هو؛ وضبطه على 0 يُحوِّل الإكسبرت إلى مدير لأي مركز على الرمز، بما في ذلك الأوامر اليدوية. الأكثر فائدة في الجلسات التي يكون فيها المتداول بعيداً عن الشارت ويريد رفع الوقف آلياً، مع تفضيل ECN سبريد منخفض لأن كل تعديل يستلزم رحلة إلى السيرفر.
منطق الاستراتيجية
Pipsgrowth EX16063 Trend — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Trend
الماجيك: 22216063
الإصدار: 2.00
الوصف:
Advanced position manager with multi-level trailing stops (breakeven, progressive, fixed, percentage, ATR dynamic). Monitors and manages open positions — ideal for manual trades opened on mobile. Includes info panel and notifications. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
OnTimer()ScanAndManagePositions()ManagePosition()CalculatePositionProfit()CalculateProfitInPoints()CalculateProfitInPips()DetermineTargetLevel()CalculateNewStopLoss()CalculateSL_BreakevenProgressive()CalculateSL_FixedDistance()
// Pipsgrowth EX16063 Trend — Execution Flow (from source analysis)
// Family: Trend
// Advanced position manager with multi-level trailing stops (breakeven, progressive, fixed, percentage, ATR dynamic). Monitors and manages open positions — ideal for manual trades opened on mobile. Includes info panel and notifications. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpSymbol | "XAUUSDm" | Symbol to Monitor |
| InpEnableEA | true | Enable EA |
| InpMagicNumberFilter | 22216063 | Magic number filter (0 = All positions) |
| InpUpdateFrequency | 1 | Update Frequency (seconds) |
| InpUnitType | UNIT_POINTS | Unit Type |
| InpTrailingMode | MODE_BREAKEVEN_PROGRESSIVE | Trailing Mode |
| InpLevel1_ProfitThreshold | 200.0 | Level 1: Profit Threshold |
| InpLevel1_MoveSLTo | 0.0 | Level 1: Move SL To (0=Breakeven) |
| InpLevel2_ProfitThreshold | 500.0 | Level 2: Profit Threshold |
| InpLevel2_TrailDistance | 250.0 | Level 2: Trail Distance |
| InpLevel3_ProfitThreshold | 1000.0 | Level 3: Profit Threshold |
| InpLevel3_TrailDistance | 150.0 | Level 3: Trail Distance |
| InpEnableLevel4 | false | Enable Level 4 |
| InpLevel4_ProfitThreshold | 1500.0 | Level 4: Profit Threshold |
| InpLevel4_TrailDistance | 100.0 | Level 4: Trail Distance |
| InpEnableLevel5 | false | Enable Level 5 |
| InpLevel5_ProfitThreshold | 2000.0 | Level 5: Profit Threshold |
| InpLevel5_TrailDistance | 75.0 | Level 5: Trail Distance |
| InpOnlyMoveForward | true | Only Move SL Forward (Safety) |
| InpMinDistanceFromPrice | 10.0 | Minimum Distance From Price |
| InpEnableNotifications | true | Enable Mobile Notifications |
| InpShowInfoPanel | true | Show Info Panel |
| InpATRPeriod | 14 | ATR Period |
| InpATRMultiplier | 2.0 | ATR Multiplier |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX16063 PositionManager_EA — Multi-level trailing stop manager, full 12-layer stack."
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>
//--- Enumerations
enum ENUM_UNIT_TYPE
{
UNIT_POINTS, // Points (raw price points)
UNIT_PIPS, // Pips (standard pip calculation)
UNIT_MONEY // Money (dollar amount)
};
enum ENUM_TRAILING_MODE
{
MODE_BREAKEVEN_PROGRESSIVE, // Breakeven + Progressive Trailing (Recommended)
MODE_FIXED_DISTANCE, // Fixed Distance Trailing
MODE_PERCENTAGE_BASED, // Percentage-Based Locking
MODE_ATR_DYNAMIC // ATR-Based Dynamic Trailing
};
//+------------------------------------------------------------------+
//| Input Parameters |
//+------------------------------------------------------------------+
//--- Basic Settings
input group "=== Basic Settings ==="
input string InpSymbol = "XAUUSDm"; // Symbol to Monitor
input bool InpEnableEA = true; // Enable EA
input long InpMagicNumberFilter = 22216063; // Magic number filter (0 = All positions)
input string InpTradeComment = "Psgrowth.com Expert_16063";
input int InpUpdateFrequency = 1; // Update Frequency (seconds)
//--- Unit Selection
input group "=== Unit Selection ==="
input ENUM_UNIT_TYPE InpUnitType = UNIT_POINTS; // Unit Type
//--- Trailing Strategy
input group "=== Trailing Strategy ==="
input ENUM_TRAILING_MODE InpTrailingMode = MODE_BREAKEVEN_PROGRESSIVE; // Trailing Mode
//--- Level 1 Configuration (Breakeven)
input group "=== Level 1 - Breakeven ==="
input double InpLevel1_ProfitThreshold = 200.0; // Level 1: Profit Threshold
input double InpLevel1_MoveSLTo = 0.0; // Level 1: Move SL To (0=Breakeven)
//--- Level 2 Configuration (First Trail)
input group "=== Level 2 - First Trail ==="
input double InpLevel2_ProfitThreshold = 500.0; // Level 2: Profit Threshold
input double InpLevel2_TrailDistance = 250.0; // Level 2: Trail Distance
//--- Level 3 Configuration (Tight Trail)
input group "=== Level 3 - Tight Trail ==="
input double InpLevel3_ProfitThreshold = 1000.0; // Level 3: Profit Threshold
input double InpLevel3_TrailDistance = 150.0; // Level 3: Trail Distanceالكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.