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

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

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

Pipsgrowth EX16081 Trend — Gold trend EA catching major XAUUSD trends using EMA 50/ 200 crossover on H4 with daily structure swing high/low and Fib. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

EX16081 هو روبوت تداول لالتقاط اتجاهات الذهب (XAUUSD) الكبرى، يعمل على الإطار الزمني H4 بصرف النظر عن جلسة التداول، ويعتمد على تقاطع المتوسطين المتحركين الأسّيين 50 و200 كأساس للإشارة. ما يميزه عن روبوتات تتبع الاتجاه الأخرى هو حساب جني الأرباح من امتداد فيبوناتشي 1.618 لنطاق swing يمتد إلى 50 شمعة H4 — أي أن الهدف السعري لا يُربط بنسبة مخاطرة/مكافأة ثابتة ولا بمسافة نقاط ثابتة، بل يُقاس مباشرة من بنية السوق الأخيرة ويُسقط كهدف فيبوناتشي خارج نقطة الدخول.

عند التهيئة، يستدعي OnInit ثلاث مؤشرات: hEMA50 (iMA بمتغير 50، EMA، سعر الإغلاق)، وhEMA200 (iMA بمتغير 200، EMA، سعر الإغلاق)، وhATR (iATR بمتغير 14)، جميعها على PERIOD_H4. يضبط magic 22216081 على مثيل CTrade، ويُرفق التعليق "Psgrowth.com Expert_16081" بكل أمر. وعلى OnDeinit يحرر الروبوت المؤشرات الثلاث.

OnTick مُقيّد بأعمدة H4 الجديدة فقط — يقرأ iTime عند PERIOD_H4 shift 0 ويقارنه بـ lastBar؛ فإذا لم تتغير الشمعة يعود مباشرة. عند افتتاح شمعة جديدة، يستدعي ManageTrailing أولاً، ثم يفحص HasTrade. إن كانت هناك صفقة بنفس الـ magic ونفس الرمز مفتوحة، يخرج الروبوت فوراً — فلا يمكن أن يكون هناك أكثر من صفقة واحدة على XAUUSD في نفس الوقت. هذا الانضباط تفرضه HasTrade() التي تفحص PositionsTotal وتطابق على POSITION_MAGIC == InpMagicNumber وPOSITION_SYMBOL == _Symbol.

في شمعة جديدة دون صفقة مفتوحة، يسحب الروبوت آخر قيمتين لـ EMA50، وآخر قيمة لـ EMA200، وآخر قيمة لـ ATR(14). إذا أعاد أي CopyBuffer عدد شموع أقل من المطلوب، يخرج. بعدها ينسخ أعلى وأدنى 50 شمعة H4 الأخيرة (الافتراضي InpStructureLookback = 50)، ابتداءً من bar 2 — باستثناء الشمعة الجارية عند shift 0 والشمعة المغلقة للتو عند shift 1. يكون swingHigh هو أعلى سعر لتلك القمم الخمسين، وswingLow هو أدنى سعر لتلك القيعان الخمسين. النطاق = swingHigh - swingLow، وجني الأرباح فيبوناتشي = النطاق × (InpFibTarget / 100) — مع الافتراضي 161.8، يكون ذلك امتداد 1.618 يُسقط خارج نقطة الدخول.

تشارات الدخول تحدث على تقاطع صارم بين EMA50 وEMA200 اعتماداً على زوج قيم الشمعة السابقة:

  • شراء: EMA50[bar 1] > EMA200[bar 0] و EMA50[bar 2] <= EMA200[bar 0] (تقاطع صاعد جديد لـ 50 فوق 200، يُقيَّم على الشمعة المغلقة للتو مقارنة بقيمة 200 قبل شمعتين).
  • بيع: معكوس — EMA50[bar 1] < EMA200[bar 0] و EMA50[bar 2] >= EMA200[bar 0].

نمط التقاطع هذا هو نمط تأكيد بمتغير شمعة واحدة — وهو النمط الكلاسيكي لتأكيد الاتجاه الذي يُصفّي الاختراقات الكاذبة حول خط التقاطع. وقف الخسارة لكلا الاتجاهين هو ATR(14) × 1.5، مسافة تتكيف مع التذبذب الحالي. جني الأرباح هو نفسه لكلا الاتجاهين: fibTP يُضاف لنقطة الدخول في الشراء، ويُطرح منها في البيع.

حجم الصفقة يحسبه CalcLot(sl): رصيد الحساب × InpRiskPct / 100 / (sl / tickSize × tickValue). مع الافتراضي InpRiskPct = 1.0، تخاطر كل صفقة بنحو 1% من رأس مال الحساب، ويُقرَّب الحجم إلى منزلتين عشريتين بحد أدنى 0.01. تستخدم الدالة SYMBOL_TRADE_TICK_VALUE وSYMBOL_TRADE_TICK_SIZE، فيتدرج الحجم بشكل صحيح بين الوسطاء الذين لديهم اقتصاد نقاط مختلف.

ManageTrailing() يعمل على كل تيك — وليس فقط على أعمدة جديدة — ويتصفح PositionsTotal بالعكس، مُرشِّحاً على magic ورمز مطابقين. لصفقة شراء، يحسب وقف جديد عند bid - InpTrailingStop × _Point (الافتراضي 60 نقطة = 6.0 نقاط سعرية على تسعير XAUUSD العشري الثنائي)، ولا يعدّل إلا إذا كان الوقف الجديد أعلى من الوقف الحالي (أو لا يوجد وقف حالياً). للبيع، منطق معكوس. الوقف المتحرك إذاً هو رفش بمسافة ثابتة — يقفل الأرباح مع تحرك السعر لصالح الصفقة، لكنه لا يتسع أبداً. يُعاد إرسال TP كما هو في كل تعديل (يُقرأ POSITION_TP من الصفقة القائمة ويُعاد إرساله)، فيبقى هدف فيبوناتشي محفوظاً طوال الصفقة.

المساعدات لإعادة المحاولة (TryClose_EX16081 وTryClosePartial_EX16081 وTryModify_EX16081) تتعامل مع استجابات requote وtimeout وprice-change وprice-off بثلاث محاولات و100-200 مللي ثانية Sleep بين المحاولات. فقط TryModify_EX16081 مدمج في المسار الحي (عبر ManageTrailing)؛ أما TryClose وTryClosePartial فمعرَّفتان لكن لا تُستدعيان من Runtime.

لا يوجد مرشح جلسة، ولا مرشح أخبار، ولا قاطع يومي للدائرة، ولا كتلة OnTester للتحسين. التحكم في المخاطرة بالكامل لكل صفقة: 1% على الصفقة، بالإضافة إلى الوقف المتحرك الذي يقفل الأرباح مع تحرك السعر لصالحها. قاعدة الصفقة الواحدة هي الحارس الوحيد على مستوى المحفظة. ولأن الإشارات تُقيَّم عند إغلاق شمعة H4، يصبح الانزلاق والسبريد على التيكات الفردية غير ذي أهمية كبيرة — تحدث الدخول عند افتتاح شمعة H4 الجديدة، حيث سيولة XAUUSD عميقة.

في الاختبار التاريخي، توقع عدداً قليلاً من الصفقات — تقاطعات EMA 50/200 على H4 تحدث بضع مرات في السنة على XAUUSD. هدف 1.618 فيبوناتشي على نطاق swing من 50 شمعة هو هدف سخي، فإما أن تصل الإشارات إلى TP أو تُوقف عند ATR × 1.5. المقايضة هي: معدل فوز منخفض مقترن بنسبة مخاطرة/مكافأة عالية على الرابحين. الوقف المتحرك يعني أن حتى الصفقات التي تنعكس قبل الوصول إلى هدف فيبوناتشي يمكنها الإغلاق على ربح إذا كان اتجاه H4 قوياً بما يكفي لإبقاء السعر فوق مستوى الرفش.

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

يراقب EX16081 المتوسطين 50 و200 على الإطار H4؛ عند افتتاح شمعة H4 جديدة وعدم وجود صفقة مفتوحة على XAUUSD، يفحص تأكيد تقاطع 50/200 بمتغير شمعة واحدة باستخدام EMA50 للشمعة السابقة مقابل EMA200 للشمعة التي قبلها. إن حدث التقاطع حديثاً، يقرأ نطاق swing لـ 50 شمعة H4 من أعلى وأدنى الأسعار ابتداءً من bar 2، ويُسقط امتداد 1.618 كجني أرباح، ويضع وقف الخسارة عند ATR(14) × 1.5. يُحسب حجم الصفقة في CalcLot بحيث يخسر الخروج الكامل نحو InpRiskPct = 1.0% من الرصيد. بعد الدخول، يعمل ManageTrailing() على كل تيك — وليس فقط على أعمدة جديدة — ويرفش الوقف بمقدار 60 نقطة (InpTrailingStop = 60) كلما تحرك السعر لصالح الصفقة، دون أن يتسع. يُحفظ جني الأرباح فيبوناتشي كما هو في كل تعديل متحرك. لا يوجد مرشح جلسة، ولا مرشح أخبار، ولا سقف خسارة يومي، ولا كتلة OnTester — التحكم في المخاطرة بالكامل لكل صفقة، مع قاعدة الصفقة الواحدة كحارس وحيد على مستوى المحفظة.

إشارة الدخول

دخول شراء عند افتتاح شمعة H4 جديدة حين يكون EMA50 للشمعة السابقة فوق EMA200، مع كون EMA50 للشمعة التي قبلها عند أو تحت EMA200 (تأكيد تقاطع 50/200 بمتغير شمعة واحدة). دخول البيع هو المعكوس. تقييم الإشارة مقيد بالشمعة عبر lastBar، وتضمن HasTrade() عدم وجود أكثر من صفقة واحدة على XAUUSD بنفس magic 22216081 في أي وقت.

إشارة الخروج

يحدث الخروج بإحدى طريقتين: خروج سعري عند وصول XAUUSD إلى امتداد فيبوناتشي 1.618 لنطاق swing لـ 50 شمعة H4، أو خروج عبر وقف متحرك يديره ManageTrailing() على كل تيك. الوقف المتحرك هو رفش بمسافة ثابتة قدرها 60 نقطة (InpTrailingStop = 60) لا يتحرك إلا في الاتجاه الملائم ولا يتسع أبداً.

وقف الخسارة

وقف الخسارة لكل صفقة هو ATR(14) × 1.5، يُحسب على شمعة H4 التي تطلق الإشارة، ويتدرج مع التذبذب الحالي. يُحسب حجم الصفقة بعد ذلك عبر CalcLot بحيث يخسر الخروج الكامل عند تلك المسافة ما يقارب InpRiskPct = 1.0% من رصيد الحساب.

جني الأرباح

جني الأرباح هو امتداد فيبوناتشي 1.618 (InpFibTarget = 161.8) لنطاق swing لـ 50 شمعة H4 — أي swingHigh ناقص swingLow مضروباً في 1.618 — يُسقط من نقطة الدخول. يُعاد إرسال TP كما هو في كل تعديل عبر ManageTrailing()، فيبقى هدف فيبوناتشي محفوظاً طوال عمر الصفقة.

الأنسب لـ

يناسب المتداولين الذين يشغّلون XAUUSD على الإطار H4 برصيد لا يقل عن 100 دولار ويبحثون عن روبوت تتبع اتجاه منخفض تكرار الصفقات بنسبة مخاطرة/مكافأة 1:1+ سخية على الرابحين. إيقاع إشارات H4 وعدم وجود مرشح جلسة أو أخبار يعني أن الروبوت يمكنه العمل دون مراقبة على مدار الساعة، لكن في غياب سقف خسارة يومي يُنصح بنشره على حساب فرعي بحجم تعرض إجمالي 1-2%. استخدم وسيطاً بسبريد ضيق على XAUUSD — الوقف المتحرك 60 نقطة هو عازلة صغيرة، فالسبريد الواسع يأكل من الرفش عند كل تعديل.

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

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

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

الوصف: Gold trend EA catching major XAUUSD trends using EMA 50/ 200 crossover on H4 with daily structure swing high/low and Fibonacci extension targets. ATR-based stop, risk-percent lot sizing, and trailing stop management

المؤشرات:

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

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

  • ManageTrailing()
  • HasTrade()
  • CalcLot()
  • OnInit_20260023_placeholder()
  • TryClose_EX16081()
  • TryClosePartial_EX16081()
  • TryModify_EX16081()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX16081 Trend — Execution Flow (from source analysis)
// Family: Trend
// Gold trend EA catching major XAUUSD trends using EMA 50/ 200 crossover on H4 with daily structure swing high/low and Fibonacci extension targets. ATR-based stop, risk-percent lot sizing, and trailing stop management

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
الأطر الزمنية المُحسّنة:
H4

كيفية تثبيت الإكسبرت على 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
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16081.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16081 GoldTrendEA — XAUUSD H4 EMA cross with Fib targets, full 12-layer stack."

#include <Trade\Trade.mqh>
sinput const string GroupIdentity="";//=== Identity ===
input int    InpMagicNumber       = 22216081;
input string InpTradeComment      = "Psgrowth.com Expert_16081";
sinput const string GroupTrade="";//=== Trade Settings ===
input int    InpStructureLookback = 50;
input double InpFibTarget         = 161.8;
input double InpRiskPct           = 1.0;
input int    InpTrailingStop      = 60;
CTrade trade; int hEMA50,hEMA200,hATR; datetime lastBar=0;
int OnInit() { trade.SetExpertMagicNumber(InpMagicNumber); hEMA50=iMA(_Symbol,PERIOD_H4,50,0,MODE_EMA,PRICE_CLOSE); hEMA200=iMA(_Symbol,PERIOD_H4,200,0,MODE_EMA,PRICE_CLOSE); hATR=iATR(_Symbol,PERIOD_H4,14); return INIT_SUCCEEDED; }
void OnDeinit(const int r) { IndicatorRelease(hEMA50);IndicatorRelease(hEMA200);IndicatorRelease(hATR); }
void OnTick() {
   datetime cb=iTime(_Symbol,PERIOD_H4,0);
   if(cb==lastBar) return; lastBar=cb;
   ManageTrailing();
   if(HasTrade()) return;
   double e50[2],e200[1],atr[1];
   if(CopyBuffer(hEMA50,0,1,2,e50)<2||CopyBuffer(hEMA200,0,1,1,e200)<1||CopyBuffer(hATR,0,1,1,atr)<1) return;
   double high[],low[];
   ArraySetAsSeries(high,true); ArraySetAsSeries(low,true);
   if(CopyHigh(_Symbol,PERIOD_H4,2,InpStructureLookback,high)<InpStructureLookback) return;
   if(CopyLow(_Symbol,PERIOD_H4,2,InpStructureLookback,low)<InpStructureLookback) return;
   double swingHigh=high[ArrayMaximum(high,0,InpStructureLookback)];
   double swingLow =low[ArrayMinimum(low,0,InpStructureLookback)];
   double range=swingHigh-swingLow;
   double fibTP=range*(InpFibTarget/100.0);
   double ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK),bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
   double sl=atr[0]*1.5,lot=CalcLot(sl);
   if(e50[0]>e200[0]&&e50[1]<=e200[1]) trade.Buy(lot,_Symbol,ask,ask-sl,ask+fibTP,InpTradeComment);
   if(e50[0]<e200[0]&&e50[1]>=e200[1]) trade.Sell(lot,_Symbol,bid,bid+sl,bid-fibTP,InpTradeComment);
}
void ManageTrailing() { double trail=InpTrailingStop*_Point; for(int i=PositionsTotal()-1;i>=0;i--) { ulong t=PositionGetTicket(i); if(t<=0||PositionGetInteger(POSITION_MAGIC)!=InpMagicNumber||PositionGetString(POSITION_SYMBOL)!=_Symbol) continue; long type=PositionGetInteger(POSITION_TYPE); double curSL=PositionGetDouble(POSITION_SL),bid=SymbolInfoDouble(_Symbol,SYMBOL_BID),ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK); if(type==POSITION_TYPE_BUY){double nsl=bid-trail; if(curSL==0||nsl>curSL) TryModify_EX16081(t,NormalizeDouble(nsl,_Digits),PositionGetDouble(POSITION_TP));} else{double nsl=ask+trail; if(curSL==0||nsl<curSL) TryModify_EX16081(t,NormalizeDouble(nsl,_Digits),PositionGetDouble(POSITION_TP));} } }
bool HasTrade() { for(int i=PositionsTotal()-1;i>=0;i--) if(PositionGetTicket(i)>0&&PositionGetInteger(POSITION_MAGIC)==InpMagicNumber&&PositionGetString(POSITION_SYMBOL)==_Symbol) return true; return false; }
double CalcLot(double sl) { double b=AccountInfoDouble(ACCOUNT_BALANCE),tv=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE),ts=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE); if(sl<=0||ts<=0) return 0.01; return NormalizeDouble(MathMax(0.01,(b*InpRiskPct/100)/(sl/ts*tv)),2); }

int OnInit_20260023_placeholder() { return 0; } // placeholder to avoid unused warning
//+------------------------------------------------------------------+
bool TryClose_EX16081(ulong ticket)
{
   for(int a=0; a<3; a++)
   {
      if(trade.PositionClose(ticket) &&
         (trade.ResultRetcode()==TRADE_RETCODE_DONE || trade.ResultRetcode()==TRADE_RETCODE_DONE_PARTIAL))
         return true;
      uint rc=trade.ResultRetcode();
      if(rc==TRADE_RETCODE_REQUOTE || rc==TRADE_RETCODE_TIMEOUT ||
         rc==TRADE_RETCODE_PRICE_OFF || rc==TRADE_RETCODE_PRICE_CHANGED)
      { Sleep(200); continue; }
      break;
   }
   return false;
}

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

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

الوسوم:ex16081trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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