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

Pipsgrowth EX10014 Momentum-Scalper — إكسبرت أدفايزر إكسبرت أدفايزر

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

Pipsgrowth EX10014 Momentum-Scalper — Momentum + EMA scalping EA for XAUUSD M5 that enters on momentum crossover confirmed by EMA alignment and sustained tren. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

إكس 10014 من بيبس جروث هو مستشار خبير لاختراقات الزخم، مبني حول شرط دخول بسيط لكنه صارم: تقاطع جديد لخط الـ 100 على مؤشر الزخم السريع، مدعوماً بـ 10 شموع متتالية يتفق فيها كل من زخم بطيء أعلى من 100، ومتوسط متحرك أسي سريع أعلى من متوسط متحرك أسي بطيء. الفكرة هي اقتناص اندفاع سعري حقيقي، وليس مجرد ارتداد — عبور خط الزخم فوق 100 مجدداً يعني أن معدل التغير اللحظي أصبح إيجابياً، ونافذة الـ lookback تجبر المستشار على الانتظار حتى يستقر هيكل الاتجاه لمدة 10 شموع على الأقل قبل أن يدخل في صفقة.

يتكون مكدس الإشارات من أربعة مؤشرات. زخم سريع (فترة 10) وزخم بطيء (فترة 34) كلاهما افتراضياً على PRICE_CLOSE. متوسطان متحركان أسيان (فترة 10 و34، MODE_EMA) يوفران العمود الفقري للاتجاه. شرط الشراء يتطلب ثلاثة أشياء في وقت واحد: زخم سريع للشمعة 1 أعلى من 100 مع زخم سريع للشمعة 2 عند 100 أو أقل (تقاطع صاعد جديد لمنتصف الـ 100)، وكل واحدة من آخر 10 شموع تُظهر زخم بطيء أعلى من 100، وكل واحدة من آخر 10 شموع تُظهر المتوسط السريع أعلى من البطيء. شرط البيع هو المرآة: تقاطع هبوطي جديد لخط الـ 100 على الزخم السريع، مع زخم بطيء أدنى من 100 ومتوسط سريع أدنى من بطيء في كل شموع الـ 10. تعمل CheckSignal() عند إغلاق كل شمعة M5 جديدة، محجوبة بفحص lastBar الثابت بحيث لا تنطلق أكثر من مرة لكل شمعة.

يمر تحديد حجم الصفقة عبر CalculateLotSize(). إذا كان InpRiskPercent موجباً، يحسب المستشار riskMoney = الرصيد * InpRiskPercent/100 ويقسمها على المخاطرة لكل لوت التي يستلزمها وقف الـ 400 نقطة. تُقرَّب النتيجة إلى درجة حجم اللوت للرمز، وتُقيَّد بحدود الحد الأدنى والأعلى للوسيط، وبسقف InpMaxLot (افتراضي 5.0). إذا كان InpRiskPercent صفراً، يسقط المستشار على InpFixedLot الثابت (0.01). عند الدخول، تحاول OpenBuy وOpenSell الأمر لما يصل إلى 3 مرات — كل إعادة محاولة توسّع انحراف التنفيذ بـ 5 نقاط وتنام 500 مللي ثانية — ولا تُطلق الأمر إلا بعد أن يؤكد OrderCalcMargin أن الهامش الحر يغطي الطلب.

تحديد الوقف والهدف ثابت بالنقاط. الوقف الافتراضي 400 نقطة والهدف 1200 نقطة، مما يعطي نسبة مخاطرة/مكافأة غير متماثلة 1:3 تعتمد على تحرك السعر ثلاث مرات مسافة الوقف في الاتجاه المواتي قبل أن يتدخل منطق التتبع. تحسب كل من OpenBuy وOpenSell وقف الخسارة وهدف جني الأرباح مباشرة من سعر ask/bid المباشر ونقطة الرمز، لذا تتغير القيم الفعلية بالنقاط مع عدد الخانات لدى الوسيط.

التريلينج يديره ManageProfitLock(). عندما يكون InpEnableTrail مفعّلاً (افتراضي)، بمجرد أن تكون الصفقة الطويلة في ربح بأكثر من InpTrailStart نقطة (300)، يرفع المستشار وقف الخسارة إلى bid − InpTrailDistance (150 نقطة خلف bid)، لكن فقط إذا كان هذا الوقف الجديد أعلى من الوقف الحالي. البيع معكوس: ask − سعر الدخول يجب أن يتجاوز 300 نقطة قبل تعيين وقف عند ask + 150. يتحرك التريلينج دائماً في الاتجاه المواتي فقط ولا يتراخى أبداً. يتعامل TryModify_EX10014 مع تعديل الأمر بحد أقصى 3 محاولات عند REQUOTE أو TIMEOUT، مع نوم 100 مللي ثانية بين المحاولات.

الهرَمَة مسموحة لما يصل إلى InpMaxPositions (3) صفقات لكل اتجاه، لكن فقط بعد أن تكون الصفقة القائمة في ربح بمقدار InpMinProfitPoints (300 نقطة). تمشي IsGridSafe() على جميع المراكز المفتوحة على الرمز بهذا الرقم السحري وترجع false إذا كان أي مركز في نفس الاتجاه تحت عتبة الربح تلك. تضاف الهرَمة على نفس الإشارة — تقاطع زخم جديد على شمعة جديدة — وليس على قاعدة تحجيم منفصلة. كل دخول هرمي يحمل نفس وقف/هدف 400/1200 الثابت ونفس حجم اللوت كإشارة جديدة.

إدارة المخاطر ملفوفة حول مسار الدخول في IsSafeToTrade_EX10014(). تختبر البوابة تسعة شروط: سقف رأس مال يعطل الدخول الجديد بمجرد أن يصل الإنويتي إلى InpCapAmount (0 = معطل)؛ أرضية رأس مال تحظر الدخول تحت InpCapFloor ($50 افتراضي)؛ قاطع دائرة تراجعي للإنويتي عند 95% من g_initialBalance؛ حد خسارة يومي عند 3% من رأس المال الفعال؛ حد خسارة أسبوعي عند 6% (ضعف اليومي)؛ تهدئة 30 دقيقة بعد 3 خسائر متتالية؛ سقف 50 صفقة يومياً؛ فحص ساعات السوق الذي يغلق المستشار حول الجمعة 21:00 بتوقيت جرينتش وكل يوم السبت؛ وفلتر جلسات يتطلب أن يتداخل الوقت الحالي بتوقيت جرينتش مع لندن (7-16) أو نيويورك (12-21) ما لم تُسمح آسيا. يضيف InpNewsFilter الاختياري تعتيم 15 دقيقة حول افتتاح جلستي لندن ونيويورك. رأس المال الفعال لاختبارات الخسارة اليومية/الأسبوعية هو min(إنويتي، InpCapAmount) عند تفعيل السقف، وإلا فالإنويتي الخام.

الربح والخسارة المحققان اللذان يغذيان عدادات يومية يتم سحبهما من تيار الصفقات، وليس من تتبع الحساب. تراقب OnTradeTransaction أحداث DEAL_TRANSACTION_DEAL_ADD، وتصفّي حسب الرقم السحري وDEAL_ENTRY_OUT، وتجمع DEAL_PROFIT + SWAP + COMMISSION في g_realizedToday وg_realizedWeek وg_tradesToday. الخسارة تزيد g_consecLosses وتضبط g_cooldownUntil إلى الآن + 30 دقيقة. تُعيد UpdateDailyCounters_EX10014() ضبط هذه العدادات عند انقلاب التاريخ بتوقيت الخادم.

تُرجع OnTester() القيمة (صافي * معامل الربح) / (1 + نسبة_التراجع_النسبية) عندما يحتوي الاختبار الخلفي على 30 صفقة على الأقل ومعامل ربح موجب — معيار مخصص يكافئ كلاً من الربح المطلق والربح لكل وحدة تراجعية. يُكتشف إزاحة جرينتش تلقائياً بواسطة DetectGMTOffset_EX10014() عندما يكون InpServerGMTOffset صفراً، من خلال استكشاف شموع H1 بحثاً عن فجوة عطلة نهاية أسبوع قدرها 3+ ساعات وطرح 22 ساعة من ساعة الشمعة بعد الفجوة. تنفيذ FOK مشفّر عبر trade.SetTypeFilling(ORDER_FILLING_FOK) في OnInit.

في الاختبار الخلفي، توقع عدد صفقات متوسط على XAUUSD M5 مع عدد قليل نسبياً من الرابحين (نسبة 1:3 تعني أن المستشار يحتاج أن يمتد الاتجاه) وخسائر متكتلة خلال الجلسة الآسيوية (التي يتجنبها المستشار صراحةً). دخول خط زخم-100 يعني أن المستشار صامت خلال الأنظمة الجانبية حيث يتمحور الزخم حول 100 — هذه ميزة وليست عيباً: المستشار مبني لتداول الاندفاعات، وليس التذبذب.

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

في كل تكة، يحدّث المستشار الرمز، يختبر السبريد ضد InpMaxSpread (250 نقطة)، يشغّل ManageProfitLock() على كل مركز مفتوح، ثم يخرج ما لم تُرجع IsSafeToTrade_EX10014() القيمة true. بمجرد افتتاح شمعة M5 جديدة، تسحب CheckSignal() بافرات الزخم السريع والبطيء والمتوسط السريع والبطيء لآخر 10+ شموع، تحسب تقاطع خط الـ 100 الجديد على الزخم السريع، وتمشي نافذة الـ lookback لتأكيد أن مكدس الزخم البطيء والمتوسط المتحرك متفقان طوال شموع InpTrendLookback. إذا مرت البوابتان، تشغّل OpenBuy/OpenSell حلقة إعادة محاولة من 3 محاولات مع توسيع الانزلاق، ولا تنطلق إلا بعد أن يؤكد OrderCalcMargin الهامش الحر. تراقب OnTradeTransaction تيار الصفقات وتزيد g_realizedToday وg_consecLosses وg_tradesToday لكل صفقة مغلقة بالرقم السحري للمستشار، والتي تغذي بدورها بوابات الخسارة اليومية والأسبوعية وتهدئة الـ 3 خسائر متتالية. رأس المال الفعال لاختبارات الخسارة اليومية/الأسبوعية محدود بـ InpCapAmount عند التفعيل، وفلتر الجلسات يستخدم إزاحة جرينتش مكتشفة تلقائياً أو مضبوطة يدوياً بحيث تتطابق جلسات لندن (7-16) ونيويورك (12-21) بصرف النظر عن المنطقة الزمنية لخادم الوسيط.

إشارة الدخول

تنطلق صفقات الشراء عند إغلاق شمعة M5 عندما يتقاطع زخم سريع (10) للشمعة 1 فوق 100 مع شمعة 2 عند 100 أو أقل، وكل واحدة من آخر 10 شموع (نافذة InpTrendLookback) تُظهر زخم بطيء (34) فوق 100 ومتوسط أسي سريع (10) فوق متوسط أسي بطيء (34). صفقات البيع تعكس نفس الشروط بتقاطع هبوطي لخط زخم سريع 100 و10 شموع من زخم بطيء تحت 100 مع متوسط سريع تحت بطيء. يُسمح بإضافة هرمية أولى عندما تكون الصفقة القائمة في ربح بـ 300+ نقطة (InpMinProfitPoints)، لما يصل إلى 3 مراكز لكل اتجاه.

إشارة الخروج

تعمل الخروج على جني أرباح ثابت 1200 نقطة (3 أضعاف الوقف) ووقف خسارة 400 نقطة، كلاهما محسوب من سعر ask/bid للدخول. يقوم ManageProfitLock() بسحب الوقف للأمام بمجرد أن يتجاوز الربح 300 نقطة (InpTrailStart) — وقف الشراء ينتقل إلى bid-150، وقف البيع ينتقل إلى ask+150 — ودائماً في الاتجاه المواتي فقط. المراكز التي لم يمسها التريلينج تُغلق على جني الأرباح الثابت أو وقف الخسارة الثابت. لا يوجد خروج قائم على الوقت ولا خروج عند انعكاس الإشارة؛ الخروج الوحيد هو وقف/جني الأرباح ومنطق التريلينج.

وقف الخسارة

وقف خسارة ثابت 400 نقطة لكل صفقة (InpStopLoss)، يوضع تحت سعر ask للدخول في الشراء وفوق سعر bid للبيع. بعد أن تتحرك الصفقة 300+ نقطة لصالحها، يقوم ManageProfitLock() بتحريك الوقف لقفل 150 نقطة خلف السعر (InpTrailDistance)، مع كل تحرك لاحق بـ 100 نقطة في السعر يدفع التريلينج إلى الأمام بـ 100 نقطة (InpTrailStep). حد خسارة يومي عند 3% من رأس المال الفعال وحد خسارة أسبوعي عند 6% سيحظران الدخول الجديد بمجرد انتهاكهما.

جني الأرباح

هدف جني أرباح ثابت 1200 نقطة (InpTakeProfit) لكل صفقة — 3 أضعاف مسافة الوقف — يوضع فوق سعر ask للدخول في الشراء وتحت سعر bid للبيع. لا يوجد إغلاق جزئي مُنفذ. تحمل الإضافات الهرمية نفس هدف جني الأرباح 1200 نقطة الذي تحمله الصفقة الأولية.

الأنسب لـ

الحد الأدنى الموصى به للرصيد هو 100 دولار مع InpRiskPercent افتراضياً 1.0%، لكن وقف الخسارة الثابت 400 نقطة على M5 XAUUSD يجعل نموذج المخاطرة 1% ذا معنى فقط على حسابات 300 دولار+ — الحسابات الأصغر ستصل مراراً إلى أرضية InpFixedLot=0.01. شغّل هذا على وسيط ECN أو RAW-سبريد: سقف السبريد 250 نقطة سخي لكن متوسط سبريد 50-100 نقطة يترك هامشاً قابلاً للاستخدام أكبر لمنطق التريلينج. الأفضل نشره في جلسة لندن (7-16 بتوقيت جرينتش) وتداخل لندن-نيويورك (12-16 بتوقيت جرينتش) عندما يكون XAUUSD أكثر تفاعلاً مع التدفقات الكلية؛ المستشار يحظر صراحةً آسيا وإغلاق الجمعة 21:00 بتوقيت جرينتش وكل جلسة السبت. تضيف الهرَمة 1-3 صفقات في نفس الاتجاه، لذا يجب أن يفترض تحجيم الحساب 3 أضعاف مخاطرة الصفقة الواحدة خلال الاتجاهات المستمرة.

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

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

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

الوصف: Momentum + EMA scalping EA for XAUUSD M5 that enters on momentum crossover confirmed by EMA alignment and sustained trend lookback. Includes risk-based lot sizing, spread filter, trailing stop with profit lock, and pyramiding with profit gating. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • OnTradeTransaction()
  • CheckSignal()
  • OpenBuy()
  • OpenSell()
  • ManageProfitLock()
  • IsGridSafe()
  • CalculateLotSize()
  • CountPositions()
  • EffectiveCapital_EX10014()
  • DetectGMTOffset_EX10014()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX10014 Momentum-Scalper — Execution Flow (from source analysis)
// Family: Momentum-Scalper
// Momentum + EMA scalping EA for XAUUSD M5 that enters on momentum crossover confirmed by EMA alignment and sustained trend lookback. Includes risk-based lot sizing, spread filter, trailing stop with profit lock, and pyramiding with profit gating. 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 — سيبدأ الإكسبرت بالتداول تلقائياً

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

المعاملالافتراضيالوصف
InpFastMom10Fast Momentum Period
InpSlowMom34Slow Momentum Period
InpFastMA10Fast EMA Period
InpSlowMA34Slow EMA Period
InpTrendLookback10Trend Lookback Bars (Check for sustained trend)
InpRiskPercent1.0Risk Percent per Trade
InpFixedLot0.01Fixed Lot (if Risk=0)
InpStopLoss400Stop Loss (points)
InpTakeProfit1200Take Profit (points)
InpMagicNumber22210014Magic Number
InpTradeComment"Psgrowth.com Expert_10014"Trade Comment
InpMaxSpread250Max Spread (points)
InpSlippage3Slippage
InpEnableTrailtrueEnable Trailing Stop
InpTrailStart300Trail Start Distance (points)
InpTrailStep100Trail Step (points)
InpTrailDistance150Distance behind price (points)
InpEnablePyramidtrueEnable Pyramiding
InpMaxPositions3Max Open Positions
InpMinProfitPoints300Min Profit (points) to Add Next
InpDailyLossLimitPct3.0Daily loss limit (% of effective capital)
InpMaxLot5.0Hard lot cap per trade
InpServerGMTOffset0Server GMT offset hours (0=auto-detect)
InpLondonStartHour7London session start (GMT)
InpLondonEndHour16London session end (GMT)
InpNYStartHour12New York session start (GMT)
InpNYEndHour21New York session end (GMT)
InpAvoidAsiatrueAvoid Asian session
InpAsiaStartHour0Asian session start (GMT)
InpAsiaEndHour7Asian session end (GMT)
InpNewsFilterfalseAvoid trading near news session opens
InpNewsFilterMinutes15Minutes to avoid around news
InpMaxTradesPerDay50Maximum trades per day
InpMinEquityPercent95.0Stop trading if equity < this % of initial balance
InpCooldownMinutes30Cooldown minutes after consec losses
InpMaxConsecLosses3Max consecutive losses before cooldown
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX10014.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX10014 MomEMA XAUUSD 5M — Momentum + EMA scalper with pyramiding, 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 "=== Indicator Settings ==="
input int      InpFastMom        = 10;       // Fast Momentum Period
input int      InpSlowMom        = 34;       // Slow Momentum Period
input int      InpFastMA         = 10;       // Fast EMA Period
input int      InpSlowMA         = 34;       // Slow EMA Period
input int      InpTrendLookback  = 10;       // Trend Lookback Bars (Check for sustained trend)

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     = 1200;     // Take Profit (points)

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

input group "=== Profit Lock / Trailing ==="
input bool     InpEnableTrail    = true;     // Enable Trailing Stop
input int      InpTrailStart     = 300;      // Trail Start Distance (points)
input int      InpTrailStep      = 100;      // Trail Step (points)
input int      InpTrailDistance  = 150;      // Distance behind price (points)

input group "=== Pyramiding / Scaling ==="
input bool     InpEnablePyramid  = true;     // Enable Pyramiding
input int      InpMaxPositions   = 3;        // Max Open Positions
input int      InpMinProfitPoints= 300;      // Min Profit (points) to Add Next

input group "=== Hardening: Risk Management ==="
input double   InpDailyLossLimitPct = 3.0;   // Daily loss limit (% of effective capital)
input double   InpMaxLot           = 5.0;   // Hard lot cap per trade

input group "=== Capital Allocation Cap ==="
// InpCapEnabled removed — use InpCapAmount=0 to disable
input double   InpCapAmount         = 0.0;
input double   InpCapFloor          = 50.0;

input group "=== Hardening: GMT Sessions ==="
input int      InpServerGMTOffset    = 0;      // Server GMT offset hours (0=auto-detect)
input int      InpLondonStartHour    = 7;      // London session start (GMT)
input int      InpLondonEndHour      = 16;     // London session end (GMT)

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

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

الوسوم:ex10014momentum-scalperpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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