P
PipsGrowth
أخرىمفتوح المصدر - مجاني

Pipsgrowth EX17017 Volatility — إكسبرت أدفايزر تقلب

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

Pipsgrowth EX17017 Volatility — Volatility Gaussian Bands EA with adaptive breakout entry, RSI and Bollinger Band confirmation, whipsaw filter, trailing. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX17017 Volatility هو إكسبرت اختراق متعدد المرشحات يعتمد على خط متوسط ​​متموج بطريقة غاوسية ويرفض كل ما عداه. الخط الأوسط هو متوسط ​​متحرك أُسي لمدة 10 شموع على سعر الإغلاق (Length=10, MODE_EMA, PRICE_CLOSE) — وهو مرشح منخفض التأخر يسمّيه الكود المصدري "الغاوسي" — وحوله يرسم الإكسبرت نطاقاً بعرض ±0.85×ATR(14) (DistanceMultiplier=0.85). لا تُفتح الصفقات إلا بعد إغلاق شمعة خارج النطاق لأول مرة، وبعد شمعتين سابقتين كانتا داخل النطاق، بشرط أن يكون جسم الشمعة 60% على الأقل من مدى الشمعة الكامل. هذه هي بوابة الدخول الوحيدة: لا ارتداد إلى المتوسط، ولا تقييم مناطق، ولا تجميع درجات. كل ما يليها منطق بوابات، وليس منطق إشارة، والبوابات شرسة.

تسير دورة OnTick كسلسلة أولويات صارمة. أول فحص هو CheckMaxDrawdown() — إذا انخفضت حقوق الحساب بأكثر من 10% تحت الرصيد (MaxDrawdownPercent=10.0)، تُحظر أي دخول جديد ولا تعمل سوى ManagePosition() للإشراف على المراكز القائمة. بعد ذلك، إذا كان RSI_Role مفعّلاً (افتراضياً)، يُقرأ مؤشر RSI لمدة 14 فترة على الإغلاق. يعود الإكسبرت مبكراً في هذه الشمعة إذا كان RSI عند 70 أو أعلى، أو عند 30 أو أقل، أو خارج المنطقة المحايدة 40-60. هذه البوابة المحايدة غير معتادة: تعني أن الإكسبرت مستعد للدخول فقط حين يكون الزخم محايداً فعلياً، لا حين يؤكد RSI اتجاهاً. بعد RSI، تعمل بوابة بولنجر باندز (BB_Role=true, فترة 20, انحراف 2.0) وتقرأ آخر نطاق. يُرجع الإكسبرت مبكراً إذا كان الإغلاق الحالي أقرب من 50% من عرض النطاق إلى الخط الأوسط (BB_MiddleBandFilter=0.5) — وهذا مرشح للتذبذب العرضي. مع BB_UseSqueezeDetection=true (افتراضي)، يُرجع أيضاً مبكراً إذا كان عرض النطاق الحالي أقل من نصف متوسط ​​عرض النطاق لآخر 20 شمعة. يُحسب الانضغاط عبر GetBollingerBands(i,...) من i=1 إلى 20، ثم يُجمع ويُحسب متوسطه، لذلك فإن أي تقلبات فعلية متقلصة تقتل الإعداد قبل أن يبدأ اختبار الاختراق أصلاً.

بعد اجتياز كلا المرشحين، يأخذ الإكسبرت عينة ATR(14) ويرفض الشمعة إذا كان ATR تحت MinATR (0.03) أو فوق MaxATR (0.0 يعني معطل). عند تفعيل UseAutoFilter=true (افتراضي)، تعيد AutoTuneFilters() كتابة minATR و breakDistance و bandMult بناءً على السبريد المباشر — تحسب متوسط ​​فجوة العرض/الطلب لتحديد معامل النقطة (0.0001 إذا كان السبريد أقل من 3 نقاط، وإلا 0.01)، ثم تثبّت minATR عند 3× هذا المعامل. يقرأ اختبار الاختراق في CheckAndTradeBreakout() ثلاث إغلاقات: السعر الحالي، والسابق، وقبل السابق. للشراء، يجب أن يكون السعر فوق النطاق العلوي، وكلا السعرين السابقين تحت النطاق العلوي، والسعر فوق المتوسط ​​الأسي للأطار الزمني الأعلى (50) عند TrendFilterTF (افتراضي H4 = 6)، وأن يكون الميل صاعداً (gaussNow > gaussPrev)، وأن يتجاوز (السعر − gaussNow) قيمة MinBreakDistance × ATR (0.3 × ATR). الجانب البيعي مماثل. يجب أيضاً أن ينجح كل من strongCandle و CheckWhipsaw() قبل الوصول إلى هذا المنطق.

فحص الـ whipsaw هو العامل الصامت. تنظر CheckWhipsaw() إلى آخر WhipsawLookback شمعة (افتراضياً 5) وتجري خمسة اختبارات فرعية. ترفض الشمعة إذا كان مدى ATR على تلك الشموع منضغطاً تحت (1 − WhipsawThreshold) × متوسط ​​ATR (Threshold=0.6، أي أن انضغاط 40% يكفي لإيقافها)، أو إذا كانت نسبة تقلب الشموع الصاعدة/الهابطة على مدى الفحص عند 0.6 أو أعلى، أو إذا كانت نسبة الفتائل (الشموع التي يكون فيها الفتيل/الجسم > 1.5) عند 0.6 أو أعلى، أو إذا كان متوسط ​​الحركة الصافية المطلقة عبر فترة الفحص تحت 15% من متوسط ​​ATR. RequireVolumeBias هو فحص خامس اختياري يحسب تقلبات حجم الشمعة من شمعة إلى أخرى بأكثر من 50% من حجم الشمعة السابقة؛ معطل افتراضياً. لا يبدو أي منها حاداً منفرداً، لكن اجتماعها معاً يصفّي معظم حالات "الاختراق الكاذب" التي تعقب فترة توحيد 5 شموع.

EMA الإطار الزمني الأعلى هو الفيتو الاتجاهي. يُنشأ المقبض (emaHandle) من iMA(_Symbol, g_TrendFilterTF, TrendEMA, 0, MODE_EMA, PRICE_CLOSE) حيث TrendEMA افتراضي 50. والقيمة الافتراضية لـ TrendFilterTF هي 6 التي تُطابق H4، لذلك فإن شراء M5 يتطلب أن يكون إغلاق H4 فوق 50-EMA، والبيع يتطلب أن يكون إغلاق H4 تحته. هذا مرشح بطيء — H4 50-EMA من النوع الذي يعيد تقييم نفسه على مدى أسابيع، لا ساعات. على الرسم البياني الذهبي السريع 5 دقائق، سيُسقط هذا القيد الوحيد نسبة ذات معنى من اختراقات داخل اليوم الصحيحة التي تتجه في الاتجاه الخاطئ على إطار 4 ساعات.

إدارة المخاطر متعدّدة الطبقات. كل دخول يُرسل لوت واحد ثابت 0.10 (Lots=0.1) بسعر العرض/الطلب المباشر، مع وقف خسارة عند ATR_MultiplierSL × ATR (1.2 × ATR) تحت العرض للشراء أو فوق الطلب للبيع، وجني أرباح عند FixedTP_Points × _Point (160 نقطة). OneTradeOnly افتراضياً true، لذلك يحتفظ الإكسبرت بمركز واحد فقط؛ MaxOpenTrades مضبوط على 5، لكنه يُتجاهل فعلياً عند تفعيل OneTradeOnly. AllowOnlyProfitableAdditions=true ويقيد أي مركز ثانٍ بشرط أن يحقق المركز الأول ربحاً عائماً قدره MinProfitPerTradeToAdd=5.0 دولاراً على الأقل. MaxDrawdownPercent=10.0 هو الحد الصلب، يُفحص في كل تيكة.

تتولى ManagePosition() إدارة الخروج عبر ثلاث مسارات متزامنة. أولاً، الخروج عند تقاطع الغاوسي: إذا كان هناك مركز شراء وهبط السعر تحت gaussNow، أو كان مركز بيع وارتفع السعر فوق gaussNow، يُغلق المركز عبر TryClose_EX17017 (3 محاولات، نوم 200 مللي ثانية عند إعادة التسعير/المهلة/تغير السعر). هذا هو الخروج الأساسي لفشل الاتجاه. ثانياً، الوقف المتحرك: UseTrailingStop=true، والوقف الجديد هو bid − 1.2×ATR للشراء أو ask + 1.2×ATR للبيع، يُطبق فقط إذا كان يحسّن الوقف الحالي (TryModify_EX17017, 3 محاولات، نوم 100 مللي ثانية عند إعادة التسعير/المهلة). ثالثاً، التعادل: UseBreakeven=true، يُنقل الوقف إلى سعر الدخول بمجرد أن يتجاوز bid (للشراء) أو ask (للبيع) قيمة 1.2×ATR بعد الدخول. رابعاً، قفل الربح الديناميكي: EnableDynamicLockProfit=true يحوّل الربح العائم إلى عدد خطوات (الربح ÷ 2.0 دولار للخطوة)، ثم يدفع الوقف إلى entry + (stepCount × 2.01.0) دولار / tickValue × tickSize للشراء، معكوساً للبيع. لا تُقبل سوى الحركات الأمامية. النتيجة وقف يصعد 1 دولار كل 2 دولار من الربح العائم، ولا يتراجع أبداً.

التوقعات العملية: هذا الإكسبرت مصمم لتقلب متوسط ​​الـ XAUUSD على M5 بحد أدنى 100 دولار. مرشح الـ whipsaw لـ 5 شموع ومرشحات RSI/BB تقصّ تكرار التداول بشكل حاد — توقع إعداداً أو اثنين لكل جلسة لندن أو نيويورك، وكثيراً لا شيء في الساعات الآسيوية الهادئة. إن حد السحب 10% سيوقف الإكسبرت في يوم سيئ واحد، وقفل الربح الديناميكي مع التتبع بالـ ATR يعيدان جزءاً من الربح المفتوح قبل أن تُغلق الصفقة. ستبدو اختبارات الـ backtest أفضل في جلسات الاتجاه الهادئ مع توسع واضح في الـ ATR؛ أما الأيام العرضية فسترفضها بوابات قطع التذبذب والانضغاط في BB قبل أن يأخذ منحنىEquity الضرر.

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

في كل تيكة يفحص الإكسبرت أولاً حد سحب 10% من الحقوق، ثم بوابة RSI-14 المحايدة (لا يمر إلا RSI بين 40-60، وخارج مناطق 70/30 ذروة الشراء/البيع)، ثم مرشح قطع التذبذب والانضغاط لـ Bollinger Bands(20, 2.0) الذي يحظر إذا كان الإغلاق الحالي أقرب من 50% من عرض النطاق إلى الخط الأوسط، أو إذا كان عرض النطاق الحالي تحت نصف متوسط ​​20 شمعة. تُؤخذ عينة ATR(14) ويُرسم خط غاوسي 10-EMA مع نطاق ±0.85×ATR. تُطلق CheckAndTradeBreakout() أمر شراء عندما يكون الإغلاق الحالي فوق النطاق العلوي، والإغلاقان السابقان تحته، والميل صاعداً، وH4 50-EMA تحت السعر، وجسم الشمعة ≥60% من المدى، والاختراق 0.3×ATR على الأقل بعد النطاق، وفحص الـ whipsaw لـ 5 شموع (انضغاط ATR، نسبة تقلب الشموع، نسبة الفتائل، الحركة الصافية، انحياز الحجم اختياري) يجتيز جميعها. البيع يعكس. ثم تشغّل ManagePosition() أربع مسارات خروج: إغلاق بتقاطع الغاوسي، ووقف متحرك بالـ ATR(14)×1.2، وتعادل لمرة واحدة عند ربح 1.2×ATR، وقفل ربح ديناميكي 1 دولار لكل 2 دولار — كلها عبر سقف ثلاث محاولات TryClose/TryModify.

إشارة الدخول

يبدأ الشراء عندما يُغلق السعر الحالي فوق النطاق العلوي للغاوسي (gaussNow + 0.85×ATR) بعد شمعتين متتاليتين داخل النطاق، على شمعة لا يقل جسمها عن 60% من المدى، مع H4 50-EMA تحت السعر، وميل صاعد، والسعر يتجاوز النطاق بمقدار 0.3×ATR على الأقل — وبعد اجتياز فحص الـ whipsaw لـ 5 شموع، ومنطقة RSI-14 المحايدة، وبوابة قطع التذبذب/الانضغاط في BB. البيع يعكس هذه الشروط.

إشارة الخروج

تعمل مسارات الخروج الأربعة بالتوازي: إغلاق بتقاطع الغاوسي عندما يهبط السعر تحت (أو يرتفع فوق، للبيع) الخط الأوسط، وقف متحرك بالـ ATR عند 1.2×ATR، نقل وقف واحد إلى التعادل بمجرد أن يتجاوز السعر 1.2×ATR، وقفل ربح ديناميكي يدفع الوقف للأمام بـ 1 دولار كل 2 دولار من الربح العائم. تستخدم كل عمليات الأوامر سقف ثلاث محاولات مع نوم 200 مللي ثانية (للإغلاق) و100 مللي ثانية (للتعديل) عند إعادة التسعير.

وقف الخسارة

يقف وقف الخسارة عند 1.2×ATR(14) تحت العرض للشراء أو فوق الطلب للبيع عند الدخول. حد السحب العام 10% (MaxDrawdownPercent) يحظر الدخول الجديد بمجرد أن تنخفض حقوق الحساب بأكثر من 10% تحت الرصيد؛ للإكسبرت أيضاً HardSL_Points=120 كاحتياطي.

جني الأرباح

جني الأرباح ثابت عند 160 نقطة من الدخول (FixedTP_Points × _Point)، يُقاس من سعر العرض للشراء والطلب للبيع. على XAUUSD بتسعير عشريين هذا 1.60 في السعر؛ على زوج FX بخمس أرقام سيكون 16 نقطة.

الأنسب لـ

شغّله على XAUUSD M5 بحد أدنى للرصيد 100 دولار؛ مرشح اتجاه H4 50-EMA وبوابة whipsaw لـ 5 شموع يفضّلان تقلبات الجلسات الواضحة، لذلك تنتج ساعات لندن ونيويورك أنظف الإعدادات. استخدم وسيط ECN/RAW بسبريد منخفض (≤3 نقطة) — فحص AutoTuneFilters() يكافئ التسعير الضيق. مخاطرة متوسطة، لوت ثابت 0.10، حد سحب 10%. غير موصى به للمضاربة عالية التردد أو للذهب في الساعات الآسيوية الهادئة.

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

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

العائلة: Volatility الماجيك: 22217017 الإصدار: 2.00

الوصف: Volatility Gaussian Bands EA with adaptive breakout entry, RSI and Bollinger Band confirmation, whipsaw filter, trailing stop, breakeven, and dynamic profit locking. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • GetBuffer()
  • GaussianFilter()
  • GetATR()
  • GetEMA_HTF()
  • PositionExists()
  • CloseOpposite()
  • AutoTuneFilters()
  • CheckMaxDrawdown()
  • GetCurrentATR()
  • ManagePosition()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX17017 Volatility — Execution Flow (from source analysis)
// Family: Volatility
// Volatility Gaussian Bands EA with adaptive breakout entry, RSI and Bollinger Band confirmation, whipsaw filter, trailing stop, breakeven, and dynamic profit locking. 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اسحب الإكسبرت على رسم بياني يطابق الإطار الزمني الموصى به
  7. 7هيّء المعاملات وفقاً للجدول في هذه الصفحة
  8. 8فعّل Allow Algo Trading واضغط OK

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

المعاملالافتراضيالوصف
InpMagicNumber22217017Magic number for orders
InpTradeComment"Psgrowth.com Expert_17017"Trade comment for orders
Timeframe0Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)
TrendFilterTF6Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)
MaxATR0.0maximum ATR allowed (0 = no max filter)
MaxDrawdownPercent10.0Max drawdown % allowed
MaxOpenTrades5Maximum allowed open trades at the same time
AllowOnlyProfitableAdditionstrueEnable filter
MinProfitPerTradeToAdd5.0Minimum $ profit required per existing trade
LockProfitEvery_X_Dollars2.0Step: every $6 profit
LockMinusBuffer1.0Lock profit minus $1 buffer
AvoidWhipsawstrueenable whipsaw filter
WhipsawLookback5bars to analyze (≥3)
WhipsawThreshold0.6compression/flip ratio threshold
DebugModefalseprint debug messages
RequireVolumeBiasfalseinclude volume‐based check
RSI_RoletrueRSI Role in Trading System
RSI_Period14RSI Period
RSI_AppliedPrice1Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Applied Price
RSI_OverboughtLevel70.0Overbought level
RSI_OversoldLevel30.0Oversold level
RSI_NeutralUpper60.0Neutral zone upper bound
RSI_NeutralLower40.0Neutral zone lower bound
BB_RoletrueBB Role in Trading System
BB_Period20BB Period
BB_Deviation2.0BB Deviation
BB_AppliedPrice1Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Applied Price
BB_MiddleBandFilter0.5Distance from middle band (0.0-1.0)
BB_UseSqueezeDetectiontrueDetect BB squeeze
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX17017.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX17017 GB1_66 — Volatility Gaussian Bands EA with adaptive breakout, full 12-layer stack."

#include <Trade\Trade.mqh>
CTrade trade;

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_Timeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_TrendFilterTF = PERIOD_H1;
ENUM_APPLIED_PRICE g_RSI_AppliedPrice = PRICE_CLOSE;
ENUM_APPLIED_PRICE g_BB_AppliedPrice = PRICE_CLOSE;
input group "=== Identity ==="
input int    InpMagicNumber      = 22217017;             // Magic number for orders
input string InpTradeComment     = "Psgrowth.com Expert_17017"; // Trade comment for orders

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)

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

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

الوسوم:ex17017volatilitypipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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