P
PipsGrowth
متابعة الاتجاهمفتوح المصدر - مجاني

Pipsgrowth EX18109 TrendFollow — إكسبرت أدفايزر إكسبرت أدفايزر

إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1

Pipsgrowth EX18109 TrendFollow — Indicator monitor with automated execution combining EMA crossover, MACD, RSI, and ATR-based SL/TP. Includes session fil. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX18109 TrendFollow هو إكسبرت MT5 مبني خصيصاً لخط أنابيب تحسين Strategy Tester. بينما تتعامل أغلب Expert Advisors مع OnTester كرقم يُحسَّب، يضيف EX18109 طبقة تحليل متعدد الفترات: يتتبع ربح/خسارة كل شهر، وأقصى سحب لكل شهر، وعلامة "انفجار" لكل شهر تقويمي، ثم يمرر (أو يرفض) نتيجة الاختبار عبر سبعة بوابات صلبة قبل احتساب أي درجة. المنطق التجاري نفسه هو استراتيجية ارتداد ضمن الترند نظيفة من خمسة مؤشرات: متوسطان متحركان أسيان يحددان الإطار، وMACD يوفر إشارة تباطؤ الزخم، وRSI يقيد الدخول في حافة محايدة، وATR يحجم وقف الخسارة والهدف. تُضاف فوق ذلك فلاتر الجلسات والسبريد وحدود المخاطر على مستوى الحساب، حتى لا يُقوَّض أداء نتيجة اختبار قوية بحساب مباشر على الجانب الخاطئ من الشمس.

مجموعة المؤشرات مطابقة تماماً لما يعلنه كتلة المدخلات. EMA(21) وEMA(55)، كلاهما على أساس سعر الإغلاق، يعطيان إطار الترند. يُسمح بالشراء فقط عندما يكون سعر الإغلاق فوق كلا المتوسطين، وبفارق لا يتجاوز 15 نقطة عن EMA(21) (المتغير EMA_Pullback_Pips) — سعر ارتد بدرجة كافية ليدخل الترند دون أن يكون قد خرج منه. يُفحص MACD(12,26,9) على نافذة 3 شموع لرصد انتقال خط الرئيسي من فوق الإشارة إلى تحتها في الشراء (أو العكس في البيع). يُسمح بالتقاطع في أي مكان داخل نافذة الـ3 شموع، وليس فقط على الشمعة 1، لذا يمكن لتقاطع حدث قبل شمعة لم يلاحظه الإكسبرت أن يظل مُفعِّلاً. يُقيَّد RSI(14) بنطاق [40، 60] للشراء؛ وفي البيع يُعكَس النطاق إلى [100-60، 100-40]، وهي رياضياً نفس الفترة — التصميم متماثل حول خط الـ50 في RSI. ثم يُحجم ATR(14) وقف الخسارة عند 2.0×ATR والهدف عند 3.0×ATR، وهو ما يوصل افتراضياً إلى نسبة مخاطرة/عائد 1.5:1.

دالة CheckEntrySignals() هي المسار الوحيد الذي يستدعي OpenBuy() أو OpenSell()، وهي تتحقق صراحة من عدد المراكز المفتوحة مقارنةً بـMaxPositions (=1) قبل ذلك. لا يوجد تكديس صفقات (pyramiding). ولا يوجد أيضاً وقف متحرك داخل الإكسبرت، ولا مدير نقطة تعادل، ولا إغلاق جزئي — يُرسَل وقف الخسارة والهدف إلى الخادم عند الدخول، وتلك هي دورة حياة الصفقة. مساعدات إعادة المحاولة TryClose_EX18109 وTryClosePartial_EX18109 وTryModify_EX18109 (كل منها يلف ثلاث مرات مع فاصل 100-200 مللي ثانية في حالات requote وtimeout وprice-off وprice-changed) موجودة في الكود المصدري، لكنها لا تُستدعى من OnTick، لذا فهي كود ميت في البناء الحالي. كل قرار دخول يحدث مرة لكل شمعة مغلقة داخل بوابة IsNewBar.

تعمل الفلاتر وبوابات المخاطر بترتيب ثابت داخل OnTick. بعد بوابة IsNewBar()، تُحدِّث UpdateBalanceTracking() كلاً من daily_starting_balance وpeak_balance. تمشي TrackPeriodPerformance() في سلال الأشهر عندما يكون EnableRobustnessOptimization مفعَّلاً، وتكتب كل شهر مغلق في المصفوفة period_results[]. تحظر CheckRiskLimits() الدخول عندما تبلغ خسارة اليوم 3.0% (DailyLossLimit) أو يبلغ السحب من الذروة التاريخية 15% (MaxDrawdownPercent) — مكبح يومي-من-منتصف-الليل ومكبح HWM على كل الأوقات، وليس وقف لكل صفقة. تسحب GetIndicatorValues() ثلاث شموع من بيانات المؤشرات إلى المخازن المؤقتة. تطبق CheckTimeFilters() قفل الجلسة؛ وتطبق CheckVolatilityFilters() نطاق ATR (0.5-2.0) وسقف السبريد (2.5 نقطة). فقط بعد اجتياز كل بوابة تُسجِّل PrintIndicatorSnapshot() قيم EMA/MACD/RSI/ATR ويُشغَّل فحص الدخول.

الإعدادات الافتراضية للجلسة هي: الآسيوية 00:00-09:00 مُفعَّلة، لندن 07:00-16:00 مُفعَّلة، نيويورك 13:00-22:00 معطَّلة. هذا يجعل EX18109 استراتيجية آسيا-ولندن افتراضياً — نيويورك محجوزة رغم أن أغلب تذبذب XAUUSD يحدث في تداخل نيويورك مع لندن. للتبديل إلى ملف لندن-نيويورك، اضبط TradeNewYorkSession=true وTradeAsianSession=false. يستخدم قفل الجلسة حسابات دقيقة من اليوم، مع التفاف في نفس اليوم، لذا تُعالَج جلسة ليلية (ساعة بداية > ساعة نهاية) بسلاسة دون تغييرات في الكود. ترفض ValidateSessionInputs() ساعات بداية أو نهاية خارج 0-23، أو دقائق خارج 0-59، عند OnInit.

دالة OnTester() هي ما يجعل هذا الإكسبرت مميزاً داخل عائلة PipsGrowth. عندما يكون EnableRobustnessOptimization=false، تُرجع OnTester قيمة STAT_PROFIT — السلوك القياسي. عندما يكون مفعَّلاً، يُعيد الإكسبرت تقييم التشغيل: يمشي في period_results[]، ويرفض التشغيل (-1.0) إذا خسر أي شهر أكثر من MaxPeriodLossPercent=20% (انفجار)، أو إذا تجاوزت نسبة الأشهر الخاسرة MaxLosingPeriodsRatio=40%، أو إذا تجاوز السحب الأقصى MaxDrawdownThreshold=25%، أو إذا كان عدد الصفقات أقل من 30، أو إذا كان عامل الربح أقل من 1.3، أو إذا كان إجمالي الربح غير موجب. فقط بعد اجتياز كل البوابات الصلبة الست تبدأ عملية التسجيل: عامل الربح × ProfitFactorWeight=1000 + مكافأة الاستمرارية (1 − نسبة الأشهر الخاسرة) × ConsistencyWeight=500 + هامش السحب × DrawdownWeight=20 + نسبة شارب × SharpeWeight=100 + نسبة الربح × 10. الأثر الصافي هو أن المُحسِّن يُدفع نحو منحنيات حقوق ملكية ناعمة بسحب منخفض، وليس مجرد ربح خام.

تحجم الصفقات بمخاطرة 1% من الرصيد بشكل مباشر: تقرأ CalculateLotSize(sl_pips) قيمة RiskPercent=1.0 وتحوّل مسافة وقف الخسارة إلى عدد عقود باستخدام SYMBOL_TRADE_TICK_VALUE وSYMBOL_TRADE_TICK_SIZE ونقطة الرمز. تُقرَّب النتيجة إلى خطوة العقد، وتُقيَّد بـ[min_lot، max_lot]، وتُدوَّر إلى منزلتين عشريتين. إعداد الانزلاق TradeDeviation=5 محافظ — على حساب ECN سبريد خام يعطي هذا الوسيط مساحة كافية للملء دون رفض. يفشل أي حساب حجم عقد يُرجع صفراً في الأمر بدلاً من إرسال تذكرة بحجم صفر.

بالنسبة للاختبار الخلفي، السلوك المتوقع على XAUUSD M5 عبر بيانات سنوات متعددة هو عدد صفقات معتدل — الإستراتيجية تحتاج ارتدادات حقيقية، فلا تتوقع كثافة مضاربات — مع توزيع لخاسرات صغيرة وعدد أقل من رابحات أكبر. Strategy Tester هو بالضبط سير العمل الذي كُتب له هذا الإكسبرت: اترك EnableRobustnessOptimization=false لاختبار خلفي بتمريرة واحدة، فعِّله لجلسة تحسين، ودع المُسجِّل بسبع بوابات يختار مجموعات معاملات متينة عبر نوافذ متعددة الأشهر. للتداول المباشر، شغِّل الإعدادات الافتراضية على حساب بـ100$. MaxDrawdownPercent=15 وDailyLossLimit=3.0 هما شبكة الأمان الحقيقية — مخاطرة 1% لكل صفقة مع سقف مركز واحد يعني أن أسوأ ضرر يومي محدود بكل من مكبح السحب ومكبح الخسارة اليومي. لا تشغِّل EX18109 على الرقم السحري 22218109 مع أي إكسبرت PipsGrowth آخر على نفس الحساب، وإلا فإن فحص عدّ المراكز سيرى كليهما ويرفض دخول أي صفقة جديدة.

تفاصيل الاستراتيجية

تُشغَّل OnTick مرة لكل شمعة مغلقة عبر IsNewBar(): تُحدِّث متتبع الرصيد اليومي/الذروة، وتمشي في سلال الأداء الشهرية إذا كان EnableRobustnessOptimization مفعَّلاً، وتُشغِّل أربع بوابات متتالية — حدود المخاطر (خسارة يومية 3% أو سحب ذروة 15%)، وسحب المؤشرات، وفلتر الجلسة (آسيا + لندن مُفعَّلتان افتراضياً، نيويورك معطَّلة)، والتقلب (ATR 0.5-2.0 وسبريد ≤ 2.5 نقطة). يحتاج إعداد الشراء إلى إغلاق فوق كل من EMA(21) وEMA(55)، وتقاطع خط MACD الرئيسي تحت الإشارة في أي مكان خلال آخر 3 شموع، وRSI(14) داخل [40، 60]، وسعر في حدود EMA_Pullback_Pips=15 من EMA(21) — يبحث الإكسبرت عن تراجع مع تباطؤ الزخم داخل ترند لا يزال صالحاً. البيع يعكس تلك الشروط. تحسب طبقة المخاطر حجم العقد كـ1% من الرصيد لكل مسافة وقف خسارة، مقرَّباً إلى خطوة عقد الرمز، وتطبق OnTester() فلتر متانة متعدد الفترات — سقف انفجار شهري، نسبة أشهر خاسرة، أقصى سحب، عدد صفقات ≥ 30، عامل ربح ≥ 1.3، صافي موجب — قبل إضافة أي درجة مرجَّحة. لا توجد إدارة داخل الصفقة، ولا تكديس، ولا وقف متحرك — كل صفقة تُولَد وتموت بوقف الخسارة والهدف المبنيين على ATR على جانب الخادم.

إشارة الدخول

يُفعَّل الشراء عندما يكون الإغلاق فوق EMA(21) وفوق EMA(55)، والسعر في حدود EMA_Pullback_Pips=15 نقطة من EMA(21)، وقد تقاطع خط MACD(12,26,9) الرئيسي تحت خط الإشارة خلال آخر 3 شموع، ويقع RSI(14) داخل النطاق [40، 60]. البيع يعكس الإعداد مع إغلاق تحت كلا المتوسطين، وخط MACD الرئيسي يقطع فوق الإشارة، ونطاق RSI نفسه معكوَساً إلى [100-60، 100-40]. النمط هو ارتداد مع تباطؤ الزخم داخل ترند لا يزال سليماً، وليس اختراقاً. يُجمِّد MaxPositions=1 إمكانية تكديس الصفقات عند صفر.

إشارة الخروج

تُرسَل كل صفقة بهدف ووقف خسارة ثابتين مبنيين على ATR، وتُترك لتعمل حتى يُضرب أحدهما. لا يوجد وقف متحرك داخل الإكسبرت، ولا قفل نقطة تعادل، ولا إغلاق جزئي — الأوامر على جانب الخادم هي مسار الخروج كاملاً. مساعدات إعادة المحاولة TryClose_EX18109 وTryClosePartial_EX18109 وTryModify_EX18109 مُعرَّفة في الكود المصدري، لكنها لا تُستدعى من OnTick. لا تُدار المراكز القائمة بنشاط من قِبَل الإكسبرت؛ بوابة CheckEntrySignals هي وحدها ما يحرس الدخول الجديد.

وقف الخسارة

وقف الخسارة هو 2.0×ATR(14) بالنقاط، محدود بـMaxStopLossPips=150. يُرسَل وقف الخسارة إلى الخادم عند الدخول — لا تتبع داخل الصفقة، ولا تحريك لنقطة التعادل، ولا إغلاق جزئي. تُؤخذ عينة ATR(14) من الشمعة التي يُفعَّل عليها الإشارة.

جني الأرباح

جني الأرباح هو 3.0×ATR(14) بالنقاط، بلا حد أقصى. مع وقف الخسارة 2.0×ATR، يعطي ذلك نسبة مخاطرة/عائد 1.5:1. لا تتبع، ولا جني أرباح جزئي — تستمر الصفقة إلى جني الأرباح الصلب أو وقف الخسارة الصلب.

الأنسب لـ

موصى به على XAUUSD M5 برصيد لا يقل عن 100$ — مخاطرة 1% لكل صفقة وسقف مركز واحد يُبقيان السحب محدوداً بمكابح الـ15% من الذروة و3% من الخسارة اليومية. شغِّله بإعدادات الجلسة الافتراضية (آسيا + لندن) على حساب ECN سبريد منخفض مثل Exness أو IC Markets؛ اضبط TradeNewYorkSession=true وTradeAsianSession=false لملف لندن-نيويورك. الأنسب لسير عمل تحسين Strategy Tester في MT5 مع EnableRobustnessOptimization=true — فلتر OnTester متعدد الفترات هو ما يميز هذا الإكسبرت عن سكريبت ارتداد عادي. لا تشغِّله مع إكسبرتس PipsGrowth أخرى تشترك في الرقم السحري 22218109 على نفس الحساب.

منطق الاستراتيجية

Pipsgrowth EX18109 TrendFollow — تحليل منطق الاستراتيجية (من كود .mq5)

العائلة: TrendFollow الماجيك: 22218109 الإصدار: 2.00

الوصف: Indicator monitor with automated execution combining EMA crossover, MACD, RSI, and ATR-based SL/TP. Includes session filters, volatility filters, daily loss/drawdown limits, and robustness optimization settings for OnTester scoring. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

  • مؤشرات قياسية

الدوال الرئيسية:

  • IsNewBar()
  • GetIndicatorValues()
  • ValidateSessionInputs()
  • IsWithinSession()
  • UpdateBalanceTracking()
  • CheckRiskLimits()
  • CheckEntrySignals()
  • CheckLongEntry()
  • CheckShortEntry()
  • CheckTimeFilters()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX18109 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// Indicator monitor with automated execution combining EMA crossover, MACD, RSI, and ATR-based SL/TP. Includes session filters, volatility filters, daily loss/drawdown limits, and robustness optimization settings for OnTester scoring. 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)

ملف التحسين

الوسطاء المُحسّنون:
ExnessIC Markets
الرموز المُحسّنة:
XAUUSD
الأطر الزمنية المُحسّنة:
M5H1

كيفية تثبيت الإكسبرت على MT5

  1. 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
  2. 2افتح برنامج MetaTrader 5 على حاسوبك
  3. 3من القائمة العلوية اختر File → Open Data Folder
  4. 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
  5. 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
  6. 6اسحب الإكسبرت على رسم H4 أو اليومي للحصول على أفضل النتائج
  7. 7حدد فترات EMA وعتبة ADX وحجم اللوت في نافذة الإعدادات
  8. 8فعّل Allow Algo Trading واضغط OK

معاملات الإكسبرت

المعاملالافتراضيالوصف
EnableRobustnessOptimizationfalseEnable Robustness Optimization
MaxPeriodLossPercent20.0Max Loss Per Period (%) - triggers rejection
MaxLosingPeriodsRatio40.0Max Losing Periods (%) - e.g., 40 = 40% of periods can lose
MaxDrawdownThreshold25.0Max Drawdown Threshold (%)
MinimumTrades30Minimum Trades Required
MinProfitFactor1.3Minimum Profit Factor
ProfitFactorWeight1000.0Profit Factor Weight in Score
ConsistencyWeight500.0Consistency Bonus Weight
DrawdownWeight20.0Drawdown Bonus Weight (per % below max)
SharpeWeight100.0Sharpe Ratio Weight
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX18109.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX18109 per0 — EMA/MACD/RSI indicator monitor with robustness optimization, full 12-layer stack."

#include <Trade/Trade.mqh>
#include <Trade/PositionInfo.mqh>

input group "=== Moving Average Settings ==="
input int    EMA_Fast_Period  = 21;
input int    EMA_Slow_Period  = 55;

input group "=== MACD Settings ==="
input int    MACD_Fast_EMA    = 12;
input int    MACD_Slow_EMA    = 26;
input int    MACD_Signal_SMA  = 9;

input group "=== RSI Settings ==="
input int    RSI_Period       = 14;
input double RSI_Low          = 40.0;
input double RSI_High         = 60.0;

input group "=== ATR Settings ==="
input int    ATR_Period        = 14;
input double ATR_SL_Multiplier = 2.0;
input double ATR_TP_Multiplier = 3.0;

input group "=== Signal Filters ==="
input double EMA_Pullback_Pips = 15.0;

input group "=== Risk Management ==="
input double RiskPercent      = 1.0;
input double MaxStopLossPips  = 150.0;
input int    MaxPositions     = 1;

input group "=== Trade Settings ==="
input bool   EnableTrading    = true;
input int    TradeDeviation   = 5;
input long   MagicNumber      = 22218109;
input string InpTradeComment  = "Psgrowth.com Expert_18109";

input group "=== Session Filters ==="
input bool   EnableSessionFilter     = true;
input bool   TradeAsianSession       = true;
input int    AsianSessionStartHour   = 0;
input int    AsianSessionStartMinute = 0;
input int    AsianSessionEndHour     = 9;
input int    AsianSessionEndMinute   = 0;
input bool   TradeLondonSession      = true;
input int    LondonSessionStartHour  = 7;
input int    LondonSessionStartMinute= 0;
input int    LondonSessionEndHour    = 16;
input int    LondonSessionEndMinute  = 0;
input bool   TradeNewYorkSession     = false;
input int    NewYorkSessionStartHour = 13;
input int    NewYorkSessionStartMinute = 0;
input int    NewYorkSessionEndHour   = 22;
input int    NewYorkSessionEndMinute = 0;

الكود المصدري الكامل متاح عند التحميل

لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.

الوسوم:ex18109trendfollowpipsgrowthfreemt5xauusd

تحذير صريح: لأغراض تعليمية فقط

تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.

وسطاء موصى بهم لهذا الإكسبرت

هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض

مجتمع المستخدمين

سجّل دخولك للمشاركةتسجيل الدخول

لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.

اسم الملفPipsgrowth_com_EX18109.mq5
حجم الملف29.2 KB
الإصدارv2.00
PlatformMetaTrader 5
نوع الملف.mq5 Source
الاستراتيجيةمتابعة الاتجاه
المخاطرةمخاطرة متوسطة
الأطر الزمنية
M5H1
أزواج العملات
XAUUSD
الحد الأدنى للإيداع$100