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

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

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

Pipsgrowth EX18089 TrendFollow — Gold scalper using EMA crossover entries filtered by SuperTrend, with ATR-based SL/TP, safe pyramiding and trailing. 12 . إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

EX18089 مستف scalper للذهب يتبع الاتجاه، ولا يُفتح أي صفقة إلا بعد توافق شرطين مستقلين: تقاطع المتوسط المتحرك الأسي لمدة 9 مع المتوسط المتحرك الأسي لمدة 21 على الشمعة المغلقة السابقة من الإطار M5، وقراءة يدوية لمؤشر SuperTrend (الفترة 10، المضاعف 3.0) تشير في الاتجاه نفسه. بوابة الشرطين تعني أن الصفقات لا تُفتح إلا عند توافق التقاطع مع الاتجاه — يُرفض التقاطع الطازج الذي يتعارض مع اتجاه SuperTrend السائد، كما أن انعكاس SuperTrend دون تقاطع طازج في المتوسطات لا يُنتج أي دخول. النتيجة إشارة منخفضة التردد وعالية القناعة، ولا يُتوقع منها أن تُطلق كل شمعة.

حساب SuperTrend مُنفَّذ يدوياً داخل دالة CalculateSuperTrend() بدلاً من الاعتماد على iCustom أو مؤشر مدمج. تُسحب ثلاث مصفوفات في كل استدعاء — القمم والقيعان والإغلاقات لحساب HL2، ومصفوفة ATR(10) لعرض النطاق — ثم تُمشَّى النطاقات عبر آلية ترس تقليدية: يبقى النطاق العلوي عند الحد الأقصى بين النطاق العلوي السابق والنطاق العلوي الأساسي الجديد، ويبقى النطاق السفلي عند الحد الأدنى بين النطاق السفلي السابق والنطاق السفلي الأساسي الجديد، ولا ينعكس الاتجاه (superTrendDirection المخزَّن كـ +1 أو -1) إلا عندما يخترق إغلاق الشمعة السابقة أحد النطاقين. ولأن الترس يعتمد على حالة الشمعة السابقة، يُقيَّد الحساب عمداً بتيكات الشمعة الجديدة: تتحقق OnTick() من IsNewBar() ولا تستدعي RefreshIndicators() وCalculateSuperTrend() إلا عند تغير الشمعة. تشغيل الترس على كل تيك سيُفسد العودية — حالة النطاق السابق محفوظة في متغيرات static double prevUpper وprevLower وstatic int prevDir.

كل من وقف الخسارة الأولي وجني الأرباح الأولي يُقيَّسان بمضاعفات ATR(10) لحظة الدخول. تقرأ OpenPosition() قيمة currentATR (التي تُحدَّث على الشمعة الجديدة) وتطبق StopLossATRMult = 2 وTakeProfitATRMult = 4، فتنتج نسبة مخاطرة إلى عائد قدرها 1:2 لكل صفقة افتراضياً. يُرسل أمر الشراء عند سعر ASK مع SL = ASK − 2×ATR وTP = ASK + 4×ATR؛ ويُعكس ذلك في البيع. قيمة ATR نفسها تحرك عرض نطاق SuperTrend، ومسافات الدعائم، ومسافة التريل، فتتحرك الطبقات الثلاث معاً بتماسك مع تقلبات السوق — أي تحول في النظام يضبط كل طبقة من طبقات النظام في وقت واحد.

يُعد بناء الهرم (Pyramiding) الجزء الأكثر صرامة في التصميم. MaxPyramidLevels = 5 الافتراضي يسمح بما يصل إلى 5 مراكز في الاتجاه نفسه على الرقم السحري ذاته، لكن البوابة التي يجب أن تنجح قبل كل إضافة جديدة مشددة بشكل غير معتاد. أولاً، تمشي AllPositionsSecured(SecureProfitPoints = 200) على كل مركز قائم بنفس الرقم السحري وتؤكد أن وقف الخسارة الحالي يجلس على بعد 200 نقطة على الأقل من سعر الفتح في الاتجاه المواتي — أي أن كل مركز قد قفل وقفه في الربح بمقدار 20 نقطة، ولا يوجد مركز لا يزال يعمل على وقفه الأصلي 2×ATR. ثانياً، تتطلب CheckPyramidOpportunity() أن يكون آخر مركز تم فتحه بنفس الرقم السحري في ربح لا يقل عن MinProfitForAdd = 30 نقطة. لا تُضاف الطبقة الخامسة إلا بعد نجاح الفحصين. حجم كل مستوى هرمي هو GetBaseLot() * PyramidSizeMultiplier، حيث PyramidSizeMultiplier = 1.0 افتراضياً، فعادةً ما تكون المستويات الخمسة بنفس الحجم. يجلس أمان MaxDrawdownPercent = 5.0 اليومي فوق كل ذلك كحاجز نهائي.

يعمل التريل على كل تيك من داخل ManageTrailingStops(). مسافة التريل هي currentATR * 1.5 من السعر الحالي، ولا يُحرَّك وقف الخسارة إلا في الاتجاه المواتي — الدالة ترس أحادي الاتجاه بلا قاعدة شد ولا خطوة تعادل. مستوى جني الأرباح الذي وُضع عند الدخول لا تُعدِّلها دالة التريل أبداً. تُغلق المراكز إما عند هدفها الأصلي 4×ATR، أو عند تقاطع عكسي في المتوسطات (يستدعي CloseAllPositions() ويُنهي السلة بأكملها بصرف النظر عن عدد مستويات الهرم)، أو عند تفعيل وقف الخسارة من جهة الخادم. لا يوجد إغلاق جزئي، ولا ترس تعادل، ولا خروج مبني على الوقت داخل الكود.

يستخدم تحديد حجم المخاطرة الصيغة الصحيحة لقيمة التيك، لا تقريباً تقريبياً. تقرأ GetBaseLot() SYMBOL_TRADE_TICK_SIZE وSYMBOL_TRADE_TICK_VALUE من الرمز، وتحسب خسارة اللوت الواحد عند مسافة وقف 2×ATR، وتقسم المخاطرة الدولارية (1% من الرصيد) على تلك الخسارة للحصول على حجم اللوت. يُقرَّب الناتج إلى SYMBOL_VOLUME_STEP ويُقص إلى SYMBOL_VOLUME_MIN. مع UseMoneyManagement = false يرجع اللوت إلى FixedLotSize = 0.01. مرشح السبريد سطر واحد داخل OpenPosition(): يحوِّل السبريد الحالي بالنقاط إلى نقاط سعرية عبر GetPipSize() ويرفض الدخول إذا تجاوز MaxSpreadPips = 3.0 — مناسب للذهب حيث قد تتجاوز الفروق أسعار العملات الرئيسية.

لا توجد دالة OnTester، ولا مرشح أخبار، ولا فلتر جلسة حسب الوقت، ولا لوحة معلومات على الشارت. المستشار سيتداول عبر جلسات طوكيو ولندن ونيويورك بنفس القدر، ولا يوجد قاتل تلقائي للأخبار. أغلفة إعادة المحاولة الثلاث (TryClose_EX18089، TryClosePartial_EX18089، TryModify_EX18089) تتعامل مع ردود REQUOTE وTIMEOUT وPRICE_OFF وPRICE_CHANGED مع سكون 200 مللي ثانية أو 100 مللي ثانية قبل الاستسلام. وضع التعبئة FOK داخل OnInit(). مع رصيد بداية 100 دولار، ومخاطرة 1% لكل صفقة، و5 مستويات هرمية تُفتح جميعها على أرباح 30 نقطة، يفترض المستشار حداً أدنى قدره 150 نقطة من الحركة المواتية على الذهب لتحميل الهرم بالكامل — هامش وسيط أضيق أو أكثر حذراً قد لا يصمد أمام شمعة M5 معاكسة واحدة. يجب إجراء الاختبار الخلفي بوضع Every tick based on real ticks لالتقاط بوابة الشمعة الجديدة بدقة؛ لا يمكن استنساخ حالة SuperTrend القائمة على الشموع في وضع Open prices only.

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

يُجدِّد المستشار مؤشرات handles الثلاثة — EMA(9) وEMA(21) وATR(10) — فقط عند شمعة M5 جديدة، وهو اختيار مقصود للحفاظ على حالة عودية SuperTrend عبر التيكات. يجب أن تحمل المتغيرات static double prevUpper وprevLower وstatic int prevDir داخل CalculateSuperTrend() منطق الترس من شمعة إلى أخرى؛ تشغيل إعادة الحساب على كل تيك سيُفسد العودية. يتطلب الدخول شرطين متزامنين: أن يكون تقاطع المتوسطات قد وقع على الشمعة المغلقة، وأن يتفق اتجاه SuperTrend، مع عمل مرشح السبريد 3 نقاط كبوابة نهائية داخل OpenPosition(). بوابة الهرم هي الأكثر صرامة في التصميم — تؤكد AllPositionsSecured(200) أن كل مركز قائم بنفس الرقم السحري قد نُقل وقفه إلى 200 نقطة على الأقل في الربح، ثم تتطلب CheckPyramidOpportunity() أن يكون آخر مركز في ربح 30 نقطة، قبل أن يُسمح بإضافة المستوى الخامس. يعمل التريل كل تيك عند 1.5×ATR(10)، أحادي الاتجاه فقط، ويجلس أمان السحب اليومي 5% في MaxDrawdownPercent كحاجز نهائي. لا يوجد مرشح أخبار، ولا فلتر جلسة، ولا وقف زمني، ولا دالة OnTester — المستشار يتداول أي شمعة M5 يتفق فيها التقاطع والاتجاه، على مدار 24 ساعة و5 أيام.

إشارة الدخول

تتطلب صفقات الشراء تقاطع المتوسط السريع EMA(9) فوق المتوسط البطيء EMA(21) على الشمعة المغلقة السابقة من M5، وأن يكون اتجاه SuperTrend = +1 (صاعد، الفترة 10، المضاعف 3.0). تُعكَس الشروط لصفقات البيع. بوابة الشرطين صارمة — التقاطع دون توافق الاتجاه، أو الاتجاه دون تقاطع طازج، لا يُنتج إشارة. يعمل مرشح السبريط 3 نقاط داخل OpenPosition() ويمنع الدخول عندما يتجاوز سبريد الذهب الحد.

إشارة الخروج

التقاطس العكسي في المتوسطات على الشمعة المغلقة يستدعي CloseAllPositions() ويُنهي السلة بأكملها بما في ذلك مستويات الهرم الخمسة. يُحرِّك التريل وقف الخسارة إلى السعر ± 1.5×ATR(10) كل تيك بمجرد أن يتحرك السعر بأكثر من 1.5×ATR بعد الفتح في الاتجاه المواتي، دون أن يُرخي أبداً. تُغلق المراكز أيضاً عند هدفها الأصلي 4×ATR أو عند تفعيل الوقف من جهة الخادم.

وقف الخسارة

وقف الخسارة الأولي هو 2×ATR(10) من سعر الدخول، يُحسب لحظة فتح الأمر ويُرسل معه. تُحرِّك ManageTrailingStops() وقف الخسارة إلى السعر −/+ 1.5×ATR(10) كل تيك بمجرد أن يتحرك السعر بأكثر من 1.5×ATR بعد الفتح — ترس أحادي الاتجاه لا يُرخي أبداً ولا يُعدِّل جني الأرباح. يجلس أمان السحب اليومي البالغ 5% فوق كل ذلك كحاجز نهائي.

جني الأرباح

جني الأرباح الأولي هو 4×ATR(10) من سعر الدخول، بنسبة مخاطرة إلى عائد 1:2 لكل صفقة. لا تُعدِّل دالة التريل جني الأرباح أبداً — يُحدَّد مرة واحدة عند الفتح ولا يتغير إلا بتعبئة من جهة الخادم أو إغلاق السلة بإشارة عكسية صريحة. يحمل كل مستوى هرمي جني أرباح 4×ATR(10) الخاص به، يُحدَّد لحظة فتح ذلك المستوى.

الأنسب لـ

الحد الأدنى للرصيد الموصى به هو 100 دولار، تماشياً مع الافتراضي 1% مخاطرة لكل صفقة، لكن نسبة 1:2 R:R للذهب لكل صفقة والهرم المكون من 5 مستويات تعني أن 300–500 دولار يمنح المكدس هامشاً كافياً لتحميل الهرم فعلياً في اتجاه واحد. الأنسب على XAUUSD M5 مع وسيط ذهبي بسبريد منخفض (ECN/RAW بسبريد ذهب نموذجي أقل من 0.30 دولار) — مرشح السبريد 3 نقاط مناسب للذهب لكنه سيمنع الدخول خلال ارتفاعات الأخبار. يجب أن يكون وضع التعبئة FOK لأن المستشار يُثبِّت SetTypeFilling(ORDER_FILLING_FOK) داخل OnInit(). لا يُطبَّق فلتر جلسة، لذا يتداول المستشار عبر جلسات لندن ونيويورك وطوكيو بنفس القدر — توقع تقاطعات كاذبة أكثر في الساعات منخفضة الحجم في طوكيو وفضِّل وقفاً أوسع في تلك النافذة.

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

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

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

الوصف: Gold scalper using EMA crossover entries filtered by SuperTrend, with ATR-based SL/TP, safe pyramiding and trailing. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • CalculateSuperTrend()
  • OpenPosition()
  • GetBaseLot()
  • AllPositionsSecured()
  • CheckPyramidOpportunity()
  • ManageTrailingStops()
  • CloseAllPositions()
  • IsReverseSignal()
  • CountPositions()
  • IsNewBar()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX18089 TrendFollow — Execution Flow (from source analysis)
// Family: TrendFollow
// Gold scalper using EMA crossover entries filtered by SuperTrend, with ATR-based SL/TP, safe pyramiding and trailing. 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

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

المعاملالافتراضيالوصف
RiskPercent1.0Risk % per trade
MaxDrawdownPercent5.0Daily Max Drawdown % (Safety)
StopLossATRMult2Initial SL = ATR * Mult
TakeProfitATRMult4TP = ATR * Mult
MaxPyramidLevels5aggressive pyramiding for gold
MinProfitForAdd30Pips profit before adding
SecureProfitPoints200Points (not pips) profit SL must be secured by (20 pips)
MinEntryDistance40Pips distance between entries
PyramidSizeMultiplier1.0Add same size or scale down
MaxSpreadPips3.0Gold spread can be higher
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX18089.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX18089 Gold EMA SuperTrend — EMA crossover + SuperTrend gold scalper, full 12-layer stack."
#include <Trade\Trade.mqh>

input group "=== Identity ==="
input string InpTradeComment  = "Psgrowth.com Expert_18089";

input group "=== Risk Management ==="
input bool   UseMoneyManagement = true;
input double RiskPercent        = 1.0;       // Risk % per trade
input double FixedLotSize       = 0.01;
input double MaxDrawdownPercent = 5.0;       // Daily Max Drawdown % (Safety)

input group "=== Strategy Settings ==="
input int    FastEMAPeriod      = 9;
input int    SlowEMAPeriod      = 21;
input ENUM_MA_METHOD MAMethod   = MODE_EMA;
input int    SuperTrendPeriod   = 10;
input double SuperTrendMulti    = 3.0;

input group "=== Trade Settings ==="
input int    StopLossATRMult    = 2;         // Initial SL = ATR * Mult
input int    TakeProfitATRMult  = 4;         // TP = ATR * Mult
input int    Slippage           = 5;
input int    MagicNumber        = 22218089;

input group "=== Pyramiding Settings ==="
input bool   UsePyramiding         = true;
input int    MaxPyramidLevels      = 5;       // aggressive pyramiding for gold
input int    MinProfitForAdd       = 30;      // Pips profit before adding
input int    SecureProfitPoints    = 200;     // Points (not pips) profit SL must be secured by (20 pips)
input int    MinEntryDistance      = 40;      // Pips distance between entries
input double PyramidSizeMultiplier = 1.0;     // Add same size or scale down

input group "=== Filters ==="
input bool   UseSpreadFilter    = true;
input double MaxSpreadPips      = 3.0;       // Gold spread can be higher

CTrade trade;
int handleFastMA, handleSlowMA, handleATR;
double currentATR;
double superTrendUp = 0, superTrendDown = 0;
int superTrendDirection = 0; // 1 = Up, -1 = Down

// Global buffers for SuperTrend calculation
double atrBuffer[];
double highBuffer[], lowBuffer[], closeBuffer[];

int OnInit()
{
   handleFastMA = iMA(_Symbol, _Period, FastEMAPeriod, 0, MAMethod, PRICE_CLOSE);
   handleSlowMA = iMA(_Symbol, _Period, SlowEMAPeriod, 0, MAMethod, PRICE_CLOSE);
   handleATR    = iATR(_Symbol, _Period, SuperTrendPeriod); // Use ST period for ATR
   
   if(handleFastMA == INVALID_HANDLE || handleSlowMA == INVALID_HANDLE || handleATR == INVALID_HANDLE)
      return(INIT_FAILED);
      

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

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

الوسوم:ex18089trendfollowpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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