P
PipsGrowth
متابعة الاتجاهمفتوح المصدر - مجاني

Pipsgrowth EX16072 Trend — إكسبرت أدفايزر متابعة اتجاه

إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1

Pipsgrowth EX16072 Trend — Auto SL/TP manager that applies stop-loss and take-profit to open positions with lock-profit and trailing-stop features.. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX16072 هي أداة لإدارة المراكز فقط — لا تفتح أي صفقات بحد ذاتها. مهمتها الوحيدة هي مراقبة الصفقات التي فتحها إكسبيرت آخر أو المتداول يدوياً على الحساب، ثم تضيف ثلاث طبقات حماية فوقها: تمرين تثبيت وقف خسارة وجني أرباح أولي، وقفل ربح يُفعَّل لمرة واحدة بمجرد أن تتجاوز الصفقة عتبة الربح، ووقف خسارة متحرك يُحدِّث نفسه باستمرار. لأن الكود لا يولّد إشارة دخول، فلا يُنشَأ أي مؤشر — الملف يُترجم بدون أيٍّ من iMA/iRSI/iMACD/iATR. كل قراءة يقوم بها الإكسبيرت تأتي من PositionGetDouble وPositionGetInteger واستعلامات SymbolInfo* على المراكز الموجودة في المنصة.

التمريرة الأولى تعمل داخل AutoSLTP::SetInstantSLTP() التي تتداول من آخر رصة في الكومة إلى الأمام (PositionsTotal()-1 نزولاً إلى 0) حتى أن إغلاق تذكرة في منتصف الحلقة لا يعبث بالباقي. كل تذكرة تُصفّى حسب chartMode: حين يكون ChartSymbolSelection على AllOpenOrder (الافتراضي) يتعامل الإكسبيرت مع كل المراكز المفتوحة على الحساب؛ وحين يكون على CurrentChartSymbol يُبقي فقط على المراكز التي يطابق رمزها رمز الشارت (Symbol()). كل ما يمرّ من الفلتر يتفرّع إلى نمطي SL/TP يختارهما SLnTPMode.

في نمط الخادم (Server) يدفع الإكسبيرت بوقف الخسارة وجني الأرباح إلى البروكر. لصفقة الشراء يحدد SL = سعر_الفتح − (StopLoss + minstoplevel) * point وTP = سعر_الفتح + (TakeProfit + minstoplevel) * point؛ والبيع يعكس الإشارتين. minstoplevel هو SYMBOL_TRADE_STOPS_LEVEL للبروكر، يُضاف ليضمن أن السعر لن ينتهك قاعدة الحد الأدنى للمسافة. النمط يعمل كمنظم ثلاثي الحالات: إن كان كلا الـ SL والـ TP صفراً على المركز يثبّت الاثنين معاً؛ إن كان TP فقط مفقوداً يثبّت TP ويُبقي SL الحالي؛ إن كان SL فقط مفقوداً يثبّت SL ويُبقي TP الحالي. TryModify_EX16072() يلفّ الاستدعاء بمحاولات إعادة تصل إلى ثلاث مرات عند requote/timeout. نمط العميل (Client) فلسفته معاكسة: الإكسبيرت لا يرسل SL أو TP إلى الخادم عمداً، بل يراقب الربح والخسارة بالنقاط (Poin) ويستدعي TryClose_EX16072() لحظة أن يصبح Poin >= TakeProfit أو Poin <= -StopLoss. هذا هو الـ SL/TP الافتراضي المخفي الذي تفضله بعض بيئات الـ prop firm وبعض وسطاء الـ ECN. مع تفعيل inpEnableAlert يطلق الإكسبيرت Alert() يُخبر المتداول بأي تيكيت أُغلق وما إذا كان الإغلاق رابحاً أو خاسراً.

التمريرة الثانية هي قفل الربح في AutoSLTP::LockProfit(). ما إن يصبح Poin >= LockProfitAfter (افتراضياً 100 نقطة ربح) يضع الإكسبيرت وقفاً ثابتاً عند سعر_الفتح + ProfitLock * point للشراء، أو سعر_الفتح − ProfitLock * point للبيع — وسادة نقطة تعادل 60 نقطة افتراضياً. الدالة تعمد إلى أن تعمل فقط حين يكون CurrentSL <= سعر_الفتح في الشراء (أو >= سعر_الفتح في البيع)، أي أن القفل لا يمكنه أبداً أن يُرجع الوقف للخلف. تحذير Print() حين يكون Targetpoint < Lockedpoint هو فحص سلامة تركه المطور: هدف القفل يجب أن يكون دائماً أبعد من مسافة القفل، وإلا فإن ذراع القفل لن يتفعّل أبداً.

التمريرة الثالثة هي الوقف المتحرك في AutoSLTP::RZ_TrailingStop(). لا يتفعّل إلا بعد LockProfitAfter + TrailingStop نقطة ربح (بوابة الإصدار القديم)، أو فوراً إن كان LockProfitAfter مضبوطاً على 0. أربع طرق للوقف المتحرك يختارها TrailingStopMethod. TS_CLASSIC يُبقي الوقف على مسافة TrailingStop نقطة بالضبط خلف السعر في كل تحرّك. TS_STEP_DISTANCE يُبقي الوقف على مسافة TrailingStop − TrailingStep نقطة خلف السعر، فالمسافة الفعلية عن السعر تكبر بقدر توسيع TrailingStop. TS_STEP_BY_STEP هو الرفع البطيء: يقدّم الوقف بمقدار TrailingStep نقطة كلما ابتعد السعر TrailingStop نقطة، ولا يقفز بالمسافة كلها في تيك واحد. TS_NONE يعطّل الوقف المتحرك بالكامل. كل طريقة تنقسم لشراء/بيع: الشراء يرفع الوقف في اتجاه الربح، والبيع يخفضه في اتجاه الربح، والوقف الجديد يُرسَل عبر TryModify_EX16072() فقط حين يختلف عن القائم (كي لا يُغَرَق البروكر بتعديلات لا معنى لها).

أداة صغيرة مفيدة هي OrderTest() خلف بوابة inpEnableTest وMQLInfoInteger(MQL_TESTER). حين يبدأ الباك تيست بحساب فارغ، تفتح هذه الدالة صفقة شراء 0.01 لوت على EURUSD وصفقة بيع 0.01 لوت على GBPUSD ليبقى لباقي كود الـ SL/TP والقفل والوقف المتحرك مراكز حيّة يتعامل معها. في التداول الفعلي تكون OrderTest() خامدة — الإكسبيرت مدير سلبي بحت. OnTick() نفسها خفيفة: تحسب عدد المراكز، إن وُجدت تحيل إلى SetInstantSLTP(). لا تايمر، لا OnTradeTransaction، لا بوابة حدث شريط — الإكسبيرت يتفاعل فقط مع التيكات الواردة.

من الناحية العملية، ملف البروكر المناسب هو الذي يدعم SYMBOL_TRADE_STOPS_LEVEL (حتى تخرج الحسابات بمستوى حقيقي) أو يطبّق مخطط SL افتراضي مخفياً. لأن الإكسبيرت يضيف minstoplevel لكل وقف يثبّته، فالوسطاء الذين يفرضون مسافة دنيا واسعة (الذهب عند بعض الجهات، أزواج الـ FX الغريبة) يُعالَجون بشكل صحيح. تسامح الانزلاق هو مدخل Slippage (افتراضياً 10 نقاط) يُمرَّر إلى trade.SetDeviationInPoints(). للمتداول الذي يُشغّل عدة إكسبيرتات ويحتاج أن تحمل كل صفقة مفتوحة نفس غلاف الحماية، فإن وضع EX16072 على شارت واحد وترك ChartSymbolSelection = AllOpenOrder يعني أن مسحة شارت واحدة تغطي الحساب كاملاً.

مخاطر استخدام EX16072 هي مخاطر أي أداة وقف حماية: لا يمكنها إنقاذ استراتيجية تخسر على مستوى الدخول. هي فقط تُنظّم الوقوف والترافلنغ. إن كان الإكسبيرت العلوي يدخل بإشارات ضعيفة وTakeProfit=550/StopLoss=350 ينتج قيمة متوقعة سالبة، فإن هذه الأداة ستقطع الخسائر بالضبط عند المسافة المضبوطة، مع الاحتكاك الإضافي لقفل الربح والترافلنغ الذي قد يخرج أحياناً أبكر من جني الأرباح الثابت. النشر الموصى به: اترك الافتراضيات حتى تتجمع ساعات كافية من التداول التجريبي، ثم إما توسيع StopLoss لمجال أوسع، أو التحول إلى TS_STEP_BY_STEP لوقف أبطأ، أو قلب SLnTPMode إلى Client لإبقاء الوقوف خارج سجل البروكر.

تفاصيل الاستراتيجية

في كل تيك يستدعي معالج OnTick دالة CalculateInstantOrders() لحساب المراكز المطابقة للسحر 22216072، ثم تشغّل SetInstantSLTP() ثلاث تمريرات متتالية على كل تذكرة. التمريرة الأولى تثبّت أو تُكمل الـ SL/TP الأولي عبر منطق التفريع في SetInstantSLTP() — نمط الخادم يدفع بالمستويات إلى البروكر عبر TryModify_EX16072 (التي تعيد المحاولة ثلاث مرات عند requote/timeout)، نمط العميل يُبقي المستويات بعيداً عن البروكر ويستدعي TryClose_EX16072 عند انتهاك عتبة الربح/الخسارة. التمريرة الثانية تشغّل LockProfit(): ما إن يعبر Poin قيمة LockProfitAfter (افتراضياً 100 نقطة)، تُثبّت وقف نقطة تعادل لمرة واحدة عند سعر_الفتح ± ProfitLock*point. التمريرة الثالثة تستدعي RZ_TrailingStop() التي تختار بين أربع خوارزميات — TS_CLASSIC (رفع خام)، TS_STEP_DISTANCE (مع إزاحة TrailingStepTS_STEP_BY_STEP (بطيء، TrailingStep لكل تحرّك TrailingStop)، أو TS_NONE — ولا تُرسِل التعديل إلا حين يختلف الوقف الجديد فعلاً عن القائم. أداة OrderTest() خلف بوابة inpEnableTest وMQL_TESTER، تفتح صفقة شراء 0.01 لوت على EURUSD وصفقة بيع 0.01 لوت على GBPUSD حين يبدأ الباك تيست بحساب فارغ ليبقى لباقي كود الإدارة مراكز حيّة يعمل عليها.

إشارة الدخول

EX16072 لا يولّد إشارات دخول. هو أداة إدارة مراكز صافية: في كل تيك يفحص المراكز المطابقة للسحر 22216072 (أو كل المراكز المفتوحة حين يكون ChartSymbolSelection = AllOpenOrder)، ثم يشغّل تمريرات تثبيت SL/TP وقفل الربح والوقف المتحرك على أي تيكيت موجود فعلاً على الحساب. ضعه على أي شارت فيه مراكز مفتوحة، أو على شارت مخصّص يشتغل عليه الإكسبيرت العلوي، وسيبدأ في إدارتها من التيك التالي.

إشارة الخروج

مسارا خروج متوازيان: (1) جني الأرباح يُضرب إما عند البروكر في نمط الخادم (TP = سعر_الفتح ± (TakeProfit + minstoplevel) * point) أو محلياً في نمط العميل حيث يطلق TryClose_EX16072 عندما Poin >= TakeProfit، و(2) وقف الخسارة يتصرف بنفس الطريقة — تعديل جانب البروكر في نمط الخادم، وإغلاق جانب العميل حين Poin <= -StopLoss. بعد أن يتسلّح قفل الربح (افتراضياً 100 نقطة ربح)، تُنفّذ استدعاءة LockProfit() لمرة واحدة وتضع وقفاً عند سعر_الفتح ± ProfitLock*point. من تلك اللحظة يتولّى RZ_TrailingStop() باستخدام الطريقة المختارة (CLASSIC / STEP_DISTANCE / STEP_BY_STEP / NONE) لرفع الوقف خلف السعر.

وقف الخسارة

وقف الخسارة الأولي يُحدَّد بالنقاط (StopLoss = 350 افتراضياً) مقاساً من سعر الفتح، مع إضافة SYMBOL_TRADE_STOPS_LEVEL الخاص بالبروكر قبل إرسال التعديل كي يتجاوز السعر الناتج قاعدة الحد الأدنى للمسافة. في نمط الخادم يكون الـ SL خاصية حقيقية للمركز؛ في نمط العميل يكون افتراضياً ويطلق TryClose_EX16072 الخروج. بعد تفعيل ذراع قفل الربح، يهاجر الـ SL إلى سعر_الفتح + ProfitLock*point (60 نقطة نقطة تعادل افتراضياً)، ثم يقوم RZ_TrailingStop برفعه خلف السعر باستخدام إحدى الخوارزميات الأربع.

جني الأرباح

جني الأرباح افتراضياً 550 نقطة من سعر الفتح، يُطبَّق بنفس طريقة الوقف — TP جانب البروكر في نمط الخادم (TP = سعر_الفتح + (TakeProfit + minstoplevel)*point للشراء، معكوس للبيع) أو TP افتراضي جانب العميل يُغلق المركز عبر TryClose حين Poin >= TakeProfit. يمكن أيضاً إلغاء الـ TP تماماً بضبط TakeProfit على 0؛ في تلك الحالة يستمر قفل الربح والوقف المتحرك في العمل على الصفقة.

الأنسب لـ

المتداولون الذين يُشغّلون إكسبيرت دخول واحداً أو أكثر (أو يفتحون الصفقات يدوياً) ويريدون غلاف حماية موحّداً عبر كل المراكز المفتوحة على الحساب. القيم الافتراضية StopLoss=350 / TakeProfit=550 / LockProfitAfter=100 / ProfitLock=60 / TrailingStop=50 / TrailingStep=10 مبنية على نمط تذبذب شبيه بالـ XAUUSD، لذا فإن وسيط سبريد منخفض على الذهب أو الأزواج الرئيسية للـ FX هو البيت الطبيعي. الرصيد الابتدائي الموصى به: 100$ (الحد الأدنى المعلن للإكسبيرت) لأن الأداة لا تحتسب أحجام المراكز — هي فقط تضبط SL/TP/القفل/الترافلنغ على المراكز التي فتحها كود آخر. نمط العميل (المخفي) يجعله مناسباً لتحديات الـ prop firm التي تمنع الوقوف الجانبية الظاهرة على الخادم؛ نمط الخادم يناسب حسابات ECN التي تُفضّل الوقوف الظاهرة.

منطق الاستراتيجية

Pipsgrowth EX16072 Trend — تحليل منطق الاستراتيجية (من كود .mq5)

العائلة: Trend الماجيك: 22216072 الإصدار: 2.00

الوصف: Auto SL/TP manager that applies stop-loss and take-profit to open positions with lock-profit and trailing-stop features. Supports server-side or hidden (client) SL/TP and multiple trailing methods

المؤشرات:

  • مؤشرات قياسية

الدوال الرئيسية:

  • TryClose_EX16072()
  • TryClosePartial_EX16072()
  • TryModify_EX16072()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX16072 Trend — Execution Flow (from source analysis)
// Family: Trend
// Auto SL/TP manager that applies stop-loss and take-profit to open positions with lock-profit and trailing-stop features. Supports server-side or hidden (client) SL/TP and multiple trailing methods

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)

ملف التحسين

الوسطاء المُحسّنون:
ExnessIC Markets
الرموز المُحسّنة:
XAUUSD
الأطر الزمنية المُحسّنة:
M5H1

كيفية تثبيت الإكسبرت على MT5

  1. 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
  2. 2افتح برنامج MetaTrader 5 على حاسوبك
  3. 3من القائمة العلوية اختر File → Open Data Folder
  4. 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
  5. 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
  6. 6اسحب الإكسبرت على رسم H4 أو اليومي للحصول على أفضل النتائج
  7. 7حدد فترات EMA وعتبة ADX وحجم اللوت في نافذة الإعدادات
  8. 8فعّل Allow Algo Trading واضغط OK

معاملات الإكسبرت

المعاملالافتراضيالوصف
InpMagicNumber22216072Magic number
TakeProfit550Take Profit
StopLoss350Stop Loss
SLnTPModeServerSL & TP Mode
LockProfitEnableLP_ENABLEEnable/Disable Profit Lock
LockProfitAfter100Target point to Lock Profit
ProfitLock60Profit To Lock
TrailingStopMethodTS_CLASSICTrailing Method
TrailingStop50Trailing Stop
TrailingStep10Trailing Stop Step
Slippage10Slippage
ChartSymbolSelectionAllOpenOrderinput bool inpEnableAlert=false;//Enable Alert
inpEnableTestfalseEnable Test on Strategy Tester
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16072.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16072 Ronz SLTP MT5 — auto SL/TP manager with lock-profit and trailing stop, full 12-layer stack."

input long   InpMagicNumber  = 22216072; // Magic number
input string InpTradeComment = "Psgrowth.com Expert_16072";

#include <Trade\Trade.mqh> CTrade trade;
enum ENUM_CHARTSYMBOL
  {
   CurrentChartSymbol=0,//Current Chart Only
   AllOpenOrder=1//All Opened Orders
  };
enum ENUM_SLTP_MODE
  {
   Server=0,//Place SL n TP
   Client=1 //Hidden SL n TP
  };
enum ENUM_LOCKPROFIT_ENABLE
  {
   LP_DISABLE=0,//Disable
   LP_ENABLE=1//Enable
  };
enum ENUM_TRAILINGSTOP_METHOD
  {
   TS_NONE=0,//No Trailing Stop
   TS_CLASSIC=1,//Classic
   TS_STEP_DISTANCE=2,//Step Keep Distance
   TS_STEP_BY_STEP=3 //Step By Step
  };
sinput const string SLTP="";//=== SL & TP ===
input int   TakeProfit=550;//Take Profit
input int   StopLoss=350;//Stop Loss
input ENUM_SLTP_MODE SLnTPMode=Server;//SL & TP Mode
sinput const string Lock="";//=== Lock Profit ===
input ENUM_LOCKPROFIT_ENABLE LockProfitEnable=LP_ENABLE;//Enable/Disable Profit Lock
input int   LockProfitAfter=100;//Target point to Lock Profit
input int   ProfitLock=60;//Profit To Lock
sinput const string Trailing="";//=== Trailing Stop ===
input ENUM_TRAILINGSTOP_METHOD TrailingStopMethod=TS_CLASSIC;//Trailing Method
input int   TrailingStop=50;//Trailing Stop
input int   TrailingStep=10;//Trailing Stop Step
input int Slippage   = 10; //Slippage
input ENUM_CHARTSYMBOL  ChartSymbolSelection=AllOpenOrder;//
input bool   inpEnableAlert=false;//Enable Alert
input bool   inpEnableTest=false;//Enable Test on Strategy Tester

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class AutoSLTP
  {
private:
   //--
   bool              CheckMoneyForTrade(string sym, double lots,ENUM_ORDER_TYPE type);
   bool              CheckVolumeValue(string sym, double volume);
   bool              RZ_TrailingStop(ulong ticket, int JumlahPoin,int Step=1,ENUM_TRAILINGSTOP_METHOD Method=TS_STEP_DISTANCE);
   bool              LockProfit(ulong ticket, int Targetpoint,int Lockedpoint);

الكود المصدري الكامل متاح عند التحميل

لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.

الوسوم:ex16072trendpipsgrowthfreemt5xauusd

تحذير صريح: لأغراض تعليمية فقط

تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.

وسطاء موصى بهم لهذا الإكسبرت

هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض

مجتمع المستخدمين

سجّل دخولك للمشاركةتسجيل الدخول

لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.

اسم الملفPipsgrowth_com_EX16072.mq5
حجم الملف20.3 KB
الإصدارv2.00
PlatformMetaTrader 5
نوع الملف.mq5 Source
الاستراتيجيةمتابعة الاتجاه
المخاطرةمخاطرة متوسطة
الأطر الزمنية
M5H1
أزواج العملات
XAUUSD
الحد الأدنى للإيداع$100