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

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

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

Pipsgrowth EX16039 Trend — Trend Rider EA for XAUUSD M5 using fast/slow EMA crossover with optional H1 higher-timeframe MA filter. Risk-based or fi. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX16039 TrendRider هو مستشار خبير معدّ عمدًا بأبسط صورة ممكنة، وهو مصمم لتداول زوج XAUUSD على الإطار الزمني M5. يقوم بمهمة واحدة فقط: رصد لحظة تقاطع المتوسط المتحرك الأسي السريع مع البطيء، ويركب هذا الاتجاه حتى التقاطع المعاكس التالي أو حتى يُفعَّل وقف الخسارة أو جني الأرباح. لا توجد هنا مؤشرات مساعدة ولا محركات تقييم ولا طبقات توافق مزدوجة بين إطارين زمنيين. الاستراتيجية هي التقاطع الكلاسيكي لمتوسطين متحركين أسيين، مع فلتر اختياري لمتوسط إطار زمني أعلى بحيث يلتقط المستشـار فقط الصفقات التي تتوافق مع الاتجاه الأكبر.

ينشئ المستشـار ثلاث مقابض iMA داخل دالة OnInit. اثنان منها يعملان على الإطار الزمني الحالي للشارت: hFastMA = iMA(_Symbol, _Period, InpFastMA=10, 0, MODE_EMA, PRICE_CLOSE) و hSlowMA = iMA(_Symbol, _Period, InpSlowMA=50, 0, MODE_EMA, PRICE_CLOSE). أما الثالث hFilterMA فلا يُنشأ إلا عندما يكون InpHigherTimeframe=true، وهو EMA(InpSlowMA=50) على الإطار الزمني PERIOD_H1، كذلك بـ MODE_EMA و PRICE_CLOSE. تحرير المقابض جميعها مهيأ في OnDeinit. إذا أرجع أي مقبض من مقبضي الإطار الزمني الحالي INVALID_HANDLE فإن المستشـار يعيد INIT_FAILED. هذه هي البصمة الكاملة للمؤشرات: ثلاثة مقابض MA، لا أكثر.

OnTick مقتضبة أيضًا. تقوم بتحديث أسعار الرمز، ثم تطبّق بوابة السبريد الثابتة (mysymbol.Spread() > InpMaxSpread=250 نقطة تعني عودة فورية)، ثم تنفّذ حارس الشمعة الجديدة القائم على متغير static-datetime، بحيث لا يُشغّل باقي المنطق إلا مرة واحدة لكل شمعة مغلقة. وبعد تجاوز هذه البوابات الثلاث، يستدعي المستشـار الدالة CheckSignal().

دالة CheckSignal هي موضع الاستراتيجية. تعود فورًا إذا كان PositionsTotal() > 0، أي أنها تفرض صفقة مفتوحة واحدة فقط في كل وقت. ثم تنسخ شمعتين من بافرتي المتوسط السريع والبطيء وتقرأ قيم الشمعتين 1 و 2. اكتشاف التقاطع مباشر: إشارة الشراء تنطلق عندما bufFastMA[1] > bufSlowMA[1] AND bufFastMA[0] <= bufSlowMA[0] (أي أن المتوسط السريع للشمعة 1 أصبح فوق البطيء، بينما في الشمعة 2 كان لا يزال عنده أو تحته)، وإشارة البيع تنطلق عند الشرط المعاكس. عندما يكون InpHigherTimeframe مفعّلًا وكان hFilterMA صالحًا، تنسخ الدالة قيمة واحدة لمتوسط H1 وتقارنها بـ iClose للإطار الحالي — إذا كان السعر الحالي تحت متوسط H1، يُضبط h1Uptrend على false؛ وإذا كان فوقه يُضبط h1Downtrend على false. منطق الشراء لا يُفعَّل إلا إذا ظل h1Uptrend صحيحًا، والبيع فقط إذا ظل h1Downtrend صحيحًا، وبالتالي يعمل EMA الخاص بـ H1 كبوابة اتجاه تمنع الإشارات المعاكسة للاتجاه الأكبر.

دالتا الدخول OpenBuy و OpenSell متناظرتان. تحسب كلتاهما sl و tp من سعر ask/bid الحالي مطروحًا منه أو مضافًا إليه InpStopLoss=400 نقطة و InpTakeProfit=800 نقطة، ثم تستدعي CalculateLotSize(InpStopLoss) لتحديد حجم الصفقة، وأخيرًا تستدعي trade.Buy() أو trade.Sell() مع نص التعليق "Psgrowth.com Expert_16039". يتم تهيئة كائن CTrade في OnInit عبر SetExpertMagicNumber(22216039) و SetDeviationInPoints(3) و SetTypeFilling(ORDER_FILLING_FOK). لا يوجد استكشاف لوضع تنفيذ بديل في السوق.

تُنفّذ CalculateLotSize نموذج نسبة المخاطرة الكلاسيكي. إذا كان InpRiskPercent <= 0 تُرجع الدالة InpFixedLot=0.01 — وهو الحجم الثابت الاحتياطي للمستخدمين الذين لا يريدون المخاطرة بنسبة مئوية. وإلا فتحسب riskMoney = account.Balance() * InpRiskPercent / 100، ثم تستخرج riskPerLot = stopLossPoints * (tickValue / (tickSize / point))، ثم lot = riskMoney / riskPerLot. تُقرَّب النتيجة إلى أسفل وفق خطوة اللوت للرمز وتُقصَّر إلى المجال [LotsMin, LotsMax]. تخضع العملية لحراسة tickSize==0 أو point==0 تعود حينها إلى InpFixedLot إذا لم تكن بيانات الرمز قد اكتملت بعد.

طبقة إدارة الصفقات هنا متعمَّدًا خفيفة. لا يوجد وقف متابع، ولا قفل ربح متحرك، ولا إغلاق جزئي، ولا جني أرباح ديناميكي. يظل وقف الخسارة وجني الأرباح المضبوطان عند الدخول ثابتين حتى تُغلق الصفقة. لا يوجد فلتر جلسة، ولا خروج مبني على الوقت، ولا فلتر أخبار، ولا فحص إضافي للإطار الزمني للرمز بخلاف بوابة السبريد، ولا إيقاف مؤقت بعد خسائر متتالية. قائمة الطبقات الاثنتي عشرة في ترويسة الملف — REGIME و SIGNAL و ENTRY و CONFIRM و NO-TRADE و CAPITAL CAP و RISK و SIZING و MANAGE و EXIT و SCALING و OnTester — تصف بنية مرجوة، لكن في المصدر لا تُربط فعليًا سوى REGIME (فلتر H1) و SIGNAL (التقاطع) و ENTRY (Buy/Sell) و NO-TRADE (السبريد + الشمعة الجديدة + صفقة واحدة) و RISK (نسبة المخاطرة لكل صفقة) و SIZING (CalculateLotSize) و MANAGE (ضبط SL/TP عند الدخول، دون إدارة ديناميكية) و EXIT (SL/TP). أما CAPITAL CAP (لا سقف للرصيد/الإكويتي/خسارة يومية) و SCALING (لا شبكة، ولا مارتينجال، ولا إضافة إلى الرابح) و OnTester (لا دالة لياقة مخصصة) فغير منفّذة. كذلك لا توجد طبقة CONFIRM — فلتر H1 هو بوابة نظام لا تأكيد لكل صفقة، والاستراتيجية ستلتقط الإشارة في أي اتجاه طالما التقاطع واتجاه H1 متفقان.

توجد ثلاث دوال مساعدة للمحاولة في أسفل الملف: TryClose_EX16039 و TryClosePartial_EX16039 و TryModify_EX16039. كل منها تنفّذ حلقة من ثلاث محاولات على CTrade.PositionClose / PositionClosePartial / PositionModify، وتُعيد المحاولة عند REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED مع نوم لمدة 100-200 مللي ثانية، وإلا تخرج وتُرجع false. لا تُستدعى هذه الدوال من أي مسار حي في المستشـار — OpenBuy/OpenSell يكتبان SL/TP مباشرة عبر trade.Buy()/trade.Sell() ولا توجد أي مواقع أخرى للإغلاق أو التعديل. لذا فهي حاضرة كهيكل مستقبلي لطبقة إدارة لكنها في الوقت الحالي كود ميت.

بالنسبة للمتداول الذي يقيّم هذا المستشـار، الصورة بسيطة: تقاطع متوسطين أسيين على M5 مع بوابة اتجاه اختيارية من H1، وصفقة واحدة فقط في الوقت نفسه، و SL/TP ثابت 400/800 نقطة، وتحديد حجم بنسبة المخاطرة أو ثابت، وحد سبريد 250 نقطة، وملء FOK، وانزلاق 3 نقاط. لا يوجد توسيع ولا إدارة ديناميكية ولا منطق تعافي ولا حماية إكويتي. هذا هيكل نظيف مصمم للمتداول الذي يريد نواة صغيرة قابلة للتدقيق يمكنه إما تشغيلها كما هي بإعداد مخاطرة منخفضة أو استخدامها كأساس لمزيد من التخصيص.

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

ينشئ EX16039 ثلاث مقابض iMA في OnInit — متوسط أسي 10 وآخر 50 على الإطار الزمني الحالي، إضافة إلى متوسط 50 على H1 عند تفعيل فلتر الإطار الأعلى — ويُشغّل بقية الاستراتيجية بإيقاع شمعة جديدة. تُحدّث OnTick أسعار الرمز، وتطبّق حد سبريد ثابت 250 نقطة، وتقدّم حارس الشمعة الجديدة المعتمد على static-datetime، ثم تستدعي CheckSignal. ترفض هذه الدالة التقييم حين يكون PositionsTotal() > 0، وتنسخ شمعتين من بافرتي المتوسط السريع والبطيء، وتكشف التقاطع بمقارنة الشمعة 1 بالشمعة 2 لكل منهما: تنطلق إشارة الشراء إذا كانت الشمعة 1 السريعة فوق البطء وكانت الشمعة 2 السريعة عند البطء أو تحته، مع بوابة إضافية من فحص سعر الإغلاق مقابل متوسط H1؛ شرط البيع هو المرآة. OpenBuy و OpenSell دالتان متطابقتان تبنيان وقف الخسارة وجني الأرباح من InpStopLoss=400 و InpTakeProfit=800 نقطة، وتحددان حجم اللوت عبر CalculateLotSize (1% مخاطرة افتراضيًا، أو 0.01 ثابت عند إيقاف المخاطرة، مع تقريب لأسفل وفق خطوة اللوت للرمز وقصر ضمن LotsMin/LotsMax)، ثم تستدعيان CTrade.Buy/Sell بانزلاق 3 نقاط وملء FOK. قاعدة الصفقة الواحدة هي منطق الإدارة الوحيد — لا وقف متابع ولا نقل إلى التعادل ولا إغلاق جزئي ولا فلتر جلسة ولا إيقاف مؤقت. تذكر الترويسة 12 طبقة معمارية، لكن المصدر يربط فعليًا فقط REGIME و SIGNAL و ENTRY و NO-TRADE و RISK و SIZING و MANAGE و EXIT؛ أما CAPITAL CAP و SCALING و OnTester وطبقة CONFIRM منفصلة فغير منفّذة، وتوجد ثلاث دوال مساعدة للمحاولة (TryClose_EX16039 و TryClosePartial_EX16039 و TryModify_EX16039) في أسفل الملف دون أن تُستدعى.

إشارة الدخول

إشارة الشراء عندما يتقاطع المتوسط الأسي 10 فوق المتوسط الأسي 50 على الإطار الزمني الحالي (الشمعة 1 فوق البطيء، الشمعة 2 لا تزال عنده أو تحته)، ويكون إغلاق الشمعة الحالية فوق المتوسط 50 على H1 في حال كان فلتر الإطار الأعلى مفعّلًا. إشارة البيع على الشرط المعاكس مع كون الإغلاق تحت متوسط H1. لا ينظر المستشـار إلى الإشارات إلا حين لا توجد صفقة مفتوحة، وبعد إغلاق شمعة جديدة، وعندما يكون السبريد الحالي عند 250 نقطة أو أقل.

إشارة الخروج

تُغلق الصفقات فقط عند وقف الخسارة أو جني الأرباح المرفقَين بأمر الدخول، أو عندما يحدث تقاطع معاكس ويفتح المستشـار صفقة جديدة في الاتجاه الآخر (بوابة الصفقة الواحدة تضمن أن الدخول الجديد يحل محل السابق). لا يوجد وقف متابع، ولا نقل إلى نقطة التعادل، ولا إغلاق جزئي، ولا خروج مبني على الوقت.

وقف الخسارة

وقف خسارة ثابت 400 نقطة يُرفق بكل صفقة عبر trade.Buy() / trade.Sell()، ويُحسب بمقدار InpStopLoss * mysymbol.Point() من سعر ask (للشراء) أو bid (للبيع). لا يوجد وقف خسارة ديناميكي أو متابع — تبقى القيمة نفسها ثابتة حتى تُغلق الصفقة.

جني الأرباح

جني أرباح ثابت 800 نقطة يُرفق بكل صفقة، أي ضعف مسافة وقف الخسارة لعائد 1:2 إلى المخاطرة. يُضبط جني الأرباح عند فتح الأمر ولا يتحرك بعد ذلك.

الأنسب لـ

الأنسب لزوج XAUUSD على الإطار M5 مع حد أدنى للإيداع قدره 100 دولار (ويُنصح بـ 300 دولار أو أكثر لتوفير هامش مريح)، على وسيط ECN أو منخفض السبريد حتى لا يُفعَّل حد الـ 250 نقطة بشكل متكرر. مستوى المخاطرة متوسط — إذ إن نسبة المخاطرة/العائد 1:2 وتحديد الحجم بنسبة مئوية يحميان الحساب من سلسلة خسائر واحدة، لكن غياب سقف السحب العالمي يعني أن على المتداول مسؤولية مراقبة الإكويتي. يُفضَّل إبقاء فلتر H1 مفعّلًا ما لم يكن المطلوب صراحة التقاطعات المعاكسة للاتجاه على M5، وتعمل الاستراتيجية بأفضل صورة خلال فترة تداخل جلسة لندن ونيويورك حيث يشهد XAUUSD أوضح تحركاته الاتجاهية.

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

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

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

الوصف: Trend Rider EA for XAUUSD M5 using fast/slow EMA crossover with optional H1 higher-timeframe MA filter. Risk-based or fixed lot sizing, spread filter, SL/TP. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • CheckSignal()
  • OpenBuy()
  • OpenSell()
  • CalculateLotSize()
  • TryClose_EX16039()
  • TryClosePartial_EX16039()
  • TryModify_EX16039()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX16039 Trend — Execution Flow (from source analysis)
// Family: Trend
// Trend Rider EA for XAUUSD M5 using fast/slow EMA crossover with optional H1 higher-timeframe MA filter. Risk-based or fixed lot sizing, spread filter, SL/TP. 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

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

المعاملالافتراضيالوصف
InpFastMA10Fast MA Period
InpSlowMA50Slow MA Period
InpHigherTimeframetrueFilter with H1 MA
InpRiskPercent1.0Risk Percent per Trade
InpFixedLot0.01Fixed Lot (if Risk=0)
InpStopLoss400Stop Loss (points)
InpTakeProfit800Take Profit (points)
InpMagicNumber22216039Magic Number
InpTradeComment"Psgrowth.com Expert_16039"Trade Comment
InpMaxSpread250Max Spread (points)
InpSlippage3Slippage
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16039.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16039 TrendRider_XAUUSD_5M — EMA crossover trend rider with H1 filter, 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      InpFastMA         = 10;       // Fast MA Period
input int      InpSlowMA         = 50;       // Slow MA Period
input bool     InpHigherTimeframe= true;     // Filter with H1 MA

input group "=== Money Management ==="
input double   InpRiskPercent    = 1.0;      // Risk Percent per Trade
input double   InpFixedLot       = 0.01;     // Fixed Lot (if Risk=0)
input int      InpStopLoss       = 400;      // Stop Loss (points)
input int      InpTakeProfit     = 800;      // Take Profit (points)

input group "=== Trade Management ==="
input int      InpMagicNumber    = 22216039;  // Magic Number
input string   InpTradeComment   = "Psgrowth.com Expert_16039"; // Trade Comment
input int      InpMaxSpread      = 250;      // Max Spread (points)
input int      InpSlippage       = 3;        // Slippage

//--- Handles
int    hFastMA;
int    hSlowMA;
int    hFilterMA;

//--- Global Buffers
double bufFastMA[];
double bufSlowMA[];
double bufFilterMA[];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   trade.SetExpertMagicNumber(InpMagicNumber);
   trade.SetDeviationInPoints(InpSlippage);
   trade.SetTypeFilling(ORDER_FILLING_FOK);

   hFastMA = iMA(_Symbol, _Period, InpFastMA, 0, MODE_EMA, PRICE_CLOSE);
   hSlowMA = iMA(_Symbol, _Period, InpSlowMA, 0, MODE_EMA, PRICE_CLOSE);
   
   if(InpHigherTimeframe)
      hFilterMA = iMA(_Symbol, PERIOD_H1, InpSlowMA, 0, MODE_EMA, PRICE_CLOSE);
   
   if(hFastMA == INVALID_HANDLE || hSlowMA == INVALID_HANDLE) 

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

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

الوسوم:ex16039trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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