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

Pipsgrowth EX07001 MA — إكسبرت أدفايزر إكسبرت أدفايزر

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

Pipsgrowth EX07001 MA — Fast/Slow EMA crossover signal gated by ADX+ATR-pctile+ BB-width regime, HTF EMA bias agreement, abnormal-spread / daily. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX07001 هو خبير آلي (EA) يعتمد على تقاطع متوسطين متحركين أساسيين (EMA) ويستند إلى مصنّف لحالة السوق قائم على الترتيب المئوي. الإطار الزمني الافتراضي هو M5 على XAUUSD، ويمكن تغيير الإطار العامل عبر InpTimeframe (1=M1، 2=M5، 3=M15، 4=M30، 5=H1، 6=H4، 7=D1)، بحيث يمكن تركيب الكود نفسه على أي من هذه الأطر الزمنية وعلى أي رمز يعرضه الوسيط، بل يتيح لك InpSymbol تجاوز الرمز يدويًا لتشغيل تبيك مختلف على نفس نافذة الشارت. الرقم السحري هو 22207001، وتعليق الصفقة هو Psgrowth.com Expert_07001، وهو النص الذي يظهر في كل صفقة وفي سجل العمليات.

طبقة الإشارة هي تقاطع كلاسيكي بين EMA سريع وEMA بطيء. القيمة الافتراضية للـEMA السريع هي 10 وللـEMA البطيء 30، وكلاهما يُحسب على أسعار الإغلاق. تقوم دالة GetSignal() بقراءة شمعتين مغلقتين (CopyBuffer بـ start=1 و count=2)، فإذا كانت الشمعة [1] مساوية أو أدنى من البطيء وأغلقت الشمعة [0] فوقه يُسجَّل تقاطع صاعد، والعكس للهبوط. الدالة لا تستجيب للشمعة المفتوحة بل تنتظر الإغلاق، وهذا يقلل بشكل كبير من مشكلة إعادة رسم الإشارات. تُحسَب الثقة من البعد النسبي بين المتوسطين: 55% أساسًا + min(45, sepPct * 1000) حيث sepPct هو |سريع-بطيء| / max(|سريع|,|بطيء|). عمليًا، يبدأ التقاطع المتقارب عند 55-60%، ويمكن للتقاطع المتباعد الواضح أن يصل إلى 100.

لكن التقاطع وحده لا يكفي لفتح صفقة. تبني دالة ClassifyRegime() تصنيفًا من سبع حالات للسوق عبر مقارنة قيمة الـATR الحالية وعرض بولينجر بنطاق 200 شمعة ماضية. نسبة ATR المئوية 70 أو أعلى تضع الخبير في خانة الاتجاه القوي، وADX بقيمة 22 أو أعلى تعني اتجاهًا ضعيفًا، وADX بقيمة 28 أو أعلى مع نسبة ATR مئوية مرتفعة تعني اتجاهًا قويًا، ونسبة عرض بولينجر 85 أو أعلى تعني اختراقًا، و20 أو أقل تعني انضغاطًا، وهكذا حتى النطاق والتوسع والتذبذب. ترفض خطوة التأكيد بعد ذلك أي دخول لا يقع في واحدة من الحالات الأربع القابلة للتنفيذ: اتجاه قوي، اتجاه ضعيف، اختراق، أو توسع. النطاق والانضغاط والتذبذب كلها محظورة. كمرشح ثانٍ، عندما يكون InpHTF_EMA غير صفري، يحسب الخبير EMA(50) على إطار H1 ويرفض صفقات الشراء إذا كان إغلاق H1 أدنى من هذا الخط، ورفض البيع إذا كان الإغلاق فوقه. وأخيرًا يجب ألا تقل الثقة عن 55.

تتحكم متغير gEffectiveCap في المخاطر وحجم الصفقة، ويُحدَّث كل شمعة من قيمة حساب الإكويتي. إذا كان InpCapitalCapAmount أكبر من صفر فالسقف هو الحد الأدنى بين السقف والإكويتي، وإلا فهو الإكويتي نفسه. يُخصم منه الربح/الخسارة المحققة اليوم، فإذا كان اليوم خاسرًا يتقلص حجم الصفقة التالية فعليًا. تأخذ دالة CalcLot() نسبة 0.5% من السقف الفعّال، وتقسمها على خسارة اللوت الواحد عند مسافة الوقف المعتمدة على ATR، وتُقرِّب الناتج إلى درجة اللوت الأدنى للرمز. إذا كانت المخاطرة صفرًا يلجأ الخبير إلى حجم ثابت قدره 0.01 لوت. فحص الهامش المسبق عبر OrderCalcMargin يحجب الدخول إذا كان الهامش الحر غير كافٍ.

هيكل الوقف متعدد الطبقات. الوقف الابتدائي يبعد InpATR_SL_Mult (افتراضي 2.0) مرة من الـATR(14) عن سعر الدخول، وهدف الربح النهائي هو InpRR_TP (افتراضي 3.0) مضاعف R، والجزئي TP1 عند InpRR_Partial1 (افتراضي 1.5) مضاعف R يُغلق 50% من الصفقة. عندما تبلغ الصفقة 1R من الربح، يرفع módulo التعادل الوقف إلى الدخول + 5 نقاط للشراء والدخول - 5 نقاط للبيع، وذلك مرة واحدة فقط لكل تذكرة. بعد ذلك يتدخل ترايل الشاندلييه: تعيد كتلة ManageOpenPositions() حساب الوقف عند كل تيك كـ bid - 3*ATR للشراء وask + 3*ATR للبيع، ولا يتحرك إلا في الاتجاه المواتي. يعمل التريل عند كل تيك، حتى خارج إغلاق الشمعة وحتى في وضع المحاكاة. يضمن ClampByStopsLevel() ألا يقترب الوقف الجديد من السعر بأقل من مستوى الإيقاف الأدنى للوسيط.

هناك مخرجان وقائيان يعملان بالتوازي مع التريل. الأول هو مخرج زمني: أي صفقة عمرها أكثر من InpMaxBars (افتراضي 240) شمعة تُغلق بالسوق بسبب MAX_BARS. والثاني هو مخرج الإشارة العكسية: إذا ظهر تقاطع EMA عكسي على شمعة مغلقة، تُغلق الصفقة بسبب OPP_SIG. لا يوجد فلتر أخبار ولا قطع ليوم معين في هذا الخبير، فتلك الميزات في خبراء آخرين من العائلة.

ترفض دالة IsNoTradeBlocked() الدخول لخمسة أسباب مستقلة: عدد كبير من الصفقات المفتوحة على نفس الرمز والرقم السحري، أو فارق سعري أعلى من InpMaxSpreadPts (افتراضي 250 نقطة، أي 25 نقطة سعرية على XAUUSD)، أو خارج الجلسة الفعّالة، أو ثلاث خسائر متتالية دون مرور خمس شموع، أو خسائر محققة اليوم وصلت إلى InpDailyLossLimitPct (افتراضي 3%) من السقف الفعّال. تُختار الجلسة عبر InpSessionMode: 0 يعني التداول دائمًا، 1 يعني ساعات لندن + نيويورك (الساعة 7 إلى 20)، 2 يعني ساعات آسيا (0 إلى 7). الافتراضي هو 1، مما يُبقي النشاط داخل أكثر ساعات السيولة في اليوم للمعادن والعملات.

هناك مدخلان وقائيان في أسفل قائمة المدخلات يستحقان الإشارة. InpDryRun قيمته الافتراضية true، فيسجّل الخبير كل دخول وتعديل وإغلاق جزئي في السجل ببادئة [DRY-RUN] ولا يرسل أي أمر حقيقي. هذا هو الإعداد الأكثر ملاءمة للمبتدئين في العائلة، ولهذا يُبقيه كثير من المستخدمين على الشارت خلال أسابيعهم الأولى. InpKillSwitch هو إيقاف قاسٍ: عند تفعيله تعود OnTick فورًا ولا يعمل أي منطق حتى يُعطَّل.

معالجة الأوامر ملفوفة في ثلاث دوال إعادة محاولة تكرر الطلب حتى ثلاث مرات عند رد الخادم بـREQUOTE أو TIMEOUT أو PRICE_OFF أو PRICE_CHANGED. إعادة المحاولة للإغلاق والإغلاق الجزئي كل 200 مللي ثانية، أما التعديل فكل 100 مللي ثانية. يُضبط كائن CTrade على 10 نقاط انزلاق، رقم سحري 22207001، وSetTypeFillingBySymbol ليختار الخبير FOK أو IOC أو RETURN بحسب ما يقبله الوسيط. دالة OnTester() ترجع (net * grossPF) / (1 + dd) عندما يحتوي الاختبار الخلفي على 30 صفقة على الأقل وانخفاض نسبي غير صفري، وهو مقياس اللياقة الذي يعظّمه محسّن MT5.

النشر المقصود هو شارت واحد بمثيل واحد، على XAUUSD M5، مع الإعدادات الافتراضية للجولة الأولى. رفع InpTimeframe إلى 5 (H1) وInpMAFast/InpMASlow إلى 20/50 يحوّل نفس الخبير إلى أداة اتجاه تأرجح. ضبط InpATR_Trail_Mult على 4 أو 5 يُرخي التريل ويترك الصفقات الرابحة تمتد أكثر، وخفضه إلى 2 يشد القفل ويحوّل مزيدًا من الصفقات إلى مخارج عند الصفر. اترك علم المحاكاة InpDryRun مفعّلًا حتى يشاهد المستخدم عدة مئات من إدخالات [DRY-RUN] ويرضى عن سلوك التصنيف والتأكيد والخروج على تغذية الأسعار من الوسيط.

تتابع دالة OnTradeTransaction بصمت كل صفقة تنتمي إلى الرقم السحري والرمز الخاصين بالخبير، وتزيد gConsecutiveLosses عند كل إغلاق خاسر، وتعيد تصفيرها عند كل إغلاق رابح، وتُسجّل gLastLossBar لتطبيق فترة تهدئة الخمس شموع بعد ثلاث خسائر متتالية عبر بوابة منع التداول. هذه هي نفس الآلية التي يعتمد عليها المحسّن، وهي السبب في أن فترة التهدئة تُقاس بالشموع لا بالدقائق: خمس شموع على M5 تساوي 25 دقيقة، وعلى H1 تساوي 5 ساعات، فيتكيف الكود نفسه تلقائيًا مع الإطار العامل.

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

في كل تيك تمر ManageOpenPositions() على الصفقات المفتوحة للرقم السحري 22207001 وتدفع الوقف للأمام عبر تريل الشاندلييه ووقف التعادل مرة واحدة عند 1R. مرة لكل شمعة مغلقة، تحدّث كتلة الإطار gEffectiveCap وتصنّف حالة السوق، ثم تنفّذ إما مسار الإشارة-التأكيد أو تعود. تقرأ GetSignal() قيم EMA(10) وEMA(30) على الشمعتين [1] و[0] وتلتقط التقاطع عند الإغلاق. تصنّف ClassifyRegime() الـATR وعرض بولينجر بنطاق 200 شمعة وتُسنِد واحدة من سبع حالات، ولا يمرر الاتجاه القوي والضعيف والاختراق والتوسع الصفقات فقط. يتحقق توافق EMA(50) على H1، وسقف الفارق السعري، ووضع الجلسة، وحد خسارة اليوم، وفترة تهدئة الثلاث خسائر، وأرضية رأس المال من جميعها عبر IsNoTradeBlocked() قبل إرسال أي أمر. تحسب CalcLot() الحجم من 0.5% من السقف الفعّال، وتُجري ExecuteEntry() فحص الهامش المسبق، وتتعامل ثلاث دوال إعادة محاولة مع ردود REQUOTE وTIMEOUT وPRICE_OFF وPRICE_CHANGED. يبقي InpDryRun=true الخبير في وضع السجل فقط افتراضيًا، فالنشر الأول آمن حتى يُعطّل المستخدم هذا الحاجز.

إشارة الدخول

تنفّذ صفقات الدخول عند تقاطع المتوسطين المتحركين الأساسيين على آخر شمعة مغلقة — EMA(10) يخترق فوق EMA(30) للشراء، والعكس للبيع. تبدأ الثقة من 55 وتُزاد بنسبة تباعد المتوسطين النسبي. لا يُقبل التقاطع إلا عندما يصنّف مصنّف حالة السوق السوق كاتجاه قوي أو ضعيف أو اختراق أو توسع، وعندما يتفق EMA(50) على H1 مع اتجاه الصفقة.

إشارة الخروج

تتشاطرك ثلاث طرق خروج أمر الإغلاق: تقاطع EMA عكسي على شمعة مغلقة يُغلق التذكرة بسبب OPP_SIG، ووقف زمني عند 240 شمعة (افتراضي) يُغلق بسبب MAX_BARS، وهدف الربح على الخادم عند 3R يُنفّذ الخروج الطبيعي. ينفّذ الإغلاق الجزئي 50% مرة واحدة عند 1.5R، وتُوسم [P1] في التعليق حتى لا تتكرر.

وقف الخسارة

الوقف الابتدائي يبعد 2.0 × ATR(14) عن سعر الدخول، ويُقصَّ إلى الحد الأدنى لمستوى الإيقاف لدى الوسيط. عند +1R يُرفع الوقف إلى الدخول ± 5 نقاط مرة واحدة فقط لكل تذكرة (BE_Trigger_R يُنفّذ مرة واحدة). بعد ذلك يحرّك تريل الشاندلييه عند 3 × ATR(14) الوقف للأمام عند كل تيك، ولا يعود إلى الخلف أبدًا.

جني الأرباح

هدف الربح النهائي 3.0 R (افتراضي) ويُرسَل إلى الخادم عند الدخول. ينفّذ الإغلاق الجزئي 50% مرة واحدة عند 1.5 R من مسافة الـATR نفسها المستخدمة في الوقف. يُحجَب الجزئي إذا كان volume > lotsMin ويُتخطّى في وضع المحاكاة ما لم يراقب المستخدم سجل [DRY-RUN] PARTIAL TP1.

الأنسب لـ

أفضل نشر على XAUUSD M5 (افتراضيًا) بحساب 100 دولار؛ ويعمل الخبير أيضًا على أي زوج عملات رئيسي وعلى H1 بعد رفع InpTimeframe=5 وتوسيع المتوسطين إلى 20/50. الإعداد الافتراضي للمحاكاة يعني أن الأسبوع الأول يجب أن يكون سجلًا فقط على حساب تجريبي مع InpSessionMode=1 (ساعات لندن + نيويورك 7-20 بتوقيت الوسيط) لإبقاء النشاط داخل أكثر نوافذ المعادن سيولة. يتطلب سقف الفارق السعري 250 نقطة وسيطًا يبقى فيه فارق XAUUSD تحت 25 نقطة في معظم أوقات اليوم.

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

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

العائلة: MA الماجيك: 22207001 الإصدار: 2.00

الوصف: Fast/Slow EMA crossover signal gated by ADX+ATR-pctile+ BB-width regime, HTF EMA bias agreement, abnormal-spread / daily-loss / capital-cap guards. ATR-based stops, Chandelier trail, one-shot BE at 1R, 50% partial TP at TP1, opposite- signal and time-based exits. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • ClassifyRegime()
  • Percentile()
  • GetSignal()
  • IsConfirmed()
  • IsNoTradeBlocked()
  • InSession()
  • RiskPasses()
  • TodayRealizedPnL()
  • UpdateEffectiveCapital()
  • CountMyPositions()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX07001 MA — Execution Flow (from source analysis)
// Family: MA
// Fast/Slow EMA crossover signal gated by ADX+ATR-pctile+ BB-width regime, HTF EMA bias agreement, abnormal-spread / daily-loss / capital-cap guards. ATR-based stops, Chandelier trail, one-shot BE at 1R, 50% partial TP at TP1, opposite- signal and time-based exits. 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

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

المعاملالافتراضيالوصف
InpMagic22207001Magic Number
InpTradeComment"Psgrowth.com Expert_07001"Trade Comment
InpSymbol""Symbol override (""=_Symbol)
InpTimeframe4Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Working timeframe
InpRiskPercent0.5Risk per trade (% of effective cap)
InpFixedLot0.01Fallback fixed lot (if risk=0)
InpATR_SL_Mult2.0ATR stop-loss multiplier (R)
InpRR_TP3.0Reward:Risk for final TP
InpRR_Partial11.5Reward:Risk for partial TP1 (0=off)
InpPartial1Pct50.0Partial TP close % of position
InpDailyLossLimitPct3.0Daily loss limit (% of effective cap)
InpMaxConcurrent1Max concurrent positions (this symbol+magic)
InpCapitalCapAmount0.0Cap amount (real-money USD)
InpCapitalCapFloor50.0Floor; below this no new entries
InpMAFast10Fast EMA period
InpMASlow30Slow EMA period
InpHTF_EMA50HTF EMA period for bias (0=off)
InpATR_Trail_Mult3ATR trailing multiplier (Chandelier)
InpMaxBars240Max bars in trade (0=off)
InpBE_Trigger_R1Break-even trigger (R multiples, 0=off)
InpDryRuntrueDry-run (no live orders)
InpKillSwitchfalseKill switch (halt all activity)
InpMaxSpreadPts250Max spread (points, 0=off)
InpSessionMode10=any,1=London/NY only,2=Asia only
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX07001.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX07001 TrailingStop XAUUSD 5M — EMA cross + Chandelier trail, full 12-layer stack."

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

CTrade         trade;
CPositionInfo  position;
CSymbolInfo    sym;
CAccountInfo   acc;
COrderInfo     ord;
CDealInfo      deal;

//================== INPUTS (20 total) ==================
ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
   switch(tf)
   {
      case 1: return PERIOD_M1;
      case 2: return PERIOD_M5;
      case 3: return PERIOD_M15;
      case 4: return PERIOD_M30;
      case 5: return PERIOD_H1;
      case 6: return PERIOD_H4;
      case 7: return PERIOD_D1;
      default: return PERIOD_H1;
   }
}

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_TIMEFRAMES g_InpTimeframe = PERIOD_H1;
input group "=== Identity ==="
input long     InpMagic              = 22207001;                // Magic Number
input string   InpTradeComment       = "Psgrowth.com Expert_07001"; // Trade Comment
input string   InpSymbol             = "";                     // Symbol override (""=_Symbol)
input int InpTimeframe = 4; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)              // Working timeframe

ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
   switch(tf)

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

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

الوسوم:ex07001mapipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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