Pipsgrowth EX16052 Trend — إكسبرت أدفايزر متابعة اتجاه
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX16052 Trend — Multi-indicator scalping EA combining EMA crossover, RSI momentum, Bollinger Bands breakout, ATR volatility filter and t. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
EX16052 هو محرك سكالبينج متعدد المؤشرات يشترط توافقًا تامًا بين خمسة مرشحات فنية مستقلة قبل فتح أي صفقة. يصف رأس الملف المنظومة على أنها مكونة من 12 طبقة، لكن الكود المفعّل يغطي ثماني طبقات تقريبًا — أما الباقي فموثّق في التعليقات دون أن يُنفَّذ. جوهر التصميم هو التصويت بالـ AND داخل OnTick: عند تفعيل أكثر من مؤشر، يشترط المستنبط أن يساوي buySignalStrength عدد المرشحات المطلوبة (requiredSignals) — أو ما يعكسه في جانب البيع — قبل إصدار الأمر. أي مرشح معترض واحد يحجب الصفقة بالكامل، مما يجعل المحرك متحفظًا بطبيعته.
طبقات الترشيح الخمس هي: زوج تقاطع EMA سريع/بطيء (5 و10 افتراضيًا، MODE_EMA، PRICE_CLOSE)، انحياز خط الوسط لمؤشر RSI(14)، انحياز خط الوسط لمؤشر بولينجر بنطاق (20، 2.0)، حد أدنى لتذبذب ATR(14)، وحد أدنى لحجم التيكات (100 تيك على الشمعة الحالية لإطار g_VolumeTimeframe). كل مرشح من الخمسة يكشف عن enum اسمه IndicatorUsage قيمته الافتراضية INDICATOR_ENABLED، لذا يستطيع المتداول الذي يريد تقاطع EMA تقليديًا تعطيل البقية وتحويل المحرك إلى نظام تصويت أحادي. الإعداد الافتراضي في النسخة المنشورة هو المنظومة الخمسية الكاملة.
يتراكم التصويت داخل OnTick عبر ثلاث دوال صغيرة. CheckEMASignal() تقرأ شمعتين مكتملتين من المتوسطين السريع والبطيء، وتُرجع +1 عندما fastMA[1] > slowMA[1] && fastMA[0] <= slowMA[0]، و-1 للعكس، و0 حين لا يحدث تقاطع. CheckRSISignal() اختبار بسيط لخط الوسط: RSI(14) > 50 يُرجع +1، وRSI(14) < 50 يُرجع -1، والقيمة 50 تمامًا تُرجع 0. عتبات التشبع الشرائي/البيعي (70/30) مكشوفة كمدخلات لكن تم التعليق عليها خارج المسار النشط. CheckBBSignal() تقرأ buffer الخط الأوسط مع إغلاق الشمعة السابقة، وتُرجع +1 إذا كان الإغلاق فوق الخط الأوسط، و-1 إذا تحته. يُحسب النطاقان العلوي والسفلي للوحة العرض على الشارت، لكن تصويت الدخول يستخدم الخط الأوسط فقط.
يُترجم التصويت إلى أمر عبر ExecuteTrade(). عند UseFixedLot = false (الافتراضي)، تأخذ CalculateLotSize() مخاطرة 0.5% من الرصيد، تضربها في قيمة التيك للرمز، تقسمها على StopLossPoints × tickValue/tickSize، وتُرجع اللوت بعد تطبيعه. عند أي مدخل غير صالح — رصيد صفر، حجم تيك صفر، وقف صفر — تعود الدالة إلى الحد الأدنى للرمز بدلًا من إرجاع صفر. ينتج عن الوقف 10 نقاط والهدف 15 نقطة نسبة مخاطرة/عائد قدرها 1:1.5 لكل صفقة على وسيط من 5 خانات.
تُدار المراكز عبر شقين: أوامر الوقف على جانب الوسيط، ووقف متابع على جانب السيرفر. يُرسل الأمر السوقي بـ slPrice = price ± max(slDistance, minStopLevel) — أي أن الوقف والهدف يبعدان دائمًا عن الدخول بمسافة لا تقل عن الحد الأدنى الذي يفرضه الوسيط، مما يمنع رفض الأوامر على أدوات الوقف الضيق. تراقب ManageTrailingStop() كل مركز يحمل magic هذا المستنبط، وحالما يتحرك السعر بمقدار TrailingStartPoints (5 افتراضيًا) داخل الربح، تشد الوقف في كل تيك إلى price − TrailingStopPoints (5 افتراضيًا)، بشرط أن يكون شدًا للأمام وأعلى من سعر الفتح. يُحفظ الهدف الأصلي عبر كل تعديل. تنفذ TryModify_EX16052 حتى ثلاث محاولات عند requote/timeout مع نوم 100 مللي ثانية، وهي المساعد الوحيد المفعّل فعليًا.
تعمل ثلاث حراسات قبل الدخول قبل مكدس الإشارات. تتحقق IsTradingAllowed() من MQL_TRADE_ALLOWED. تحترم IsTradingTime() نافذة ساعات السيرفر 7-21 (مع دعم الالتفاف الليلي إذا عكس المستخدم الساعات)، وتُرجع true افتراضيًا عند تعطيل UseTimeFilter. ثم تجري CheckFilters() اختبار السبريد (ترفض لو SYMBOL_SPREAD > MaxSpreadPoints = 5)، اختبار ATR (الحد الأدنى MinATRValue = 0.0002 على أداة من 5 خانات)، واختبار الحجم (مقارنة tick_volume للشمعة الحالية بـ MinTickVolume = 100). يجب أن تنجح الحراسات الثلاث قبل أن يعمل التصويت.
طبقات الخروج ثلاث: وقف الخسارة لدى الوسيط، وجني الأرباح لدى الوسيط، والوقف المتابع على السيرفر أعلاه. لا يوجد خروج زمني، ولا إغلاق عند إشارة معاكسة، ولا إغلاق سلة، ولا إغلاق جزئي. طبقة SCALING المذكورة في الرأس غير منفّذة — مسار إعادة الدخول الوحيد هو الإشارة التالية بعد إغلاق المركز السابق عند الوقف أو الهدف أو التريلينج. مساعدا TryClose_EX16052 وTryClosePartial_EX16052 في ذيل الملف كود ميت: لا يستدعيهما أي مسار إغلاق حي، فالإغلاق الفعلي الوحيد يمر مباشرة عبر PositionClose لكائن CTrade.
تُبنى لوحة المعلومات مرة في OnInit عبر CreatePanel()، وتُحدَّث كل تيك في UpdatePanel(). خمسة أسطر من التسميات — واحد لكل مرشح — تعرض الحالة الفورية (Initialized أو Disabled أو Buffer Error) والقراءة الرقمية الحالية (قيمة RSI، قيمة ATR، حجم التيكات). موضع اللوحة ولونها وحجم الخط قابلة للتهيئة من المستخدم. يُحرر OnDeinit مقابض المؤشرات الخمسة ويزيل عناصر اللوحة عبر ObjectsDeleteAll.
الإعدادات الافتراضية مضبوطة للذهب منخفض السبريد على إطار 5 دقائق، بحد أدنى للإيداع 100 دولار، وحد أدنى للوت 0.01، ونافذة 7-21 بسيرفر السيرفر تلتقط جلستي لندن ونيويورك الصباحية. الوقف 10 نقاط والهدف 15 نقطة يؤولان إلى حوالي 1 و1.5 بيب على وسيط ذهب من 5 خانات؛ على أزواج العملات الرئيسية تُقرأ كـ 10 و15 بيب. عتبة MinATRValue = 0.0002 معايرة لأدوات من 5 خانات — على أزواج الين من 3 خانات ينبغي للمتداول رفعها إلى نحو 0.02. لا يوجد حد لسحب Equity، ولا سقف خسارة يومية، ولا قاتل للسحب؛ التحكم في المخاطر محصور بالكامل في كل صفقة عبر الوقف ونسبة المخاطرة 0.5%، لذا يحتاج المتداول الذي يريد حماية على مستوى الجلسة إلى إضافتها خارجيًا.
يعمل المستنبط أفضل على الرموز عالية السيولة خلال نافذة الجلسة المكوّنة، على حسابات ECN أو Raw Spread بحد سبريد دون 5 نقاط، وعلى إطارات من M5 إلى H1. التصويت التوافقي وقيد المركز الواحد ينتجان تكرار صفقات معتدل — عادةً صفقة إلى أربع صفقات في الجلسة حين يكون التذبذب صحيًا، وينخفض إلى صفر في أيام ضعف السيولة أو حين تختلف المرشحات.
تفاصيل الاستراتيجية
في كل تيك، تنفذ المستنبط ثلاث حراسات قبل التداول — MQL_TRADE_ALLOWED، ونافذة 7-21 بتوقيت السيرفر مع دعم الالتفاف الليلي، وCheckFilters() (سبريد ≤ 5 نقاط، ATR ≥ 0.0002، حجم التيك ≥ 100) — ولا يتقدم إلا عند نجاحها جميعًا. يمسح مكدس الإشارات بعد ذلك كل مرشح مفعّل: تقرأ CheckEMASignal() آخر شمعتين مكتملتين من EMAs لفترتي 5 و10 وتبحث عن تقاطع جديد، وتُرجع CheckRSISignal() قيمة +1/-1 بحسب ما إذا كان RSI(14) فوق أو تحت 50، وتقارن CheckBBSignal() إغلاق الشمعة السابقة بالخط الأوسط لبولينجر (20، 2.0). لا يُطلق الأمر إلا حين يساوي buySignalStrength (أو معكوسه في البيع) عدد المرشحات المفعّلة، ثم ترسل ExecuteTrade() أمرًا سوقيًا باللوت المحسوب ووقف/هدف يحترم الحد الأدنى للوسيط. تتولى ManageTrailingStop() شد الوقف بمقدار 5 نقاط فور تحرك السعر 5 نقاط داخل الربح، مع ما يصل إلى ثلاث محاولات عند requote/timeout عبر TryModify_EX16052. عند الإغلاق، يحرر OnDeinit مقابض المؤشرات الخمسة ويزيل عناصر لوحة الشارت.
يُطلق EX16052 أمر شراء سوقي حين يصوّت كل مرشح مفعّل لصالح الشراء، وأمر بيع سوقي حين يصوّت الكل لصالح البيع، مع فرض بوابة buySignalStrength == requiredSignals داخل OnTick. تقاطع EMA صاعد على الشمعة السابقة المكتملة، وRSI(14) فوق 50، وإغلاق الشمعة السابقة فوق خط بولينجر الأوسط يحمل التصويت؛ أي مرشح معترض واحد يحجب الأمر.
تُغلق المراكز عبر وقف الخسارة لدى الوسيط، أو جني الأرباح لدى الوسيط، أو الوقف المتابع على السيرفر فور تحرك السعر خلف TrailingStartPoints داخل الربح. لا يوجد خروج زمني، ولا إغلاق عند إشارة معاكسة، ولا إغلاق جزئي — مسار إعادة الدخول الوحيد هو التصويت التوافقي التالي بعد إغلاق المركز السابق بالكامل.
يُرسل كل أمر بـ slPrice = entry ± max(StopLossPoints × _Point, SYMBOL_TRADE_STOPS_LEVEL × _Point)، لذا يحترم الوقف دائمًا الحد الأدنى للوسيط ولا يقترب من السعر بأقل من 10 نقاط في الإعداد الافتراضي. لا يوجد حد Equity، ولا سقف خسارة يومية، ولا قاتل سحب؛ التحكم في المخاطر محصور في كل صفقة عبر الوقف 10 نقاط ونسبة المخاطرة 0.5%.
يُرسل كل أمر بهدف 15 نقطة محسوب كـ price ± max(TakeProfitPoints × _Point, SYMBOL_TRADE_STOPS_LEVEL × _Point)، بنسبة عائد/مخاطرة 1:1.5 مقابل الوقف 10 نقاط. يُحفظ الهدف الأصلي عبر كل تعديل للوقف المتابع — وظيفة التريلينج تشد الوقف فقط، ولا تمس الهدف أبدًا.
الحد الأدنى للرصيد 100 دولار مع الحجم الافتراضي 0.01 لوت، لكن من يشغل مخاطر أعلى من 0.5% ينبغي أن يرفع الرصيد إلى 1000 دولار أو أكثر لاستيعاب تجمعات الوقف الطبيعية على الذهب. نافذة 7-21 بتوقيت السيرفر تلتقط افتتاح لندن حتى صباح نيويورك، لذا يناسب المستنبط المتداولين الذين يريدون انضباط الجلسة بدل التعرض على مدار الساعة. يحتاج إلى حساب ECN أو Raw Spread بسبريد دون 5 نقاط ووسيط يحترم مسافات SYMBOL_TRADE_STOPS_LEVEL المعيارية، ويفضل على XAUUSD أو أزواج العملات الرئيسية من M5 إلى H1.
منطق الاستراتيجية
Pipsgrowth EX16052 Trend — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Trend
الماجيك: 22216052
الإصدار: 2.00
الوصف:
Multi-indicator scalping EA combining EMA crossover, RSI momentum, Bollinger Bands breakout, ATR volatility filter and tick volume filter for confirmed entry signals. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
InitializeIndicators()CheckFilters()CheckEMASignal()CheckRSISignal()CheckBBSignal()IsTradingAllowed()IsTradingTime()CalculateLotSize()NormalizeLot()GetIndicatorValue()
// Pipsgrowth EX16052 Trend — Execution Flow (from source analysis)
// Family: Trend
// Multi-indicator scalping EA combining EMA crossover, RSI momentum, Bollinger Bands breakout, ATR volatility filter and tick volume filter for confirmed entry signals. 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اسحب الإكسبرت على رسم H4 أو اليومي للحصول على أفضل النتائج
- 7حدد فترات EMA وعتبة ADX وحجم اللوت في نافذة الإعدادات
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| MagicNumber | 22216052 | EA Magic Number |
| TradeComment | "Psgrowth.com Expert_16052" | Comment for trades |
| MaxSpreadPoints | 5 | Maximum allowed spread in points |
| SlippagePoints | 3 | Allowed slippage in points |
| UseFixedLot | false | Use fixed lot size instead of risk % |
| FixedLotSize | 0.01 | Fixed lot size if UseFixedLot is true |
| RiskPercent | 0.5 | Risk per trade as % of account balance |
| StopLossPoints | 10 | Stop loss distance in points |
| TakeProfitPoints | 15 | Take profit distance in points |
| UseTrailingStop | true | Enable trailing stop |
| TrailingStartPoints | 5 | Points in profit to activate trailing stop |
| TrailingStopPoints | 5 | Trailing stop distance in points |
| UseTimeFilter | true | Enable time filter |
| StartHour | 7 | Trading start hour (Broker Server Time) |
| EndHour | 21 | Trading end hour (Broker Server Time) |
| UseEMA | INDICATOR_ENABLED | Use EMA Crossover |
| FastEMAPeriod | 5 | Fast EMA Period |
| SlowEMAPeriod | 10 | Slow EMA Period |
| EMATimeframe | 1 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // EMA Timeframe |
| EMAAppliedPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // EMA Applied Price |
| UseRSI | INDICATOR_ENABLED | Use RSI |
| RSIPeriod | 14 | RSI Period |
| RSIOverbought | 70.0 | RSI Overbought Level |
| RSIOversold | 30.0 | RSI Oversold Level |
| RSITimeframe | 1 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // RSI Timeframe |
| RSIAppliedPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // RSI Applied Price |
| UseBB | INDICATOR_ENABLED | Use Bollinger Bands |
| BBPeriod | 20 | Bollinger Bands Period |
| BBDeviation | 2.0 | Bollinger Bands Deviation |
| BBTimeframe | 1 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Bollinger Bands Timeframe |
| BBAppliedPrice | 1 | Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // Bollinger Bands Applied Price |
| UseATRFilter | INDICATOR_ENABLED | Use ATR Filter |
| ATRPeriod | 14 | ATR Period |
| MinATRValue | 0.0002 | Minimum ATR value to allow trading (adjust per instrument) |
| ATRTimeframe | 1 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // ATR Timeframe |
| UseVolumeFilter | INDICATOR_ENABLED | Use Volume Filter |
| MinTickVolume | 100 | Minimum tick volume for the current bar |
| VolumeTimeframe | 1 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Volume Timeframe |
| ShowInfoPanel | true | Show Information Panel on Chart |
| ShowOnlyActiveIndicators | false | Show only enabled indicators in panel |
| PanelTextColor | clrWhite | Panel Text Color |
| PanelXCoord | 10 | Panel X Coordinate |
| PanelYCoord | 10 | Panel Y Coordinate |
| PanelFontSize | 8 | Panel Font Size |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX16052 New_EA -- Multi-indicator scalping with EMA, RSI, BB, ATR and volume filters, full 12-layer stack."
#include <Trade\Trade.mqh> // Include CTrade library
//+------------------------------------------------------------------+
//| Enumerations |
//+------------------------------------------------------------------+
/**
* @enum IndicatorUsage
* @brief Defines how an indicator is used in the strategy.
*/
enum IndicatorUsage
{
INDICATOR_DISABLED, // Indicator is not used
INDICATOR_ENABLED // Indicator is used as a mandatory signal filter
// INDICATOR_WEIGHTED // Future: Indicator contributes a weight to the signal (Not implemented)
};
//+------------------------------------------------------------------+
//| Input Parameters |
//+------------------------------------------------------------------+
// --- General Settings ---
sENUM_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_EMATimeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_RSITimeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_BBTimeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_ATRTimeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_VolumeTimeframe = PERIOD_H1;
ENUM_APPLIED_PRICE g_EMAAppliedPrice = PRICE_CLOSE;
ENUM_APPLIED_PRICE g_RSIAppliedPrice = PRICE_CLOSE;
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية متابعة الاتجاه
Pipsgrowth EX16080 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16080 Trend — EURUSD triple-EMA trend follower — trades EMA20/50 cross with EMA200 filter on H4, ATR-based SL/TP, risk-percent sizing . إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX16081 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16081 Trend — Gold trend EA catching major XAUUSD trends using EMA 50/ 200 crossover on H4 with daily structure swing high/low and Fib. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX16033 Trend — إكسبرت أدفايزر متابعة اتجاه
Pipsgrowth EX16033 Trend — Price-action scalping EA using distance-based grid entries with net-take-profit targeting and optional lot multiplier. 1. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.