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()
// 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)ملف التحسين
كيفية تثبيت الإكسبرت على MT5
- 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
- 2افتح برنامج MetaTrader 5 على حاسوبك
- 3من القائمة العلوية اختر File → Open Data Folder
- 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
- 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
- 6اسحب الإكسبرت على رسم بياني يطابق الإطار الزمني الموصى به
- 7هيّء المعاملات وفقاً للجدول في هذه الصفحة
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpTradeComment | "Psgrowth.com Expert_17009" | Trade Comment |
| InpMagicNumber | 22217009 | Magic Number |
| InpRiskPercent | 1.0 | Risk % of Balance per Trade |
| InpFixedLot | 0.01 | Fixed Lot (if Risk=0) |
| InpMaxLotSize | 1.0 | Max Lot Size (Hard Limit) |
| InpMaxSlippage | 30 | Max Slippage (Points) |
| InpGaussLength | 10 | Gaussian EMA Length |
| InpDistanceMult | 0.85 | Band Distance Multiplier |
| InpTrendEMA | 50 | Trend EMA Period |
| InpMinBreakDistance | 0.3 | Min Break Distance (ATR mult) |
| InpTrendTF | 6 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Trend Filter Timeframe |
| InpUseHAFilter | true | Enable Heiken Ashi Filter |
| InpUseSTFilter | true | Enable SuperTrend Filter |
| InpSTATRPeriod | 22 | SuperTrend ATR Period |
| InpSTMultiplier | 3.0 | SuperTrend Multiplier |
| InpStopLoss | 500 | Stop Loss (Points) |
| InpTakeProfit | 1500 | Take Profit (Points) |
| InpATRMultSL | 1.2 | ATR Multiplier for SL |
| InpUseTrailing | true | Enable Trailing Stop |
| InpTrailStart | 300 | Trail Start (Points) |
| InpTrailDistance | 200 | Trail Distance (Points) |
| InpUseBreakeven | true | Enable Breakeven |
| InpBEStart | 200 | Breakeven Trigger (Points) |
| InpBEProfit | 50 | Breakeven Lock Profit (Points) |
| InpUseProfitLock | true | Enable Profit Locking |
| InpLockTrigger | 400 | Lock Trigger (Points) |
| InpLockBuffer | 100 | Lock Buffer (Points) |
| InpEnablePyramid | false | Enable Pyramiding |
| InpMaxPyramidLevels | 3 | Max Pyramid Positions |
| InpMinSLProfit | 150 | Min SL in Profit (Points) |
| InpEnableSession1 | true | Enable Session 1 |
| InpSession1Start | 8 | Session 1 Start Hour |
| InpSession1End | 12 | Session 1 End Hour |
| InpEnableSession2 | true | Enable Session 2 |
| InpSession2Start | 14 | Session 2 Start Hour |
| InpSession2End | 18 | Session 2 End Hour |
| InpEnableSpreadFilter | true | Enable Spread Filter |
| InpMaxSpread | 200 | Max Spread (Points) |
| InpMaxDrawdown | 15.0 | Max Drawdown % |
#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;الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية أخرى
Pipsgrowth EX01007 Adaptive — إكسبرت أدفايزر تكييفي
Pipsgrowth EX01007 Adaptive — Adaptive signal scorer EA combining EMA crossover, RSI, Heiken Ashi, Bollinger Bands, ATR and volume spike detection int. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX01019 Adaptive — إكسبرت أدفايزر تكييفي
Pipsgrowth EX01019 Adaptive — Self-adaptive market regime EA that auto-detects trending, ranging, volatile, quiet and breakout conditions. Switches be. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX15029 SMC-OrderBlock — إكسبرت أدفايزر إكسبرت أدفايزر
Pipsgrowth EX15029 SMC-OrderBlock — Smart Money Concepts breakout EA — detects order blocks, CHOCH and liquidity sweeps using EMA cross + structure break, A. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.