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

Pipsgrowth EX18086 TrendFollow — إكسبرت أدفايزر إكسبرت أدفايزر

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

Pipsgrowth EX18086 TrendFollow — MA-based signal/trailing Expert using the standard CExpert library with a Moving Average signal and MA trailing. 12 laye. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

EX18086 TrendFollow هو مستشار خبير متعمَّد في بساطته. لا يحسب مؤشرات خاصة به، ولا يرسم أنظمة حالة (regime) داخلية، ولا يضع قواعد لإدارة رأس المال. بدلاً من ذلك، يربط الكود المصدري بين ثلاث فئات قياسية من مكتبة MQL5 — CExpert و CSignalMA و CTrailingMA — داخل دالة OnInit()، ثم يحوّل كل حدث سوق إلى ExtExpert.OnTick(). دورة حياة الصفقة بأكملها مُسندة إلى المكتبة القياسية، وهذا تحديداً سبب قصر ملف .mq5 وسبب وجوب أن يركّز المتداول على المعاملات التي يكشفها المستشار بدلاً من حجم الكود.

محرك الإشارة متوسط متحرك واحد. تُقيّم CSignalMA ثلاثة شروط على الشمعة المغلقة: يجب أن يكون المتوسط في الاتجاه الصحيح (صاعد للشراء، هابط للبيع)، ويجب أن يكون سعر الإغلاق على الجانب الصحيح من المتوسط، ويجب أن تكون قيمة المتوسط عند إزاحة قابلة للتعديل على نفس الجانب من خط الترشيح. يضبط EX18086 هذه الإشارة عبر Inp_Signal_MA_Period=12 و Inp_Signal_MA_Shift=6 و Inp_Signal_MA_Method=MODE_SMA و g_Inp_Signal_MA_Applied=PRICE_CLOSE. إن قيمة Shift=6 هي الأكثر حسمًا: ينظر المستشار إلى قيمة المتوسط المتحرك قبل ست شموع كمرجع للاتجاه، لا إلى الشمعة الأخيرة. يعمل هذا التأخير على ترشيح التذبذبات الصغيرة في المتوسط — فالمتوسط البسيط لعشر شمعدانات قبل ست شموع يُعد مؤشر اتجاه مستقر — لكنه يُكلّفك توقيت الدخول. تُفتح الصفقة في وقت متأخر مقارنةً بإشارة بإزاحة صفر، وهذا هو المفاضلة الجوهرية للاستراتيجية.

التتبع (Trailing) هو جوهر هذا المستشار. تستبدل CTrailingMA وقف الخسارة الثابت بالنقاط بمتوسط متحرك يتبع السعر. تنشئ OnInit() كائن التتبع بالقيم Inp_Trailing_MA_Period=12 و Inp_Trailing_MA_Shift=0 و Inp_Trailing_MA_Method=MODE_SMA و g_Inp_Trailing_MA_Applied=PRICE_CLOSE. كلما تحرّك السعر في الاتجاه المربح، تتقدّم قيمة المتوسط معه، وتستدعي CExpert ربط CheckTrailingStop() لكائن التتبع في كل تيك، مما يسحب وقف الخسارة على طول منحنى المتوسط. حين يرتد السعر نحو المتوسط، تُغلق الصفقة عند قيمة المتوسط. ينتج عن ذلك وقف "يتنفس" مع الاتجاه بدلاً من تثبيت مسافة ثابتة — تُترك الصفقة تعمل ما دام السعر بعيدًا فوق المتوسط (للشراء) أو تحته (للبيع)، وتُغلق حين ينحني الاتجاه نفسه.

الفئة القياسية الثالثة هي CMoneyNone، التي تُنشأ في OnInit() دون معاملات. تطبّق CMoneyNone واجهة IMoney بقاعدة واحدة: استخدم دائمًا الحد الأدنى للوت المسموح به من الوسيط. يتجاهل EX18086 بالتالي نسبة المخاطرة، وإجمالي الحساب، وحجم اللوت — حجم الصفقة ثابت عند أصغر صفقة يقبلها الوسيط. هذه هي الجانب الأكثر هشاشة في المستشار. على حساب سنت، قد يكون الحد الأدنى للوت 0.10 على XAUUSD أكبر بعدة مرات مما يتوقعه المتداول؛ على الحساب القياسي الحد الأدنى 0.01 مناسب. الفئة متّسقة مع بقية الكود: كل طبقة أخرى هي أيضًا الافتراضي من المكتبة القياسية.

تلتفّ ثلاث دوال مساعدة حول CTrade API للتعامل مع حالات الرفض المؤقتة من الوسيط. TryClose_EX18086(ulong ticket) تستدعي PositionClose وتعيد المحاولة حتى ثلاث مرات عند TRADE_RETCODE_REQUOTE أو TRADE_RETCODE_TIMEOUT أو TRADE_RETCODE_PRICE_OFF أو TRADE_RETCODE_PRICE_CHANGED، مع نوم 200 مللي ثانية بين المحاولات. TryClosePartial_EX18086(ticket, volume) تفعل الشيء نفسه لـ PositionClosePartial. TryModify_EX18086(ticket, sl, tp) تلفّ PositionModify بنفس نمط إعادة المحاولة لكن بنوم 100 مللي ثانية. هذه الدوال هي الكود المخصص الوحيد في المستشار؛ وهي موجودة لضمان أن تعديلات وقف الخسارة المتنقل وعمليات الإغلاق النهائية كلها تصل إلى الوسيط حتى عندما يكون الخادم مشغولاً.

مجموعة المخاطر هي بالتالي القيم الافتراضية القياسية في MQL5. لا توجد دالة تعادل (break-even)، ولا قفل أرباح متدرّج، ولا فلتر جلسة، ولا سقف سبريد، ولا حد خسارة يومي، ولا فلتر أخبار، ولا مصنّف حالة، ولا تأكيد إطار زمني أعلى، ولا إغلاق عند إشارة معاكسة. Expert_EveryTick مضبوط على false، مما يعني أن المستشار مدفوع بالشموع لا بالتيكات: تُقيّم الإشارات والدخول عند افتتاح كل شمعة جديدة، لا عند كل تغيّر في السعر. تتولى CExpert إدارة وقف الخسارة على مستوى التيك داخليًا، لكن الدخول يحدث فقط عند افتتاح الشمعة. يتجنّب هذا مشكلة الأوامر المكررة التي تصيب بعض المستشارات المعتمدة على التيك، لكنه يعني أن شمعة سريعة قد تتحرك بعيدًا قبل أن يتفاعل المستشار.

معالجتا OnTrade() و OnTimer() سطر واحد لكل منهما يحوّل ببساطة إلى ExtExpert.OnTrade() و ExtExpert.OnTimer(). تستدعي OnDeinit() الدالة ExtExpert.Deinit() لتنظيف كائن CExpert. لا توجد OnTester() مخصصة، لذا سيستخدم Strategy Tester مقياس اللياقة الافتراضي لـ MetaTrader (الربح). تُدار جميع مخازن المؤشرات داخل CSignalMA و CTrailingMA — المستشار لا يحتفظ بمقابض خاصة به لـ iMA أو iATR أو iRSI أو أي مؤشر آخر.

ما هو هذا المستشار بكل بساطة هو خط أساس نظيف. إنه عيّنة ExpertMA من المكتبة القياسية لـ MQL5 برقم سحري 22218086، ومتوسط إشارة فترة 12 مع إزاحة 6، ومتوسط تتبع فترة 12 دون إزاحة. المفاضلة هي بين الدخول المتأخر والدخول الخاطئ. المتداولون الذين يريدون دراسة كيفية تصرّف تركيبة CSignalMA + CTrailingMA على XAUUSD M5 مع وسيط سبريد 1 pip سيجدون في هذا نقطة انطلاق مفيدة. أما المتداولون الذين يريدون إدارة مخاطر جاهزة، أو فلاتر جلسة، أو تصنيف حالة، أو تكديس مراكز (pyramiding)، فعليهم النظر إلى المستشارات الأكثر تعقيدًا في الكتالوج — EX18086 هو اللوحة، وليس اللوحة النهائية.

السلوك المتوقع في الاختبار الخلفي مباشر: يوم اتجاهي على XAUUSD M5 بحركة مستدامة في اتجاه واحد سينتج سلسلة نظيفة منEntries متابعة للمتوسط مع تقدّم سلس لوقف الخسارة المتنقل والخروج بالقرب من المتوسط عند نضوب الاتجاه. يوم عرضي أو متذبذب سينتج خسائر صغيرة كثيرة حيث يضرب المتوسط المتنقل السعر جيئةً وذهابًا. تعمل إزاحة 6 شموع في المتوسط كفلتر بطيء يُخمد معظم التذبذب — لكن ليس كله. وكما هو الحال دائمًا مع مستشار التفاف (wrapper)، فإن سبريد الوسيط، وعمولة الرمز، وحجم اللوت الأدنى الذي يحدّده الوسيط هي التي ستتحكم في منحنىEquity. اختبر على الرمز الفعلي الذي سيتداول عليه المستشار، مع الوسيط الفعلي، قبل تخصيص رأس مال.

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

تُنشئ OnInit قاعدة CExpert، وتُرفق وحدة إشارة CSignalMA مُعدّة بـ SMA(12, shift=6, close) كمرجع اتجاه للدخول، وتُرفق وحدة تتبع CTrailingMA مُعدّة بـ SMA(12, shift=0, close) كمنحنى وقف الخسارة، وتُرفق وحدة تحجيم CMoneyNone تختار دائمًا الحد الأدنى للوت من الوسيط. في كل تيك، تدفع ExtExpert.OnTick() الدورة: يُعيد ربط CTrailingMA تقييم وقف الخسارة المتنقل في كل تيك ويسحب وقف الخسارة على طول المتوسط حين يتحرك السعر لصالح الصفقة، وفي كل شمعة جديدة (Expert_EveryTick=false) تسأل CExpert وحدة CSignalMA عن حكمها بالشراء/البيع وترسل أمر سوق عبر دوال TryModify_EX18086 / TryClose_EX18086 الملفوفة بإعادة المحاولة. الإشارة هي المنطق المخصص الوحيد؛ كل شيء آخر هو المكتبة القياسية لـ MQL5 تعمل بفترتي متوسط متحرك محددتين، واحدة بإزاحة والأخرى بدون.

إشارة الدخول

يدخل EX18086 عند افتتاح شمعة M5/H1 حين تُبلغ CSignalMA عن تحقق شرط اتجاه المتوسط: يؤكد SMA(12) بإزاحة 6 على الاتجاه، ويكون سعر الإغلاق على الجانب الصحيح من المتوسط، ويتفق خط ترشيح المتوسط معه. تُقيّم CExpert الإشارة على الشمعة الجديدة (Expert_EveryTick=false)، لذا يُرسل الأمر مرة واحدة لكل شمعة، لا على كل تيك.

إشارة الخروج

تُغلق الصفقة حين تسحب دالة CheckTrailingStop() في CTrailingMA وقف الخسارة ليلحق بالسعر: حين يلحق خط التتبع SMA(12) بالارتداد، تُغلق CExpert الصفقة عند قيمة المتوسط. لا يوجد خروج عند إشارة معاكسة، ولا وقف زمني، ولا إغلاق في نهاية اليوم — المتوسط المتنقل هو منطق الخروج الوحيد.

وقف الخسارة

لا يوجد وقف خسارة ثابت بالنقاط. وقف الخسارة ديناميكي: يتبع CTrailingMA السعر على منحنى SMA(12, shift=0, close)، لذا فإن وقف الخسارة يتنفس مع الاتجاه. قد ينتج عن ارتفاع مفاجئ وقف خسارة واسع عند الدخول قبل أن يتقارب المتوسط.

جني الأرباح

لا يوجد هدف جني أرباح. EX18086 هو نظام تتبع اتجاه بحت — تبقى الصفقة مع المتوسط حتى يوقفها CTrailingMA. الإغلاقات الجزئية عبر TryClosePartial_EX18086 مدعومة في الـ wrapper لكن الاستراتيجية لا تستدعيها.

الأنسب لـ

يناسب EX18086 حساب XAUUSD M5 أو H1 صغير (الحد الأدنى للإيداع 100 دولار، تصنيف مخاطرة متوسط) على وسيط ECN بسبريد منخفض حيث يكون الحد الأدنى للوت معقولاً. الإطار الزمني M5/H1 يناسب جلسات الاتجاه خلال اليوم (لندن وتداخل لندن/نيويورك) حيث يميل الذهب إلى اتجاه نظيف؛ إزاحة 6 شموع في متوسط الإشارة هي فلتر بطيء، لذا من المرجح أن تنتج النطاقات الآسيوية الليلية المتذبذبة سلسلة من خسائر صغيرة من إيقاف التتبع. يمكنك إقران هذا المستشار بمصدر إشارة آخر للتأكيد — بحد ذاته هو دراسة للمكتبة القياسية لـ MQL5 أكثر من كونه نظام تداول كامل.

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

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

العائلة: TrendFollow الماجيك: 22218086 الإصدار: 2.00

الوصف: MA-based signal/trailing Expert using the standard CExpert library with a Moving Average signal and MA trailing. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • OnTrade()
  • OnTimer()
  • TryClose_EX18086()
  • TryClosePartial_EX18086()
  • TryModify_EX18086()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX18086 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// MA-based signal/trailing Expert using the standard CExpert library with a Moving Average signal and MA trailing. 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)

ملف التحسين

الوسطاء المُحسّنون:
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

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

المعاملالافتراضيالوصف
Expert_MagicNumber22218086Magic number
Inp_Signal_MA_Applied1Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted)
Inp_Trailing_MA_Applied1Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted)
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX18086.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX18086 ExpertMAMA — MA signal and trailing Expert, full 12-layer stack."
//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
#include <Expert\Signal\SignalMA.mqh>
#include <Expert\Trailing\TrailingMA.mqh>
#include <Expert\Money\MoneyNone.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
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_APPLIED_PRICE g_Inp_Signal_MA_Applied = PRICE_CLOSE;
ENUM_APPLIED_PRICE g_Inp_Trailing_MA_Applied = PRICE_CLOSE;
input group "=== Identity ==="
input string             Inp_Expert_Title       ="Pipsgrowth.com Expert_18086";
input string             InpTradeComment        ="Psgrowth.com Expert_18086";
input long               Expert_MagicNumber     =22218086; // Magic number
bool                     Expert_EveryTick       =false;
//--- inputs for signal
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_APPLIED_PRICE g_Inp_Signal_MA_Applied = PRICE_CLOSE;
ENUM_APPLIED_PRICE g_Inp_Trailing_MA_Applied = PRICE_CLOSE;
input group "=== Signal (MA) ==="
input int                Inp_Signal_MA_Period   =12;
input int                Inp_Signal_MA_Shift    =6;
input ENUM_MA_METHOD     Inp_Signal_MA_Method   =MODE_SMA;
input int Inp_Signal_MA_Applied = 1; // Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted)
//--- inputs for trailing

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

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

الوسوم:ex18086trendfollowpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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