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

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

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

Pipsgrowth EX16076 Trend — Smart trend follower using MA cross or trend-follow mode with Stochastic confirmation. Supports layered entries with con. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

EX16076 هو مستشار خبير ذكي يتبع الاتجاهات ويمنحك طريقتين مختلفتين لقراءة الزخم على نفس الشارت، ثم يضيف صفقات إضافية على شكل سلة يكون جني الأرباح ووقف الخسارة فيها محسوباً من سعر التعادل المرجح بحجم الصفقات وليس من سعر الدخول الأصلي. كلا وضعي الإشارة يعملان على الإطار الزمني للشارت — يحدد المستشار M5 كإطار عمل رئيسي و H1 كإطار مدعوم، والإشارة الافتراضية هي تقاطع متوسطين متحركين.

وضعَا الإشارة يختارهما متغير inJnsSignal (نوع إشارة). في وضع eTypeCrossMA (الافتراضي) تسحب دالة GetSignal() آخر ثلاث قيم لمتوسطَين بسيطَين — inMAPeriodFast افتراضياً 14 و inMAPeriodSlow افتراضياً 28، كلاهما SMA على الإغلاق — وتراقب انعكاس الخط السريع نسبةً إلى البطيء. إشارة بيع تُرسَل عندما يكون السريع فوق البطيء حالياً وكان تحته في الشمعة السابقة، وإشارة شراء تُرسَل عندما يكون السريع تحت البطيء حالياً وفوقه في الشمعة السابقة. هذا النمط المكون من شمعتين هو تأكيد متعمد وليس مجرد لمس على شمعة واحدة، فالمستشار يأخذ الشمعة الثانية بعد التقاطع وليس شمعة التقاطع نفسها.

عند تبديل inJnsSignal إلى eTypeTrend يتغير المحرك. الآن تقرأ GetSignal() قيمة الشمعة 1 فقط لكنها تضيف مؤشراً ثالثاً — gSTOHandle، وهو iStochastic بـ K=10 و D=3 و slowing=3 على low-high. زوج المتوسطات لا يزال مطلوباً لكن التقاطع نفسه لم يعد كافياً — إشارة شراء تُرسَل عندما يكون السريع فوق البطيء (مرشح اتجاه) والشمعة السابقة شمعة صاعدة (فتح تحت الإغلاق) والخط الرئيسي للستوكاستيك عند 30 أو أقل. إشارة بيع هي المرآة. بمعنى آخر، متابعة اتجاه مع دخول عند الانعكاس: المستشار ينتظر حتى يسحب الاتجاه الصاعد السعر إلى منطقة تشبع بيعي قبل أن يضغط الزناد.

حين تصل الإشارة يسلمها OnTick إلى manageTrading(). لو كانت هذه أول صفقة في الاتجاه، تحسب getLotSize() اللوت كـ inLotSize * MathPow(inMultiply, layerIndex) — للصفقة الأولى يكون 0.01 افتراضياً. تقوم validateLot() بتثبيت القيمة عند step الحجم، وتقييدها بين min/max، وتتأكد CheckMoneyForTrade() من الهامش الحر قبل أن ترسل openTrade() الأمر السوقي بسحر 22216076 وتعليق "Psgrowth.com Expert_16076". لو كان الاتجاه يحوي صفقة مفتوحة بالفعل، لا يفتح المستشار صفقة جديدة فوراً، بل يراقب تحرك السعر ضد الصفقة القائمة بمقدار inJarakLayer نقطة — 200 نقطة افتراضياً — وعندها فقط يفتح الطبقة التالية. للشراء يكون الشرط آخر سعر شراء − 200 * Point() >= Ask الحالي، ولبيع آخر سعر بيع + 200 * Point() <= Bid الحالي. صيغة getLotSize() ذاتها تعني أن المضاعف يتحكم بمقدار توسع كل طبقة عن الأولى — مع 1.0 تبقى كل الطبقات عند 0.01، ومع 1.5 تصبح الطبقة N هي 0.01 * 1.5^N.

مصفوفة trades[2] تخزن الحالة الجارية لكل جانب: عدد الصفقات (ttlPos)، وآخر سعر دخول للشراء أو البيع (hargaTA و hargaTB)، والقيمة التراكمية (ttlValue)، والحجم التراكمي (ttlLot). تعيد updateDataTrades() بناء هذه المصفوفة عند كل إشارة بتفحص PositionsTotal() عن الصفقات المطابقة للرمز والسحر وتأخذ أعلى وأقل سعر دخول في كل جانب وتجمع القيمة المرجحة بالحجم. هذه البنية وحدها هي ما يجعل جني الأرباح ووقف الخسارة على مستوى السلة ممكناً.

setTPSL() تعمل بدون شرط في كل تيكة — ليس فقط في المناسبات الجديدة — وهي منطق الخروج. تعيد بناء المصفوفة ثم تحسب لكل جانب سعر التعادل المرجح ttlValue / ttlLot، أي متوسط الدخول المرجح بكل صفقة في السلة. للشراء: جني الأرباح = BEP + inTakeProfit * Point() ووقف الخسارة = BEP − inStopLoss * Point(). للبيع تنعكس الإشارة. inTakeProfit افتراضياً 500 (50 نقطة) وinStopLoss افتراضياً 0 أي أن السلة فيها جني أرباح لكن بدون وقف. تتابع الدالة كل صفقة مفتوحة مطابقة للسحر وتستدعي modifTPSL() لدفع الـ TP/SL الجديد على أي صفقة لم يعد المستوى المطبق عليها محدّثاً. ولأن القيمتين على مستوى السلة وليس لكل صفقة، فإن كل الطبقات تُغلق معاً بمجرد وصول السعر إلى هدف BEP. ضبط inStopLoss على قيمة موجبة يُفعّل وقف خسارة على مستوى السلة أيضاً.

عنصر تحكم مخاطرة صغير لكنه حقيقي: ترفض getLotSize() أي لوت تتجاوز معه الكتلة الاتجاهية حد SYMBOL_VOLUME_LIMIT، وترفض CheckMoneyForTrade() أي لوت لا يكفي الهامش الحر لتغطيته. حتى مع مضاعفات مارتينجال عدوانية يبقى حد الحجم لدى الوسيط وحد الهامش في الحساب ضمن الحلقة.

المستشار بسيط ومباشر: كتلة رأسية، ثلاث مقابض مؤشرات تُنشأ مرة في OnInit، توليد إشارة من مرحلتين، جني أرباح/وقف خسارة على مستوى السلة عبر BEP مرجح، دخول متعدد الطبقات بمسافات قابلة للتكوين، كائن Trade القياسي مع ثلاث أدوات إعادة محاولة — TryClose_EX16076 و TryClosePartial_EX16076 و TryModify_EX16076 — تغلف CTrade بثلاث محاولات في حالات requote و timeout و price-off و price-changed. هذه الأدوات معرّفة في الكود لكنها لا تُستدعى حالياً من OnTick؛ المسار التنفيذي الحي يستخدم OrderSend خام في openTrade() و modifTPSL(). كود إعادة المحاولة موجود كشبكة أمان يمكن لمراجعة مستقبلية ربطه دون إعادة هيكلة. المستشار لا يستخدم فلتر جلسة، ولا فلتر أخبار، ولا OnTester، ولا قاطع خسارة يومي — جميع ضوابط المخاطر المتوقعة تبقى خارجه.

بما أن وقف الخسارة الافتراضي صفر وجني الأرباح محسوب من متوسط الدخول المرجح، فإن المستشار مصمم بنيوياً لحالة "اترك السلة تنضج" — افتح أول صفقة، تراكم الطبقات مع تحرك السعر ضدك، أغلق السلة بأكملها عند هدف نقاط ثابت من BEP لحظة انعكاس السعر. التباعد الافتراضي 200 نقطة والمضاعف 1.0 يحافظان على تعرض الطبقات صغيراً؛ رفع inMultiply فوق 1.0 يحول المستشار بسرعة إلى نظام متوسط مرجح مارتينجال وعلى المتداول أن يعتبر وقف الخسارة على مستوى السلة هو المتحكم الرئيسي بالمخاطرة وليس شبكة أمان.

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

تعمل GetSignal() فقط عند افتتاح شمعة جديدة، بمقارنة الشمعة 0 والشمعة 1 من المتوسطين لاكتشاف تقاطع من شمعتين — الإشارة تُرسَل في الشمعة الثانية وليس شمعة التقاطع. في وضع eTypeTrend تقرأ الدالة أيضاً اتجاه الشمعة 1 والخط الرئيسي للستوكاستيك، وتطلب اتجاهاً مؤكداً (السريع فوق البطيء) مع انعكاس (ستوكاستيك ≤ 30 للشراء). تتولى manageTrading() دفتر الصفقات: أول صفقة باللوت الأساسي، الطبقات اللاحقة تُفتح فقط عند تحرك السعر بمقدار inJarakLayer (200 نقطة) ضد الجانب القائم، ويتدرج حجم كل طبقة وفق MathPow(inMultiply, layerIndex). setTPSL() هي منطق الخروج الجوهري — تعمل في كل تيكة (ليست مقيّدة بشمعة جديدة)، وتعيد حساب BEP السلة من بنية trades[] الحية، وتعيد كتابة TP و SL موحدَين على كل صفقة مفتوحة. ثلاث أدوات إعادة محاولة (TryClose_EX16076 و TryClosePartial_EX16076 و TryModify_EX16076) تغلف CTrade بثلاث محاولات في حالات requote و timeout و price-change، لكن المسار الحي يستخدم OrderSend خام فتكون إعادة المحاولة كوداً خاملاً.

إشارة الدخول

في وضع Cross-MA الافتراضي تُرسَل الإشارة عند انعكاس متوسط 14 فترة فوق أو تحت متوسط 28 فترة بين الشمعة 1 والشمعة 0 — تأكيد بشمعتين يأخذ الشمعة الثانية وليس شمعة التقاطع. وضع Trend يستبدل التقاطع بمرشح "اشترِ عند الانخفاض": يجب أن يكون متوسط 14 فوق متوسط 28 وأن تكون الشمعة السابقة صاعدة وأن يكون خط الستوكاستيك الرئيسي iStochastic(10,3,3) عند 30 أو أقل للشراء أو 70 أو أكثر للبيع. لوت الطبقة الأولى هو inLotSize الأساسي (0.01 افتراضياً)؛ الطبقات اللاحقة يُفعّلها تحرك السعر بمقدار inJarakLayer (200 نقطة) ضد الصفقة القائمة ويتدرج حجمها وفق inMultiply (1.0 افتراضياً = بدون تدرج).

إشارة الخروج

تعمل setTPSL() في كل تيكة، وتعيد حساب سعر التعادل المرجح بسلة الاتجاه (ttlValue / ttlLot)، وتعيد كتابة TP و SL على كل صفقة مفتوحة في السلة لتصبح نفس القيم على مستوى السلة. جني الأرباح = BEP + inTakeProfit * Point() (500 نقطة = 50 نقطة افتراضياً) ووقف السلة = BEP − inStopLoss * Point() (0 افتراضياً، أي لا وقف). ولأن حماية السلة موحدة، تُغلق كل الطبقات معاً عند وصول السعر إلى الهدف.

وقف الخسارة

وقف الخسارة لكل صفقة مضبوط على صفر افتراضياً (inStopLoss = 0)، فلا تحمل الطبقات الفردية أي وقف. وقف الخسارة على مستوى السلة — الذي يثبّته setTPSL() على كل صفقة في السلة عند inStopLoss > 0 — يقع بمقدار inStopLoss * Point() تحت سعر التعادل المرجح للشراء أو فوقه للبيع ويُخرج كل الطبقات معاً.

جني الأرباح

جني الأرباح على مستوى السلة وليس لكل صفقة. تحسب setTPSL() قيمة BEP + inTakeProfit * Point() (500 نقطة = 50 نقطة افتراضياً) للشراء وBEP − inTakeProfit * Point() للبيع، حيث BEP هو المتوسط المرجح بحجم كل أسعار الدخول المفتوحة في السلة، ثم تكتب نفس الـ TP على كل طبقة.

الأنسب لـ

EX16076 مهيّأ لحساب بحد أدنى 100 دولار على XAUUSD M5 أو H1 بمخاطرة متوسطة، بلوت أساسي 0.01 وبدون تدرج عند inMultiply = 1.0 الافتراضي. بنية السلة (دخول متعدد الطبقات كل 200 نقطة، جني أرباح 50 نقطة من BEP المرجح، بدون وقف لكل صفقة افتراضياً) تجعله الأنسب للمتداولين الذين يريدون اتجاه دخول واحد مدفوعاً بإشارة ويقبلون سياسة "اترك السلة تنضج" للخروج. وضع eTypeCrossMA هو نقطة البداية المناسبة على M5 في ساعات عمل لندن ونيويورك معاً عندما يكون XAUUSD في نطاق أو اتجاه بفصل واضح بين المتوسطين؛ وضع eTypeTrend يناسب الانعكاسات في اتجاهات راسخة وأكثر انتقائية في توقيت الدخول. الشرط الواقعي للوسيط هو سرعة تنفيذ وسبريد منخفض — لا يوجد فلتر سبريد ولا بوابة جلسة ولا فلتر أخبار، فالسبريد المرتفع أو فجوة نافذة الخبر ستصطدم بالسلة مباشرة.

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

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

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

الوصف: Smart trend follower using MA cross or trend-follow mode with Stochastic confirmation. Supports layered entries with configurable spacing; martingale multiplier disabled by default. Includes break-even TP/SL management across all open positions

المؤشرات:

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

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

  • isNewCandle()
  • GetSignal()
  • manageTrading()
  • updateDataTrades()
  • openTrade()
  • setTPSL()
  • modifTPSL()
  • validateLot()
  • getLotSize()
  • getTotalVolume()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX16076 Trend — Execution Flow (from source analysis)
// Family: Trend
// Smart trend follower using MA cross or trend-follow mode with Stochastic confirmation. Supports layered entries with configurable spacing; martingale multiplier disabled by default. Includes break-even TP/SL management across all open positions

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

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

المعاملالافتراضيالوصف
inMagicNumber22216076Magic number
inLotSize0.01Initial Lot Size
inMultiply1.0Multiplier (1.0 = no martingale)
inJarakLayer200Jarak Layer (pips)
inJnsSignaleTypeCrossMASignal Type
inMAPeriodFast14MA Fast
inMAPeriodSlow28MA Slow
inSTOKPeriod10Sto %K
inSTODPeriod3Sto %D
inSTOSlowing3Slowing
inTakeProfit500Take Profit
inStopLoss0Stop Loss
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16076.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16076 Smart Trend Follower — MA + Stochastic trend follower, full 12-layer stack."
#include <Trade\Trade.mqh>


enum enumJnsSignal{
   eTypeCrossMA,  //Cross 2 MA
   eTypeTrend,    //Follow Trend
};

enum enumOrderType{
   eBuy,    //BUY
   eSell,   //SELL
   eNone = 99, //None
};

sinput const string GroupIdentity="";//=== Identity ===
input    int         inMagicNumber  = 22216076;  // Magic number
input    string      InpTradeComment = "Psgrowth.com Expert_16076";
sinput const string GroupTrading="";//=== Trading ===
input    double      inLotSize      = 0.01;     //Initial Lot Size
input    double      inMultiply     = 1.0;      //Multiplier (1.0 = no martingale)
input    int         inJarakLayer   = 200;       //Jarak Layer (pips)

input    enumJnsSignal  inJnsSignal = eTypeCrossMA;    //Signal Type

sinput const string GroupMA="";//=== Moving Average ===
input    int         inMAPeriodFast = 14;       //MA Fast
input    int         inMAPeriodSlow = 28;       //MA Slow

sinput const string GroupStochastic="";//=== Stochastic Oscillator ===
input    int         inSTOKPeriod   = 10;       //Sto %K
input    int         inSTODPeriod   = 3;       //Sto %D
input    int         inSTOSlowing   = 3;       //Slowing

sinput const string GroupExit="";//=== Exit Management ===
input    int         inTakeProfit   = 500;      //Take Profit
input    int         inStopLoss     = 0;       //Stop Loss


struct dataTrades{
   int ttlPos;
   double hargaTA, hargaTB;
   double ttlValue, ttlLot;
   void initial(){
      ttlPos   = 0;
      hargaTA  = hargaTB = 0.0;
      ttlValue = ttlLot = 0.0;
   }
};

int gMAFastHandle, gMASlowHandle, gSTOHandle;
dataTrades trades[2];

double gLotMin, gLotMax,gLotStep, gLotLimit;

//+------------------------------------------------------------------+

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

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

الوسوم:ex16076trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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