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

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

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

Pipsgrowth EX14019 Scalper — Silver scalping strategy using inside bar consolidation breakout with safe pyramiding (positions added only when SL is l. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

EX14019 هو سكالبر مختصر يعتمد على اختراق شريط داخلي (Inside Bar) لتوحيد السعر، مبني خصيصًا لزوج XAGUSD على الإطار الزمني M15، بسحري 22214019. في حين أن غالبية Expert Advisors في عائلة EX14 تميل إلى تكديس عدة بوابات تأكيد، يلتزم EX14019 بتصميم هرمي مبني على 3 بوابات متعمدًا البساطة: لا يمكن إضافة مركز جديد إلا عندما يكون كل مركز قائم محميًا بالفعل بوقف خسارة مُرحَّل إلى منطقة ربح، ويكون السعر الحالي على بُعد لا يقل عن الحد الأدنى المُكوَّن من كل دخول قائم، ولا تزال إشارة الاختراق الأصلية سارية. لا يوجد تراكب SuperTrend، ولا مرشح اتجاه ثانوي، ولا بوابة حجم — يثق الـ EA في اختراق شريط الأم وبوابات الأمان الثلاث فقط، لا شيء غير ذلك.

اكتشاف النمط يتم داخل DetectInsideBar. تقرأ الدالة آخر شريطين مغلقين على M15 عبر iHigh/iLow وتتحقق من شرط الداخل الصارم: high1 < high2 و low1 > low2. عند تحقق الشرطين، تُخزِّن motherHigh = high2 و motherLow = low2، ثم تضبط insideBarDetected = true وتطبع سطر سجل. نفس معالج OnTick الذي يقوم بالاكتشاف يُقيِّم الاختراق: في شريط M15 جديد تالي، يقرأ EA قيمة iClose(shift=1) ويقارنها بـ motherHigh + BreakoutBuffer × pipSize (للشراء) أو motherLowBreakoutBuffer × pipSize (للبيع). المخزن المؤقت الافتراضي البالغ 15 نقطة مصرَّح به في تعليق المدخل — توسيع لتقلب الفضة مقارنة بما تحتاجه أزواج الذهب أو العملات الرئيسية. صفقات الشراء تُطلق trade.Buy، وصفقات البيع تُطلق trade.Sell، وتُعاد تهيئة insideBarDetected حتى لا يُتداول النمط نفسه مرتين. لا يوجد ترتيب لقوة الإشارة، ولا نمط اختياري لشريطين، ولا تأكيد متعدد الإطارات — شرط الدخول الوحيد هو "إغلاق شريط M15 السابق خارج شريط الأم بما لا يقل عن 15 نقطة."

حجم المركز له وضعان متميزان، ويُقرأ وقت الأمر لا عند إغلاق الشريط. UseMoneyManagement = true (الافتراضي) يوجِّه إلى CalculatePositionSize، الذي يحسب riskAmount = الرصيد × (RiskPercent / 100.0) بالقيمة الافتراضية 2.5%، يقسم على slPips × pipValuePerLot، ثم يُقرِّب إلى خطوة اللوت للرمز ويُقيِّد ضمن حدود الوسيط min/max. تُبنى pipValuePerLot من SYMBOL_TRADE_TICK_VALUE / SYMBOL_TRADE_TICK_SIZE × GetPipSize()، لذا فإن الحساب يتكيف تلقائيًا مع تسعير الفضة بثلاثة أرقام عشرية. UseMoneyManagement = false يُرجع FixedLotSize الثابت = 0.01 لوت للمتداولين الذين يريدون تحكمًا يدويًا كاملًا في التعرض بصرف النظر عن مسافة الوقف.

وضع وقف الخسارة يستخدم سلسلة أرضيات من 3 مراحل داخل OpenPosition. المسافة الأساسية هي slDist = MathMax(currentATR × 1.5, StopLossPips × pipSize) — أيهما أكبر بين 1.5× ATR المُحدَّث (14 فترة، M15) والـ 40 نقطة الافتراضية. الأرضية الثانية تُجبر slDist1.5× مستوى الإيقاف في الوسيط، محسوبًا بالسعر. الأمان الثالث يعيش داخل SafePositionModify، الذي يُعيد التحقق من أي SL يريد الـ EA كتابته لاحقًا ويدفع الوقف الجديد نقطة واحدة _Point بعد الحد الأدنى للوسيط إذا كان مرشح الـ EA ضيقًا للغاية. يُطبَّع SL النهائي إلى _Digits ويُرفق على جانب الوسيط عند دخول الأمر. لا يوجد سقف تراجع، ولا مرشح لمنحنى الأسهم، ولا دائرة losses-max-consecutive، ولا وقف طارئ، ولا حجب أخبار — شبكة الأمان الوحيدة لمنحنى الأسهم هي وقف الخسارة لكل صفقة إضافة إلى بوابات الهرم الثلاث.

جني الأرباح هو نسبة مخاطرة/مكافأة ثابتة 2:1 داخل OpenPosition: tpDist = slDist × 2. يُضبط TP على جانب الوسيط عند الدخول. لا يتم ترحيله ديناميكيًا مع حركة السعر، ولا يُغلق جزئيًا، ولا يُعدَّل بواسطة منطق التريلينج. الـ 2:1 هو خطة الـ TP الكاملة للصفقة، وقف كامل.

التريلينج يعيش داخل ManageTrailingStops ويُشغَّل في كل شريط M15 جديد بعد منطق الدخول. مسافة التريلينج هي currentATR × 1.5 (نفس مضاعف الـ SL). لمركز شراء، SL الجديد هو bid − trailDistance؛ الـ EA لا يكتبه إلا إذا كان bid > openPrice + trailDistance (تحرك السعر فعليًا بقدر كافٍ لجعل التريلينج ذا معنى) AND newSL > currentSL (الوقف الجديد أفضل تمامًا من القائم). للبيع، ينطبق المرآة. كل تعديل مرشَح يمر عبر SafePositionModify، الذي يضيف التحقق من مستوى إيقاف الوسيط فوق ذلك. لا توجد خطوة تعادل، ولا تريلينج متدرج، ولا تريلينج يتحلل زمنيًا — التريلينج هو رatchet أحادي الاتجاه عند 1.5×ATR خلف السعر، ولا يُحكم إلا.

طبقة الهرم هي ما يروِّج له الـ EA صراحة. بمجرد فتح مركز وتفعيل UsePyramiding (الافتراضي)، وكون posCount أقل من MaxPyramidLevels = 3، يُقيِّم الـ EA 3 بوابات بالتسلسل: AllPositionsProtected يمشي على كل مركز مفتوح على الرمز بهذا السحري ويشترط أن يكون الـ SL القائم قد رُحِّل إلى أو بعد openPrice + MinProfitForAdd (20 نقطة) للشراء، أو openPriceMinProfitForAdd للبيع — أي يجب أن يكون كل دخول في ربح لا يقل عن 20 نقطة مع ترحيل الوقف بعد التعادل. ثم IsDistanceValid يطلب أن يكون السعر الحالي على بُعد MinEntryDistance = 50 نقطة على الأقل من كل دخول قائم، لضمان تباعد المراكز الجديدة. وأخيرًا IsSignalStillValid يُعيد التحقق من أن الاختراق لا يزال حيًا: لإشارة شراء، يجب أن يظل currentPrice فوق motherHigh، ولبيع، يظل تحت motherLow. لا يُطلق OpenPosition بإشارة isPyramid = true إلا بعد نجاح البوابات الثلاث، بحجم إضافة قدره basePositionSize × PyramidSizeMultiplier (0.5× افتراضي). التعرض التراكمي على هرم كامل من 3 مستويات هو 1.0 + 0.5 + 0.5 = 2.0× حجم الأساس.

تنفيذ الأوامر يستخدم غلاف CTrade مع السحري، والانزلاق (3 نقاط افتراضيًا)، ووضع تعبئة يتم استكشافه عند OnInit عبر GetAllowedFilling: يمشي على SYMBOL_FILLING_FOKSYMBOL_FILLING_IOCORDER_FILLING_RETURN ويختار أول بت مُعيَّن، لذا الـ EA قابل للنقل بين الوسطاء الذين يسمحون بـ FOK فقط، أو IOC فقط، أو أسلوب البورصة. تم تعريف 3 مساعدات إعادة محاولة — TryClose_EX14019، TryClosePartial_EX14019، TryModify_EX14019 — ومُدمجة حيًّا في غلاف CTrade، كل منها يحاول الإجراء حتى 3 مرات مع تراجع 200 مللي ثانية (للإغلاق) أو 100 مللي ثانية (للتعديل) عند أكواد REQUOTE / TIMEOUT / PRICE_OFF / PRICE_CHANGED. مسار إعادة المحاولة قابل للوصول من أي مستدعي لهذه المساعدات، بما في ذلك SafePositionModify لمسار وقف التريلينج.

بوابة الفروقات السعرية هي المرشح الوحيد على مستوى الشريط: CheckFilters يرفض شريط M15 الجديد إذا تجاوز SymbolInfoInteger(SYMBOL_SPREAD) محوَّلًا إلى نقاط MaxSpreadPips = 40.0. الافتراضي مرتفع لسبب — متوسط سبريد الفضة أوسع من الأزواج الرئيسية — لكن عند 40 نقطة، يكون المرشح متساهلاً؛ المتداول الذي يريد شروط دخول أكثر صرامة على الفضة سيُقلِّل هذا الرقم. لا يوجد مرشح جلسة، ولا حارس ليوم الأسبوع، ولا مفتاح قتل، ولا حد خسارة يومية قصوى، ولا مقياس OnTester مخصص. سطر سجل OnInit يُسمِّي الإصدار "Silver Scalper v3.0 initialized" بينما يقرأ ترويسة المصدر و #property version "2.00" — انحراف صغير في التوثيق/الإصدار لا يغير سلوك التشغيل. مكدس الـ 12 طبقة المُعلن عنه في الترويسة طموحي؛ مسار القرار الحي ينطوي على اكتشاف شريط داخلي → اختراق عرضي → هرم 3 بوابات → تريلينج 1.5×ATR. هذا هو الـ EA كاملًا.

ملف المخاطر مرتفع بالتصميم. الحد الأدنى الموصى به للرصيد 100 دولار قابل للتطبيق فقط مع FixedLotSize = 0.01؛ مع UseMoneyManagement = true و RiskPercent = 2.5%، يُجمِّع رصيد 100 دولار عند SL قدره 40 نقطة إلى حوالي 0.050.06 لوت على XAGUSD، وهو الحد الأدنى الواقعي. التعرض التراكمي 2.0× على هرم كامل، إضافة إلى تريلينج 1.5×ATR الذي يسمح للصفقات بالتنفس، يمكن أن يُنتج تراجعات تتجاوز ما يتحمله حساب صغير. شغِّله على وسيط ECN/RAW بفروقات ضيقة مع تعبئة FOK أو IOC، واختبره على حساب تجريبي مباشر لمدة أسبوعين على الأقل، وعطِّله يدويًا حول أحداث الفضة عالية التأثير — لا يوجد حجب أخبار داخل الـ EA.

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

في كل شريط M15 جديد يُحدِّث الـ EA مقبض ATR لـ 14 فترة، ويُشغِّل بوابة الفروقات، ثم يمشي على اكتشاف الشريط الداخلي: إذا كان الشريط 1 داخل الشريط 2 تمامًا، يُخزِّن motherHigh/motherLow ويُفعِّل الاختراق. في شريط M15 التالي، إذا تجاوز iClose(shift=1) motherHigh + 15 نقطة (شراء) أو motherLow − 15 نقطة (بيع)، يفتح صفقة عند SL المتكيف مع ATR 1.5×ATR-أو-40-نقطة و TP = 2× slDist. أثناء وجود مركز مفتوح، يُقيِّم الـ EA بوابات الهرم الثلاث — AllPositionsProtected (كل SL قائم رُحِّل ≥ 20 نقطة إلى الربح)، IsDistanceValid (السعر ≥ 50 نقطة من كل دخول قائم)، IsSignalStillValid (السعر لا يزال خلف شريط الأم) — وإذا اجتازت الثلاث وكان posCount < 3، يُضيف مركزًا بحجم 0.5× في الاتجاه نفسه. ثم يمشي ManageTrailingStops على كل مركز، يحسب SL جديد = bid − 1.5×ATR (أو ask + 1.5×ATR للبيع)، ويدفعه عبر SafePositionModify فقط عندما تكون الصفقة في ربح بمقدار trailDistance ويكون الوقف الجديد أحكم تمامًا.

إشارة الدخول

يُطلق الدخول الطويل عندما يكون high1 < high2 و low1 > low2 (شريط داخلي) ويكون إغلاق شريط M15 السابق أعلى من motherHigh بما لا يقل عن 15 نقطة (BreakoutBuffer)؛ يفتح الـ EA بعد ذلك صفقة شراء عبر trade.Buy. والبيع هو المرآة: iClose(shift=1) < motherLow − 15 نقطة يُطلق trade.Sell. تُحجَّم الصفقة الأولى إما عبر CalculatePositionSize (الرصيد × 2.5% / (slPips × pipValuePerLot)) أو عبر الرجوع إلى FixedLotSize = 0.01.

إشارة الخروج

لا تُدار الخروج بواسطة منطق إشارة عكسية — الـ EA لا يُغلق مراكز الشراء عند اختراق هبوطي ولا العكس. تحدث الخروج عبر TP الثابت بنسبة 2:1 (على جانب الوسيط، لا ترحيل، لا إغلاق جزئي) أو عبر SL المتكيف مع ATR. يُحكم وقف التريلينج عند 1.5×ATR خلف السعر فقط عندما يتحرك السعر > trailDistance ويكون SL الجديد أفضل تمامًا من القائم. لا يوجد خروج قائم على الوقت، ولا خروج عند إغلاق الجلسة، ولا وقف للأسهم.

وقف الخسارة

يُحسب الـ SL داخل OpenPosition كـ MathMax(currentATR × 1.5, 40 نقطة) × pipSize، ثم يُقفل عند 1.5× مستوى إيقاف الوسيط SYMBOL_TRADE_STOPS_LEVEL، ويُرفق على جانب الوسيط. يتحقق SafePositionModify من أي تعديل لاحق مقابل الحد الأدنى للوسيط، ويرفض SL على الجانب الخاطئ من السعر، ويرفض الكتابات التي لا تُغيِّر (داخل 1 _Point). تقوم طبقة التريلينج بترحيل SL إلى bid − 1.5×ATR (مرآة للبيع) فقط عندما يتجاوز السعر trailDistance بعد الدخول ويكون SL الجديد أحكم تمامًا.

جني الأرباح

TP هو نسبة مخاطرة/مكافأة 2:1 ثابتة داخل OpenPosition: tpDist = slDist × 2، يُرفق على جانب الوسيط عند دخول الأمر. لا يوجد ترحيل ديناميكي لـ TP، ولا إغلاق جزئي، ولا TP متحرك، ولا TP قائم على الوقت، ولا تحويل للتعادل. لا يُمس TP مرة أخرى بعد الدخول — التريلينج يؤثر على SL فقط.

الأنسب لـ

أفضل نشر على XAGUSD M15 على وسيط ECN أو RAW بفارق سعر منخفض مع تفعيل تعبئة FOK أو IOC — إعداد MaxSpreadPips الافتراضي عند 40 نقطة يتحمل فروقات الفضة المعتادة 10–25 نقطة لكنه يعاقب ECN واسع. الحد الأدنى الموصى به للرصيد 100 دولار مع FixedLotSize = 0.01؛ مع UseMoneyManagement = true يُجمِّع رصيد 100 دولار إلى حوالي 0.050.06 لوت عند SL 40 نقطة، لذا رصيد 300–500 دولار يمنح مساحة لهرم 1.0/0.5/0.5 دون تجاوز 2.5% مخاطر لكل طبقة. شغِّله خلال لندن وبداية نيويورك (07:00–13:00 UTC تداخل) عندما يتمدد نطاق الفضة اليومي بما يكفي لتجاوز BreakoutBuffer 15 نقطة؛ عطِّله يدويًا حول أحداث الفضة عالية التأثير المجدولة لأنه لا يوجد مرشح أخبار داخل الـ EA.

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

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

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

الوصف: Silver scalping strategy using inside bar consolidation breakout with safe pyramiding (positions added only when SL is locked in profit). ATR-based dynamic stop loss and spread filter. Optimized for small accounts. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • SafePositionModify()
  • AllPositionsProtected()
  • IsDistanceValid()
  • IsSignalStillValid()
  • ManageTrailingStops()
  • RefreshIndicators()
  • DetectInsideBar()
  • OpenPosition()
  • NormalizeLots()
  • CalculatePositionSize()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX14019 Scalper — Execution Flow (from source analysis)
// Family: Scalper
// Silver scalping strategy using inside bar consolidation breakout with safe pyramiding (positions added only when SL is locked in profit). ATR-based dynamic stop loss and spread filter. Optimized for small accounts. 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
الرموز المُحسّنة:
XAGUSD
الأطر الزمنية المُحسّنة:
M15

كيفية تثبيت الإكسبرت على 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 — سيبدأ الإكسبرت بالتداول تلقائياً

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

المعاملالافتراضيالوصف
RiskPercent2.5Risk % per trade (small account optimized)
FixedLotSize0.01=== Trade Settings ===
StopLossPips40Stop Loss in pips (optimized for silver volatility)
MagicNumber22214019Magic Number
BreakoutBuffer15Pips buffer for breakout confirm (increased for volatility)
MaxPyramidLevels3Maximum pyramid positions
MinProfitForAdd20Min pips profit on SL before adding
MinEntryDistance50Min pips between entries
PyramidSizeMultiplier0.5Each add is 50% of original size
MaxSpreadPips40.0Widened for silver spreads
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX14019.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX14019 SilverScalper InsideBar ConsolidationBreak — Silver inside bar breakout scalper with safe pyramiding, full 12-layer stack."
#include <Trade\Trade.mqh>

//=== Risk Management ===
input group "=== Risk Management ==="
input bool   UseMoneyManagement = true;
input double RiskPercent        = 2.5;       // Risk % per trade (small account optimized)
input double FixedLotSize       = 0.01;

//=== Trade Settings ===
input group "=== Trade Settings ==="
input int    StopLossPips       = 40;        // Stop Loss in pips (optimized for silver volatility)
input int    Slippage           = 3;
input int    MagicNumber        = 22214019;   // Magic Number
input string InpTradeComment    = "Psgrowth.com Expert_14019";
input int    BreakoutBuffer     = 15;        // Pips buffer for breakout confirm (increased for volatility)

//=== Pyramiding Settings ===
input group "=== Pyramiding Settings ==="
input bool   UsePyramiding         = true;
input int    MaxPyramidLevels      = 3;       // Maximum pyramid positions
input int    MinProfitForAdd       = 20;      // Min pips profit on SL before adding
input int    MinEntryDistance      = 50;      // Min pips between entries
input double PyramidSizeMultiplier = 0.5;     // Each add is 50% of original size

//=== Filters ===
input group "=== Filters ==="
input bool   UseSpreadFilter    = true;
input double MaxSpreadPips      = 40.0;      // Widened for silver spreads

CTrade trade;
int handleATR;
datetime lastBarTime = 0;
double currentATR;
double motherHigh = 0, motherLow = 0;
bool insideBarDetected = false;
int currentDirection = 0; // 1 = Long, -1 = Short, 0 = None
double basePositionSize = 0;

ENUM_ORDER_TYPE_FILLING GetAllowedFilling()
{
   int filling_mode = (int)SymbolInfoInteger(_Symbol, SYMBOL_FILLING_MODE);
   if((filling_mode & SYMBOL_FILLING_FOK) == SYMBOL_FILLING_FOK) return ORDER_FILLING_FOK;
   else if((filling_mode & SYMBOL_FILLING_IOC) == SYMBOL_FILLING_IOC) return ORDER_FILLING_IOC;
   else return ORDER_FILLING_RETURN;
}

//+------------------------------------------------------------------+
//| Safe Position Modify - validates stops before modifying          |
//+------------------------------------------------------------------+
bool SafePositionModify(ulong ticket, double newSL, double newTP)
{
   if(!PositionSelectByTicket(ticket)) return false;
   
   long type = PositionGetInteger(POSITION_TYPE);
   double price = (type == POSITION_TYPE_BUY) ? 

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

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

الوسوم:ex14019scalperpipsgrowthfreemt5xagusd

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

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

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

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

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

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

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

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