Pipsgrowth EX01002 Adaptive — إكسبرت أدفايزر تكييفي
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX01002 Adaptive — An adaptive, robust, and production-ready Expert Advisor using Moving Average crossover with ATR volatility filtering. 1. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
يعمل EX01002 Adaptive على تقاطع متوسطات متحركة موزَّع حسب نظام السوق. الفكرة الأساسية هي أن تقاطع المتوسطات نفسه لا يمكن الاعتماد عليه في كل الأسواق، لذلك قبل إطلاق أي إشارة يسأل المستشار أولاً مؤشر ADX(14) عن طبيعة السوق، ثم يسمح لاختبار الإغلاق مقابل المتوسّط المتحرك التكيّفي (AMA) بالتصرف بشكل مختلف بحسب الإجابة. أداة التوزيع هي ClassifyRegime() ومولِّد الإشارة الوحيد هو MasterSignal().
يقرأ مصنّف النظام قيمتين على الإطار الزمني العامل: ADX(14) وATR(14). عندما يكون ADX عند أو أعلى من InpRegime_ADX_Trend (25 افتراضياً) يكون النظام اتجاهاً قوياً، وبين InpRegime_ADX_Range (20) و25 يكون اتجاهاً ضعيفاً، وأقل من 20 يكون نطاقاً. يبحث المصنّف أيضاً في قيمة الـ ATR بالنقاط ويمنع الصفقة بالكامل عندما يكون ATR أقل من InpATRMinPips (نقطة واحدة) — لأن الفارق السعري سيلتهم الحركة — أو أعلى من InpATRMaxPips (0 = معطّل) عندما يكون التذبذب مرتفعاً جداً بالنسبة لمسافة الوقف الثابتة. توجد ثلاث قيم إضافية في تعريف النوع (NEUTRAL وBREAKOUT وCHOPPY) لكن ClassifyRegime() لا ينتجها في البناء الحالي؛ وهي محجوزة لعائلة Adaptive الأوسع.
تُعدّ MasterSignal() المكان الوحيد الذي يُنتج فيه المستشار رأياً اتجاهياً. يقرأ قيمتين سابقتين من مخزن AMA (المتوسّط SMA لمدة 20 فترة على الإغلاق، افتراضياً) وإغلاق آخر شمعتين مغلقتين. في الاتجاه القوي والضعيف، يُطلق الشراء إما عند تقاطع صارم (إغلاق[2] < AMA السابق وإغلاق[1] > AMA الحالي) أو عند نمط استمرار حيث يجلس كلا الإغلاقين فوق المتوسّط المتحرك في اتجاه الصفقة. في النطاق والمُحايد والاختراق، لا يُقبل إلا التقاطع الصارم. يتم قمع نمط الاستمرار عمداً في الأسواق النطاقية لأنه في النطاق يعني إغلاقان فوق المتوسّط المتحرك عادةً اختراقاً كاذباً وليس حركة حقيقية.
البوابة الثالثة هي توافق الإطار الزمني الأعلى. تنسخ HTFTrendAgrees() إغلاق الشمعة 1 على إطار زمني أعلى (افتراضي H4، يُضبط بـ InpHTF_TF=8) وتقارنه بمتوسّط EMA لمدة 50 فترة على نفس الإطار الزمني الأعلى. لا يُسمح بإشارة شراء على الإطار الزمني العامل إلا إذا كان إغلاق الإطار الزمني الأعلى فوق EMA للإطار الزمني الأعلى؛ ولا يُسمح بالبيع إلا إذا كان الإغلاق تحته. يمكن إعادة ضبط الإطار الزمني الأعلى من M1 إلى D1، وفترة EMA من 5 إلى 500.
بوابة عدم التداول هي أطول دالة منفردة في الملف. تُنفّذ NoTradeGate() تسعة فحوصات بالتتابع وتُرجع true (البوابة مغلقة) عند أول فشل. تتحقق من: فتح السوق (يوم الجمعة بعد الساعة 22:00 بتوقيت غرينتش محظور، الأحد قبل الساعة 22:00 محظور)، الجلسة النشطة (لندن 08:00–16:30 بتوقيت غرينتش ونيويورك 13:00–21:00 بتوقيت غرينتش؛ آسيا 22:00–06:00 محظورة افتراضياً عبر InpAvoidAsia)، الفارق السعري مقارنة بـ InpMaxSpread (50 نقطة افتراضياً)، رأس المال الفعّال مقارنة بـ InpCapFloor (50 إذا تم تعيين سقف)، عدد الصفقات اليوم مقارنة بـ InpMaxDailyTrades (5)، المحقّق اليوم مقارنة بـ -5% من رأس المال الفعّال، المحقّق الأسبوعي مقارنة بـ -9% من رأس المال الفعّال، مؤقت التهدئة (30 دقيقة بعد أي صفقة خاسرة)، الخسائر المتتالية (3 كحد أقصى افتراضياً)، الانحدار الإجمالي من بداية الجلسة مقارنة بـ 20% (الذي يفعّل g_ddKillSwitch ويمنع جميع الدخولات الجديدة)، حد المراكز المفتوحة (3 افتراضياً)، وبوابة الهرم. يُعدّ g_ddKillSwitch مزلاجاً صارماً — بمجرد تفعيله يرفض المستشار كل دخول جديد حتى إعادة تشغيل المنصة أو إعادة تهيئة المستشار.
تحجيم اللوت مبني على المخاطرة. تأخذ CalcLotByRisk() 1% من رأس المال الفعّال (الحد الأدنى بين InpCapAmount وحقوق الملكية الحالية) وتقسمها على تكلفة نقطة الوقف، المحسوبة كـ StopLossPips × نقطة × قيمة_تيك / حجم_تيك. يتم تقريب اللوت الناتج إلى درجة لوت الوسيط، ويُقص إلى الحد الأدنى والأقصى للرمز، ويُحدّ بـ InpMaxLot (100 لوت). عندما يتم ضبط RiskPerTradePercent على صفر، يلجأ المستشار إلى FixedLotSize=0.01 — وهو مفيد لحسابات تحديات الشركات التي تُقيّد المخاطرة النسبية.
يمر إرسال الأوامر عبر غلاف بثلاث محاولات. تُستدعى TryBuy_EX01002 أو TrySell_EX01002، وعند رموز requote أو timeout أو price-changed ينام الغلاف 100 مللي ثانية ويُحدّث الرمز ويُعيد المحاولة. يقصّ الغلاف أيضاً وقف الخسارة إلى مسافة الوقف الدنيا للوسيط (SYMBOL_TRADE_STOPS_LEVEL) لمنع الرفض، ويتحقق مسبقاً من الهامش الحر — إذا كان الأمر سيتجاوز الهامش الحر، يُتخطى الدخول دون محاولات. يتم فرض الحد الأدنى لنسبة المخاطرة إلى العائد في خطوة التأكيد: يجب أن يكون TakeProfitPips/StopLossPips ≥ InpMin_RR_Ratio (1.2 افتراضياً)، لذا فإن الافتراضي 1000/500 = 2.0 يمر بسهولة.
تعمل ManageTrades() عند كل تيك. تمشي المراكز المفتوحة لهذا السحر والرمز، وتُطبّق بالترتيب: الخروج المبني على الوقت عند InpMax_Hours_In_Trade (240 ساعة = 10 أيام افتراضياً)، الخروج عند الإشارة المعاكسة (إغلاق إذا انقلبت MasterSignal() ضد الاتجاه المفتوح)، جني الأرباح الجزئي عند 50% من المركز عندما يصل الربح إلى TakeProfitPips × InpPartial_TP_Ratio (أي 500 نقطة مع TP افتراضي 1000)، وقف الخسارة المتحرّك (200 نقطة، يتحرّك فقط في الاتجاه المواتي)، ونقطة التعادل الاختيارية (معطلة افتراضياً؛ عند التفعيل، ينتقل وقف الخسارة إلى سعر الدخول + 2 نقطة بمجرد وصول الربح إلى 100 نقطة) وقفل الربح الاختياري (معطل افتراضياً؛ يقفل وقف الخسارة على بعد 20 نقطة من السعر لكل 50 نقطة ربح مكتسبة). يتم تتبّع الإغلاق الجزئي في مصفوفة من 100 خانة من أعلام التذكرة/الإكتمال الجزئي حتى لا يتم تجزئة نفس المركز مرتين.
منطق الجرّ هو دولاب باتجاه واحد. للشراء، بمجرد تحرّك السعر 200 نقطة في الربح، يكون وقف الخسارة الجديد هو السعر_الحالي - 200، ولكن فقط إذا كان أعلى من وقف الخسارة الحالي وفوق سعر الدخول. ينطبق المنطق نفسه معكوساً على البيع. لأن الفحص يعمل عند كل تيك، يمكن للدولاب أن يتحرّك عدة مرات داخل شمعة واحدة عندما يتحرّك السعر بسرعة.
تتبّع التهدئة والخسائر المتتالية مدفوع بالأحداث. تستمع OnTradeTransaction() لأحداث DEAL_ADD المطابقة للسحر والرمز. عند صفقات الدخول، يزيد tradesToday. عند صفقات الخروج، يُضاف صافي الربح والخسارة (الربح + المقايضة + العمولة) إلى realizedToday وrealizedWeek. عندما يكون الصافي سالباً، يزيد consecLosses ويُضبط cooldownUntil إلى الآن + 30 دقيقة. عندما يكون الصافي موجباً، يُعاد consecLosses إلى صفر. التهدئة بوابة صارمة — لن يفكّر المستشار في دخول جديد حتى انتهاء المؤقت، بغض النظر عن قوة الإشارة.
تستخدم حدود الخسارة اليومية والأسبوعية رأس المال الفعّال كمقام. مع InpDailyLossPct=5.0 ورأس مال فعّال قدره 1000 دولار، يوقف المستشار الدخولات الجديدة بمجرد انخفاض realizedToday إلى -50 دولار. تُعاد totals المحقّق إلى الصفر في بداية كل يوم تداول وكل يوم اثنين (بالوقت المحلي للوسيط، ثم يُحوّل إلى توقيت غرينتش عبر DetectGMTOffset() الذي يقرأ فجوة عطلة نهاية الأسبوع في تاريخ شموع H1).
ما لا يفعله هذا المستشار لا يقل أهمية عما يفعله. لا توجد استراتيجية مارتينجال، ولا شبكة، ولا تخفيف للمخاطرة. وضع التحجيم الوحيد هو بوابة الهرم، وكل من PyramidGate_ProfitOnly وPyramidGate_ProfitAndSL يشترطان أن تكون كل المراكز السابقة في ربح قبل السماح بأي دخول جديد. لا يوجد مرشح أخبار، ولا تحوط، ولا مراجحة مقايضة. المنطقة المسطّحة بين ADX 20 وADX 25 هي حيث سينخفض معدل نجاح الاستراتيجية، وهذا بالضبط سبب وجود حدود الخسارة اليومية والأسبوعية والانحدار كطبقة أمان ثانية.
خطة اختبار خلفية معقولة: شغّل Strategy Tester في MT5 على XAUUSD M5 مع "كل تيك مبني على تيكات حقيقية" لمدة 12 شهراً على الأقل، واخفض InpMaxDDPct إلى 10% أثناء الاختبار للتأكد من أن مفتاح الإيقاف يُفعّل فعلياً. إذا كان الانحدار المحقّق في الاختبار الخلفي أقل باستمرار من الحد المُعدَّل، فإن طبقة الأمان تعمل بشكل صحيح.
تفاصيل الاستراتيجية
في كل شمعة مغلقة يُحدّث المستشار أربع مقابض — SMA لمدة 20 فترة على الإغلاق، وATR(14)، وADX(14)، وEMA(50) على H4 — ويُشغّل ClassifyRegime() لتصنيف الشمعة كاتجاه قوي أو ضعيف أو نطاق. ثم تختبر MasterSignal() الإغلاقين السابقين ضد SMA وتُرجع +1 أو -1 أو 0، مع قبول نمط الاستمرار فقط في أنظمة الاتجاه. تقوم HTFTrendAgrees() بحجب النتيجة ضد اتجاه إغلاق H4 مقابل EMA، وتُضيف NoTradeGate() تسعة اعتراضات (فتح السوق، الجلسة، الفارق، أرضية رأس المال، الخسارة اليومية/الأسبوعية، التهدئة، الخسائر المتتالية، مفتاح إيقاف الانحدار، حد المراكز، بوابة الهرم) قبل أن تحجّم CalcLotByRisk() الصفقة بنسبة 1% من رأس المال الفعّال. تعمل ManageTrades() عند كل تيك لفرض الوقف الزمني عند 240 ساعة، والخروج عند الإشارة المعاكسة، والإغلاق الجزئي 50% عند 500 نقطة، ودولاب الجرّ 200 نقطة.
يُطلَق الشراء عندما يكون الإغلاق[2] تحت SMA لمدة 20 فترة والإغلاق[1] فوقها، مع تأكيد ADX(14) لنظام الاتجاه أو النطاق، وإغلاق الإطار الزمني الأعلى فوق EMA لمدة 50 فترة، وبوابة عدم التداول مفتوحة. البيع يعكس الاختبار. في أنظمة الاتجاه يُقبل أيضاً نمط الاستمرار (إغلاقان على نفس جانب SMA في اتجاه الصفقة)؛ في أنظمة النطاق لا يُسمح إلا بالتقاطع الصارم.
تكون الخروج متعدّدة الطبقات: إغلاق مبني على الوقت عند 240 ساعة، إغلاق عند الإشارة المعاكسة عندما تنقلب MasterSignal()، إغلاق جزئي 50% عندما يصل الربح إلى 500 نقطة (نصف TP البالغ 1000 نقطة)، ثم وقف خسارة متحرّك 200 نقطة يتحرّك فقط في الاتجاه المواتي. وحدات نقطة التعادل وقفل الربح الاختيارية مهيّأة لكنها معطّلة افتراضياً.
وقف خسارة ثابت 500 نقطة من الدخول، يتم تطبيعه إلى مسافة الوقف الدنيا للوسيط. يُحجب مفتاح إيقاف الانحدار الإجمالي عند 20% (يُثبَّت في g_ddKillSwitch) جميع الدخولات الجديدة بمجرد انخفاض حقوق الملكية 20% من رصيد بداية الجلسة.
جني أرباح ثابت 1000 نقطة من الدخول، مما يعطي نسبة مخاطرة إلى عائد 2:1 تتجاوز بسهولة بوابة تأكيد الحد الأدنى 1.2 للمخاطرة إلى العائد. يُطلَق إغلاق جزئي 50% عند ربح 500 نقطة، تاركاً البقية للجري نحو TP أو وقف الخسارة المتحرّك.
الحد الأدنى الموصى به للرصيد: 100 دولار. الأنسب هو XAUUSD M5 مع وسيط فارق منخفض (حد الـ 50 نقطة يرفض الفروقات الواسعة على الذهب) خلال لندن 08:00–16:30 بتوقيت غرينتش ونيويورك 13:00–21:00 بتوقيت غرينتش؛ آسيا محظورة افتراضياً. مسافات وقف الخسارة وجني الأرباح الثابتة 500/1000 مُعدّة للقيمة النموذجية لنقطة XAUUSD، لذا على أزواج FX الرئيسية يجب تقليل كلتيهما بشكل متناسب أو سيُحمّل حساب المخاطرة لكل صفقة حجم مركز أكبر من اللازم. مخاطرة 1% متحفّظة، وتهدئة 30 دقيقة بعد الخسارة، وحدود 5%/9% يومية/أسبوعية، ومفتاح إيقاف انحدار 20% تجعل هذا مناسباً للمتداولين الذين يريدون نظاماً واعياً للأنظمة مع حدود أمان صارمة. اترك ستة أشهر على الأقل من الاختبار الأمامي على الرمز المستهدف قبل أي نشر مباشر.
منطق الاستراتيجية
Pipsgrowth EX01002 Adaptive — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Adaptive
الماجيك: 22201002
الإصدار: 4.00
الوصف:
An adaptive, robust, and production-ready Expert Advisor using Moving Average crossover with ATR volatility filtering. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
andle_amaandle_atrandle_adxandle_htf_ema
الدوال الرئيسية:
RegimeName()IsPartialDone()SetPartialDone()CleanupPartialStates()LogDebug()DetectGMTOffset()DayStart()WeekStart()EffectiveCapital()NormalizePrice()
// Pipsgrowth EX01002 Adaptive — Execution Flow (from source analysis)
// Family: Adaptive
// An adaptive, robust, and production-ready Expert Advisor using Moving Average crossover with ATR volatility filtering. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
ON_INIT:
Create indicator handles: andle_ama, andle_atr, andle_adx, andle_htf_ema
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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| EA_Name | "AdaptiveEA" | EA Name |
| MagicNumber | 22201002 | Magic Number [10000000-99999999, step 1] |
| InpTradeComment | "Psgrowth.com Expert_01002" | Trade Comment |
| InpTimeframe | 3 | Timeframe: 1=M1,2=M3,3=M5,4=M10,5=M15,6=M30,7=H1,8=H4,9=D1 [1-9, step 1] |
| InpEnableLogging | true | Enable logging to journal |
| RiskPerTradePercent | 1.0 | Risk per trade, % of effective capital [0.1-5.0, step 0.1] |
| FixedLotSize | 0.01 | Fixed lot size (if RiskPerTradePercent=0) [0.01-100.0, step 0.01] |
| InpSignalOnBarClose | true | Evaluate signals only on bar close |
| InpMaxSpread | 50 | Max allowed spread in points (0=disable) [0-200, step 1] |
| InpCapAmount | 0.0 | Real-money capital cap, account currency [10-100000, step 10] |
| InpCapFloor | 50.0 | Floor below which new entries blocked [1-10000, step 1] |
| InpDailyLossPct | 5.0 | Max daily loss, % of effective capital [0.5-20.0, step 0.5] |
| InpWeeklyLossPct | 9.0 | Max weekly loss, % of effective capital [1.0-50.0, step 0.5] |
| InpMaxDailyTrades | 5 | Max new entries per day [1-50, step 1] |
| InpCooldownMin | 30 | Cooldown minutes after a loss [0-1440, step 1] |
| InpMaxConsecLosses | 3 | Max consecutive losses before halt (0=disable) [0-20, step 1] |
| AdaptiveMAPeriod | 20 | Adaptive Moving Average Period [2-500, step 1] |
| AdaptiveMAMethod | MODE_SMA | Adaptive Moving Average Method |
| AdaptiveMAPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Adaptive Moving Average Price |
| InpADX_Period | 14 | ADX period [2-100, step 1] |
| InpRegime_ADX_Trend | 25.0 | ADX threshold for trend regime [10-60, step 0.5] |
| InpRegime_ADX_Range | 20.0 | ADX threshold for range regime [5-50, step 0.5] |
| InpATR_Period | 14 | ATR period [2-100, step 1] |
| InpATRMinPips | 1.0 | Absolute minimum ATR in pips (0 disables) [0-100, step 0.1] |
| InpATRMaxPips | 0.0 | Absolute maximum ATR in pips (0 disables) [0-200, step 0.1] |
| InpHTF_TF | 8 | HTF timeframe: 1=M1,2=M3,3=M5,4=M10,5=M15,6=M30,7=H1,8=H4,9=D1 [1-9, step 1] |
| InpHTF_EMA_Period | 50 | HTF EMA period [5-500, step 1] |
| InpMin_RR_Ratio | 1.2 | Minimum R:R ratio (TP/SL) [0.5-10.0, step 0.1] |
| InpEnableTrailingStop | true | Enable trailing stop |
| StopLossPips | 500 | Stop Loss in points [10-10000, step 10] |
| TakeProfitPips | 1000 | Take Profit in points [10-20000, step 10] |
| TrailingStopPips | 200 | Trailing Stop in points [10-5000, step 10] |
| InpEnableBreakEven | false | Enable break-even |
| BreakEvenTriggerPips | 100 | Profit trigger to activate BE (in points) [10-5000, step 10] |
| BreakEvenOffsetPips | 2 | Offset from entry to lock (in points) [0-500, step 1] |
| InpEnableProfitLock | false | Lock profits in incremental steps |
| ProfitLockIncrement | 50 | Lock every X points of profit [10-2000, step 10] |
| ProfitLockStep | 20 | Distance behind current price (in points) [1-500, step 1] |
| InpPartial_TP_Ratio | 0.5 | Partial TP close ratio at TP1 [0.1-0.9, step 0.05] |
| InpMax_Hours_In_Trade | 240 | Max hours in trade (time-based exit) [1-2000, step 1] |
| InpPyramidGateMode | PyramidGate_Off | Pyramid gate mode |
| InpProfitGatePoints | 10.0 | Minimum profit (points) per trade for pyramid [1-1000, step 1] |
| InpMaxOpenPositions | 3 | Max concurrent positions (this symbol+magic) [1-20, step 1] |
| InpUseSessionFilter | true | Enable session time filter |
| InpServerGMTOffset | 0 | Broker server GMT offset (hours). 0=auto-detect [-12-14, step 1] |
| InpLondonStartH | 8 | London start hour (GMT) [0-23, step 1] |
| InpLondonStartM | 0 | London start minute [0-59, step 1] |
| InpLondonEndH | 16 | London end hour (GMT) [0-23, step 1] |
| InpLondonEndM | 30 | London end minute [0-59, step 1] |
| InpNYStartH | 13 | New York start hour (GMT) [0-23, step 1] |
| InpNYStartM | 0 | New York start minute [0-59, step 1] |
| InpNYEndH | 21 | New York end hour (GMT) [0-23, step 1] |
| InpNYEndM | 0 | New York end minute [0-59, step 1] |
| InpAvoidAsia | true | Avoid Asian session |
| InpAsiaStartH | 22 | Asia start hour (GMT) [0-23, step 1] |
| InpAsiaStartM | 0 | Asia start minute [0-59, step 1] |
| InpAsiaEndH | 6 | Asia end hour (GMT) [0-23, step 1] |
| InpAsiaEndM | 0 | Asia end minute [0-59, step 1] |
| InpMaxDDPct | 20.0 | Max total drawdown % before kill switch (0=disable) [0-90, step 1] |
| InpKillSwitch | false | Manual kill switch — stops all new entries |
| InpDryRun | false | Dry-run mode: log signals without trading |
| InpMaxLot | 100.0 | Maximum lot size cap [0.01-10000, step 0.01] |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "4.00"
#property strict
#property description "Pipsgrowth.com EX01002 AdaptiveEA — adaptive MA crossover with ATR volatility filtering, regime dispatch, GMT session filter, HTF confirmation, capital cap, trailing/BE/profit-lock, pyramid gate, spread filter, new-bar gate."
#include <Trade\Trade.mqh>
#include <Trade/PositionInfo.mqh>
#include <Trade/SymbolInfo.mqh>
//--- pyramid gate mode enum
enum PyramidGateMode
{
PyramidGate_Off=0, // No pyramid gate
PyramidGate_ProfitOnly, // Require existing trades be in profit
PyramidGate_ProfitAndSL // Require profit + SL secured in profit
};
//--- regime enum
enum ENUM_REGIME
{
REGIME_NEUTRAL=0,
REGIME_STRONG_TREND,
REGIME_WEAK_TREND,
REGIME_RANGE,
REGIME_BREAKOUT,
REGIME_CHOPPY
};
//--- timeframe mapping: 1=M1, 2=M3, 3=M5, 4=M10, 5=M15, 6=M30, 7=H1, 8=H4, 9=D1
ENUM_TIMEFRAMES MapTimeframe(int tf)
{
switch(tf)
{
case 1: return PERIOD_M1;
case 2: return PERIOD_M3;
case 3: return PERIOD_M5;
case 4: return PERIOD_M10;
case 5: return PERIOD_M15;
case 6: return PERIOD_M30;
case 7: return PERIOD_H1;
case 8: return PERIOD_H4;
case 9: return PERIOD_D1;
default: return PERIOD_M5;
}
}
string RegimeName(ENUM_REGIME r)
{
switch(r)
{
case REGIME_STRONG_TREND: return "STRONG_TREND";
case REGIME_WEAK_TREND: return "WEAK_TREND";
case REGIME_RANGE: return "RANGE";
case REGIME_BREAKOUT: return "BREAKOUT";
case REGIME_CHOPPY: return "CHOPPY";
default: return "NEUTRAL";
}
}
//--- Input Parameters ---
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.