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

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

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

Pipsgrowth EX18001 TrendFollow — Triple EMA stack (fast/main/slow) bias + fast/main cross, wrapped in ADX+ATR-pctile+BB-width regime gate, HTF-EMA confir. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

إكسبرت EX18001 TrendFollow يقرأ السوق من خلال ثلاث متوسطات متحركة أسية متراصّة — سريعة عند 10 وشخصية عند 30 وبطيئة عند 60 — ولا يتصرف إلا حين يتفق الصف بأكمله على الاتجاه. المتوسط 30 يجلس في المنتصف بين 10 و60، فيستعمل الإكسبرت تقاطع السريع مع المتوسط الشخصي كمحفّز قصير المدى، وعلاقة المتوسط الشخصي بالبطيء كتحيّز أطول أفقًا. فلتر التراص الثلاثي هو شرط الدخول الوحيد الذي تعامل معه الاستراتيجية كإلزامي؛ كل ما عداه قابل للضبط.

الإشارة تُحكم بواسطة مصنّف نظام من سبع حالات مبني على ثلاث قراءات مستقلة لنفس شمعة M5H1. مؤشر ADX(50) يبيّن للإكسبرت هل للاتجاه أي قوة حقيقية. مؤشر ATR(14) يُقارن بتاريخ متحرّك من 200 شمعة ويُعبَّر عنه بالنسبة المئوية: القراءات تحت 25% تشير إلى نطاق هادئ، والقراءات فوق 80% تشير إلى مرحلة توسّع. عرض بولنجر باندز(20، 2.0) يُعامل بالطريقة نفسها. معًا تنتج هذه التدفقات سبع تسميات: STRONG_TREND وWEAK_TREND وRANGE وBREAKOUT وCOMPRESS وEXPAND وCHOPPY. يرفض الإكسبرت الدخول حين تكون الشمعة موسومة CHOPPY أو COMPRESS — وهما النظامان اللذان تنتج فيهما تقاطعات المتوسطات المتحركة أكثر الإشارات الكاذبة.

ثلاثة أوضاع للإشارة يمكن اختيارها عبر المدخل InpSignalMode. وضع Cross+Align (الوضع 0) يقبل إما تقاطعًا جديدًا بين السريع والشخصي على الشمعة السابقة، أو توافقًا استمراريًا يكون فيه السريع على الجانب الصحيح من الشخصي بينما الشخصي على الجانب الصحيح من البطيء. وضع Cross Only (الوضع 1) يشترط تقاطعًا فعليًا ويتجاهل التوافقات. وضع Pullback (الوضع 2) ينتظر حتى تُغلق الشمعة ضمن InpPullbackATR (افتراضي 0.5 ATR) من السريع بينما السريع لا يزال فوق الشخصي فوق البطيء — هذا التراجع الكلاسيكي في منتصف الاتجاه. الأوضاع الثلاثة كلها تستخدم المقارنة على الشمعة المغلقة (إزاحة 1 و2) فلا تعيد رسم الإشارة. الدالة TripleMASignal تُرجع قيمة ثقة تتناسب مع بُعد المتوسط الشخصي عن البطيء: تقاطع جديد على بُعد واسع يقرأ 60–100، بينما توافق هادئ يتوقّف عند 80.

ثلاثة فلاتر اختيارية يمكن تشغيلها لتشديد الدخول أكثر. فلتر HTF (InpUseHtfFilter) يطلب أن تُغلق شمعة الإطار الحالي على الجانب الصحيح من متوسط 50 محسوب على الإطار الأعلى المختار في InpHtfPeriod — افتراضي H1، مع أن المدخل يدعم M1 حتى D1. فلتر الميل (InpUseSlopeFilter) يشترط أن يكون البطيء مائلًا في اتجاه الصف وأن يكون الإغلاق على الجانب الصحيح من المتوسط الشخصي. فلتر RSI (InpUseRsiFilter) يحظر الشراء حين يتجاوز مؤشر RSI(14) على الشمعة السابقة InpRsiBuyMax (75.0) والبيع حين يهبط تحت InpRsiSellMin (25.0) — هذا الحاجز الكلاسيكي ضد الإرهاق.

التحجيم ثابت كسري على أساس نقدي حقيقي. يحسب الإكسبرت رأس المال الفعّال كالأصغر بين الرصيد المباشر وInpCapitalCapAmount (حدّ بالدولار الحقيقي لا بالاسمي) في كل تيكة عبر RefreshCapitalState. قيمة InpRiskPercent (0.5% افتراضيًا) من هذا الرأس المال هي ميزانية الدولار لكل صفقة، ثم تحوّلها CalcLots إلى حجم لوت باستخدام قيمة التيك وحجمه المباشرين، مُسوّاةً إلى درجة لوت الوسيط. تحت InpCapitalCapFloor (افتراضي 50 دولار) يتوقف الإكسبرت عن فتح صفقات جديدة لكنه يستمر في إدارة القائمة.

طبقة الخروج تعمل في كل تيكة. عند كل تقييم على شمعة مغلقة، تعيد ManageExits سحب إشارة الـEMA الثلاثية، وإن انعكس الاتجاه تستدعي CloseAt بالوسم "opposite signal exit". ينطلق الخروج القائم على الوقت حين تظل الصفقة مفتوحة لـInpMaxBarsInTrade شمعة (600 افتراضيًا — نحو 50 ساعة من شموع M5). عند InpPartialAtR (2.0 R افتراضيًا) يُغلق الإكسبرت InpPartialFraction (50%) من الصفقة عبر TryClosePartial_EX18001. عند InpBETriggerR (1.5 R) يُنقل وقف الخسارة إلى الدخول مضافًا إليه نصف مستوى الوقف. وحين يبلغ الربح InpTrailStartR (1.0 R) على الأقل، يُحرّك وقف متحرك بمقدار InpTrailingAtrMult × ATR(14) خلف سعر الشراء أو البيع باستخدام ModifySLTP، مع ثلاث محاولات إعادة في حال إعادة التسعير.

تقف بوابة عدم التداول بين تقييم الإشارة وإرسال الأمر. يحظر الإكسبرت الدخول حين يكون قاطع التشغيل في وضع التشغيل، أو حين يكون في وضع التجربة الجافة، أو حين يكون النظام CHOPPY أو COMPRESS، أو حين يكون رأس المال الفعّال تحت الأرضية، أو حين يكون الربح/الخسارة المحقق لليوم قد انخفض بمقدار InpDailyLossLimitPercent (5%)، أو حين انخفضت الخسارة الأسبوعية المتحرّكة بمقدار InpWeeklyLossLimitPercent (10%)، أو حين يكون مؤقّت التهدئة نشطًا، أو حين يصل عدد الصفقات المتزامنة إلى الحد، أو حين تتجاوز متطلبات الهامش الهامش الحر. بعد أن تنجح كل هذه الفحوص، يرفض فلتر InpMinRR (1.2 افتراضيًا) إرسال الأمر إن لم تكن مسافة جني الأرباح المحسوبة 1.2 مرة على الأقل من مسافة وقف الخسارة.

التحصين (Pyramiding) اختياري. مع تشغيل InpPyramidEnabled، يراقب الإكسبرت وجود صفقة قائمة في اتجاه واحد فقط، ويحسب البُعد عن آخر دخول، ويُضيف صفقة جديدة بمجرد أن يتحرك السعر InpPyramidSpacingATR (1.5 ATR) لصالح الصفقة. يُحدّ التحصين عند InpPyramidMaxLevels (3 افتراضيًا). معيار اللياقة المخصص في OnTester — (صافي الربح × عامل الربح) / (1 + نسبة السحب النسبية) — يميل بمختبر الاستراتيجية نحو مجموعات المعطيات التي تجمع بين الربحية والسحب المضبوط.

تغليف التنفيذ لكل إرسال في حلقة إعادة من محاولتين تُعيد المحاولة عند TRADE_RETCODE_REQUOTE أو TRADE_RETCODE_PRICE_CHANGED أو TRADE_RETCODE_TIMEOUT. يتولى Trade.mqh تلقائيًا نمط التعبئة لدى الوسيط. كل دخول وخروج يُسجَّل في السجل بوسم يميّز تصنيف النظام ووضع الإشارة وسلسلة سبب الإشارة — مفيد للتحليل دون اتصال في مختبر استراتيجية MT5.

الحد الأدنى الموصى به للرصيد هو 100 دولار، والمخاطرة الافتراضية 0.5% لكل صفقة، ويستهدف الإكسبرت XAUUSD على M5 أو H1. يعني حد رأس المال وبوابة الخسارة اليومية أن الإكسبرت آمن للتشغيل دون مراقبة، لكن الاستراتيجية لن تنطلق إلا حين يتفق صف الـEMA الثلاثي ومصنّف النظام بسبع حالات والفلاتر المختارة — معظم الشموع لا تنتج أي إشارة أصلًا.

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

تستدعي معالج OnTick أولًا RefreshCapitalState لإعادة حساب رأس المال الفعّال الحقيقي كـmin(الرصيد، InpCapitalCapAmount)، ثم تُشغّل ManageExits على كل صفقة مفتوحة لتحديث الوقوف المتحركة، وتفعيل نقطة التعادل عند 1.5 R، وأخذ جني الأرباح الجزئي عند 2 R، وفحص الإغلاق بسبب الإشارة العكسية أو الوقت. تقييم الإشارة على الشمعة الجديدة يُحكم بواسطة مصنّف نظام يقرأ ADX(50) ونسبة ATR المئوية من 200 شمعة ونسبة عرض بولنجر باندز من 200 شمعة، منتجًا سبع تسميات نظام ورافضًا شموع CHOPPY وCOMPRESS. ثم تقارن دالة TripleMASignal صف الـEMA عند 10/30/60 على الشمعة السابقة مع واحد من ثلاثة أوضاع قابلة للاختيار (Cross+Align، Cross Only، Pullback على بُعد InpPullbackATR من السريع) قبل تطبيق أي فلتر اختياري HTF/ميل/RSI. بعد أن تتحقق CanTradeNew من حدود الخسارة اليومية والأسبوعية وأرضية رأس المال والتهدئة والهامش، يُحجَّم الأمر عبر CalcLots على 0.5% من رأس المال الفعّال ويُرسَل عبر g_trade.Buy أو g_trade.Sell داخل حلقة إعادة من محاولتين. التحصين على بُعد 1.5 ATR اختياري عبر InpPyramidEnabled.

إشارة الدخول

تُقيَّم الإشارات على شموع مغلقة (إزاحة 1 و2) باستخدام صف EMA عند 10/30/60. يتطلب الدخول الطويل أن يكون المتوسط الشخصي فوق البطيء إضافةً إلى تقاطع السريع مع الشخصي على الشمعة السابقة أو توافق استمراري؛ ويجب ألّا يكون النظام CHOPPY أو COMPRESS، ويُرفض الأمر إن كانت مسافة جني الأرباح تحت InpMinRR (1.2). فلاتر HTF-EMA والميل وRSI(14) الاختيارية تشدد المحفّز أكثر. ثلاث أوضاع إشارة — Cross+Align وCross Only وPullback — يمكن اختيارها عبر InpSignalMode.

إشارة الخروج

تنفذ الخروج من أربع مسارات مستقلة في ManageExits. على كل شمعة مغلقة يعيد الإكسبرت سحب الإشارة ويُغلق عبر CloseAt إن انعكس الاتجاه (خروج الإشارة العكسية). ينطلق الإغلاق القائم على الوقت بعد InpMaxBarsInTrade (600 شمعة افتراضيًا). عند InpPartialAtR (2.0 R) تُغلق TryClosePartial_EX18001 ما نسبته InpPartialFraction (50%) من الصفقة. ويتحرّك الباقي خلف السعر باستخدام وقف ثريا بمقدار 2.0× ATR(14) عبر ModifySLTP، مع ثلاث محاولات إعادة عند إعادة التسعير.

وقف الخسارة

وقف الخسارة الأولي = السعر ± (ATR(14) × InpAtrSlMult، افتراضي 1.5) من الدخول، مع احترام مستوى وقف الوسيط وتوسيعه إلى 1.1× عند الحاجة. عند InpBETriggerR (1.5 R) يُنقل الوقف إلى الدخول مضافًا إليه نصف مستوى الوقف. وبعد InpTrailStartR (1.0 R) يتتبّع الوقف السعر عند InpTrailingAtrMult × ATR(14) (افتراضي 2.0×).

جني الأرباح

مسافة جني الأرباح = مسافة وقف الخسارة × InpTpRatio (افتراضي 1.5) — نسبة مكافأة إلى مخاطرة ثابتة 1.5:1 عند الدخول. ينطلق جني الأرباح الكامل عند المستوى المحسوب إن لم يُغلق الصفقة قبل ذلك وقف متحرك أو إشارة عكسية أو خروج قائم على الوقت. يفرض فحص InpMinRR (الحد الأدنى 1.2) رفض الدخول حين تكون النسبة المحسوبة ضيّقة جدًا.

الأنسب لـ

XAUUSD على M5H1، وسيط ECN أو سبريد خام (وقف الخسارة القائم على ATR يحتاج سبريد ضيق ليتجاوز وقف 1.5× مستوى الوقف الأدنى)، وحد أدنى للرصيد 100 دولار (InpCapitalCapFloor افتراضي 50 دولار تحت ذلك، فالمخاطرة الافتراضية 0.5% تُنتج مخاطرة نصف دولار لكل صفقة لا تتناسب إلا فوق 100 دولار). مصنّف النظام بسبع حالات وبوابات الأمان InpDailyLossLimitPercent 5% وInpWeeklyLossLimitPercent 10% تجعله مناسبًا لرسوم M5 دون مراقبة خلال جلستي لندن ونيويورك حيث يميل صف الـEMA عند 10/30/60 إلى الاصطفاف بوضوح.

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

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

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

الوصف: Triple EMA stack (fast/main/slow) bias + fast/main cross, wrapped in ADX+ATR-pctile+BB-width regime gate, HTF-EMA confirmation, capital-allocation cap, fixed-fractional sizing, ATR trailing + break-even + partial TP, news/spread/regime/ daily-loss no-trade gates, broker-portable execution. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

  • MAFast
  • MAMain
  • MASlow
  • ATR
  • ADX
  • BB
  • HTF
  • RSI

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

  • NormPrice()
  • NormVol()
  • StopsLevelPrice()
  • CopyBufSafe()
  • TripleMASignal()
  • ConfirmTrade()
  • CanTradeNew()
  • SpreadAvg()
  • CountMyPositions()
  • CountPositionsOnSymbol()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX18001 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// Triple EMA stack (fast/main/slow) bias + fast/main cross, wrapped in ADX+ATR-pctile+BB-width regime gate, HTF-EMA confirmation, capital-allocation cap, fixed-fractional sizing, ATR trailing + break-even + partial TP, news/spread/regime/ daily-loss no-trade gates, broker-portable execution. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

ON_INIT:
    Create indicator handles: MAFast, MAMain, MASlow, ATR, ADX, BB, HTF, RSI
    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

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

المعاملالافتراضيالوصف
InpTradeComment"Psgrowth.com Expert_18001"Trade comment / EA tag
InpMagic22218001Magic number (per-EA isolation)
InpDryRunfalseDry-run: signal logging only, no sends
InpKillSwitchfalseMaster kill switch (block all new entries)
InpRiskPercent0.5Per-trade risk % of effective capital
InpDailyLossLimitPercent5.0Daily loss limit % of effective capital
InpWeeklyLossLimitPercent10.0Weekly loss limit % of effective capital
InpMaxConcurrentTrades1Max concurrent open trades (this magic)
InpMaxSymbolExposure1Max open trades on same symbol
InpCooldownAfterLosses3Bars cooldown after consecutive losses
InpCapitalCapAmount0.0Real-money equity cap ($, not notional)
InpCapitalCapFloor50.0Below this: block entries, still manage exits
InpFastPeriod10Fast MA period (cross trigger)
InpMainPeriod30Main MA period (cross trigger + SL anchor)
InpSlowPeriod60Slow MA period (trend bias)
InpHtfPeriod8Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Higher-timeframe EMA confirm period
InpAdxThreshold22.0Min ADX main for trend regimes
InpMinRR1.2Minimum reward:risk to take entry
InpAtrSlMult1.5ATR multiple for hard SL distance
InpTpRatio1.5TP = ratio * SL distance
InpTrailingAtrMult2.0ATR trailing distance (0=off)
InpAtrPeriod14ATR period
InpAdxLookback50ADX lookback period
InpBbPeriod20Bollinger Bands period
InpBbDeviation2.0Bollinger Bands deviation
InpHtfEmaPeriod50HTF EMA period
InpRsiPeriod14RSI period for entry filter
InpRsiBuyMax75.0RSI max for buy entries (avoid overbought)
InpRsiSellMin25.0RSI min for sell entries (avoid oversold)
InpUseHtfFilterfalseUse HTF EMA trend confirmation filter
InpUseSlopeFilterfalseUse MA slope confirmation filter
InpUseRsiFilterfalseUse RSI entry filter
InpSignalMode00=Cross+Align, 1=Cross Only, 2=Pullback
InpPullbackATR0.5Pullback max distance in ATR (mode 2)
InpTrailStartR1.0R-multiple to start ATR trailing
InpBETriggerR1.5R-multiple for break-even move
InpPartialAtR2.0R-multiple for partial TP (0=off)
InpPartialFraction0.50Fraction to close at partial TP
InpMaxBarsInTrade600Max bars in trade (0=no time exit)
InpUseOppositeExittrueExit on opposite signal
InpPyramidEnabledfalseEnable pyramiding (add to winners)
InpPyramidSpacingATR1.5ATR spacing between pyramid entries
InpPyramidMaxLevels3Max pyramid additions (0=base only)
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX18001.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX18001 Triple_MA_EA — Triple EMA stack trend-following EA, full 12-layer 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>

//=================== TUNABLE CONSTANTS (not operator inputs) =========
#define ATR_PERIOD           14
#define ATR_PCTILE_LOOKBACK  200   // ATR-percentile lookback
#define ATR_PCTILE_RANGE_LO  25.0  // percentile band: Range < 25
#define ATR_PCTILE_EXPAND_HI 80.0  // percentile band: Expand > 80
#define BB_PERIOD            20
#define BB_DEVIATION         2.0
#define BB_WIDTH_LOOKBACK    200
#define BB_COMPRESS_PCT      20.0
#define BB_EXPAND_PCT        80.0
#define ADX_LOOKBACK         50
#define HTF_EMA_PERIOD       50
#define MA_METHOD_FAST       MODE_EMA
#define MA_METHOD_MAIN       MODE_EMA
#define MA_METHOD_SLOW       MODE_EMA
#define MA_APPLIED           PRICE_CLOSE
#define MAX_TRADE_ATTEMPTS   2
#define SLIPPAGE_RETRIES     1
#define NEWS_WINDOW_SEC      1800   // +/- 30 min around news (manual gate)
#define SPREAD_ROLLING_LOOK  50
#define SPREAD_MAX_MULT      10.0
#define SESSION_START_HOUR   0
#define SESSION_END_HOUR     24
#define COOLDOWN_BARS        5

//=====================================================================
//                            INPUTS (22 total)
//=====================================================================
ENUM_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)
   {

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

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

الوسوم:ex18001trendfollowpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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