P
PipsGrowth
سكالبينجمفتوح المصدر - مجاني

Pipsgrowth EX14017 Scalper — إكسبرت أدفايزر إكسبرت أدفايزر

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

Pipsgrowth EX14017 Scalper — Professional scalping EA using MACD and RSI for entry signals with session control, news filter, spread/volume filters, . إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

يصف ترويسة Pipsgrowth EX14017 ProScalpEA نفسه بأنه مضارب مؤسسي من 12 طبقة، لكن مسار التنفيذ الفعلي داخل OnTick أبسط مما توحي به لوحة المدخلات. يُعلن المصدر المكون من 559 سطراً مجموعة غير معتادة من مجموعات المدخلات — General Inputs وSession Control وNews Filter وSpread/Volume/Correlation Filters وRisk Management وDynamic Profit Lock وPartial Close وIndicator Inputs — ومع ذلك لا تُستشار سوى ثلاث من هذه المجموعات فعلاً في كل تيك. المدخلات الأخرى نية موثقة تجلس على مستوى مربع الحوار. كل من ينشر هذا EA على حساب حقيقي يحتاج لقراءة المصدر، لأن اللوحة والسلوك الفعلي ليسا نفس الشيء.

طبقة الإشارة مبنية حول دالتين، ProcessMACDSignal() وProcessRSISignal()، تتبعان نمطاً غير معتاد: كل واحدة تنشئ مقبض المؤشر الخاص بها محلياً عبر iMACD() أو iRSI()، تنسخ شريطاً أو شريطين من البيانات، تعيد حكمها، وتخرج — لكن المقبض لا يُحرَّر أبداً عبر IndicatorRelease(). في كل تيك يُقيَّم فيه EA يُخصص مقبض جديد. النتيجة تسرّب بطيء للمقابض غير ضار في باك تيست أسبوعي لكن يستحق الذكر لأي تشغيل حي دون مراقبة، لأن MT5 لديه مجمع مقابض محدود لكل طرفية.

إعدادات MACD الافتراضية هي 12/26/9 على الإطار الزمني M30. مدخل InpMACD_TF_Entry = 4 يُحوَّل عبر MapTimeframeInt() إلى PERIOD_M30، وتصرح الدالة بـ ENUM_MACD_SIGNAL_MODE من ثلاث قيم — CROSS وTREND وDIVERGENCE — لكن فرع CROSS فقط هو المنفذ فعلياً. في وضع CROSS يُسجَّل الشراء عندما كان خط MACD في الشمعة السابقة تحت خط الإشارة السابق ويكون خط MACD الحالي قد قطع فوقه؛ والمرآة تُنتج -1.

استدعاء RSI داخل ShouldOpenTrade() مُرمَّز بشكل ثابت إلى PERIOD_M5, 14, 70, 30, 1. مدخلات المستخدم القابلة للتكوين InpRSI_Period وInpRSI_Overbought وInpRSI_Oversold موجودة ومرئية في اللوحة، لكن قرار التداول المباشر يتجاهلها ويستخدم الثوابت. يُعيد RSI القيمة +1 عندما ينخفض المؤشر تحت 30 (تشبع بيعي)، و-1 فوق 70 (تشبع شرائي)، و0 في الحالات الأخرى. الإشارتان متقاطعتان بمنطق AND: الشراء لا يُطلق إلا عندما يُعيد MACD القيمة +1 ويُعيد RSI القيمة +1 معاً.

بوابة ما قبل التداول داخل OnTick تسلسل ثلاث فحوصات. أولاً، IsWithinSession() تحلل InpSessionStart وInpSessionEnd (افتراضياً 08:00 إلى 18:00 بتوقيت السيرفر) عبر ParseSessionTime() وتُعيد false خارج النافذة عندما يكون InpUseSessionControl صحيحاً. ثانياً، IsNewsTime() عنصر نائب يُعيد false بشكل ثابت — مفتاح InpUseNewsFilter ومدخلات الإيقاف المؤقت 15 دقيقة قبل/بعد لا تُكرَّم إلا من حيث فحص ما إذا كان العنصر النائب قد انطلق، وهو ما لا يفعله. ثالثاً، IsSpreadAcceptable() تقارن السبريد الحالي (ASK ناقص BID) بالنقاط مع InpMaxSpreadPoints (افتراضي 20، أي نقطتين على وسيط ذهبي بخانات خمس) وتتخطى الإدخالات فوق ذلك بصمت عندما يكون InpUseSpreadFilter مُفعّلاً. لا يوجد كشف فارق توقيت GMT، ولا حارس يوم الأسبوع، ولا قاتل سحب، ولا فحص عدد المراكز الفعلي — رزمة الأمان المعيارية التي تشحنها بقية الكتالوج غائبة عن هذا الملف.

عندما تنجح البوابات الثلاث وتُطلق الإشارة المزدوجة، تبني OpenTrade() طلب MqlTradeRequest خام وترسله. الأمر شراء فقط — لا يوجد فرع بيع في الدالة. السعر هو ASK الحالي، وقف الخسارة هو bid ناقص InpMinSLPoints نقطة (افتراضي 50)، جني الأرباح هو bid زائد InpMinTPPoints نقطة (افتراضي 50)، الانحراف هو InpMaxSlippage (افتراضي 5)، الرقم السحري هو InpMagicNumber (افتراضي 22214017)، والتعليق هو InpTradeComment ('Psgrowth.com Expert_14017'). اللوت دائماً InpFixedLot (افتراضي 0.01) — تعداد InpLotSizeMode له أربع قيم (FIXED وPERCENT وMARTINGALE وANTI_MARTINGALE) لكن المسار الفعلي لا يتحول بناءً عليه، فمدخلات RiskPercent وMartingaleMultiplier وMinLot وMaxLot وMaxOpenTrades وMaxRiskPerSymbol وMaxGlobalRisk كلها ميتة. كما تفتقد الدالة استدعاء SetTypeFilling() الصريح، فيَرِث الأمر سياسة التعبئة الافتراضية للحساب، التي تعمل في معظم إعدادات ECN لكنها تفشل في البورصات التي تطلب FOK أو IOC صريح.

أبرز ما يميز هذا EA ما لا يفعله. ManageOpenTrades() جسم دالة فارغ تعليقها يقول 'Implement full management logic'. هذا يعني أن المدخلات المُعلنة التالية لا تفعل شيئاً في هذا الإصدار: InpUseDynamicProfitLock (صحيح افتراضياً) مع InpDynamicLockStart=10 وInpDynamicLockStep=5 وInpDynamicLockAmount=3 وInpDynamicLockUnit=PROFIT_LOCK_PIPS؛ وInpUsePartialClose (خطأ افتراضياً) مع InpPartialClosePercent=50؛ وInpCloseAtSessionEnd (صحيح افتراضياً)؛ وInpCloseAtEndOfDay (صحيح افتراضياً)؛ وInpMaxOpenTrades=3.

CloseAllTrades() هيكل فارغ أيضاً. المسار الوحيد الذي يُغلق صفقة هو ما يفعله الوسيط عند وقف الخسارة أو جني الأرباح. آلية قفل الربح الديناميكي التي يروّج لها الترويسة محض خيال في هذا الكود؛ والإغلاق الجزئي عند 50% خيال؛ والإغلاق بنهاية اليوم وبنهاية الجلسة خيال؛ وحد الـ 3 مراكز خيال. مدخلان مُعلان آخران ميتان: InpUseVolumeFilter وInpUseCorrelationFilter مكشوفان في مربع الحوار لكن لا يُشار إليهما من OnTick، فتفعيلهما بلا أثر. يُعلن g_emergencyStop على مستوى الملف ويُضبط إلى false عند البدء، لكن لا شيء في الكود يكتب إليه.

في أسفل الملف، ثلاث دوال مساعدة لإعادة المحاولة — TryClose_EX14017 وTryClosePartial_EX14017 وTryModify_EX14017 — تستخدم غلاف CTrade اسمه g_trade_wrappers_EX14017 لمحاولة كل عملية ثلاث مرات بنوم 200ms (إغلاق) أو 100ms (تعديل) عند REQUOTE أو TIMEOUT أو PRICE_OFF أو PRICE_CHANGED. لا شيء منها يُستدعى من OnTick — يستخدم مسار الأمر المباشر OrderSend(MqlTradeRequest, MqlTradeResult) الخام، فمنطق إعادة المحاولة كود ميت في هذا الإصدار. إذا أعاد الوسيط requote على الدخول، يسجّل EA 'OrderSend failed: ' زائد كود الخطأ وتُفقد الشمعة.

تكرار MapTimeframeInt وMapAppliedPriceInt تسع مرات أثر قالب: نفس الدالة تُعرَّف مرة لكل مجموعة مدخلات، الأجسام متطابقة، والتعريف الأخير يفوز. هذا يُترجم بنجاح لكنه يخبرك أن الملف أُنشئ بأداة ملء قالب لا بكتابة يدوية.

OnTester() يُرجع 0، ما يعني أن strategy tester يرجع إلى معيار التحسين الافتراضي للرصيد / السحب الأقصى. لا توجد دالة لياقة مخصصة.

الصورة العملية للنشر هي: EX14017 مضارب MACD+RSI عامل يفتح أوامر شراء على إشارات صاعدة مزدوجة خلال نافذة السيرفر 08:00-18:00 المُكوّنة، مع سبريد محدد بـ 20 نقطة. ليس إطار عمل لإدارة الأموال. المتداول الذي يعتمد على الإعدادات الافتراضية دون قراءة المصدر سيعتقد أن لديه قاتل مخاطر عالمية 5% وقفل ربح بترقية تدريجية وإغلاق جزئي 50% وحد 3 مراكز؛ في الواقع لا يملك أياً من هذه. أنظف استخدام لهذا EA هو تفعيله على لوت ثابت 0.01، وحصره في نافذة السيرفر 08:00-18:00 حتى لا تترك الهياكل الفارغة مراكز تعمل بين عشية وضحاها، ومعامل كل مدخل من Risk Management وDynamic Profit Lock كوصف للنية لا كسلوك فعلي. إذا كنت تحتاج إدارة أموال فعلية، الفجوة في ManageOpenTrades() وCloseAllTrades() — كلتا الدالتين تنتظران أن تُملآ.

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

كل تيك على M5 يمر عبر ثلاث بوابات قبل التداول قبل أن يعمل منطق الإشارة. IsWithinSession() تحلل وقت السيرفر 08:00-18:00 وتخرج بصمت خارج النافذة؛ IsNewsTime() هيكل يُرجع false دائماً؛ IsSpreadAcceptable() ترفض الإدخالات فوق 20 نقطة عندما يكون InpUseSpreadFilter مُفعّلاً. عندما تنجح البوابات، تخصص ProcessMACDSignal() مقبض iMACD جديد على M30 وتُرجع +1 عند تقاطع صاعد، ثم تخصص ProcessRSISignal() مقبض iRSI جديد على M5 مُرمَّز إلى 14/30 وتُرجع +1 تحت 30. تتطلب ShouldOpenTrade() أن يكون كلاهما +1، ثم ترسل OpenTrade() طلب شراء خام واحد من MqlTradeRequest بسعر ask مع وقف 50 نقطة وجني 50 نقطة ولوت ثابت 0.01 ورقم سحري 22214017 والتعليق المُكوَّن. كل ما عداه في لوحة المدخلات — مُختار وضع حجم اللوت، قفل الربح الديناميكي، الإغلاق الجزئي، إغلاق نهاية اليوم، حدود المخاطرة، فلتر الأخبار، فلتر الحجم والارتباط — معلن في مربع الحوار ولا يقرأه OnTick، مع ManageOpenTrades() وCloseAllTrades() جالستين كأجسام دوال فارغة.

إشارة الدخول

تُطلق إشارة الدخول الطويلة عندما يقطع خط MACD على M30 خط الإشارة صعوداً في وضع CROSS (إعدادات 12/26/9 الافتراضية) ويطبع مؤشر RSI(14) على M5 تحت 30، كلاهما مُقيَّم على shift=1 داخل ProcessMACDSignal() وProcessRSISignal(). الاثنان مدمجان بشرط AND في ShouldOpenTrade(). دالة OpenTrade() مُرمَّزة إلى ORDER_TYPE_BUY، فحتى لو أعادت دوال المؤشر القيمة -1، لا يُرسل أي أمر بيع في هذا الإصدار.

إشارة الخروج

تتم جميع المخارج من جهة الوسيط: وقف الخسارة 50 نقطة وجني الأرباح 50 نقطة المرفقان عند الفتح هما المسار الوحيد الذي يُغلق صفقة. دوال ManageOpenTrades() وCloseAllTrades() هياكل فارغة في هذا الإصدار، فعلامات InpUseDynamicProfitLock وInpUsePartialClose وInpCloseAtSessionEnd وInpCloseAtEndOfDay المُعلنة كلها ميتة. لا يوجد trailing ولا نقطة تعادل ولا إغلاق قائم على الإشارة — الطريقة الوحيدة للخروج هي القوس أو إغلاق خارجي.

وقف الخسارة

وقف خسارة ثابت 50 نقطة يُرفق من جهة الوسيط عند الفتح (InpMinSLPoints=50 بدقة _Point)، يُرسل كجزء من MqlTradeRequest الخام. لا يقوم الـ EA بتتبع trailing ولا بنقل وقف الخسارة إلى نقطة التعادل، ولا يدير الوقف فعلياً — دالة ManageOpenTrades() هيكل فارغ، فلا يتغير وقف الخسارة إلا إذا عدّله الوسيط نفسه أو وصلت الصفقة إلى القوس.

جني الأرباح

جني أرباح ثابت 50 نقطة يُرفق من جهة الوسيط عند الفتح (InpMinTPPoints=50)، مما ينتج نسبة مخاطرة إلى عائد 1:1 صارمة في كل صفقة. لا يوجد إغلاق جزئي ولا قفل ربح بترقية تدريجية ولا خروج متدرج — InpUsePartialClose ومدخلات قفل الربح الديناميكي معلنة في اللوحة لكن مسار التنفيذ الفعلي لا يقرأها.

الأنسب لـ

يتناسب مع حساب ECN أو RAW سبريد منخفض على XAUUSD عند M5، برصيد أدنى 100 دولار وحجم ثابت 0.01. شغّله خلال نافذة السيرفر 08:00-18:00 المحلية (UTC+2 افتراضياً) ليتطابق بوابة الجلسة مع جلسة لندن-نيويورك حيث تميل ارتدادات RSI على M5 إلى العودة النظيفة. لا تعتمد على فلتر الأخبار أو قفل الربح الديناميكي أو الإغلاق الجزئي أو حد MaxOpenTrades أو أي من مدخلات Risk Management — لا شيء منها مدمج في مسار التنفيذ الفعلي في هذا الإصدار؛ عامل هذا EA كمصدر إشارات، لا كمحرك إدارة مراكز.

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

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

العائلة: Scalper الماجيك: 22214017 الإصدار: 2.00

الوصف: Professional scalping EA using MACD and RSI for entry signals with session control, news filter, spread/volume filters, dynamic profit lock, and partial close. Modular indicator signal processing architecture. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • Log()
  • NormalizePrice()
  • GetBrokerTime()
  • ParseSessionTime()
  • IsWithinSession()
  • IsNewsTime()
  • IsSpreadAcceptable()
  • OpenTrade()
  • ManageOpenTrades()
  • CloseAllTrades()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX14017 Scalper — Execution Flow (from source analysis)
// Family: Scalper
// Professional scalping EA using MACD and RSI for entry signals with session control, news filter, spread/volume filters, dynamic profit lock, and partial close. Modular indicator signal processing architecture. 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اسحب الإكسبرت من Navigator وأفلته على أي رسم بياني (يُنصح بـ M1 أو M5)
  7. 7في نافذة الإعدادات، فعّل Allow Algo Trading وحدد حجم اللوت
  8. 8اضغط OK — سيبدأ الإكسبرت بالتداول تلقائياً

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

المعاملالافتراضيالوصف
InpBrokerTimeZone"UTC+2"Broker time zone
InpDebugModefalseEnable debug logging
InpMagicNumber22214017Magic Number
InpTradeComment"Psgrowth.com Expert_14017"=== Session Control ===
InpCloseAtEndOfDaytrue=== News Filter ===
InpNewsPauseMinutesAfter15=== Spread/Volume/Correlation Filters ===
InpCorrelationThreshold0.8=== Risk Management ===
InpMaxGlobalRisk5.0=== Dynamic Profit Lock ===
InpDynamicLockUnitPROFIT_LOCK_PIPS=== Partial Close ===
InpPartialClosePercent50.0=== Indicator Inputs ===
InpMACD_TF_Entry4Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)
InpRSI_Oversold30... (Repeat for all indicators and roles as per plan) ...
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX14017.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX14017 ProScalpEA — Professional MACD/RSI scalper with session control, news filter and dynamic profit lock, full 12-layer stack."
#include <Trade\Trade.mqh>

//------------------- ENUMS & CONSTANTS -----------------------------//
// Move enums above all input declarations for correct MQL5 parsing

enum ENUM_LOT_SIZE_MODE { LOT_SIZE_FIXED, LOT_SIZE_PERCENT, LOT_SIZE_MARTINGALE, LOT_SIZE_ANTI_MARTINGALE };
enum ENUM_PROFIT_LOCK_UNIT { PROFIT_LOCK_POINTS, PROFIT_LOCK_PIPS, PROFIT_LOCK_MONEY };
enum ENUM_MACD_SIGNAL_MODE { MACD_SIGNAL_CROSS, MACD_SIGNAL_TREND, MACD_SIGNAL_DIVERGENCE };
// ... Add enums for all indicator modes, filters, etc. ...

//------------------- INPUT PARAMETERS SUMMARY ----------------------//
// (All grouped, commented, and matching the plan)
// ... (For brevity, only a subset is shown. Expand as needed) ...

//=== General Inputs ===
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_InpMACD_TF_Entry = PERIOD_H1;
input group "=== General Inputs ==="
input string InpBrokerTimeZone = "UTC+2"; // Broker time zone
input bool   InpDebugMode      = false;    // Enable debug logging
input int    InpMagicNumber    = 22214017;                 // Magic Number
input string InpTradeComment   = "Psgrowth.com Expert_14017";

//=== Session Control ===
ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
   switch(tf)

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

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

الوسوم:ex14017scalperpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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