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

Pipsgrowth EX16075 Trend — إكسبرت أدفايزر متابعة اتجاه

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

Pipsgrowth EX16075 Trend — Volatility Gaussian Bands breakout EA with adaptive filters. Uses Gaussian-filter bands around price with ATR-based dist. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX16075 Trend هو روبوت تداول يعتمد على الاختراق، يلف حركة السعر حول خط متوسط مُنعَّم بطريقة غاوسية وينتظر حركة تأكيديّة تتجاوز الحزمة. بدلاً من مطاردة ارتدادات الدقيقة M1 أو تكديس المؤشرات في تصويت، يفعل شيئاً واحداً بتأنٍّ: يرسم حزمتين بعرض ATR فوق وتحت مرشح غاوسي بفترة 10 على الإطار الزمني للعمل، ثم يدخل فقط عندما يتجاوز الإغلاق الحزمة على الشمعة نفسها، بشرط أن يكون ميل الحزمة في اتجاه الصفقة وأن يوافق المتوسط المتحرك للإطار الزمني الأعلى على الاتجاه. النتيجة محرك بطيء وانتقائي يفضّل تفويت قمة سريعة على أن يتصدّى لها.

منطق الإشارة مبني حول مؤشر واحد — وهو مقبض iMA(close, 0, MODE_EMA, 10) يسمّيه الروبوت GaussianFilter() رغم أن الاستدعاء الأساسي هو EMA قياسي. الخط الأوسط هو ما يعامله الروبوت فعلاً كسعر منزوع الضوضاء. تُرسم حزمتان عند مضاعف ثابت من ATR(7): العليا = gauss + 0.8 × ATR، والسفلى = gauss − 0.8 × ATR. يتحكم مدخل DistanceMultiplier=0.8 في عرض الحزمة. تُطلق إشارة الشراء عندما يعبر الإغلاق فوق الحزمة العليا (الإغلاق[0] > العليا && الإغلاق[1] < العليا) AND ميل الغاوس للأعلى (gauss[0] > gauss[1]) AND الإغلاق[0] فوق المتوسط المتحرك H4(20) الذي يسحبه الروبوت عبر GetEMA_HTF(). تعكس جهة البيع كل شرط. مدخل MinBreakDistance=0.3 مكشوف لكنه معطّل صراحةً في كود OnTick مع تعليق يفيد بأن فحص المسافة الإضافية الأصلي أُزيل — عبور الحزمة وحده هو البوابة.

موافقة الإطار الزمني الأعلى خيار تصميمي مهم. الروبوت لا يثق باختراق الحزمة وحده؛ يطلب أن يجلس المتوسط المتحرك H4(20) على الجانب الصحيح من السعر. هذا المرشح الواحد هو ما يحوّل النظام من استراتيجية اختراق Bollinger-band عامّة إلى محرك اختراق اتجاهي. ويفسّر أيضاً لماذا الإطار الزمني الافتراضي Timeframe هو 4 (M30): تُرسم الحزم على M30، ويُسحب المتوسط H4 من إطار أعلى، وينتظر الروبوت توافق الاثنين. مدخل TrendFilterTF مكشوف بشكل منفصل عند 6 (H4) وهو الإطار الذي يُسحب منه المتوسط، وليس إطار الإشارة.

تتم الفلترة عبر ثلاث بوابات مستقلة قبل النظر في أي دخول. أولاً، بوابة نطاق التذبذب: يجب أن يكون ATR(7) فوق MinATR=0.04 وتحت MaxATR=0.2 — وATR صغير يعني أن الحزمة ضيّقة جداً والاختراقات ضوضاء؛ وATR ضخم يعني أن الحزمة عريضة لدرجة أن أي إغلاق تقريباً سيعبرها. عند UseAutoFilter=true يستدعي AutoTuneFilters() الذي يقيّس MinATR إلى 1.5× السبريد الحالي بالنقاط، ليتكيّف الروبوت مع منطقة الانتشار لدى الوسيط. ثانياً، بوابة النظام: عند UseADXFilter=true يجب أن يكون خط ADX(7) الرئيسي عند ADXTrendThreshold=20 أو أعلى. ADX دون 20 يعني أن السعر في نطاق، واختراقات الحزمة في نطاق تنعكس. ثالثاً، بوابة السبريد: حظر صارم عند MaxSpreadPoints=12 — إذا كان السبريد المباشر أوسع من 12 نقطة يطبع الروبوت تحذيراً ويرفض الدخول في تلك التيكة. تعمل CheckMaxDrawdown() أيضاً في كل تيك وتوقف الإدخالات الجديدة بمجرد أن يتجاوز سحب حقوق الملكية المفتوحة MaxDrawdownPercent=10%.

إدارة المراكز متعدّدة الطبقات. الوقف الابتدائي هو ATR(7) × ATR_MultiplierSL=1.0 خلف الدخول. جني الأرباح ثابت عند FixedTP_Points=100 نقطة. بعد فتح المركز، تتدخل أربع وحدات إدارية: (1) ExitOnGaussCross=true يغلق الصفقة لحظة عبور الإغلاق فوق خط غاوس الأوسط ضد اتجاه الصفقة؛ (2) UseTrailingStop=true يعيد تثبيت الوقف عند ATR(7) × 1.0 خلف bid/ask الحالي، لكن للأمام فقط — لا يوسّع الوقف أبداً؛ (3) UseBreakeven=true ينقل الوقف إلى الدخول زائد 1 نقطة انزلاق بمجرد أن يقطع السعر 0.8×ATR ربحاً (BreakevenTriggerATR=0.8)؛ (4) EnableDynamicLockProfit=false، عند تفعيله، يدفع الوقف بخطوات 2$ (LockProfitEvery_X_Dollars=2.0) مع عازل 1$ (LockMinusBuffer=1.0)، فيحوّل ربحاً قدره 10$ إلى وقف يقفل نحو 9$. يستخدم تحديد حجم الصفقة معادلة نسبة حقوق الملكية القياسية: عدد العقود = حقوق الملكية × 1% / (مسافة الوقف × قيمة النقطة لكل عقد)، مع تقريب لخطوة حجم الرمز وتقييد بحدود الحجم الأدنى/الأعلى. UseFixedFractionalRisk=true مع RiskPercent=1.0 هو الافتراضي؛ ولا يُفعَّل FixedLots=0.01 إلا عندما يفشل حساب المخاطرة في إنتاج حجم موجب.

تستخدم إدارة الصفقات ثلاث أدوات إعادة محاولة محلّية — TryClose_EX16075 وTryClosePartial_EX16075 وTryModify_EX16075 — تعيد كل منها المحاولة حتى ثلاث مرات عند requote أو timeout أو price-off أو price-changed، مع نوم 100–200 مللي ثانية بين المحاولات. TryClosePartial_EX16075 معرَّفة لكن لا تُستدعى من OnTick (كود ميت، موجود لعمل جزئي مستقبلي). OneTradeOnly=true هو الافتراضي؛ مع MaxOpenTrades=1 يحتفظ الروبوت بمركز واحد لكل رمز. إذا رفع المستخدم MaxOpenTrades فوق 1، تغلق AllowOnlyProfitableAdditions الإدخالات الجديدة خلف AllPositionsHaveMinProfit — يجب أن يُظهر كل مركز مفتوح ربحاً لا يقل عن MinProfitPerTradeToAdd=5$ قبل إضافة طبقة جديدة. تعمل CloseOpposite() قبل كل دخول، لذا فإن انعكاس الإشارة يغلق الصفقة القائمة ويفتح الجديدة في نفس التيكة.

ما يمكن توقّعه في الباك تيست: شمعة الإشارة M30 مع مرشح EMA H4 بطيئة. على شارت رئيسي هادئ أو XAUUSD M5، سيطبع هذا الروبوت حفنة صفقات في اليوم، معظمها في اتجاه الترند السائد H4. الاختراقات التي تحدث ضد H4 EMA تُصفَّى بصمت، لذا يُتوقَّع أن يكون منحنى الأسهم أكثر سلاسة من نظام اختراق الحزمة الصافي لكن مع صفقات أكثر تفويتها. الخروج عند عبور غاوس ميزة مميّزة: يميل إلى إغلاق الصفقات قرب الخط الأوسط قبل الوصول إلى جني الأرباح الثابت عند 100 نقطة، مما يعني أن RR المحقّق عادة دون 1:1 — الصفقة صغيرة ومتكررة، بحجم يجعل حتى الرابحات دون 1R تُركَّب. من يريدون فترات احتفاظ أطول عليهم ضبط ExitOnGaussCross=false والسماح للأتر + جني الأرباح الثابت بحمل الصفقة. AvoidNews=true مربوط بدالة وهمية تُرجع false دائماً؛ مرشح الأخبار مكشوف في المدخلات لكنه لا يفعل شيئاً حتى يطبّق المستخدم تقويماً فعلياً. للنشر الحي، يجب استخدام وسيط ECN بسبريد منخفض لأن بوابة السبريد عند 12 نقطة ستحظر الإدخالات أثناء أحداث التسعير الواسع على حسابات التجزئة.

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

تقرأ كل تيك أربع مقابض مؤشر — iMA(EMA, 10) كخط غاوس الأوسط، iATR(7) لعرض الحزمة وتحديد الحجم، iMA(EMA, 20) على الإطار H4 كمرشح اتجاهي، وiADX(7) كبوابة نظام. يقيّد تدفق OnTick أولاً بثلاث فلاتر: يجب أن يكون ATR بين MinATR=0.04 وMaxATR=0.2، وأن يجتاز ADX عتبة ADXTrendThreshold=20، وألا يتجاوز السبريد المباشر 12 نقطة. إذا اجتازت الثلاثة، يحسب الحزمتين العلويتين/السفليتين كـ gauss ± 0.8 × ATR ويراقب عبور الحزمة في شمعة واحدة مع ميل غاوس وموافقة المتوسط H4 EMA. يُحدَّد حجم العقد من نسبة ثابتة اعتماداً على مسافة الوقف المستندة إلى ATR ومخاطرة 1% من حقوق الملكية قبل إطلاق الدخول، ثم يُعاد تقييم أي مركز مفتوح مقابل الخروج عند عبور غاوس، ووقف trailing المعتمد على ATR، ومحفّز نقطة التعادل عند 0.8 × ATR، وقفل الربح الديناميكي الاختياري بخطوات 2$ (معطّل افتراضياً). إشارة جديدة في الاتجاه المعاكس تغلق الصفقة القائمة أولاً وتفتح العكس في نفس التيكة.

إشارة الدخول

تطلق إشارات الشراء عندما يعبر الإغلاق فوق حزمة غاوس العليا (خط EMA(10) الأوسط + 0.8 × ATR(7)) على الشمعة نفسها، ويكون ميل غاوس صاعداً (الحالي > السابق)، ويكون الإغلاق فوق متوسط H4 EMA(20) الاتجاهي. تعكس إشارات البيع كل شرط مع الحزمة السفلى وميل هابط. يجب أن يكون خط ADX(7) الرئيسي ≥ 20 لتأكيد نظام متّجه، وأن يكون ATR(7) بين 0.04 و0.20، وأن يكون السبريد المباشر ≤ 12 نقطة.

إشارة الخروج

تخرج المراكز عبر ثلاث مُحفِّزات، بالأولوية: إغلاق فوري عندما يعبر الإغلاق خط غاوس الأوسط ضد اتجاه الصفقة (ExitOnGaussCross)، أو وحدة trailing-stop التي تدفع الوقف إلى ATR(7) × 1.0 خلف السعر (للأمام فقط، بلا توسيع)، أو جني الأرباح الثابت عند 100 نقطة. إشارة في الاتجاه المعاكس تستدعي CloseOpposite() وتقلب الصفقة في نفس التيكة.

وقف الخسارة

وقف الخسارة الابتدائي هو ATR(7) × ATR_MultiplierSL=1.0 خلف الدخول. بعد ربح قدره 0.8 × ATR(7) ينتقل الوقف إلى نقطة التعادل زائد 1 نقطة انزلاق. تحافظ وحدة trailing بعد ذلك على الوقف عند ATR(7) × 1.0 خلف bid/ask الحالي، ولا تحرّكه إلا للأمام.

جني الأرباح

جني الأرباح ثابت عند FixedTP_Points=100 نقطة من الدخول على الجهتين. غالباً ما يطلق الخروج عند عبور غاوس قبل جني الأرباح الثابت، لذا فإن نسبة المخاطرة إلى العائد المحقّقة عادة دون 1:1 — الاستراتيجية بحجم يتناسب مع معدل فوز مرتفع وتركيب الأرباح لا مع الرابحات الكبار.

الأنسب لـ

يناسب حساباً بحد أدنى 100$ على وسيط ECN بسبريد منخفض يشغّل XAUUSD M5 (الرمز الموصى به في ترويسة المصدر) أو أي رئيسي FX يظهر ترند H4 نظيفاً. إطار الإشارة M30 مع مرشح H4 EMA يعني أن الاستراتيجية تفضّل الجلسات الاتجاهية السائلة — افتتاح لندن حتى إغلاق نيويورك — وتنتج حفنة صفقات يومياً لا عشرات. MaxDrawdownPercent=10% ومخاطرة 1% لكل صفقة يجعلان هذا EA متوسط المخاطر؛ من يريد صفقات أقل وأكبر عليه تعطيل ExitOnGaussCross والسماح للأتر + جني الأرباح الثابت 100 نقطة بحمل الصفقات أبعد.

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

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

العائلة: Trend الماجيك: 22216075 الإصدار: 2.00

الوصف: Volatility Gaussian Bands breakout EA with adaptive filters. Uses Gaussian-filter bands around price with ATR-based distance for breakout entry, confirmed by EMA trend, ATR volatility, and ADX regime filters. Includes ATR SL, fixed TP, trailing, BE, dynamic profit lock, and fixed-fractional risk sizing

المؤشرات:

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

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

  • GetBuffer()
  • GaussianFilter()
  • GetATR()
  • GetEMA_HTF()
  • GetADX()
  • PositionExists()
  • CloseOpposite()
  • AutoTuneFilters()
  • CheckMaxDrawdown()
  • IsNearNewsEvent()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX16075 Trend — Execution Flow (from source analysis)
// Family: Trend
// Volatility Gaussian Bands breakout EA with adaptive filters. Uses Gaussian-filter bands around price with ATR-based distance for breakout entry, confirmed by EMA trend, ATR volatility, and ADX regime filters. Includes ATR SL, fixed TP, trailing, BE, dynamic profit lock, and fixed-fractional risk sizing

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

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

المعاملالافتراضيالوصف
MagicNumber22216075Magic number
Timeframe4Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Chart timeframe for signals
Length10Gaussian Filter length
DistanceMultiplier0.8Band distance multiplier (applied to ATR)
MinBreakDistance0.3Min distance from band for entry (ATR multiple)
UseAutoFiltertrueAuto-adjust MinATR/BreakDistance (basic)
TrendFilterTF6Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for trend EMA
TrendEMA20Period for trend EMA
ATR_Period7ATR calculation period
MinATR0.04Minimum ATR value to trade (in price units, e.g., 0.04 for EURUSD)
MaxATR0.2Maximum ATR value to trade (0 = disabled)
UseADXFiltertrueEnable ADX trend strength filter
ADXPeriod7ADX calculation period
ADXTrendThreshold20Minimum ADX value to consider trending
OneTradeOnlytrueAllow only one trade open at a time per symbol
MaxOpenTrades1Maximum allowed open trades (if OneTradeOnly=false)
AllowOnlyProfitableAdditionsfalseIf MaxOpenTrades > 1, only add if existing trades are profitable
MinProfitPerTradeToAdd5.0Minimum $ profit required per existing trade to add more
ATR_MultiplierSL1.0ATR multiplier for initial Stop Loss
FixedTP_Points100Fixed Take Profit in points
UseTrailingStoptrueEnable ATR-based trailing stop
UseBreakeventrueEnable move SL to breakeven
BreakevenTriggerATR0.8ATR multiple profit needed to trigger Breakeven
BreakevenSlippagePoints1.0Add points to BE price to cover slippage/spread
EnableDynamicLockProfitfalseEnable dynamic profit locking
LockProfitEvery_X_Dollars2.0Lock profit in steps of this amount ($)
LockMinusBuffer1.0Buffer ($) subtracted from locked profit SL
UseFixedFractionalRisktrueUse % risk calculation for lot size
RiskPercent1.0Risk % of equity per trade (if UseFixedFractionalRisk=true)
FixedLots0.01Fixed lot size (if UseFixedFractionalRisk=false)
MaxDrawdownPercent10.0Max account drawdown % allowed (stops new trades)
MaxSpreadPoints12Max allowed spread in points for entry (0 = disabled)
AvoidNewstruePlaceholder: Avoid trading around news
ExitOnGaussCrosstrueClose trade if price crosses back over Gaussian filter
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16075.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16075 Simple Gen — Gaussian Bands breakout with multi-filter confirmation, full 12-layer stack."
#include <Trade\Trade.mqh>
CTrade trade;

sinput const string GroupIdentity="";//=== Identity ===
input ulong  MagicNumber        = 22216075;  // Magic number
input string InpTradeComment    = "Psgrowth.com Expert_16075";
sinput const string GroupGeneral="";//=== General ===
input int Timeframe = 4; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Chart timeframe for signals

sinput const string GroupEntry="";//=== Entry Logic: Gaussian Bands ===
input int    Length             = 10;        // Gaussian Filter length
input double DistanceMultiplier = 0.8;       // Band distance multiplier (applied to ATR)
input double MinBreakDistance   = 0.3;       // Min distance from band for entry (ATR multiple)
input bool   UseAutoFilter      = true;      // Auto-adjust MinATR/BreakDistance (basic)

sinput const string GroupTrend="";//=== Trend Filter ===
input int TrendFilterTF = 6; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Timeframe for trend EMA
input int    TrendEMA           = 20;       // Period for trend EMA

sinput const string GroupVolatility="";//=== Volatility Filter (ATR) ===
input int    ATR_Period         = 7;        // ATR calculation period
input double MinATR             = 0.04;     // Minimum ATR value to trade (in price units, e.g., 0.04 for EURUSD)
input double MaxATR             = 0.2;      // Maximum ATR value to trade (0 = disabled)

sinput const string GroupADX="";//=== Market Regime Filter (ADX) ===
input bool   UseADXFilter       = true;     // Enable ADX trend strength filter
input int    ADXPeriod          = 7;        // ADX calculation period
input double ADXTrendThreshold  = 20;       // Minimum ADX value to consider trending

sinput const string GroupTradeMgmt="";//=== Trade Management ===
input bool   OneTradeOnly       = true;     // Allow only one trade open at a time per symbol
input int    MaxOpenTrades      = 1;        // Maximum allowed open trades (if OneTradeOnly=false)
input bool   AllowOnlyProfitableAdditions = false; // If MaxOpenTrades > 1, only add if existing trades are profitable
input double MinProfitPerTradeToAdd = 5.0;  // Minimum $ profit required per existing trade to add more

sinput const string GroupSL="";//=== Stop Loss ===
input double ATR_MultiplierSL   = 1.0;      // ATR multiplier for initial Stop Loss

sinput const string GroupTP="";//=== Take Profit ===
input double FixedTP_Points     = 100;      // Fixed Take Profit in points

sinput const string GroupTrailing="";//=== Trailing Stop ===
input bool   UseTrailingStop    = true;     // Enable ATR-based trailing stop

sinput const string GroupBreakeven="";//=== Breakeven ===
input bool   UseBreakeven       = true;     // Enable move SL to breakeven
input double BreakevenTriggerATR = 0.8;     // ATR multiple profit needed to trigger Breakeven
input double BreakevenSlippagePoints = 1.0; // Add points to BE price to cover slippage/spread

sinput const string GroupDynLock="";//=== Dynamic Profit Lock ===
input bool   EnableDynamicLockProfit = false; // Enable dynamic profit locking
input double LockProfitEvery_X_Dollars = 2.0; // Lock profit in steps of this amount ($)
input double LockMinusBuffer         = 1.0;  // Buffer ($) subtracted from locked profit SL

sinput const string GroupRisk="";//=== Risk Management ===

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

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

الوسوم:ex16075trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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