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

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

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

Pipsgrowth EX18112 TrendFollow — Gold trend-following EA using LWMA fast/slow crossover as a Hull MA proxy, with RSI and Bollinger Band confirmation. Inc. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

أبسط إصدار في عائلة الاتجاه EX18xxx، يتداول EX18112 على الذهب (XAUUSD) في الإطار الزمني 5 دقائق باستخدام مؤشر واحد شبيه بـ Hull MA، مع تأكيد من مؤشر RSI أحادي الجانب ومرشح واحد من Bollinger Bands. اسم الملف في الترويسة Pipsgrowth_com_EX18112_PipsGrowth_XAUUSD_5M.mq5، الإصدار 2.00، الرقم السحري 22218112، والمصمم حصراً للذهب على M5.

ما يفعله الكود فعلياً عند كل تيك: يقرأ أربع مؤشرات ويقرر. CheckSignal() تجلب إغلاق الشمعة السابقة مع المتوسطين LWMA السريع والبطيء، وقيمة RSI، والحدين العلوي والسفلي لمؤشر بولينجر، من المقابض المُنشأة في OnInit(). بوابة الاتجاه ثنائية: fast > slow يعني صعوداً، أي شيء آخر يعني هبوطاً. لا يوجد مرشح ميل، ولا زاوية، ولا تأكيد متعدد الأطر الزمنية — مجرد حالة التقاطع المقروءة من الشمعة السابقة. يلعب RSI دور سقف/أرضية أحادي الجانب: الشراء يتطلب RSI أقل من 70، والبيع يتطلب RSI أعلى من 30. يضيف بولينجر شرط «مساحة للنمو» — الشراء لا يُفعَّل إلا إذا كان السعر تحت الحد العلوي، والبيع لا يُفعَّل إلا إذا كان السعر فوق الحد السفلي. النتيجة توافق ثلاثي ضيق يُطلق الصفقة فوراً عندما يكون اتجاه التقاطع واضحاً والبولينجر ليس في حالة قصوى.

تستحق تقريب Hull توضيحاً. تعليقات الترويسة في الكود تعترف صراحة بأن Hull ليس مؤشراً مدمجاً في MT5، لذلك يستخدم EA اثنين من LWMA لتقريب سلوكه: hLWMA_Fast = iMA(_Symbol, _Period, InpHullPeriod/2, 0, MODE_LWMA, PRICE_CLOSE) و hLWMA_Slow = iMA(_Period, InpHullPeriod, 0, MODE_LWMA, PRICE_CLOSE). مع الافتراضي InpHullPeriod = 20، نحصل على LWMA سريع بعشرة فترات وLWMA بطيء بعشرين فترة، كلاهما على سعر الإغلاق. خيار المستخدم لـ InpHullPeriod ذراع واحد — نصفه يقود الرجل السريعة. مؤشر RSI هو iRSI(_Symbol, _Period, InpRSIPeriod=14, PRICE_CLOSE)، وBollinger Bands تستخدم iBands(_Symbol, _Period, InpBBPeriod=20, 0, 2.0, PRICE_CLOSE) بانحراف معياري 2.0، أي أن النطاق على الجانب الأوسع. تُحرَّر جميع المقابض الأربعة في OnDeinit().

إدارة المخاطر هي أكثر ما يثير الدهشة في الكود. مدخل InpRiskPercent = 1.0 موجود في مجموعة Money Management، لكن EA لا يقرأه أبداً. كل من OpenBuy() وOpenSell() تستدعي trade.Buy(InpFixedLot, _Symbol, mysymbol.Ask(), sl, tp, InpTradeComment) ونظيرتها للبيع، مع افتراضي 0.01. وقف الخسارة وجني الأرباح بالنقاط أيضاً من مجموعة Money Management: InpStopLoss = 400 وInpTakeProfit = 800، ويُحسب السعر الفعلي كـ mysymbol.Ask() - InpStopLoss * mysymbol.Point() (ونظيره على bid للبيع). على XAUUSD يعني ذلك تقريباً وقف $4 وهدف $8 مقابل لوت 0.01 — هيكل مكافأة/مخاطر 2:1 يعتمد على تعريف النقطة للرمز (XAUUSD عادةً منزلتان عشريتان، فـ 400 نقطة تعني $4 من مسافة السعر). الحد الأدنى للإيداع 0.01 / $100 هو الأرضية التي صُمم لها EA؛ أي شيء أصغر يعرّض أمر القوس نفسه لرفض الهامش.

كود التراكم (pyramiding) هو المفاجأة الثانية. ManagePyramid() موجود بالتوقيع الصحيح ويُستدعى في كل تيك من OnTick() بعد mysymbol.RefreshRates(). يتحقق من InpEnablePyramid (افتراضي true) ويضع بوابة على count == 0 || count >= InpMaxPositions مع InpMaxPositions = 3 وInpStep = 200، لكن جسم الدالة لا يضيف أي صفقة فعلياً. التعليق «Standard Step Logic (Same direction) ... (Simplified for brevity: check last pos, if > Step profit, add)» يتبعه كتلة فارغة. مع المدخلات الافتراضية، ما يحدث فعلاً هو دخول واحد لكل دورة إشارة؛ EA نفسه لا يفتح مركزاً ثانياً أبداً. ادعاء الترويسة «12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester» طموح — الطبقات المنفذة فعلياً في الكود هي: الإشارة، الدخول، التأكيد (RSI + BB)، مخاطر القوس، ومحاولة خروج جزئي عبر مساعدات إعادة المحاولة الثلاث.

OnTick() قصير. يحدّث الرمز، يستدعي ManagePyramid() (وهي عملية لا-فعل لبناء المراكز فعلياً)، ولا يستدعي CheckSignal() إلا إذا كان PositionsTotal() == 0. هذا يعني أن الإشارات لا تُولَّد أثناء وجود مركز مفتوح، فـ EA ينتظر إغلاق القوس قبل إعادة الدخول. وضع التعبئة مبرمج مباشرة: trade.SetTypeFilling(ORDER_FILLING_FOK). على الوسطاء الذين لا يدعمون FOK — معظم تغذيات ECN الافتراضية IOC أو RETURN — يمكن لهذا الثابت الواحد أن يتسبب في رفض الأوامر كلياً. يجب على المتداول الذي يعتزم استخدام EX18112 على حساب حقيقي إما تأكيد دعم FOK لدى الوسيط أو توقع تغيير الثابت قبل النشر. تعليق الصفقة InpTradeComment = "Psgrowth.com Expert_18112"، وهو التعريف الوحيد على المنصة خارج الرقم السحري.

مساعدات إعادة المحاولة الثلاث — TryClose_EX18112 وTryClosePartial_EX18112 وTryModify_EX18112 — تتبع نفس نمط الثلاث محاولات المعتاد في العائلة: كل منها يدور حتى ثلاث مرات، وينام 200 مللي ثانية على requote/timeout/price-off/price-changed، وينام 100 مللي ثانية للتعديل على requote/timeout، وتُرجع true فقط عندما يكون trade.ResultRetcode() == TRADE_RETCODE_DONE أو TRADE_RETCODE_DONE_PARTIAL. هي معرَّفة ومرئية في جدول الدوال، لكن لا يوجد استدعاء لها في الكود. مثل جسم ManagePyramid، طبقة إعادة المحاولة موجودة في الملف لكنها غير مربوطة بمسار الأمر الحي؛ استدعاءات trade.Buy / trade.Sell في OpenBuy() وOpenSell() تمر مباشرة عبر CTrade::Buy / Sell وتقبل أي إرجاع أحادي من الوسيط.

هذه البساطة تُحدد من يجب أن يفكر في هذا EA. EX18112 للمتداولين الذين يريدون إشارة واحدة، لوتاً ثابتاً، قوس مخاطر/مكافأة 2:1، ولا إدارة نشطة للمركز خارج القوس. ليس شبكة «ضع وانسَ»، ولا نظام متعدد الأطر الزمنية، ولا محركاً معززاً بالذكاء الاصطناعي. هو، في الجوهر، تقاطع مبرمج يدوياً مع مرشح واحد من كل من مؤشرين معروفين، يهدف لتعليم بنية EA تشغيلي ومجرَّد في MT5. المتداول الذي يريد رؤية شكل تقاطع أحادي الشرط في كود إنتاجي يمكنه قراءة هذا الملف كاملاً في أقل من خمس دقائق وفهم كل سطر يلمس أمراً.

التوقعات العملية على شارت 5 دقائق لـ XAUUSD: تقاطع LWMA(10)/LWMA(20) يُطلق في معظم شموع M5، لذا العامل المُقيِّد هو مرشح RSI + BB، وليس التقاطع نفسه. توقع أن تتجمع الدخولات حول الارتدادات داخل النطاقات — إشارة الشراء تتطلب أن يكون السعر داخل الحد العلوي لكن ليس عنده، ما يترجم إلى دخول متأخر على الارتدادات بدلاً من الاختراقات. اللوت الثابت 0.01 مع قوس 400/800 نقطة يُنتج ربح/خسارة مطلقة صغيرة لكل صفقة؛ توسيع حجم المركز متروك للمتداول، لا للـ EA. مرشح السبريد 250 نقطة (InpMaxSpread = 250) فضفاض بما يكفي للمرور لدى معظم الوسطاء التجزئة في ساعات لندن ونيويورك، لكن السبريد المتسع خلال فترة سيولة التدوير المنخفضة قد يمر أيضاً. أي شخص ينشر هذا في الإنتاج يجب أن يخطط للاختبار على حساب تجريبي أسبوعاً تداولياً كاملاً على الأقل قبل المخاطرة برأس مال حقيقي، لتأكيد مسار تعبئة FOK لدى وسيطه المحدد ومدى تكرار تفعيل تركيبة LWMA + BB فعلاً مقابل كم من الوقت تجلس خاملة بانتظار ارتداد نحو النطاق.

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

في كل تيك يحدّث EA الرمز، يستدعي ManagePyramid() (دالة معرَّفة بجسم فارغ لا تضيف مراكز)، ولا يدخل CheckSignal() إلا عندما يكون PositionsTotal() == 0. تقرأ CheckSignal() إغلاق الشمعة السابقة مع القيم الحالية لمقابض المؤشرات الأربعة: hLWMA_Fast (LWMA بفترة InpHullPeriod/2)، وhLWMA_Slow (LWMA بفترة InpHullPeriod)، وhRSI (فترة 14)، وhBB (20 فترة، انحراف 2.0). اختبارات الشروط الثلاثة (LWMA السريع مقابل البطيء، سقف/أرضية RSI، مساحة بولينجر) تُقيَّم كسلسلة AND واحدة لكل جانب، والفائز يستدعي OpenBuy() أو OpenSell() باللوت الثابت InpFixedLot (افتراضي 0.01)، وقوس 400/800 نقطة، والرقم السحري 22218112، وتعليق الصفقة "Psgrowth.com Expert_18112". تعبئة الأمر مبرمجة مباشرة على ORDER_FILLING_FOK في OnInit()، وهو الذراع الوحيد المتعلق بالوسيط الذي يكشفه EA عبر ثوابت. الحضور على الشارت يقتصر على المؤشرات نفسها؛ لا توجد لوحة معلومات، ولا مستويات مرسومة، ولا لوحة معلوماتية في هذا الإصدار.

إشارة الدخول

يُفتح مركز شراء عندما يكون LWMA السريع (10) فوق LWMA البطيء (20) على الشمعة M5 المغلقة السابقة، وقيمة RSI(14) أقل من 70، والسعر تحت الحد العلوي لبولينجر (20 فترة، انحراف معياري 2.0). مركز البيع هو المرآة: LWMA السريع تحت البطيء، وRSI فوق 30، والسعر فوق الحد السفلي. لا تُقيَّم الإشارات إلا عندما لا يكون هناك مركز مفتوح، لذا يدخل EA دائماً من وضع مسطح.

إشارة الخروج

لا يملك EA خروجاً تقديرياً خارج القوس. تضبط OpenBuy() وOpenSell() وقف الخسارة وجني الأرباح عند فتح الأمر باستخدام InpStopLoss = 400 وInpTakeProfit = 800 نقطة نسبة للدخول، ويستمر المركز حتى يُفعَّل أحدهما من جهة الخادم. مساعدات إعادة المحاولة الثلاث TryClose_EX18112 / TryClosePartial_EX18112 / TryModify_EX18112 موجودة لكنها لا تُستدعى، لذا الإغلاق اليدوي أو عند التعادل ليس جزءاً من المنطق الحي.

وقف الخسارة

وقف خسارة ثابت 400 نقطة (InpStopLoss = 400) يُطبَّق عند فتح الأمر عبر mysymbol.Ask() - InpStopLoss * mysymbol.Point() للشراء (والمرآة على bid للبيع). لا يوجد وقف متابع، ولا منطق تعادل، ولا يُرسل EA أي تعديل لوقف الخسارة بعد الأمر الأولي — المسار الوحيد لتغيير وقف الخسارة هو TryModify_EX18112 المعرَّف وغير المُستدعى.

جني الأرباح

جني أرباح ثابت 800 نقطة (InpTakeProfit = 800) عند الدخول، يُحسب كـ mysymbol.Ask() + InpTakeProfit * mysymbol.Point() للشراء. مع وقف 400 نقطة يعطي ذلك هيكل مكافأة/مخاطر 2:1 في كل صفقة؛ جني الأرباح على جانب الخادم ولا يعدله EA بعد ذلك.

الأنسب لـ

المتداولون الذين يديرون XAUUSD على M5 بحساب $100 الحد الأدنى ويريدون تقاطعاً واحداً مبرمجاً مباشرة بقوس مخاطر/مكافأة 2:1 ولوت ثابت 0.01 — مثالي كمثال تعليمي أو خط أساس لوضع منطق مخصص فوقه. تعرض الجلسة الافتراضي هو حيثما تُضرب شموع M5 (لا يوجد مرشح جلسة منفذ في الكود)، ومسار التعبئة مبرمج FOK، لذا يجب على الوسيط دعم FOK وإلا رُفض الأمر. بالنظر إلى البنية البسيطة وجسم ManagePyramid() الفارغ، هذا EA ذو مخاطر متوسطة بقوس، وليس شبكة أو مارتينجال — صفقة سيئة واحدة يمكن أن تخسر فقط وقف 400 نقطة، وليس سلة كاملة.

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

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

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

الوصف: Gold trend-following EA using LWMA fast/slow crossover as a Hull MA proxy, with RSI and Bollinger Band confirmation. Includes pyramiding support and fixed SL/TP in points. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • CheckSignal()
  • ManagePyramid()
  • OpenBuy()
  • OpenSell()
  • TryClose_EX18112()
  • TryClosePartial_EX18112()
  • TryModify_EX18112()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX18112 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// Gold trend-following EA using LWMA fast/slow crossover as a Hull MA proxy, with RSI and Bollinger Band confirmation. Includes pyramiding support and fixed SL/TP in points. 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
الأطر الزمنية المُحسّنة:
M5

كيفية تثبيت الإكسبرت على 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

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

المعاملالافتراضيالوصف
InpHullPeriod20Hull MA Period
InpRSIPeriod14RSI Period
InpBBPeriod20Bollinger Bands
InpMagicNumber22218112Magic number
InpMaxSpread250--- Handles (Using iMA as simple Proxy for Hull color change simulation for minimal deps,
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX18112.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX18112 PipsGrowth_XAUUSD_5M — Gold LWMA/RSI/BB trend-follower, full 12-layer stack."

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>

CTrade         trade;
CPositionInfo  position;
CSymbolInfo    mysymbol;
CAccountInfo   account;

//--- Input Groups
input group "=== Strategy Parameters ==="
input int      InpHullPeriod     = 20;       // Hull MA Period
input int      InpRSIPeriod      = 14;       // RSI Period
input int      InpBBPeriod       = 20;       // Bollinger Bands

input group "=== Money Management ==="
input double   InpRiskPercent    = 1.0; 
input double   InpFixedLot       = 0.01;
input int      InpStopLoss       = 400;
input int      InpTakeProfit     = 800;

input group "=== Pyramiding ==="
input bool     InpEnablePyramid  = true;
input int      InpMaxPositions   = 3;
input int      InpStep           = 200;

input group "=== Trade Management ==="
input int      InpMagicNumber    = 22218112; // Magic number
input string   InpTradeComment   = "Psgrowth.com Expert_18112";
input int      InpMaxSpread      = 250;

//--- Handles (Using iMA as simple Proxy for Hull color change simulation for minimal deps, 
// or simpler: LWMA(2*LWMA(n/2) - LWMA(n)), sqrt(n))
// We will implement Hull Calc inside OnTick to avoid external dep.
// But wait, user rules say "Use only built-in MT5 indicators". 
// Hull is NOT built-in. I will use LWMA (built-in) to approximate or standard EMA.
// Recommendation: Use EMA Cross as "Hull-like" proxy or generic MA.
// Let's use LWMA 14.

int hLWMA_Fast, hLWMA_Slow;
int hRSI, hBB;
double bufFast[], bufSlow[], bufRSI[], bufUpper[], bufLower[];

int OnInit()
  {
   trade.SetExpertMagicNumber(InpMagicNumber);
   trade.SetTypeFilling(ORDER_FILLING_FOK);
   
   // Hull Proxy: Fast LWMA vs Slow LWMA
   hLWMA_Fast = iMA(_Symbol, _Period, InpHullPeriod/2, 0, MODE_LWMA, PRICE_CLOSE);
   hLWMA_Slow = iMA(_Symbol, _Period, InpHullPeriod, 0, MODE_LWMA, PRICE_CLOSE);
   hRSI = iRSI(_Symbol, _Period, InpRSIPeriod, PRICE_CLOSE);
   hBB = iBands(_Symbol, _Period, InpBBPeriod, 0, 2.0, PRICE_CLOSE);

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

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

الوسوم:ex18112trendfollowpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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