Pipsgrowth EX01013 Adaptive — إكسبرت أدفايزر تكييفي
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5
Pipsgrowth EX01013 Adaptive — Adaptive DS3 channel-breakout EA for XAUUSD M5. Builds dynamic ATR channels around an EMA trend filter; enters on close . إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX01013 Adaptive هو نظام اختراق أحادي المركز مصمم لـ XAUUSD على إطار M5، يلتقط توسعات التذبذب خارج نطاق ATR متكيف يلتف حول مرشح اتجاه EMA بطيء. بدلًا من استخدام قناة Donchian ثابتة أو غلاف Bollinger ساكن، يرسم EA نطاق القرار بشكل ديناميكي عند كل شمعة: يقرأ أحدث قيمة لـ ATR(14) وأحدث قيمة لـ EMA(100)، ثم يحسب نطاقًا علويًا عند EMA(100) + 2.0 × ATR(14) ونطاقًا سفليًا عند EMA(100) − 2.0 × ATR(14). ولأن النطاق يتحرك مع خط الاتجاه الأساسي ومع نظام التذبذب الحالي، يتسع تلقائيًا في الجلسات العالية التذبذب (افتتاح لندن، افتتاح نيويورك، ارتدادات ما بعد الأخبار) ويضيق في فترات التماسك الهادئة — عتبة الاختراق تتابع ما يعنيه التوسع فعلًا في تلك اللحظة بدلًا من الاعتماد على مسافة نقاط ثابتة.
منطق الدخول يعيش في CheckSignal()، التي تعمل مرة واحدة فقط عند اكتمال الشمعة — تحتفظ OnTick() بـ static datetime lastBar وتتخطى كل شيء حتى يتقدم iTime(_Symbol, _Period, 0). عند كل شمعة جديدة، تنسخ القيم الأخيرة لـ ATR وEMA من مقابض المؤشرات hATR وhMA (اللذان يُنشآن في OnInit() عبر iATR وiMA)، ثم تقرأ إغلاق الشمعة السابقة iClose(_Symbol, _Period, 1). إذا كان الإغلاق السابق فوق النطاق العلوي، تُستدعى OpenBuy(). وإذا كان تحت النطاق السفلي، تُستدعى OpenSell(). لا توجد بوابة زخم RSI ولا تأكيد حجم ولا نموذج ابتلاع — اختراق القناة الديناميكية هو شرط الدخول الوحيد. تفرض الدالة أيضًا قاعدة مركز واحد: if(PositionsTotal() > 0) return; تخرج فورًا إذا كانت أي صفقة على هذا الـ magic مفتوحة.
إدارة الصفقة تعتمد على وقف وهدف بمسافة ثابتة. InpStopLoss = 500 نقطة وInpTakeProfit = 1000 نقطة افتراضيًا، ما يعطي نسبة مخاطرة/عائد 1:2 لكل دخول. يُحسب حجم اللوت عبر CalculateLotSize(stopLossPoints)، التي تأخذ EffectiveCapital() — المثبَّت بدوره بين InpCapAmount وInpCapFloor (الحد الأدنى الافتراضي 100 دولار) — ثم تضربه في InpRiskPercent (افتراضي 1.0%)، وتقسمه على المخاطرة لكل لوت المحسوبة من tickValue وtickSize وpoint لدى الوسيط، وتقرّبه إلى الأسفل وفق LotsStep() للرمز. إذا كانت InpRiskPercent صفرًا أو سالبة، يلجأ EA إلى InpFixedLot (افتراضي 0.01). تتم تطبيع النتيجة في NormalizeLot() وتقييدها بـ InpMaxLot (افتراضي 100.0).
تتبع OpenBuy() وOpenSell() نفس نمط إعادة المحاولة ثلاث مرات. قبل كل محاولة، تعيد الدالة قراءة SymbolInfoDouble الحي لـ SYMBOL_ASK/SYMBOL_BID، وتعيد حساب SL وTP من السعر الحالي، وتتحقق من SYMBOL_TRADE_STOPS_LEVEL — إذا كانت مسافة الوقف الدنيا لدى الوسيط تدفع SL أو TP قريبًا جدًا من الدخول، تُدفع القيم إلى الحد الأدنى المسموح. كما يتم فحص الهامش مقابل ACCOUNT_MARGIN_FREE. عند فشل trade.Buy() / trade.Sell()، يفحص EA رمز الإعادة: requotes وtimeouts وprice-changed وprice-off تستدعي Sleep(100) ومحاولة جديدة؛ أي رمز آخر يُسجَّل وتخرج الدالة دون تداول. يتم الكشف التلقائي عن نمط التعبئة عبر DetectFillingMode() (FOK → IOC → RETURN) ويُعيَّن على كائن CTrade عند التهيئة.
تعتبر مجموعة إدارة المخاطر الجزء الأثقل في EA. IsSafeToTrade() هي البوابة التي تعمل أولًا عند كل تيكر. تتحقق بالترتيب من: بلوغ سقف رأس المال (equity ≥ InpCapAmount)، اختراق الحد الأدنى لرأس المال (equity < InpCapFloor)، حماية حقوق الملكية (equity < MinEquityPercent% من initialBalance، افتراضي 80%)، سقف الخسارة اليومية (g_realizedToday ≤ −3% من الرصيد الأولي، افتراضيًا)، سقف الخسارة الأسبوعية (g_realizedWeek ≤ −8%، افتراضيًا)، تفعيل التهدئة (g_consecLosses ≥ 3 وTimeCurrent() < g_cooldownUntil)، سقف الصفقات اليومي (g_tradesToday ≥ MaxTradesPerDay = 10)، انفتاح السوق (فحص عطلة نهاية الأسبوع بالتوقيت العالمي)، الجلسة النشطة، فلتر وقت الأخبار، مفتاح الإيقاف، وأخيرًا قفل أقصى تراجع — عندما يصل (initialBalance − equity) / initialBalance × 100 إلى InpMaxDDPct (افتراضي 20%)، يطبع EA رسالة KILL SWITCH ويرفض جميع الدخول التالي.
تُحدَّ عدّادات PnL اليومية والأسبوعية عبر OnTradeTransaction()، التي تصفّي الصفقات الواردة بحسب رقم magic المستشار ورمز الشارت. كل صفقة DEAL_ENTRY_OUT (أو out-by / in-out) تضيف صافيها (profit + swap + commission) إلى g_realizedToday وg_realizedWeek، وتزيد g_consecLosses عند الخسارة الصافية — وهذا يدفع أيضًا g_cooldownUntil إلى TimeCurrent() + 30 × 60 إذا كانت InpCooldownMin > 0. الصفقة الرابحة تُعيد g_consecLosses إلى الصفر. تدير UpdateDailyCounters() تدوير العدادات اليومية عند تغير تاريخ الخادم.
فلترة الجلسات واعية بالمنطقة الزمنية. إما تستخدم DetectGMTOffset() قيمة InpServerGMTOffset إذا كانت غير صفرية، أو تكشفها تلقائيًا عبر مسح فجوة عطلة نهاية الأسبوع على H1 (تبحث عن فجوة بين شمعتي H1 أكبر من ساعتين، ثم تستنتج الإزاحة من ساعة نهاية الفجوة). تطرح ServerToGMT() الإزاحة، وتُرجع InActiveSession() القيمة true فقط عندما تقع الدقيقة الحالية بالتوقيت العالمي داخل لندن (7–16) أو نيويورك (12–21). مع InpAvoidAsia = true، تُرجع الدالة القيمة false صراحةً عندما يكون الوقت داخل آسيا (0–7) وخارج لندن ونيويورك — لذا شمعة أوائل لندن في 7:30 GMT تتداول رغم أن آسيا تتقاطع تقنيًا. تُعلِّم IsNewsTime() نوافذ ±30 دقيقة حول افتتاح لندن ونيويورك كمناطق حظر دخول عندما تكون AvoidNews = true.
معيار OnTester المخصص هو profit × pf × ddPenalty، حيث pf = grossProfit / |grossLoss| مثبَّت عند 10.0، وddPenalty = 1.0 / (1.0 + maxDD / 10.0). توجد ثلاث بوابات صلبة قبل الدرجة: maxDD ≤ 20% (يطابق مفتاح الإيقاف)، وعدد الصفقات ≥ 20، وصافي الربح > 0. الإرجاع 0.0 من أي من هذه البوابات يستبعد التشغيل، لذلك لا يرتّب المُحسِّن إلا الاستراتيجيات التي نجت في قواعد المخاطر الخاصة بـ EA نفسه.
ما يمكن توقعه في الباك تيست: مع SL/TP الافتراضي 500/1000 على XAUUSD M5، يأخذ EA صفقات قليلة ذات حركة كبيرة — اختراقات غلاف 2× ATR على الذهب لا تتكرر، لكن عندما تحصل، يتحرك الذهب عادة 10–30 دولار في الاتجاه نفسه خلال ساعة. تتابعات 4–6 خسائر متتالية شائعة في الجلسات العرضية؛ فترتا التهدئة 3 خسائر/30 دقيقة وسقف الخسارة اليومية 3% هما خط الدفاع الأول ضد هذه التتابعات. يجب اعتبار قفل الـ 20% حدًا صلبًا للاستخدام الحي؛ خفضه دون أقصى تراجع تاريخي لمجموعة التحسين سيدفع EA لإيقاف نفسه في منتصف التشغيل.
تفاصيل الاستراتيجية
يرسم غلافًا بسماكة 2× ATR(14) حول خط الأساس EMA(100) عند كل شمعة؛ وعندما يُغلق الإغلاق السابق (M5) فوق النطاق العلوي، يفتح صفقة شراء بوقف 500 نقطة وهدف 1000 نقطة؛ وعندما ينخفض الإغلاق تحت النطاق السفلي، يفتح صفقة بيع بنفس المسافات الثابتة. يتدرج حجم اللوت ليخاطر بنسبة 1% من رأس المال الفعلي لكل صفقة، مع تقييد رأس المال بـ InpCapAmount كحدّ أعلى وInpCapFloor (افتراضيًا 100 دولار) كحدّ أدنى. تخضع كل عملية دخول لبوابة IsSafeToTrade(): خسارة يومية ≤ 3%، وخسارة أسبوعية ≤ 8%، ورأس مال ≥ 80% من الرصيد الأولي، و≤ 10 صفقات يوميًا، وداخل جلسة لندن أو نيويورك (بالتوقيت العالمي، مع تجنب آسيا)، وخارج نوافذ الأخبار التي تمتد ±30 دقيقة، مع قفل killswitch عند تراجع إجمالي 20% وتهدئة لمدة 30 دقيقة بعد أي سلسلة من 3 خسائر. تحافظ OnTradeTransaction() على تزامن g_realizedToday وg_consecLosses مع تنفيذ الصفقات. درجة OnTester المخصصة هي profit × pf × ddPenalty، مع بوابات صارمة: maxDD ≤ 20%، و≥ 20 صفقة، وصافي ربح > 0.
يدخل Pipsgrowth EX01013 في صفقة شراء عندما يغلق الشمعة السابقة (M5) فوق النطاق الديناميكي العلوي (EMA(100) + 2.0 × ATR(14))، وفي صفقة بيع عندما ينخفض الإغلاق السابق تحت النطاق السفلي (EMA(100) − 2.0 × ATR(14)). تُقيَّم الإشارة فقط عند إغلاق الشمعة وفقط في حالة عدم وجود صفقة مفتوحة على magic المستشار. فترة ATR وفترة EMA قابلتان للتعديل عبر المدخلات (InpATRPeriod = 14، InpTrendPeriod = 100، InpChannelWidth = 2.0)، مما يسمح بتوسيع النطاق أو تضييقه ليتناسب مع طبيعة تذبذب الرمز.
يستخدم EA وقف ربح ثابت عند 1000 نقطة (الإعداد الافتراضي InpTakeProfit) — تُترك الصفقة لتُغلق من قبل الوسيط تلقائيًا. لا يوجد trailing stop ولا تحريك إلى نقطة التعادل ولا خروج مبني على الوقت داخل الكود؛ بمجرد فتح الصفقة، لا تنتهي إلا عبر SL أو TP أو إغلاق يدوي. وظيفة TryClosePosition() معرّفة لكنها لا تُستدعى من OnTick()، لذلك لا يدير EA حالات الخروج تلقائيًا.
وقف الخسارة ثابت عند 500 نقطة من سعر الدخول (الإعداد الافتراضي InpStopLoss)، يحدّده OpenBuy()/OpenSell() عند فتح الأمر ولا يتم تحريكه لاحقًا. وظيفة TryModify() موجودة في الكود لكنها لا تُستدعى من OnTick()، لذا يظل SL عند مستواه الأصلي طوال عمر الصفقة.
جني الأرباح ثابت عند 1000 نقطة (الإعداد الافتراضي InpTakeProfit)، يحدّد عند فتح الأمر ولا يُعدَّل. نسبة المخاطرة إلى العائد 1:2 مع SL عند 500 نقطة هي منطق جني الأرباح الوحيد في EA؛ لا يوجد إغلاق جزئي ولا تخارج تدريجي ولا TP سلة.
الحد الأدنى الموصى به للإيداع: 100 دولار (يطابق InpCapFloor). مستوى المخاطرة: متوسط — نسبة المخاطرة/العائد الثابتة 1:2 مع تحديد حجم الصفقة حسب المخاطرة يحدّ من السحب، لكن اختراقات XAUUSD M5 قد تتذبذب في الجلسات العرضية. يُفضَّل التشغيل على وسيط ECN/RAW بفارق سعر منخفض وتنفيذ أقل من 50 مللي ثانية، لأن فلتر الفارق الأقصى عند 250 نقطة يُعتبر بوابة صلبة للدخول. الأنسب لـ: المتداولين الذين يستطيعون تحمّل 3–6 أيام خسائر متتالية دون التدخل — ففترة التهدئة وسقف الخسارة اليومية 3% مصمَّمان للتشغيل الآلي دون تدخل، لا للتداول التفاعلي.
منطق الاستراتيجية
Pipsgrowth EX01013 Adaptive — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Adaptive
الماجيك: 22201013
الإصدار: 2.00
الوصف:
Adaptive DS3 channel-breakout EA for XAUUSD M5. Builds dynamic ATR channels around an EMA trend filter; enters on close beyond the channel. Risk-based lot sizing, fixed SL/TP. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
CheckSignal()OpenBuy()OpenSell()CalculateLotSize()DetectFillingMode()TryModify()TryClosePosition()DetectGMTOffset()ServerToGMT()IsMarketOpen()
// Pipsgrowth EX01013 Adaptive — Execution Flow (from source analysis)
// Family: Adaptive
// Adaptive DS3 channel-breakout EA for XAUUSD M5. Builds dynamic ATR channels around an EMA trend filter; enters on close beyond the channel. Risk-based lot sizing, fixed SL/TP. 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_01013" | Trade Comment |
| InpATRPeriod | 14 | ATR Period for Volatility |
| InpChannelWidth | 2.0 | Channel Width (ATR Multiplier) |
| InpTrendPeriod | 100 | Background Trend Period |
| InpRiskPercent | 1.0 | Risk Percent per Trade |
| InpFixedLot | 0.01 | Fixed Lot (if Risk=0) |
| InpStopLoss | 500 | Stop Loss (points) |
| InpTakeProfit | 1000 | Take Profit (points) |
| InpMagicNumber | 22201013 | Magic Number |
| InpMaxSpread | 250 | Max Spread (points) |
| InpSlippage | 3 | Slippage |
| MaxDailyLossPercent | 3.0 | Maximum daily loss percentage |
| MaxTradesPerDay | 10 | Maximum trades per day |
| MinEquityPercent | 80.0 | Stop trading if equity falls below this % of initial balance |
| InpMaxConsecLosses | 3 | Max consecutive losses before cooldown (0=disabled) |
| InpCooldownMin | 30 | Cooldown minutes after consec losses (0=disabled) |
| InpMaxWeeklyLossPct | 8.0 | Max weekly loss % (0=disabled) |
| InpCapAmount | 0.0 | Capital cap amount (stop trading at this equity) |
| InpCapFloor | 100.0 | Capital floor (stop trading below this equity) |
| InpServerGMTOffset | 0 | Server GMT offset in hours (0=auto-detect via weekend gap) |
| InpLondonStartHour | 7 | London session start (GMT) |
| InpLondonEndHour | 16 | London session end (GMT) |
| InpNYStartHour | 12 | New York session start (GMT) |
| InpNYEndHour | 21 | New York session end (GMT) |
| InpAvoidAsia | true | Avoid Asian session |
| InpAsiaStartHour | 0 | Asian session start (GMT) |
| InpAsiaEndHour | 7 | Asian session end (GMT) |
| AvoidNews | true | Avoid trading during news |
| InpMaxDDPct | 20.0 | Max total drawdown % (0=disabled, triggers kill switch) |
| InpKillSwitch | false | Kill switch (stops all trading immediately) |
| InpDryRun | false | Dry-run mode: log signals without trading |
| InpMaxLot | 100.0 | Maximum lot size cap |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX01013 AdaptiveDS3 XAUUSD 5M — adaptive ATR channel breakout, full 12-layer stack."
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>
CTrade trade;
CPositionInfo position;
CSymbolInfo mysymbol;
CAccountInfo account;
//--- Input Groups
input group "=== Identity ==="
input string InpTradeComment = "Psgrowth.com Expert_01013"; // Trade Comment
input group "=== Strategy Parameters ==="
input int InpATRPeriod = 14; // ATR Period for Volatility
input double InpChannelWidth = 2.0; // Channel Width (ATR Multiplier)
input int InpTrendPeriod = 100; // Background Trend Period
input group "=== Money Management ==="
input double InpRiskPercent = 1.0; // Risk Percent per Trade
input double InpFixedLot = 0.01; // Fixed Lot (if Risk=0)
input int InpStopLoss = 500; // Stop Loss (points)
input int InpTakeProfit = 1000; // Take Profit (points)
input group "=== Trade Management ==="
input int InpMagicNumber = 22201013; // Magic Number
input int InpMaxSpread = 250; // Max Spread (points)
input int InpSlippage = 3; // Slippage
input group "=== Risk Management ==="
input double MaxDailyLossPercent = 3.0; // Maximum daily loss percentage
input int MaxTradesPerDay = 10; // Maximum trades per day
input double MinEquityPercent = 80.0; // Stop trading if equity falls below this % of initial balance
input int InpMaxConsecLosses = 3; // Max consecutive losses before cooldown (0=disabled)
input int InpCooldownMin = 30; // Cooldown minutes after consec losses (0=disabled)
input double InpMaxWeeklyLossPct = 8.0; // Max weekly loss % (0=disabled)
input group "=== Capital Cap ==="
// InpCapEnabled removed — use InpCapAmount=0 to disable // Enable capital cap (stop trading above cap)
input double InpCapAmount = 0.0; // Capital cap amount (stop trading at this equity)
input double InpCapFloor = 100.0; // Capital floor (stop trading below this equity)
input group "=== Sessions Management (GMT) ==="
input int InpServerGMTOffset = 0; // Server GMT offset in hours (0=auto-detect via weekend gap)
input int InpLondonStartHour = 7; // London session start (GMT)
input int InpLondonEndHour = 16; // London session end (GMT)
input int InpNYStartHour = 12; // New York session start (GMT)
input int InpNYEndHour = 21; // New York session end (GMT)
input bool InpAvoidAsia = true; // Avoid Asian session
input int InpAsiaStartHour = 0; // Asian session start (GMT)
input int InpAsiaEndHour = 7; // Asian session end (GMT)
input bool AvoidNews = true; // Avoid trading during news
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.