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

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

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

Pipsgrowth EX18002 TrendFollow — Tenkan/Kijun cross on CLOSED bar + Ichimoku kumo-side bias + ADX/ATR-percentile/BB-width regime gate + HTF-EMA agreement. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

إكس 18002 Ichi_ATR_EA نظام تتبع اتجاه بدخول واحد يقرأ سحابة إيشيموكو كينكو هيو على الإطار الزمني للعمل ويؤكد كل إشارة عبر المتوسط المتحرك الأسي للإطار الأعلى، ومصنف نظام متعدد المدخلات، ومظروف مخاطر مستمد من ATR. ليست الاستراتيجية قاعدة 'افتح عند التقاطع' العامة. كود الدخول في ComputeSignal() يرفض تقاطع تينكان/كيجون ما لم يكن سعر إغلاق الشمعة المغلقة على الجهة الصحيحة من سحابة كومو المتوقعة (سينكو سبان A مقابل سينكو سبان B عند الشمعة المغلقة). التقاطع الصاعد داخل السحابة أو تحتها لا يُرجع إشارة؛ التقاطع الهابط فوق السحابة يُتجاهل. عند توافق الشرطين، تصل ثقة الدخول إلى 75؛ التقاطع المخالف للسحابة يُنتج اتجاهًا لكن بثقة 50، فيُفضّل المحرك الإعدادات المتوافقة مع السحابة متى أمكن.

طبقة النظام في ComputeRegime() تصنّف السوق إلى سبع حالات (STRONG_TREND وWEAK_TREND وRANGE وBREAKOUT وCOMPRESS وEXPAND وCHOPPY) باستخدام ثلاث إشارات تُقرأ من ADX(14) وATR(14) وBollinger Bands(20, 2.0): مستوى ADX المطلق، ومرتبة النسبة المئوية لـATR الحالي خلال آخر 100 شمعة، وما إذا كان عرض بولينجر في توسع. تُطلق STRONG_TREND عندما يعبر ADX فوق 30؛ وتستخدم WEAK_TREND العتبة القابلة للضبط InpADXThreshold (افتراضي 20.0). تُفعّل COMPRESS عندما ينخفض عرض بولينجر تحت 4% من خط الوسط وغير متوسع. تُطلق BREAKOUT وEXPAND عندما تكون نسبة ATR المئوية فوق 60% والعرضان يتسعان. تُغلق CHOPPY الأبواب بالكامل للدخول عندما يهبط ADX تحت 15. أربع حالات فقط تسمح بفتح مراكز جديدة: STRONG_TREND وWEAK_TREND وBREAKOUT وEXPAND — والباقي يوقف TryEntry() مبكرًا.

خطوة التأكيد في CheckConfirm() تقرأ متوسط EMA(50) للإطار الأعلى على الإطار InpHTF (افتراضي الفهرس 8 الذي يطابق H1) وترفض أي دخول يكون فيه إغلاق الإطار الأعلى على الجانب الخاطئ من ذلك المتوسط. تفرض الدالة نفسها حدًا أدنى لنسبة المخاطرة إلى العائد من خلال InpMinRR (افتراضي 1.5): يحسب المحرك مسافة وقف الخسارة كحاصل ضرب ATR في 1.5 ومسافة جني الأرباح كحاصل ضرب ATR في 2.5، فإذا كانت النتيجة أقل من 1.5 تُهمل الإشارة. تستدعي CalcLots() بعدها لحساب حجم الصفقة بناءً على effective_capital لا على الرصيد الخام: عند ضبط InpCapAmount فوق الصفر، يصبح رأس المال الفعّال هو الأصغر بين الحد المكوّن والرصيد الفعلي للحساب. تحت InpCapFloor (50.0) يرفض المحرك فتح أي شيء على الإطلاق.

يفحص بوابة عدم التداول في CheckNoTrade() قبل كل دخول. تفرض البوابة إغلاق نهاية الأسبوع (السبت/الأحد)، ونافذة من 7 إلى 21 بتوقيت الخادم (جلسة لندن-نيويورك النشطة)، ومرشح سبريد متحرك يقارن السبريد الحالي بمتوسط 50 شمعة ويرفضه بمجرد أن يتجاوز 3.0 ضعف المتوسط، وحد خسارة يومية بنسبة 3% من رأس المال الفعّال، وحد خسارة أسبوعية 6%، وسقف InpMaxConcurrent (افتراضي 1)، ومفتاح إيقاف طارئ، وفحص وسيط صلب (SYMBOL_TRADE_MODE_DISABLED). تتابع OnTradeTransaction() الخسائر المتتالية؛ فور وصول g_consecLosses إلى InpCooldownLosses (افتراضي 3) تضبط مؤقت تبريد لمدة 10 شموع وتمسح العداد.

تعمل الإدارة على كل تك، لا عند شمعة جديدة فقط. تُشغّل ManageOpenPositions() خمس مسارات خروج بالتسلسل. المسار 1 يغلق الصفقة عند انعكاس الإشارة الحالية إلى الاتجاه المعاكس. المسار 2 يغلق بعد 200 شمعة في الصفقة (MAX_BARS_IN_TRADE). المسار 3 يأخذ إغلاقًا جزئيًا بنسبة 50% عند ربح قدره +1R، تاركًا الباقي يتابع. المسار 4 ينقل وقف الخسارة إلى نقطة التعادل — فوق الدخول قليلًا للشراء، وتحت الدخول قليلًا للبيع — فور تحرك السعر +1R. يُفعّل المسار 5 بعد ذلك trailing خالص قائم على ATR: مع تحرك السعر في الربح، يتبع وقف الخسارة عند ATR × InpTrailATRFactor (افتراضي 2.0)، ويتقدم للأمام فقط (لا يتراجع للخلف). يقوم مسار التنفيذ في SendOrder() بفحص مارجين مسبق، ويحترم مسافات stops-level وfreeze-level لدى الوسيط، ويعيد المحاولة مرة واحدة عند TRADE_RETCODE_REQUOTE أو TRADE_RETCODE_TIMEOUT أو TRADE_RETCODE_PRICE_CHANGED بعد سكون 200ms. تقوم دوال المساعدة (TryModify_EX18002 وTryClose_EX18002 وTryClosePartial_EX18002) بمحاولة تصل إلى ثلاث مرات على requote/timeout قبل الاستسلام.

نموذج المخاطرة ثابت الكسر عند 0.5% من رأس المال الفعّال لكل صفقة افتراضيًا (InpRiskPercent). مع وقف 1.5×ATR على XAUUSD M5، تتوافق ميزانية المخاطرة مع كسر لوت صغير على حساب 1,000$. الأثر المشترك لسقف الخسارة اليومي 3%، والسقف الأسبوعي 6%، والخروج الزمني عند 200 شمعة، ونقطة التعادل + التريل على الجانب المفتوح، يُبقي ضرر الصفقة الواحدة في أسوأ الحالات محدودًا: تُغلق أي صفقة معاكسة سواء بوقف الخسارة، أو بالوقت، أو بإشارة معاكسة قبل أن تتفاقم إلى سحب أكبر. صيغة OnTester() هي (صافي الربح × معامل الربح) / (1 + نسبة السحب على الأسهم)، وتطلب 30 صفقة على الأقل قبل أن تُرجع قيمة غير صفرية، فلا يُكافئ المحسن اختبارًا خلفيًا نتج عنه عدد قليل جدًا من الصفقات ليكون ذا معنى.

نظرًا لأن الاستراتيجية تحمل صفقة واحدة في كل مرة وتحترم نافذة الجلسة الصارمة من 7 إلى 21، فإن ملف التعرض المعتاد هو handful من الصفقات أسبوعيًا على الإطار الافتراضي M5 وأكثر قليلًا على M15. يكون InpDryRun صحيحًا افتراضيًا، لذا يسجل الـ EA الأوامر المقصودة في السجل دون إرسالها — اقلبه إلى false بعد تهيئة الحساب المباشر، والرقم السحري، وحد رأس المال للرمز الذي تنوي تداوله.

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

في كل تك، يُحدّث OnTick() معلومات الرمز ويستدعي ComputeSignal() لقراءة تقاطع TK لإيشيموكو وانحياز جهة السحابة، ويمرر النتيجة إلى ManageOpenPositions() حتى يمكن تريل الصفقة القائمة، أو إغلاقها جزئيًا، أو قلبها قبل أن يعمل منطق الشمعة الجديدة. يستدعي عمل الشمعة الجديدة ComputeRegime() لتصنيف السوق إلى إحدى الحالات السبع، ويقرأ رأس المال الفعّال، ثم يُشغّل CheckNoTrade() لتطبيق قواعد الجلسة والسبريد واليومية والأسبوعية ورأس المال والتبريد. تعتبر بوابة النظام ذات الحالات السبع الفلتر المركزي: لا تتقدم إلى ما بعدها سوى STRONG_TREND وWEAK_TREND وBREAKOUT وEXPAND. بعد ذلك تُعيد ComputeSignal() تقييم تقاطع إيشيموكو على الشمعة المغلقة مع تطبيق فحص جهة السحابة فوقه؛ تسحب CheckConfirm() متوسط EMA(50) للإطار الأعلى وتتحقق من نسبة المخاطرة/العائد المستندة إلى ATR؛ تحسب CalcLots() حجم الأمر عند 0.5% من رأس المال الفعّال (مع مراعاة الحد/الأرضية) ويقوم SendOrder() بفحص المارجين المسبق ويرسل الأمر مع إعادة محاولة 200ms عند requote/timeout.

إشارة الدخول

يُفعّل الدخول فقط عند شمعة جديدة من الإطار الزمني للعمل. تنتظر ComputeSignal() تقاطع تينكان/كيجون على الشمعة المغلقة يتفق مع جهة سحابة كومو المتوقعة لإيشيموكو (إغلاق فوق قمة السحابة للشراء، تحت قاعها للبيع). يجب أن يتزامن التقاطع مع نظام من {STRONG_TREND, WEAK_TREND, BREAKOUT, EXPAND}، وتوافق HTF-EMA(50) مع اتجاه الصفقة، ونسبة مخاطرة/عائد لا تقل عن InpMinRR (افتراضي 1.5) بمسافات SL/TP القائمة على ATR(14). تُشغّل بوابات اليومي والأسبوعي والجلسة والسبريد ورأس المال والتبريد في CheckNoTrade() كلها قبل إرسال الأمر.

إشارة الخروج

تُشغّل ManageOpenPositions() عند كل تك وتطبّق خمسة مسارات خروج. المسار 1 يُغلق عند إشارة معاكسة من ComputeSignal(). المسار 2 يُغلق قسريًا بعد MAX_BARS_IN_TRADE (200 شمعة). يُغلق المسار 3 نصف الصفقة عند +1R (PARTIAL_TP_R × PARTIAL_TP_PCT) ويترك الباقي يركض. ينقل المسار 4 وقف الخسارة إلى نقطة التعادل عند +1R. يتبع المسار 5 بعدها وقف الخسارة عند ATR(14) × InpTrailATRFactor (افتراضي 2.0)، ويتقدم للأمام فقط.

وقف الخسارة

وقف الخسارة الابتدائي = ATR(14) × InpATRSLFactor (افتراضي 1.5). في الشراء، SL = الدخول - 1.5×ATR؛ في البيع، SL = الدخول + 1.5×ATR. يُحترم SYMBOL_TRADE_STOPS_LEVEL وSYMBOL_TRADE_FREEZE_LEVEL لدى الوسيط — إذا كان وقف الخسارة سيقع داخل مسافة الـstops يُقيّد للخارج. فور وصول السعر إلى +1R، ترفع ManageOpenPositions() وقف الخسارة إلى نقطة التعادل (الدخول + max(stopsLevel, نقطتان) للشراء، ونفس المقدار تحت الدخول للبيع)، ويبدأ تريل ATR من هناك.

جني الأرباح

جني الأرباح الابتدائي = ATR(14) × InpATRTPFactor (افتراضي 2.5)، ما يعطي نسبة RR تقارب 1.67:1 بحكم البناء مع وقف 1.5×ATR. ترفض CheckConfirm() الدخول من الأساس إذا انخفض tpDist / slDist تحت InpMinRR (1.5). لا يوجد جني أرباح على مستوى السلة — TP حد لكل صفقة على الأمر نفسه. تُضاف طبقة إغلاق جزئي 50% عند +1R فوق TP الثابت من خلال المسار 3 في ManageOpenPositions()، وعادةً ما يتحقق الربح قبل بلوغ TP الكامل.

الأنسب لـ

الحد الأدنى الموصى به للرصيد: 100$ (أرضية الحد الرأسمالي الافتراضية للـ EA هي 50 دولار وينتج عن مخاطرة 0.5% لكل صفقة كسر لوت على حساب صغير). مصمم لـ XAUUSD على M5H1؛ يجعل مرشح الإطار الأعلى الافتراضي عند H1 الاستراتيجية ملائمة للمتداولين الذين يريدون انحياز إيشيموكو داخل اليوم مع فحص توافق الإطار الأعلى. مستوى المخاطرة متوسط بحكم التصميم — 0.5% لكل صفقة، وسقف يومي 3%، وسقف أسبوعي 6%، وصفقة واحدة في كل مرة، وخروج زمني صارم عند 200 شمعة. شغّله على حساب ECN أو RAW spread خلال نافذة 7 إلى 21 بتوقيت الخادم حتى لا يُفرط مرشحو السبريد وstops-level في حجب الدخول. يكون InpDryRun صحيحًا افتراضيًا، ما يعني أن الـ EA يطبع الأوامر المقصودة في السجل دون إرسالها؛ اضبطه على false قبل الانطلاق إلى التداول الحقيقي.

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

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

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

الوصف: Tenkan/Kijun cross on CLOSED bar + Ichimoku kumo-side bias + ADX/ATR-percentile/BB-width regime gate + HTF-EMA agreement + session/spread/no-trade filters + ATR-based SL/TP + break-even/partial-TP/ATR-trail + opposite-signal/regime/ time exits. All sizing off effective_capital (Capital Cap). 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

  • ATR
  • Ichi
  • ADX
  • BB
  • HTFEMA

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

  • NormalizePrice()
  • EffectiveCapital()
  • ClampVolume()
  • StopsLevelPrice()
  • FreezeLevelPrice()
  • NewBar()
  • CopyBufSafe()
  • DailyRealizedPnL()
  • WeeklyRealizedPnL()
  • CalcLots()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX18002 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// Tenkan/Kijun cross on CLOSED bar + Ichimoku kumo-side bias + ADX/ATR-percentile/BB-width regime gate + HTF-EMA agreement + session/spread/no-trade filters + ATR-based SL/TP + break-even/partial-TP/ATR-trail + opposite-signal/regime/ time exits. All sizing off effective_capital (Capital Cap). 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

ON_INIT:
    Create indicator handles: ATR, Ichi, ADX, BB, HTFEMA
    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

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

المعاملالافتراضيالوصف
InpMagic22218002Magic number
InpTradeComment"Psgrowth.com Expert_18002"Trade comment
InpDryRuntrueDry-run (no live orders)
InpKillSwitchfalseKill switch (block all)
InpRiskPercent0.5Risk per trade (% of effective_capital)
InpDailyLossLimit3.0Max daily loss (% of effective_capital)
InpWeeklyLossLimit6.0Max weekly loss (% of effective_capital)
InpMaxConcurrent1Max concurrent trades (this magic/symbol)
InpCooldownLosses3Cooldown after N consecutive losses
InpCapAmount0.0Cap amount (real money $)
InpCapFloor50.0Floor below which entries block
InpTenkan9Tenkan-sen period
InpKijun21Kijun-sen period
InpSenkouB52Senkou Span B period
InpADXThreshold20.0ADX threshold (trend strength)
InpHTF8Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // HTF for trend agreement
InpMinRR1.5Min reward:risk ratio
InpATRSLFactor1.5ATR factor for SL distance
InpATRTPFactor2.5ATR factor for TP distance
InpTrailATRFactor2.0ATR trailing distance factor
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX18002.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX18002 Ichi_ATR_EA — Ichimoku + ATR 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>

//--- non-input tunables (kept out of input surface to respect 12-22 cap)
#define ATR_PERIOD            14      // ATR period (price-distance SL/TP/trail)
#define ADX_PERIOD            14      // ADX period for regime
#define BB_PERIOD             20      // Bollinger period (BB width regime)
#define BB_DEVIATION          2.0     // Bollinger deviation
#define ATRPCT_LOOKBACK       100     // ATR-percentile lookback
#define HTF_EMA_PERIOD        50      // HTF trend EMA period
#define BE_AT_R               1.0     // Break-even trigger at 1R profit
#define PARTIAL_TP_R          1.0     // Partial TP (50%) at 1R
#define PARTIAL_TP_PCT        50      // Partial close percentage
#define MAX_BARS_IN_TRADE     200     // Hard time exit (bars)
#define SPREAD_ROLL_AVG_BARS  50      // Rolling spread average window
#define SPREAD_MAX_MULT       3.0     // Max spread multiple vs rolling avg
#define COOLDOWN_BARS         10      // Bars to cool down after N losses
#define SLIPPAGE_POINTS       30      // Order slippage in points
#define SESSION_START_HOUR    7       // London/NY active session start (server time)
#define SESSION_END_HOUR      21      // London/NY active session end (server time)

//+------------------------------------------------------------------+
//| INPUTS (21 total, grouped)                                       |
//+------------------------------------------------------------------+
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)
   {
      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;

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

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

الوسوم:ex18002trendfollowpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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