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

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

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

Pipsgrowth EX18037 TrendFollow — Slope change of a quantized ("rounded") MA — the rounded MA value is held to a grid step, suppressing micro-noise so onl. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

يبني EX18037 RoundingMA فلسفته بالكامل حول غلاف "تكميم" يُطبَّق على المتوسط المتحرك — كاشف انحدار لا يطلق إشارة إلا حين يعبر منحنى السعر شبكة نقاط متقطعة بخطوة 50 نقطة، متعمداً تجاهل الضوضاء الدقيقة التي كانت ستُزلزّل أي نظام يعتمد على متوسط متحرك خام. يصفه الترويسة بأنه "تغيّر انحدار متوسط متحرك مكمَّم ('مقرَّب')" يقمع التذبذبات الصغيرة بحيث لا تقلب الإشارة إلا التحولات الاتجاهية الحقيقية. خرج RoundingSignal() اتجاه واحد (+1 شراء، -1 بيع، 0 محايد) بالإضافة إلى درجة ثقة بين 0 و100 مشتقّة من اتساق ثلاث فروقات متتالية في المتوسط المكمَّم.

مكدس الإشارة في RoundingSignal() صغير لكنه غير معتاد. المتوسط الأساسي هو أي طريقة يختارها المستخدم في InpMaMethod (افتراضياً SMA) بفترة InpMaPeriod=12 شمعة على الإغلاق. كل واحدة من آخر ست قيم لذلك المتوسط تُقرَّب بعدها إلى أقرب مضاعف لـ InpMaRound * _Point — 50 نقطة افتراضياً، أي ما يعادل 0.50 دولار على وسيط ذهبي بخمس خانات. هذا التكميم هو جوهر النظام: يعني أن المتوسط المقرَّب لا يمكنه أن ينقلب من صاعد إلى هابط بسبب ارتعاشات دون حجم خطوة الشبكة، بل فقط على تحرّكات كبيرة بما يكفي لاختراق خطوة شبكة كاملة. بعدها يحسب الكود ثلاث فروقات: d1 = مقرَّب[1] − مقرَّب[2]، d2 = مقرَّب[2] − مقرَّب[3]، d3 = مقرَّب[3] − مقرَّب[4]. الفرق الأول يحدد الانحدار (+1 / -1 / 0). حتى تكون الإشارة قابلة للتداول، يجب أن يكون الانحدار إما "انعكاساً جديداً" (الاتجاه الحالي يختلف عن السابق) أو "استمراراً" تكون فيه الحركة الحالية على الأقل بحجم السابقة في نفس الاتجاه. درجة الثقة تجمع هذين العاملين: تبدأ من 40، ثم تضيف حتى 40 بحسب عدد الفروقات الثلاث d1/d2/d3 التي تتفق مع الانحدار الحالي، وتضيف 10 للانعكاس الجديد أو 5 للاستمرار. هكذا إشارة انعكاس جديدة بثلاث اتفاقات تعيد 90، واستمرار بثلاث اتفاقات يعيد 85، واتفاق وحيد للشمعة يعيد نحو 53.

فلتر النظام (Regime) هو الركيزة الثانية. ClassifyRegime() يقرأ ADX(14) على شمعتين إضافةً إلى نسبة الـATR المئوية على 30 شمعة وعرض بولنجر الحالي مقارنةً بعرض الشمعة السابقة. يعيد تسمية من خمس حالات: 0 متذبذب (Choppy)، 1 نطاق (Range)، 2 اتجاه ضعيف (WeakTrend)، 3 اتجاه قوي (StrongTrend)، 4 اختراق (Breakout). العتبات صريحة — الاختراق يحتاج ADX ≥ 30 وATR في أعلى 40% من توزيع 30 شمعة وعرض بولنجر يتسع (لا مجرد أنه عريض) مقارنة بالشمعة السابقة. الاتجاه القوي يحتاج فقط ADXInpAdxThreshold (افتراضياً 22). الاتجاه الضعيف يستخدم 60% من ذلك، أي 13.2. النطاق يطلق حين يكون الـATR في الربع الأدنى والسعر في حالة ضغط. أي شيء آخر متذبذب. بوابة TryEntry() تحظر قسراً حالتي 0 و1، فالمستشار لا يطلق إلا من الاتجاه الضعيف فما فوق. ولأن مصنّف النظام يُستدعى لكل تيكر، يستطيع المستشار الانتظار فترات طويلة حين لا يستوفي أي شيء الحد.

تضيف ConfirmEntry() أربعة مرشحات مستقلة، كل منها يضيف 25 إلى درجة "سبب" معلوماتية (الدرجة تُسجَّل ولا تُستخدم كحاجز). الأربعة هي: المتوسط الأسي EMA(50) على H1 يجب أن يتفق اتجاهه مع اتجاه الصفقة، اتجاه شمعة الإغلاق الأخيرة (close[1] > open[1] للشراء) يجب أن يتفق، السبريد اللحظي يجب أن يكون ≤ 60 نقطة، ونسبة المخاطرة إلى العائد لا تقل عن 1.0. لاحظ أن المتوسط الأعلى إطاراً مبرمج مباشرة على PERIOD_H1 بمتوسط أسي فترة 50 — لا يوجد مدخل لاختيار إطار زمني أعلى مختلف، وهو أمر غير معتاد في العائلة.

إدارة المخاطر هي الركيزة الثالثة. حساب حجم الصفقة في ComputeLot() يستخدم قيمة التيك وحجم التيك من الوسيط لتحويل مسافة الوقف المعتمدة على الـATR إلى خسارة لكل لوت، ثم يحجم عند InpRiskPercent (0.5% افتراضياً) من رأس المال الفعّال. رأس المال الفعّال من ComputeEffectiveCapital() الذي يعيد MathMin(InpCapitalCapAmount, equity) إن كان الحد إيجابياً، وإلا يعيد كامل الـequity. قيمة InpCapitalCapAmount=0 الافتراضية تعطّل الحد وتستخدم كامل الـequity؛ يبقى InpCapitalCapFloor=50 دولار مفروضاً كحد أدنى أدنى منه يُرجع NoTradeReason() "CAPITAL_BELOW_FLOOR". وقف الخسارة = 1.5 × ATR(14) وجني الأرباح = وقف الخسارة × InpRrRatio=2.0، أي 3.0×ATR بنسبة مخاطرة إلى عائد 1:2 — نفس نسبة العائلة في عدد قليل من TrendFollow الأشقاء لكن بمضاعف ATR أصغر على جانب وقف الخسارة (1.5 بدلاً من 2.0).

دالة ManageExits() هي حيث تُحمل الصفقة. في كل تيكر، تمر على المراكز، ولكل مركز مفتوح بنفس السحر: إذا انعكس اتجاه الإشارة، تغلق المركز بالكامل عبر TryClose_EX18037 (حلقة إعادة محاولة من 3 محاولات، وسكون 200 مللي ثانية). وإلا، بهذا الترتيب: (1) عند +1R، اسحب الوقف إلى سعر الدخول + 5 نقاط (تعادل لمرة واحدة فقط، لا يتكرر)؛ (2) عند +1.5R، أغلق 50% من الحجم كجني أرباح جزئي (فقط إذا ظل الحجم المتبقي فوق 1.5× الحد الأدنى للوت)؛ (3) اسحب الوقف على بعد 1.0×ATR(14) تحت (أو فوق) السعر الحالي، لكن فقط للأمام — لا يتراجع للخلف. مضاعف الجر هنا 1.0×ATR بدلاً من 2.5×ATR الموجود في TrendFollow الأشقاء، ما يعني أن المستشار يعيد مكاسباً غير محققة أسرع مقابل حماية يومية أكثر صرامة.

NoTradeReason() هو الحارس الرئيسي الذي يُستدعى قبل أي دخول جديد. يحظر: مفتاح الإيقاف الطارئ مفعّل، رأس المال تحت الحد الأدنى، خارج نافذة 07:00-21:00 بتوقيت السيرفر، عطلة نهاية الأسبوع (سبت/أحد)، سبريد أعلى من 25% من ATR، خسارة يومية محققة ≥ 3% من رأس المال الفعّال، خسارة أسبوعية محققة ≥ 6% من رأس المال الفعّال، ثلاث خسائر متتالية خلال آخر 4 ساعات (تهدئة)، آخر 15 دقيقة من يوم التداول، أو وضع تداول الوسيط ليس كاملاً. الـcooldown هو إقفال لمدة 4 ساعات بعد InpCooldownLosses=3 خسائر متتالية، ويلغي نفسه تلقائياً عند انقضاء نافذة الإقفال.

التنفيذ قابل للنقل بين الوسطاء. المؤشرات الخمس (h_ma، h_atr، h_adx، h_bb، h_htf) كلها تُنشأ على PERIOD_CURRENT ما عدا EMA(50) على H1. يقوم SendOrder() بفحص مسبق للهامش عبر OrderCalcMargin قبل الفتح، ويعيد المحاولة مرة واحدة عند REQUOTE / TIMEOUT / PRICE_OFF / PRICE_CHANGED بعد تحديث الأسعار، وفي وضع التجربة الجافة يسجّل الأمر فقط دون إرساله. InpDryRun=true هو الافتراضي. InpKillSwitch=true يغلق كل المراكز بهذا السحر عند التيكر التالي. معيار OnTester هو (netProfit × profitFactor) / (1 + relativeDD%) بحد أدنى 30 صفقة.

البناء الهرمي (Pyramiding) متحفّظ: InpMaxConcurrent=3 يحد المراكز في نفس الاتجاه، ولا يُسمح بدخول ثانٍ أو ثالث في نفس الاتجاه إلا إذا كان واحد على الأقل من المراكز القائمة حالياً في ربح (anyProfit = true). السحر الافتراضي 22218037 وتعليق الأمر مبرمج مباشرة كـ Psgrowth.com Expert_18037.

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

تكميم RoundingSignal() متوسطاً متحركاً لـ 12 شمعة من الإغلاق إلى شبكة 50 نقطة، ثم يراقب آخر ثلاث فروقات لذلك المنحنى المقرَّب بحثاً عن انعكاسات انحدار أو استمرارات قوية، مُعيداً اتجاهاً واحداً مع ثقة بين 40 و90. تُغلق ClassifyRegime() بعدها بوابة الدخول: تبني تسمية من خمس حالات من ADX(14) ونسبة الـATR المئوية على 30 شمعة واتساع عرض بولنجر مقارنةً بالشمعة السابقة، فتحظر قسراً حالتي Choppy وRange ولا تسمح إلا بـ WeakTrend أو أعلى. تشترط ConfirmEntry() أن يتفق اتجاه إغلاق EMA(50) على H1 مع الصفقة، وأن تغلق آخر شمعة M5 في اتجاه الصفقة، وأن يكون السبريد ≤ 60 نقطة، ونسبة R:R ≥ 1.0. تضيف TryEntry() بعدها حارس شمعة مكررة، وحد بناء هرمي 3 مراكز في نفس الاتجاه، وقاعدة "البناء الهرمي فقط بعد ربح"، وأرضية تعادل 5 نقاط قبل استدعاء SendOrder() مع فحص مسبق للهامش وحلقة إعادة محاولة واحدة على requote / timeout / price-off / price-changed. تعمل ManageExits() في كل تيكر بصرف النظر عن حد رأس المال، تمر على المراكز لتطبيق تعادل لمرة واحدة عند +1R، وإغلاق جزئي 50% عند +1.5R، ووقف متحرك أمامي فقط 1.0×ATR(14)، وإغلاق بإشارة معاكسة عبر TryClose_EX18037.

إشارة الدخول

دخول شراء: ينقلب انحدار المتوسط المكمَّم من هابط إلى صاعد (أو يستمر صاعداً بحركة ≥ السابقة)، مع اتفاق ≥ 2/3 من الفروقات الثلاث، على شمعة 5 دقائق جديدة؛ يجب أن يكون المتوسط الأسي EMA(50) على H1 صاعداً، وأن تكون آخر شمعة M5 مغلقة صاعدة (إغلاق>افتتاح)، وأن يسجل ADX اتجاهاً ضعيفاً على الأقل (≥ 13.2). دخول البيع هو المرآة التامة — المتوسط المكمَّم ينقلب هابطاً، الشمعة هابطة، EMA(50) على H1 هابط. لا يُسمح بإضافات البناء الهرمي إلا إذا كان واحد على الأقل من المراكز القائمة في نفس الاتجاه في ربح، بحد أقصى 3 مراكز متوازية لكل اتجاه.

إشارة الخروج

يغلق المستشار أي مركز مفتوح قسراً فور انعكاس انحدار المتوسط المكمَّم إلى الاتجاه المعاكس — يُغلق الشراء حين تذهب الإشارة إلى -1، ويُغلق البيع حين تذهب إلى +1، عبر TryClose_EX18037 مع 3 محاولات إعادة على requote / timeout / price-off. عدا ذلك، لا يطبّق المستشار خروجاً زمنياً ثابتاً؛ تبقى المراكز تركب نسبة 1:2 وجرّ الوقف المتحرك حتى يُضرب الوقف المتحرك، أو جني الأرباح الجزئي عند 1.5R، أو وقف الخسارة. كما أن InpKillSwitch=true يغلق كل شيء قسراً عند التيكر التالي — خروج طارئ قاسٍ.

وقف الخسارة

يُضبط وقف الخسارة عند الدخول على سعر_الدخول − 1.5 × ATR(14) للشراء (وبالمرآة للبيع)، مع تصحيح حد أدنى: إذا كانت المسافة الناتجة دون SYMBOL_TRADE_STOPS_LEVEL للوسيط، يُدفع الوقف إلى 1.1 × stopLevel بعيداً عن السعر. يقود خط 1R بعد ذلك حركة التعادل لمرة واحدة (الوقف إلى سعر الدخول + 5 نقاط) عند +1R داخل ManageExits()، ثم يسحب الوقف المتحرك 1.0×ATR(14) للأمام فقط.

جني الأرباح

يُضبط جني الأرباح عند الدخول على سعر_الدخول + 3.0 × ATR(14) للشراء (وبالمرآة للبيع) — هدف بنسبة مخاطرة إلى عائد 1:2 حيث وقف الخسارة 1.5×ATR وجني الأرباح وقف الخسارة × InpRrRatio=2.0. جني الأرباح هو هدف الأمر فقط؛ يُطبَّق إغلاق جزئي مستقل لـ 50% من المركز داخل ManageExits() بمجرد أن يصل السعر إلى +1.5R، تاركاً البقية إما لضرب جني الأرباح 1:2، أو الوقف المتحرك، أو خروج الإشارة المعاكسة.

الأنسب لـ

الأفضل على XAUUSD M5 مع وسيط ECN سبريده منخفض — بوابة السبريد في NoTradeReason() تحظر أي تيكر يتجاوز فيه السبريد 25% من ATR(14)، لذا فإن سبريدات الذهب 0-2 نقطة ضرورية. الحد الأدنى للرصيد: 100 دولار (أرضية رأس المال القسرية InpCapitalCapFloor=50 إضافة إلى 0.5% مخاطرة لكل صفقة على مسافة وقف مستندة إلى ATR(14)). تغطي نافذة 07:00-21:00 بتوقيت السيرفر جلستي لندن ونيويورك، وهما الجلستان اللتان تنتجان اتجاهات ADX نظيفة على الذهب؛ يحمي حظر عطلة نهاية الأسبوع، وحظر اقتراب إغلاق السوق يوم الجمعة، وفترة التهدئة 4 ساعات بعد 3 خسائر، من انجراف السيولة المنخفضة.

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

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

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

الوصف: Slope change of a quantized ("rounded") MA — the rounded MA value is held to a grid step, suppressing micro-noise so only real directional shifts flip the slope. Full 12-layer

المؤشرات:

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

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

  • StopLevelPrice()
  • NormalizePrice()
  • NormalizeVolume()
  • IsHedging()
  • ComputeEffectiveCapital()
  • MagicRealizedPnl()
  • DailyRealizedPnl()
  • WeeklyRealizedPnl()
  • ClassifyRegime()
  • RoundingSignal()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX18037 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// Slope change of a quantized ("rounded") MA — the rounded MA value is held to a grid step, suppressing micro-noise so only real directional shifts flip the slope. Full 12-layer

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
الأطر الزمنية المُحسّنة:
M5

كيفية تثبيت الإكسبرت على 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

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

المعاملالافتراضيالوصف
InpMagic22218037Magic number (id)
InpTradeComment"Psgrowth.com Expert_18037"Order comment
InpDeviation20Slippage cap (points)
InpDryRuntrueDry-run (no live orders)
InpKillSwitchfalseEmergency kill switch
InpMaPeriod12MA period (bars)
InpMaMethodMODE_SMAMA method
InpMaRound50Rounding grid step (points)
InpAdxThreshold22.0Min ADX for trend entry
InpCapitalCapAmount0.0Cap amount (account currency $)
InpCapitalCapFloor50.0Floor below which no new entries ($)
InpRiskPercent0.5Risk per trade (% of effective cap)
InpDailyLossLimitPct3.0Daily loss limit (% of effective cap)
InpWeeklyLossLimitPct6.0Weekly loss limit (% of effective cap)
InpAtrPeriod14ATR period (bars)
InpAtrSlMult1.5SL = ATR * mult
InpRrRatio2.0TP = SL * R:R
InpFixedLot0.01Fallback fixed lot
InpMaxLot5.0Hard lot cap
InpMaxConcurrent3Max concurrent positions (pyramid cap)
InpCooldownLosses3Losses before cooldown block
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX18037.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX18037 RoundingMA — slope-flip trend EA with full risk/regime/capital-cap stack."

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>
#include <Trade\OrderInfo.mqh>
#include <Trade\DealInfo.mqh>

//+------------------------------------------------------------------+
//| INPUTS (22 total, grouped)                                       |
//+------------------------------------------------------------------+
input group "=== Identity & Exec ==="
input int     InpMagic              = 22218037;     // Magic number (id)
input string  InpTradeComment       = "Psgrowth.com Expert_18037";// Order comment
input int     InpDeviation          = 20;         // Slippage cap (points)

input group "=== Safety ==="
input bool    InpDryRun             = true;       // Dry-run (no live orders)
input bool    InpKillSwitch         = false;      // Emergency kill switch

input group "=== Signal: Rounding MA ==="
input int     InpMaPeriod           = 12;         // MA period (bars)
input ENUM_MA_METHOD InpMaMethod    = MODE_SMA;   // MA method
input int     InpMaRound            = 50;         // Rounding grid step (points)

input group "=== Regime ==="
input double  InpAdxThreshold       = 22.0;       // Min ADX for trend entry

input group "=== Capital Allocation Cap ==="
// InpCapitalCapEnabled removed — use InpCapitalCapAmount=0 to disable       // Enable capital cap
input double  InpCapitalCapAmount   = 0.0;      // Cap amount (account currency $)
input double  InpCapitalCapFloor    = 50.0;       // Floor below which no new entries ($)

input group "=== Risk ==="
input double  InpRiskPercent        = 0.5;        // Risk per trade (% of effective cap)
input double  InpDailyLossLimitPct  = 3.0;        // Daily loss limit (% of effective cap)
input double  InpWeeklyLossLimitPct = 6.0;        // Weekly loss limit (% of effective cap)
input int     InpAtrPeriod          = 14;         // ATR period (bars)
input double  InpAtrSlMult          = 1.5;        // SL = ATR * mult
input double  InpRrRatio            = 2.0;        // TP = SL * R:R

input group "=== Sizing & Scaling ==="
input double  InpFixedLot           = 0.01;       // Fallback fixed lot
input double  InpMaxLot             = 5.0;        // Hard lot cap
input int     InpMaxConcurrent      = 3;          // Max concurrent positions (pyramid cap)
input int     InpCooldownLosses     = 3;          // Losses before cooldown block

//+------------------------------------------------------------------+
//| GLOBALS                                                          |
//+------------------------------------------------------------------+
CTrade        trade;
CPositionInfo posInfo;
CSymbolInfo   symInfo;
CAccountInfo  accInfo;
COrderInfo    ordInfo;

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

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

الوسوم:ex18037trendfollowpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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