Pipsgrowth EX17021 Volatility — إكسبرت أدفايزر تقلب
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5
Pipsgrowth EX17021 Volatility — Adaptive Gaussian Band breakout EA supporting three strategy modes: Breakout, BreakoutMeanExit, and MeanReversion. Uses . إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
EX17021 هو مستشار آلي للتداول داخل القنوات يلفّ نطاقاً واحداً مبنياً على ATR(14) حول متوسط متحرك أُسي سريع (10 فترات) على سعر الإغلاق، ثم يتيح للمتداول اختيار واحدة من ثلاث طرق للتفاعل مع هذا النطاق: ملاحقة الاختراق، أو ملاحقة الاختراق مع الخروج عند خط الوسط، أو الارتداد من حافة النطاق نحو خط الوسط. كلمة "Gauss" في وصفه هي تسمية فقط وليست نواة حسابية فعلية — فالخط المركزي عبارة عن MODE_EMA / PRICE_CLOSE عادي بطول 10 أشرطة. أما الغلاف فيُبنى فوقه: upperBand = gaussNow + DistanceMultiplier * ATR(14) وlowerBand = gaussNow - DistanceMultiplier * ATR(14)، حيث DistanceMultiplier = 0.85 افتراضياً، ما يعطي عرضاً إجمالياً للنطاق يقارب 1.7 × ATR(14).
طبقة مؤشرات منفصلة تعمل على إطار زمني مختلف لغرض محاذاة الاتجاه. TrendFilterTF = 6 يُترجم افتراضياً إلى PERIOD_H4، وعلى هذا الإطار يرسم المتوسط EMA(50) على الإغلاق. تُقيَّم حزمة النطاقين على الإطار الزمني الرئيسي g_Timeframe (افتراضي PERIOD_H1، قابل للاختيار 1–7)، لكن فحص EMA للإطار الأعلى يُقرأ دائماً على إطار الاتجاه. لذلك، فإن إشارة شراء من نطاق الساعة لا تكون صحيحة إلا إذا كان إغلاق H4 فوق EMA(50) الخاص به، والعكس صحيح بالنسبة للبيع. هذا هو المرشح الوحيد متعدد الأطر الزمنية في المستشار؛ فهو لا يقرأ ADX أو MACD على إطار أعلى.
ثلاثة أوضاع تشترك في نفس حزمة المؤشرات لكنها تفسّر النطاق بشكل مختلف. StrategyMode_Breakout (الافتراضي) هو وضع الاستمرارية: يجب أن يُغلق الشريط الحالي خارج النطاق بينما الشريطان السابقان أُغلقا داخله، وأن يتوافق الميل (gaussNow مقارنة بـ gaussPrev) مع الاتجاه، وأن يكون السعر على الجانب الصحيح من EMA للإطار الأعلى، وأن يمتد الاختراق مسافة أكبر من MinBreakDistance * ATR(14) (افتراضياً 0.3 × ATR) خارج النطاق. مرشّح "الشمعة القوية" — الجسم ≥ 60% من طول الشمعة — يعمل كبوابة إضافية، فأي دوجي يخترق النطاق يُرفض. يستخدم StrategyMode_BreakoutMeanExit نفس شروط الدخول، لكن على كل تيكت يُغلق المركز لحظة عودة السعر لتجاوز خط الوسط في الاتجاه المعاكس. أما StrategyMode_MeanReversion فيتجاهل منطق الاختراق كلياً؛ يدخل عند عبور شمعة واحدة لحد النطاق (الإغلاق السابق خارج، الإغلاق الحالي داخل) ويُغلق عند خط الوسط. وضعا العودة للوسط يُعطّلان كلاً من التريلينج ستوب ونقل وقف الخسارة لنقطة التعادل، لذا فإن الخروج الوحيد الذي سيشهدانه هو خط الوسط أو وقف الخسارة الأصلي.
إدارة المركز هي الجانب الذي يبذل فيه المستشار أكبر جهد. يُحسب وقف الخسارة عبر StopLossOffset(atr) التي تُرجع القيمة الأكبر بين ATR_MultiplierSL * ATR(14) (1.2 × ATR) وHardSL_Points * _Point (120 نقطة). مع UseATR_StopLoss = true يكون الحد المرتبط بـ ATR هو السائد في معظم الأحيان؛ أما على الأزواج الهادئة فقد تكون النقاط الـ 120 هي الرقم المُلزِم. افتراضياً يكون جني الأرباح 160 نقطة ثابتة (UseATR_TakeProfit = false، FixedTP_Points = 160)، وسبب نسبة المخاطرة إلى العائد 1:1.33 المذكورة في الوصف ناتج عن هذا التفاوت. إذا فعّل المستخدم UseATR_TakeProfit = true، ينتقل جني الأرباح إلى ATR_MultiplierTP * ATR(14) (1.5 × ATR).
بالنسبة للمراكز المفتوحة في وضعي الاختراق، تعمل ثلاث آليات تشديد على كل تيكت، ولها ترتيب مهم. أولاً، يحدّث التريلينج ستوب وقف الخسارة إلى bid - slOffset (شراء) أو ask + slOffset (بيع) متى كان المستوى الجديد أفضل من وقف الخسارة الحالي — وهذه تشديد مستمر وليس بخطوات. ثانياً، تنطلق آلية التعادل بمجرد أن يتحرك السعر مسافة slOffset كاملة في الربح: يُضبط وقف الخسارة على سعر الدخول، ليقفل الصفقة عند الصفر. ثالثاً، تشتغل آلية قفل الربح الديناميكية كسُلَّم دولار متقطع: كل LockProfitEvery_X_Dollars (افتراضياً 2 دولار) من الربح غير المحقق، يعيد المستشار تثبيت وقف الخسارة على entry + (n * step - buffer) / tickValue * tickSize، فالمركز الذي يحقق 10 دولارات ربحاً يقفل تقريباً 8–9 دولارات من السعر خلف الدخول. آلية LockMinusBuffer = 1.0 تضمن أن القفل يجلس قبل علامة الدولار التالية بقليل، وهو ما يمنع الفارق السعري من اختبار القفل فوراً.
جانب المحفظة مُعدّ للتوسع المحافظ. MaxOpenTrades = 5 هو السقف، لكن OneTradeOnly = true يُفعّل افتراضياً وضع المركز الواحد. يعني مرشّح AllowOnlyProfitableAdditions (افتراضي true) أنه حتى إذا عُطّل OneTradeOnly، فلن يفتح المستشار مركزاً ثانياً ما لم يحقق كل مركز مفتوح ربحاً لا يقل عن MinProfitPerTradeToAdd = $5. يُشكِّل MaxDrawdownPercent = 10.0 بوابة صلبة: في كل تيكت، يتحقق المستشار من 100 * (balance - equity) / balance مقابل هذا السقف ويرفض فتح صفقات جديدة عند تجاوزه. هذا هو التوقف الوحيد الصريح لإدارة المال في المستشار — لا يوجد حد خسارة يومي ولا إعادة ضبط أسبوعية.
منطق الضبط التلقائي في AutoTuneFilters صغير لكنه يستحق الفهم. يقرأ السبريد الحالي ويستنتج الرمز: سبريد أقل من 3 نقاط يعني زوج فوركس (pipFactor = 0.0001)، وسبريد أوسع يعني ذهباً أو عقد معادن (pipFactor = 0.01). يُثبَّت الحد الأدنى لـ ATR عند 3 × pipFactor، أي 0.0003 على الأزواج من فئة EURUSD و0.03 على XAUUSD. هذا يجعل المستشار قابلاً للنقل عبر النطاق المذكور في الوصف (العملات الرئيسية والمعادن) دون أن يحتاج المستخدم لتغيير قيم النقاط. الإعداد الافتراضي MinATR = 0.03 يطابق جانب الذهب؛ أما مستخدمو الفوركس فسيشاهدون المرشّح التلقائي يُخفض الحد إلى 0.0003 بمجرد ترك المدخل دون تغيير مع UseAutoFilter = true.
تنفيذ الأوامر نفسه يستخدم هيكل إعادة محاولة بثلاث محاولات. TryClose_EX17021 وTryClosePartial_EX17021 وTryModify_EX17021 تتكرر كل منها حتى ثلاث مرات، مع نوم 100–200 مللي ثانية عند الردود من requote أو timeout أو price-changed، وكسر الحلقة عند أي كود إرجاع آخر. الرقم السحري ثابت عند 22217021، وtrade.SetTypeFillingBySymbol(_Symbol) يترك الوسيط ليحدد سياسة التعبئة. لا توجد استدعاءات iCustom — المقابض الثلاثة للمؤشرات هي iMA وiATR عاديان — وهو ما يحافظ على بصمة المستشار على الرسم البياني عند الحد الأدنى.
الملاءمة الطبيعية هي متداول swing على XAUUSD M5–M15 يريد من النطاق أن يقوم بعمل تحديد تحوّل النظام، ويكون مرتاحاً لترك المستشار في وضع المركز الواحد طوال الجلسة. وضع MeanReversion مناسب للجلسات ذات النطاقات المحدودة، وBreakout لنفس المستشار عند كسر النطاق، وBreakoutMeanExit يقف بينهما — يدخل كالاختراق ويخرج كالعودة. تتأثر الباك تيستات بشكل أكبر بـ Length وDistanceMultiplier وTrendEMA مقارنة ببقية المدخلات، لأن بقية الإدارة ثابتة بمجرد اختيار OneTradeOnly.
تفاصيل الاستراتيجية
في كل تيكت يسحب المستشار ATR(14) ومتوسطاً أُسياً لـ 10 فترات وEMA(50) على إطار اتجاه منفصل (H4 افتراضياً) إلى مظاريف محلية عبر UpdateIndicatorBuffers وUpdatePriceBuffers. يبدأ بـ CheckMaxDrawdown للتحقق من بوابة 10% من الانخفاض في القيمة، ثم يُكوِّن النطاق كـ gaussNow ± 0.85 × ATR، ويستنتج عامل النقطة من السبريد، ويُقارن إغلاق الشمعة الحالية مع النطاق والميل وEMA للإطار الأعلى والحد الأدنى لمسافة الاختراق ليقرر أهلية الشراء أو البيع. في وضعي الاختراق يجب أن يغطي جسم الشمعة 60% من مداها؛ أما العودة للوسط فتخطو هذا الشرط. عند إشارة صحيحة، يستدعي CloseOpposite لقلب المركز ثم trade.Buy أو trade.Sell لفتح المركز الجديد بوقف خسارة عند StopLossOffset(atr) وجني أرباح عند FixedTP_Points = 160. بعد الدخول تعمل ثلاث آليات تشديد بالتتابع على كل تيكت: التريلينج يدفع وقف الخسارة للحفاظ على slOffset خلف السعر، ونقطة التعادل تنقل وقف الخسارة إلى سعر الدخول بمجرد أن يتحرك السعر مسافة slOffset كاملة في صالح الصفقة، وسلَّم قفل الربح الديناميكي يعيد وضع وقف الخسارة بخطوات LockProfitEvery_X_Dollars دولار ناقصاً مخزناً قدره 1 دولار، محسوباً عبر tickValue/tickSize. تمر جميع عمليات الأوامر عبر هياكل إعادة المحاولة الثلاثية TryClose_EX17021 وTryModify_EX17021 مع تراجع 100–200 مللي ثانية عند requote.
تعتمد إشارة الدخول على النطاق وتختلف بحسب الوضع. في وضعي Breakout (الافتراضي) وBreakoutMeanExit، تتطلب إشارة الشراء أن يكون الإغلاقان السابقان داخل النطاق العلوي والإغلاق الحالي خارجه، وأن يكون الميل صاعداً (gaussNow > gaussPrev)، وأن يكون الإغلاق فوق EMA(50) لإطار H4، وأن تتجاوز مسافة الاختراق 0.3 × ATR(14)، مع جسم شمعة ≥ 60% من طولها. أما وضع MeanReversion فيدخل عند عبور شمعة واحدة فقط عائداً إلى داخل النطاق، دون اشتراط الجسم أو الميل.
يعتمد الخروج على الوضع المُختار. في وضع Breakout يُغلق المركز عند جني الأرباح (160 نقطة افتراضياً)، أو تشديد التريلينج، أو بلوغ التعادل، أو سُلَّم قفل الربح الديناميكي. يضيف وضع BreakoutMeanExit إغلاقاً فورياً لحظة عودة السعر لتجاوز خط الوسط. أما مراكز MeanReversion فتُغلق لحظة وصول السعر إلى خط الوسط على الجانب الصحيح.
وقف الخسارة هو القيمة الأكبر بين 1.2 × ATR(14) و120 نقطة (الإعداد الافتراضي UseATR_StopLoss = true)، ثم يُشدَّد اختيارياً عبر التريلينج، ثم نقله لنقطة التعادل (يُفعَّل بعد تحرك السعر مسافة slOffset كاملة في صالح الصفقة)، ثم سُلَّم قفل الربح الديناميكي بخطوة 2 دولار يسحب وقف الخسارة بمقدار 1 دولار أقل من كل 2 دولار ربح غير محقق.
جني الأرباح افتراضياً 160 نقطة ثابتة (UseATR_TakeProfit = false)؛ وعند تفعيل هذا المدخل ينتقل جني الأرباح إلى 1.5 × ATR(14) لكل مركز. يمكن لوضعي BreakoutMeanExit وMeanReversion الخروج أيضاً عند خط الوسط بدلاً من انتظار جني الأرباح.
مناسب لمتداولي المراكز الواحدة على XAUUSD M5–M15 برصيد أدنى 100 دولار وتحمّل متوسط للمخاطرة. تجعل بوابة الانخفاض 10% في القيمة وسُلَّم قفل الربح بخطوة 2 دولار منه ملائماً لقواعد شركات التمويل. يُفضَّل تشغيله على وسيط ECN بفارق سعري منخفض، لأن المرشّح التلقائي المعتمد على السبريد (avgSpread < 3) يميّز صراحة بين الفوركس والذهب — فروقات سعرية أوسع على نفس الرمز ستوجِّه المستشار لاستخدام عامل نقاط المعادن وقد ترفض مزيداً من الإشارات.
منطق الاستراتيجية
Pipsgrowth EX17021 Volatility — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Volatility
الماجيك: 22217021
الإصدار: 2.00
الوصف:
Adaptive Gaussian Band breakout EA supporting three strategy modes: Breakout, BreakoutMeanExit, and MeanReversion. Uses auto-filter, ATR-based SL/TP, trailing stop, breakeven, dynamic lock profit, and drawdown control. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
PrepareBuffer()LogBufferError()LogTradeError()ReleaseIndicator()FreeBuffers()UpdateIndicatorBuffers()UpdatePriceBuffers()InitializeBuffers()PositionExists()CloseOpposite()
// Pipsgrowth EX17021 Volatility — Execution Flow (from source analysis)
// Family: Volatility
// Adaptive Gaussian Band breakout EA supporting three strategy modes: Breakout, BreakoutMeanExit, and MeanReversion. Uses auto-filter, ATR-based SL/TP, trailing stop, breakeven, dynamic lock profit, and drawdown control. 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_17021" | Trade Comment |
| InpMagicNumber | 22217021 | Magic Number |
| Timeframe | 0 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) |
| TrendFilterTF | 6 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) |
| MaxOpenTrades | 5 | Maximum allowed open trades at the same time |
| AllowOnlyProfitableAdditions | true | Enable filter |
| MinProfitPerTradeToAdd | 5.0 | Minimum $ profit required per existing trade |
| LockProfitEvery_X_Dollars | 2.0 | Step: every $6 profit |
| LockMinusBuffer | 1.0 | Lock profit minus $1 buffer |
| MaxDrawdownPercent | 10.0 | Max drawdown % allowed |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX17021 GB10_5_2_updated5 — Adaptive Gaussian Band breakout with 3 strategy modes, full 12-layer stack."
#include <Trade\Trade.mqh>
CTrade trade;
enum ENUM_StrategyMode
{
StrategyMode_Breakout = 0,
StrategyMode_BreakoutMeanExit = 1,
StrategyMode_MeanReversion = 2
};
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_TIMEFRAMES g_Timeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_TrendFilterTF = PERIOD_H1;
input group "=== Identity ==="
input string InpTradeComment = "Psgrowth.com Expert_17021"; // Trade Comment
input ulong InpMagicNumber = 22217021; // Magic Number
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_TIMEFRAMES g_Timeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_TrendFilterTF = PERIOD_H1;
input group "=== Strategy Settings ==="
input ENUM_StrategyMode StrategyMode = StrategyMode_Breakout;
input bool UseAutoFilter = true;
input int Length = 10;
input double DistanceMultiplier = 0.85;
input int Timeframe = 0; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)
input int TrendFilterTF = 6; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)
input int TrendEMA = 50;
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.