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

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

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

Pipsgrowth EX14011 Scalper — Simple Gold scalper using WPR and RSI confluence for entry signals (oversold/overbought), with risk-based lot sizing and. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX14011 هو مستشار خبير (EA) ل scalper الذهب يعمل على إغلاق الشمعة ومركز واحد فقط، ولا يُطلق أي صفقة إلا عندما يجلس كل من مؤشر Williams Percent Range(14) ومؤشر القوة النسبية RSI(14) في نفس المنطقة القصوى على نفس شمعة الإطار الزمني M5. قرار الدخول بالكامل هو بوابة AND بين المذبذبين — لا يوجد مرشح نظام سوق، ولا طبقة اتجاه، ولا شمعة تأكيد، ولا حاجز أخبار، ولا فحص متعدد الأطر الزمنية. عندما يتفق كلا المؤشرين على أن السعر قد امتد بشكل مفرط، يفتح EA أمر سوق واحداً في ذلك الاتجاه بوقف خسارة 300 نقطة وهدف 500 نقطة، ثم ينتظر حتى تُغلق الصفقة قبل أن ينظر إلى الإشارة التالية.

يقع توقيت الشموع داخل OnTick. يقوم المعالج بتحديث رمز الأداة، ويتحقق من mysymbol.Spread() > InpMaxSpread (الافتراضي 250 نقطة، أي ما يعادل 25 نقطة تقريبًا على تسعير الذهب بـ 5 أرقام) كبوابة عدم تداول صارمة، ثم يقارن الطابع الزمني للشريط الحالي iTime بطابع زمني ثابت lastBar. إذا كان الطابع الزمني متطابقًا، تعود OnTick فورًا — مما يعني أن كل تقييم وكل قراءة مؤشر وحساب حجم لوت يحدث مرة واحدة فقط لكل شمعة M5 جديدة. داخل CheckSignal يتحقق EA أولاً من PositionsTotal() > 0 ويُرجع إذا كان هناك أي شيء مفتوحًا، لذا فإن هذا تصميم صارم لمركز واحد في كل مرة: لن يقوم EA أبدًا بتركيب مراكز (pyramiding)، ولن يتحوط، ولن يبني شبكة (grid)، ولن يدخل صفقة ثانية بينما الأولى لا تزال قيد التشغيل.

منطق الإشارة في CheckSignal يقرأ قيم WPR(14) و RSI(14) للشمعة السابقة عبر CopyBuffer(hWPR, 0, 1, 1, bufWPR) و CopyBuffer(hRSI, 0, 1, 1, bufRSI). يتم إطلاق الشراء فقط عندما wpr < -80 و rsi < 30 — كلا المذبذبين يقولان تشبع بيعي في نفس الوقت. يتم إطلاق البيع فقط عندما wpr > -20 و rsi > 70 — كلاهما يقولان تشبع شرائي. لا توجد إشارة وسيطة: إذا قال WPR تشبعًا بيعيًا وقال RSI محايدًا، لا شيء يحدث. هذا التقاطع AND هو محرك الدخول بالكامل. لهذا السبب EA بهذه البساطة — مقبضان، زوجان من العتبات، جانب شراء واحد، جانب بيع واحد.

يعمل حساب حجم اللوت من خلال CalculateLotSize(InpStopLoss). عندما يكون InpRiskPercent > 0 (الافتراضي 1.0)، تحسب الدالة riskMoney = account.Balance() * InpRiskPercent / 100.0، ثم تحل lot = riskMoney / riskPerLot حيث riskPerLot = stopLossPoints * (tickValue / (tickSize / pointVal)). هذه صيغة كلاسيكية للمخاطرة بناءً على مسافة الوقف: تُستخدم قيمة التيك وحجم التيك من الوسيط لترجمة وقف الـ 300 نقطة إلى تعرض بالدولار لكل لوت لـ XAUUSD، ويتم تقريب اللوت إلى الأسفل إلى LotsStep للرمز، ثم يتم تثبيته بين LotsMin / LotsMax. عندما InpRiskPercent = 0 ترجع الدالة الحجم الثابت الاحتياطي InpFixedLot = 0.01. لا يوجد تركيب، ولا توسيع قائم على الرصيد beyond قاعدة 1%، ولا تجاوز للمخاطرة لكل صفقة.

يتم تفويض تنفيذ الأمر إلى غلاف CTrade القياسي. يقوم OpenBuy بضبط وقف الخسارة على Ask - 300 * Point و TP على Ask + 500 * Point، ثم يستدعي trade.Buy(lot, _Symbol, mysymbol.Ask(), sl, tp, InpTradeComment). يعكس OpenSell بـ Bid + 300 * Point و Bid - 500 * Point و trade.Sell(...). يربط trade.SetExpertMagicNumber(22214011) كل تنفيذ بهذا الرقم السحري حتى يتمكن EA من تحديد أوامره الخاصة في حساب متعدد الـ EA. يتم ترميز trade.SetTypeFilling(ORDER_FILLING_FOK) بشكل ثابت في OnInit، وهو صحيح لمعظم وسطاء MT5 الذين يسمحون بـ Fill-Or-Kill على الذهب.

ما لا يفعله EA لا يقل أهمية عما يفعله. لا يوجد وقف متحرك (trailing stop)، ولا نقل إلى نقطة التعادل، ولا إغلاق جزئي، ولا خروج قائم على الوقت، ولا مفتاح قتل لحماية رأس المال، ولا حد خسارة يومي، ولا سقف تراجع، ولا حارس هامش، ولا مرشح أخبار، ولا مرشح جلسة، ولا حارس سحري لكل رمز beyond الرقم السحري، ولا اختبار OnTester. يعلن الرأس عن مجموعة من 12 طبقة (REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester) لكن الكود يربط فقط طبقات SIGNAL و ENTRY و NO-TRADE و RISK و SIZING — كل شيء في قسم MANAGE / EXIT / SCALING / OnTester / REGIME / CONFIRM / CAPITAL CAP هو نسخة تسويقية. يحدد الملف أيضًا ثلاث مساعدات إعادة المحاولة — TryClose_EX14011 و TryClosePartial_EX14011 و TryModify_EX14011 — التي تحلق كل منها 3 مرات على REQUOTE / TIMEOUT / PRICE_OFF / PRICE_CHANGED مع نوم 200 مللي ثانية، ولكن لا يتم استدعاء أي منها في داخل EA. إنها كود ميت، متبقي من نسخة أثقل من القالب الذي تم اشتقاق نسخة Gold-scalper الأبسط هذه منه.

وجود مساعدات إعادة المحاولة هو أقوى مؤشر على نية التصميم: ربما كان المؤلف سيضيف ممر إدارة مركز يستدعي TryModify_EX14011 لتشديد الوقف، وممر إغلاق جزئي يستدعي TryClosePartial_EX14011 للخروج بـ 50% عند 1R وترك الباقي يركض إلى TP. لا شيء من ذلك نشط. دورة حياة المركز الفعلية هي: افتح بـ SL/TP معينين، امشِ بعيدًا، دع الوسيط يضرب أحد السعرين، ثم ينخفض PositionsTotal() إلى 0 ويُسمح لـ EA بالبحث عن الإشارة التالية على الشمعة الجديدة التالية.

في الاختبار الخلفي (backtest) هذا يعني أن منحنى الأسهم سيكون سلسلة من الصفقات الثابتة بنسبة مكافأة إلى مخاطرة 5:3 (500 TP / 300 SL) تتخللها شموع تم تخطيها حيث فشل مذبذب واحد في التأكيد. معدل الربح المطلوب لتحقيق التعادل على قوس 5:3 هو 37.5%؛ أي شيء فوق ذلك ربح. لأن WPR و RSI مرتبطان لكنهما ليسا متطابقين، تقوم بوابة AND بتصفية شريحة ذات معنى من الإشارات الهامشية — سيكون عدد الصفقات أقل من نظام مذبذب واحد، لكن جودة الصفقة الواحدة يجب أن تكون أعلى. الجانب الآخر هو أنه خلال الاتجاهات التي تأخذ الذهب عميقاً في تشبع شرائي أو بيعي لعدة شموع متتالية، سيستمر EA في أخذ إدخالات معاكسة للاتجاه في المناطق القصوى؛ عدم وجود مرشح نظام سوق هو عن قصد لكنه أكبر مخاطرة واحدة يجب معرفتها قبل الذهاب إلى التداول الحي.

عمليًا: من الأفضل فهم EA كعيار نموذجي صغير قابل للتدقيق يعتمد على تقاطع المؤشرات. الاستراتيجية بأكملها تتسع في CheckSignal (12 سطرًا من المنطق الفعلي)، وإدارة الأموال بأكملها تتسع في CalculateLotSize (12 سطرًا)، والتنفيذ بأكمله يتسع في OpenBuy / OpenSell (5 أسطر لكل منهما). إذا كنت تريد scalper للذهب يمكنك قراءته من البداية إلى النهاية في دقيقتين وتعديله بثقة، فهذا هو بالضبط. إذا كنت تريد نظام إنتاج متعدد الطبقات منتهي، فهذا نقطة البداية، وليس الوجهة — مساعدات إعادة المحاولة ورأس الـ 12 طبقة هما خارطة الطريق لما كان مقصودًا بعد ذلك.

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

يقوم OnTick بتحديث رمز الأداة ويرفض التيك بالكامل عندما يتجاوز السبريد 250 نقطة خام، ثم يحرس كل إجراء لاحق خلف فحص ثابت lastBar == iTime بحيث يعمل تقييم الإشارة وقراءات المؤشر وحساب اللوت مرة واحدة بالضبط لكل شمعة M5 جديدة. داخل CheckSignal يقرأ EA شمعة واحدة من WPR(14) وشمعة واحدة من RSI(14) ويطبق بوابة AND صارمة: WPR<-80 و RSI<30 تُسلِّح الشراء، WPR>-20 و RSI>70 تُسلِّح البيع، أي شيء آخر هو عدم تداول. ثم يقوم CalculateLotSize بتحجيم الأمر against ميزانية مخاطرة 1% من الرصيد باستخدام قيمة التيك وحجم التيك من الوسيط لترجمة وقف الـ 300 نقطة إلى تعرض بالدولار لكل لوت، ويُقَرِّب النتيجة إلى الأسفل إلى خطوة اللوت للرمز، ويثبتها بين الحد الأدنى/الأقصى للوت لدى الوسيط. يرفق OpenBuy و OpenSell وقف الخسارة 300 نقطة و TP 500 نقطة المشفرين بشكل ثابت بالتنفيذ، ويضبطان الرقم السحري على 22214011، ويقدمان أمر سوق واحد عبر غلاف CTrade في وضع FOK. بعد التقديم، لا يفعل OnTick شيئًا آخر — لا يوجد ممر إدارة مركز، ولا تشديد متحرك، ولا إغلاق جزئي، ولا خروج قائم على الوقت، ولا حارس رأس مال أو تراجع، لذا فإن دورة الحياة هي افتح وامشِ بعيدًا حتى يضرب الوسيط SL أو TP. يحدد الملف ثلاث مساعدات إعادة المحاولة (TryClose_EX14011، TryClosePartial_EX14011، TryModify_EX14011) التي تُعيد المحاولة 3 مرات مع نوم 200 مللي ثانية على REQUOTE / TIMEOUT / PRICE_OFF / PRICE_CHANGED، ولكن لا يتم استدعاء أي منها في البناء الحالي — إنها كود ميت متبقي من القالب الأثقل الذي تم اشتقاق هذا scalper منه.

إشارة الدخول

يُطلق Pipsgrowth EX14011 أمر الشراء فقط عندما يكون WPR(14) أقل من -80 و RSI(14) أقل من 30 على شمعة M5 المغلقة للتو — تقاطع تشبع بيعي صارم بمذبذبين. يُطلق أمر البيع فقط عندما يكون WPR(14) أكبر من -20 و RSI(14) أكبر من 70 على نفس الشمعة. تُقيَّم الإدخالات مرة واحدة لكل شمعة جديدة (يتخطى معالج OnTick حتى يتقدم iTime) ويرفض EA فتح صفقة جديدة إذا كان PositionsTotal() > 0، لذا فهو مركز واحد فقط في كل مرة بدون تركيب.

إشارة الخروج

لا يوجد منطق خروج يقوده EA. كل أمر يُفتح مع إرفاق SL و TP مشفرين بشكل ثابت وقت التنفيذ، و EA ببساطة ينتظر أن يضرب الوسيط أحدهما. لا تُقيَّم الإشارة التالية إلا بعد أن ينخفض PositionsTotal() إلى 0، مما يعني أن EA لن يدخل صفقة جديدة حتى يتم إغلاق الصفقة الحالية بواسطة SL أو TP أو تدخل يدوي أو نداء هامش.

وقف الخسارة

كل أمر يُفتح مع وقف خسارة ثابت قدره 300 نقطة مرفق بالتنفيذ. يتم ضبط SL بالنقاط الخام (Ask - 300Point للشراء، Bid + 300Point للبيع) ولا يتم تعديله بعد ذلك — لا يوجد وقف متحرك، ولا نقل إلى نقطة التعادل، ولا ممر إدارة. تُمرَّر نفس مسافة الـ 300 نقطة أيضًا إلى CalculateLotSize بحيث تحسب صيغة اللوت القائمة على المخاطرة بناءً على مسافة الوقف الفعلية.

جني الأرباح

كل أمر يُفتح مع جني أرباح ثابت قدره 500 نقطة مرفق بالتنفيذ (Ask + 500Point للشراء، Bid - 500Point للبيع)، مما يعطي نسبة مكافأة إلى مخاطرة 5:3 مقابل وقف الـ 300 نقطة. لا يتم تعديل TP ولا يوجد تحجيم للخروج — إما أن يضرب المركز TP بالكامل، أو يضرب SL، أو يُغلق خارجيًا.

الأنسب لـ

مناسب بشكل أفضل لـ XAUUSD على الإطار الزمني M5 مع حد أدنى موصى به للرصيد 100 دولار (المخاطرة الافتراضية 1% في EA على وقف 300 نقطة للذهب تحجم إلى ما يقرب 0.01-0.03 لوت، لذا حتى الحسابات الصغيرة قابلة للتشغيل) و وسيط يدعم ORDER_FILLING_FOK مع سبريد بالنقاط الخام على الذهب — معظم وسطاء ECN و RAW-spread في MT5 مؤهلون. يعني عدم وجود سقف رأس المال وعدم وجود مرشح جلسة أن EA مسؤولية المتداول لمراقبته أو تغليفه بـ EA أمان أبوي؛ توقع إشارات متجمعة في جلستي لندن ونيويورك عندما يكون تقلب الذهب في أعلى مستوياته، وعدد قليل أو لا توجد صفقات خلال الجلسة الآسيوية الهادئة. تسامح الانزلاق مضبوط بشكل محكم عند 3 نقاط، لذا لا تشغله على وسيط بسبريد متغير واسع أو نموذج تنفيذ dealing-desk.

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

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

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

الوصف: Simple Gold scalper using WPR and RSI confluence for entry signals (oversold/overbought), with risk-based lot sizing and fixed SL/TP in points. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • CheckSignal()
  • OpenBuy()
  • OpenSell()
  • CalculateLotSize()
  • TryClose_EX14011()
  • TryClosePartial_EX14011()
  • TryModify_EX14011()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX14011 Scalper — Execution Flow (from source analysis)
// Family: Scalper
// Simple Gold scalper using WPR and RSI confluence for entry signals (oversold/overbought), with risk-based lot sizing 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اسحب الإكسبرت من Navigator وأفلته على أي رسم بياني (يُنصح بـ M1 أو M5)
  7. 7في نافذة الإعدادات، فعّل Allow Algo Trading وحدد حجم اللوت
  8. 8اضغط OK — سيبدأ الإكسبرت بالتداول تلقائياً

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

المعاملالافتراضيالوصف
InpWPRPeriod14WPR Period
InpRSIPeriod14RSI Period
InpRiskPercent1.0Risk Percent per Trade
InpFixedLot0.01Fixed Lot (if Risk=0)
InpStopLoss300Stop Loss (points)
InpTakeProfit500Take Profit (points)
InpMagicNumber22214011Magic Number
InpTradeComment"Psgrowth.com Expert_14011"Trade Comment
InpMaxSpread250Max Spread (points)
InpSlippage3Slippage
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX14011.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX14011 SimpleGoldScalper_XAUUSD_5M — WPR/RSI confluence Gold scalper with risk-based lot sizing, 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      InpWPRPeriod      = 14;       // WPR Period
input int      InpRSIPeriod      = 14;       // RSI Period

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       = 300;      // Stop Loss (points)
input int      InpTakeProfit     = 500;      // Take Profit (points)

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

//--- Handles
int    hWPR;
int    hRSI;

//--- Global Buffers
double bufWPR[];
double bufRSI[];

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

   hWPR = iWPR(_Symbol, _Period, InpWPRPeriod);
   hRSI = iRSI(_Symbol, _Period, InpRSIPeriod, PRICE_CLOSE);
   
   if(hWPR == INVALID_HANDLE || hRSI == INVALID_HANDLE) 
      return(INIT_FAILED);
   
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+

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

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

الوسوم:ex14011scalperpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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