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

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

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

Pipsgrowth EX17009 Volatility — Gaussian Bands breakout strategy with Heiken Ashi and SuperTrend filters. Enters on band breakouts confirmed by candle s. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

يبني خبير Pipsgrowth EX17009 استراتيجيته حول غلاف مبني على المتوسط المتحرك الأسي (EMA) يصفه المصدر باسم "Gaussian Bands". عند كل شمعة جديدة يقرأ المتوسط المتحرك الأسي لعشرة فترات بإغلاق بسيط (InpGaussLength = 10) ويرسم حوله حدّين متوازيين على بُعد InpDistanceMult مضروباً في ATR(14) – بقيمة افتراضية 0.85. هذا الغلاف هو محور تفاعل بقية المحرك: لا تُفحص صفقة إلا عندما تتجاوز شمعة أحد الحدّين بوضوح، وبقية المنظومة موجودة للتأكد من أن هذا الاختراق حقيقي وليس ضوضاء.

يحدث رصد الاختراق داخل الدالة CheckBreakoutSignal(). يشترط شرط الشراء الأساسي أن يُسجَّل إغلاق الشمعة الحالية فوق الحد العلوي بينما كان الإغلاقان السابقان تحته، وأن يكون الإغلاق الحالي فوق المتوسط المتحرك الأسي لـ 50 فترة المسحوب من إطار زمني أعلى (InpTrendTF الافتراضي H4 عبر الكود الرقمي 6 الذي تمرره الدالة MapTimeframeInt)، وأن يكون أساس الحد ذاته في صعود (gaussNow > gaussPrev)، وأن يكون الإغلاق قد ابتعد عن الحد بمسافة لا تقل عن InpMinBreakDistance مضروبة في ATR(14) – أي 0.3 من ATR افتراضياً. تناظر هذه الشروط مجموعة البيع على الحد السفلي. فوق هذا الأساس يجب أن تتجاوز الشمعة بوابة قوة محسوبة من MathAbs(إغلاق − فتح) مقارنة بالمدى الكامل من الأعلى إلى الأدنى: يجب أن يغطي الجسم 60% على الأقل من الشمعة (body >= 0.6 × candleSize)، وهذا يستبعد شموع الدوجي التي كانت ستُسبب انعكاسات وهمية على تقاطع الحد.

يلتفّ حول الأساس طبقتان من المرشحات. عند تفعيل InpUseHAFilter (مفعّل افتراضياً) تُرجع GetHADirection() قيمة 1 للشمعة الصاعدة و-1 للهابطة، محسوبة داخلياً في CalculateHeikenAshi() من العلاقة المفتوحة الملساء = (HA السابق مفتوح + HA السابق إغلاق) / 2 والإغلاق = (O+H+L+C) / 4. يشترط الشراء أن يكون اتجاه HA أكبر من أو يساوي صفراً، والبيع أصغر من أو يساوي صفراً. عند تفعيل InpUseSTFilter يعيد CalculateSuperTrend() تركيب خط SuperTrend يدوياً على امتداد 200 شمعة باستخدام iATR(InpSTATRPeriod = 22) والإزاحة InpSTMultiplier = 3.0 حول متوسط (الأعلى+الأدنى)/2، ثم يدفع الخط للأمام بقلب الاتجاه عند اختراق الإغلاق للحد العلوي أو السفلي. تتغذى g_stTrend في نفس الفحص >= 0 / <= 0. يمكن إيقاف أي من المرشحين، وعندها يُعتبر الجانب المطابق من البوابة ناجحاً دائماً.

يُحسب حجم المخاطرة انطلاقاً من 1% افتراضي (InpRiskPercent = 1.0). تسحب CalculateLotSize() قيمة التيك وحجم التيك من الوسيط، وتُحسب خسارة اللوت من نقاط InpStopLoss، ثم تقسم ميزانية المخاطرة عليها – ثم تُقرّب الناتج لأسفل إلى درجة حجم العقد للرمز، وتُقصُّره بين الحد الأدنى والأعلى للوت، وتستدعي OrderCalcMargin للتأكد من أن النتيجة تترك هامشاً حرّاً لا يقل عن 20%. عند ضبط InpRiskPercent على صفر يلجأ الخبير إلى InpFixedLot (0.01) ويعمل InpMaxLotSize (1.0) سقفاً صلباً بصرف النظر عن الحساب.

تُنفّذ OnTick() كلاً من ManageTrailingStop() وManageBreakeven() وManageProfitLock() على كل تيكت، لكن مسار الدخول مقيّد بالشموع الجديدة فقط عبر IsNewBar() – تأتي أولاً ثلاث حواجز رخيصة: IsWithinTradingSession() ضد نافذتين مفعّلتين (InpSession1Start = 8، InpSession1End = 12، InpSession2Start = 14، InpSession2End = 18 بتوقيت السيرفر)، وIsSpreadOK() بسقف 200 نقطة، وCheckMaxDrawdown() مقابل أرضية 15% من الرصيد مقابل الإكويتي. إذا كان عدد المراكز المفتوحة صفراً تُطلق الإشارة فوراً. إذا كان التراكم مفعّلاً (InpEnablePyramid، معطل افتراضياً) تشترط IsPyramidSafe() أن يكون وقف أي مركز مفتوح الحالي في ربح لا يقل عن InpMinSLProfit = 150 نقطة قبل السماح بدخول جديد، وتُحدد عمق التراكم بـ InpMaxPyramidLevels = 3.

يستخدم وضع وقف الخسارة في ExecuteTrade() slDistance = MathMax(InpATRMultSL × ATR, InpStopLoss × _Point)، فالوقف الفعلي هو أكبر من 1.2× ATR(14) ومن الأرضية الثابتة 500 نقطة – وهذا ضمان يمنع الوقف من الانضغاط داخل مسافة الوقف الدنيا لدى الوسيط أثناء الجلسات الهادئة. جني الأرباح مستوى ثابت عند 1500 نقطة (InpTakeProfit)، ما يعطي تقريباً نسبة مخاطرة/عائد 3:1 مقارنةً بوقف 500 نقطة عندما يكون ATR أقل من 417 نقطة. بمجرد فتح الصفقة، تدفع ManageBreakeven() الوقف إلى سعر الفتح + InpBEProfit (50 نقطة) بعد أن يتحرك السعر InpBEStart (200 نقطة)؛ ثم تدفع ManageProfitLock() الوقف إلى سعر الفتح + InpLockBuffer (100 نقطة) بعد أن يتجاوز الربح InpLockTrigger (400 نقطة)؛ وتستلم ManageTrailingStop() المهمة بعد InpTrailStart (300 نقطة) وتدفع الوقف بإزاحة InpTrailDistance (200 نقطة)، ولا تدفعه إلا للأمام. جميعها ملفوفة بـ TryModify_EX17009، سقالة 3 محاولات مع نوم 100 مللي ثانية عند requote/timeout، وهي نفسها التي تستخدمها دوال إغلاق المركز TryClose_EX17009 وإغلاق جزء منه TryClosePartial_EX17009 (مع نوم 200 مللي ثانية).

ما يميّز هذا الخبير عن تقاطع حد ساذج هو الجمع بين بوابة قوة الجسم وفحص ميل أساس الحد: فهو يرفض الدخول على فتيل يخترق الحد، ويرفض المطاردة عندما يكون الحد نفسه مسطّحاً. على شريط XAUUSD M5 العرضي هذا يعني أن معظم الشموع يجتاز بوابة السبريد والبوابة الزمنية لكنه يفشل في جوهر الاختراق، فيبقى تكرار الصفقات متواضعاً. تقسيم الجلستين (اندفاع لندن الصباحي وتداخل نيويورك المبكر، كلاهما بتوقيت السيرفر) هو المكان الوحيد الذي يعترف فيه الخبير بمخاطرة الوقت من اليوم، لذا على المتداولين الذين يعملون على سيرفر GMT+2 أو GMT+3 أن يتحققوا من ساعات العمل مقارنة بساعة وسيطهم قبل التشغيل الحي.

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

في كل شمعة جديدة يسحب الخبير متوسطاً متحركاً أسياً لـ 10 فترات بالإغلاق كأساس للحد، ويقيس ATR(14)، ويرسم غلافاً عند ±0.85×ATR حوله. تسأل CheckBreakoutSignal() بعدها إن كان الإغلاق الحالي قد تجاوز إحدى السكّتين مع بقاء الإغلاقين السابقين داخلها، وإن كان الإغلاق في الجانب الصحيح من المتوسط المتحرك الأسي لـ 50 فترة المسحوب من إطار زمني أعلى (H4 افتراضياً)، وإن كان أساس الحد ذاته مائلاً في اتجاه الصفقة. تجبر بوابة قوة الشمعة الجسم على تغطية 60% على الأقل من المدى الكامل للشريط، ويجب أن تتفق إعادة构筑 هايكن آشي وSuperTrend المحسوبتان داخلياً من الأسعار الخام وATR(22) داخل الفترة الزمنية. تعمل إدارة المركز على كل تيكت: سقالة من 3 محاولات تحيط كل تعديل، وتدفع نقطة التعادل الوقف إلى سعر الفتح + 50 نقطة عند 200 نقطة ربح، ويشد قفل الربح الوقف إلى سعر الفتح + 100 نقطة عند 400 نقطة، ويسير ترلينغ يتقدم للأمام فقط بإزاحة 200 نقطة بعد 300 نقطة. يُحسب حجم اللوت من مخاطرة 1% من الحساب مع فحص هامش يحدّ النتيجة بـ 80% من الهامش الحر، ويعود إلى 0.01 إذا فشلت الحسابات.

إشارة الدخول

يُفعَّل الشراء عندما يُسجَّل إغلاق الشمعة الحالية فوق الحد العلوي لغاوس (gaussEMA(10) + 0.85×ATR(14)) بينما الإغلاقان السابقان تحته، ويكون الإغلاق فوق المتوسط المتحرك الأسي لـ 50 فترة على الإطار الزمني الأعلى المُكوَّن (H4 افتراضياً)، ويكون أساس الحد صاعداً، ويكون الإغلاق قد ابتعد عن السكة بمسافة 0.3 من ATR(14) على الأقل، ويغطي جسم الشمعة >=60% من مداها الكامل. يجب أن يتفق مرشحو هايكن آشي وSuperTrend المحسوبان داخلياً (كلاهما مفعّل افتراضياً) على الاتجاه. البيع هو صورة معكوسة على الحد السفلي.

إشارة الخروج

تعمل ثلاثة مخارج مستقلة متراكمة فوق جني أرباح ثابت عند 1500 نقطة: تدفع ManageBreakeven() الوقف إلى سعر الفتح + 50 نقطة بعد أن يتحرك السعر 200 نقطة في الربح، وتشدّ ManageProfitLock() الوقف إلى سعر الفتح + 100 نقطة بعد أن يتجاوز الربح 400 نقطة، وتتولى ManageTrailingStop() المهمة بعد حركة 300 نقطة وتدفع الوقف بإزاحة 200 نقطة، ولا تحركه إلا للأمام. تمر جميع التعديلات عبر TryModify_EX17009 التي تعيد المحاولة ثلاث مرات على requote أو timeout مع نوم 100 مللي ثانية.

وقف الخسارة

وقف الخسارة لكل صفقة هو أكبر من 1.2×ATR(14) ومن أرضية ثابتة 500 نقطة، يُحسب في ExecuteTrade() كي لا ينضغط الوقف داخل مسافة الوقف الدنيا لدى الوسيط في الجلسات الهادئة. سحب بنسبة 15% من إكويتي الحساب في CheckMaxDrawdown() بوابة صلبة تحظر دخول صفقات جديدة عند تفعيلها.

جني الأرباح

جني الأرباح مستوى ثابت عند 1500 نقطة في كل دخول، ما يعطي تقريباً نسبة مخاطرة/عائد 3:1 مقارنةً بوقف 500 نقطة. يمكن لطبقات قفل الربح والتريلينغ أن تحوّل جني الأرباح الثابت إلى تراكم متدرّج إذا امتدّ السعر، لكن جني الأرباح نفسه لا يتغير عن موضعه الأولي.

الأنسب لـ

مُصمَّم لـ XAUUSD على M5 داخل نافذتين مفعّلتين 8:00-12:00 و14:00-18:00 بتوقيت السيرفر، مع H1 كإطار ثانوي عند ضبط InpTrendTF وفقاً لذلك. يحتاج إلى وسيط ذي سبريد نموذجي منخفض (أقل بكثير من سقف 200 نقطة) وسرعة تنفيذ عالية لأن عمليتي التعديل والإغلاق تمران عبر سقالة 3 محاولات تضيف 100-200 مللي ثانية زمن انتقال عند requote. الحد الأدنى الموصى به للرصيد 100 دولار مع مخاطرة 1% لكل صفقة؛ يعني مفتاح إيقاف السحب بنسبة 15% من الإكويتي أنه يجب على المتداولين توقّع أن الخبير سيتوقف بدلاً من التعافي ذاتياً خلال السلاسل المعاكسة.

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

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

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

الوصف: Gaussian Bands breakout strategy with Heiken Ashi and SuperTrend filters. Enters on band breakouts confirmed by candle strength, trend EMA, and HA/ST direction. Includes trailing stop, breakeven, profit lock, pyramiding, session and spread filters. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • GetBuffer()
  • CalculateHeikenAshi()
  • GetHADirection()
  • CalculateSuperTrend()
  • CalculateLotSize()
  • IsWithinTradingSession()
  • IsSpreadOK()
  • CountOpenTrades()
  • IsPyramidSafe()
  • CheckMaxDrawdown()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX17009 Volatility — Execution Flow (from source analysis)
// Family: Volatility
// Gaussian Bands breakout strategy with Heiken Ashi and SuperTrend filters. Enters on band breakouts confirmed by candle strength, trend EMA, and HA/ST direction. Includes trailing stop, breakeven, profit lock, pyramiding, session and spread filters. 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
الأطر الزمنية المُحسّنة:
M5H1

كيفية تثبيت الإكسبرت على 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

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

المعاملالافتراضيالوصف
InpTradeComment"Psgrowth.com Expert_17009"Trade Comment
InpMagicNumber22217009Magic Number
InpRiskPercent1.0Risk % of Balance per Trade
InpFixedLot0.01Fixed Lot (if Risk=0)
InpMaxLotSize1.0Max Lot Size (Hard Limit)
InpMaxSlippage30Max Slippage (Points)
InpGaussLength10Gaussian EMA Length
InpDistanceMult0.85Band Distance Multiplier
InpTrendEMA50Trend EMA Period
InpMinBreakDistance0.3Min Break Distance (ATR mult)
InpTrendTF6Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Trend Filter Timeframe
InpUseHAFiltertrueEnable Heiken Ashi Filter
InpUseSTFiltertrueEnable SuperTrend Filter
InpSTATRPeriod22SuperTrend ATR Period
InpSTMultiplier3.0SuperTrend Multiplier
InpStopLoss500Stop Loss (Points)
InpTakeProfit1500Take Profit (Points)
InpATRMultSL1.2ATR Multiplier for SL
InpUseTrailingtrueEnable Trailing Stop
InpTrailStart300Trail Start (Points)
InpTrailDistance200Trail Distance (Points)
InpUseBreakeventrueEnable Breakeven
InpBEStart200Breakeven Trigger (Points)
InpBEProfit50Breakeven Lock Profit (Points)
InpUseProfitLocktrueEnable Profit Locking
InpLockTrigger400Lock Trigger (Points)
InpLockBuffer100Lock Buffer (Points)
InpEnablePyramidfalseEnable Pyramiding
InpMaxPyramidLevels3Max Pyramid Positions
InpMinSLProfit150Min SL in Profit (Points)
InpEnableSession1trueEnable Session 1
InpSession1Start8Session 1 Start Hour
InpSession1End12Session 1 End Hour
InpEnableSession2trueEnable Session 2
InpSession2Start14Session 2 Start Hour
InpSession2End18Session 2 End Hour
InpEnableSpreadFiltertrueEnable Spread Filter
InpMaxSpread200Max Spread (Points)
InpMaxDrawdown15.0Max Drawdown %
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX17009.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX17009 XAUUSD_M5_GaussianBands_Pro_EA — Gaussian Bands breakout with HA and SuperTrend filters, full 12-layer stack."
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>

//+------------------------------------------------------------------+
//| Enums                                                              |
//+------------------------------------------------------------------+
enum ENUM_SIGNAL_TYPE {
   SIGNAL_NONE,     // No signal
   SIGNAL_BUY,      // Buy signal
   SIGNAL_SELL      // Sell signal
};

//+------------------------------------------------------------------+
//| Input Parameters                                                  |
//+------------------------------------------------------------------+
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_InpTrendTF = PERIOD_H1;
input group "=== Identity ==="
input string    InpTradeComment = "Psgrowth.com Expert_17009";    // Trade Comment
input int       InpMagicNumber = 22217009;                        // Magic Number

ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
   switch(tf)
   {
      case 1: return PERIOD_M1;

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

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

الوسوم:ex17009volatilitypipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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