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

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

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

Pipsgrowth EX16007 Trend — Gold Scalping EA trading bounces off calculated support/resistance zones. Detects S/R levels from recent price action an. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX16007 هو مستشار خبير (EA) لزوج XAUUSD على الإطار الزمني M15، يتداول ارتدادات (bounces) من مستويات الدعم والمقاومة المحسوبة هندسياً. بدلاً من الاعتماد على مؤشرات التذبذب أو المتوسطات المتحركة لتحديد الاتجاه، يبني هذا الـ EA مناطقه من حركة السعر الخام: يمشي عبر آخر 50 شمعة M15، ويجد أعلى قمة وأدنى قاع، ويعدّ كم من قمم الشموع اللاحقة تتجمع في نطاق 10 نقاط من تلك القمة (وكم من قيعان الشموع تتجمع في نطاق 10 نقاط من القاع). لا تصبح المنطقة قابلة للتداول إلا بعد أن يصل هذا التجمع إلى لمستين أو أكثر؛ هذا الحد الأدنى من التأكيد هو ما يمنع كل قمة أو قاع ثانوي من أن يُعتبر مستوى حقيقياً. تُخزَّن مستويات المقاومة والدعم المؤكدة كثوابت على مستوى الوحدة (module-level) ويتم تحديثها عند بداية كل شمعة M15 جديدة.

يقع منطق الدخول في الدالة GetSRSignal(). عند كل شمعة جديدة، يقرأ الـ EA سعر إغلاق الشمعة 1 وسعر إغلاق الشمعة 2. تُفعَّل إشارة الشراء عندما يكون مستوى الدعم المؤكد غير صفري، AND عندما تكون المسافة بين إغلاق الشمعة 1 ومستوى الدعم أقل من 10 نقاط (تفاوت المنطقة) AND عندما أغلقت الشمعة 1 أعلى من الشمعة 2 — وهي حالة ارتداد بسيطة تتطلب شمعة انعكاس صاعدة حقيقية، وليس مجرد لمسة للخط. تعكس إشارة البيع نفس الشرط على مستوى المقاومة. لا يوجد مرشح ADX، ولا مرشح RSI، ولا انحياز اتجاهي — الإشارة هي اختبار القرب الهندسي بالإضافة إلى فحص الإغلاق فوق الإغلاق، مما يجعل الـ EA سريع الاستجابة لكنه يعتمد على مجموعات S/R نظيفة ومنتقاة.

يرتبط تحديد وقف الخسارة في OpenPosition() بمستوى S/R الذي تسبب في الصفقة، وليس بمسافة ثابتة من سعر الدخول. للشراء، يحسب الـ EA slPrice = supportLevel - 15 * pipSize — يضع الوقف 15 نقطة تحت منطقة الدعم، بحيث يكسر الدعم النظيف الصفقة. للبيع، يجلس الوقف 15 نقطة فوق المقاومة. يفرض الكود بعد ذلك الحد الأدنى الآمن للوسيط بأخذ max(slDist, minDist * 1.5) حيث يُشتق minDist من SYMBOL_TRADE_STOPS_LEVEL. إذا كانت المسافة المحسوبة أقل من هذا الحد الأدنى، يُدفع الـ SL بعيداً للامتثال — وهو نفس نمط الحماية الدفاعية الذي يظهر في عائلة EX16.

يستهدف جني الأرباح مستوى S/R المعاكس. يُعيَّن جني الأرباح للشراء عند مستوى المقاومة، وللبيع عند مستوى الدعم. إذا كان المستوى المعاكس قريباً جداً من السعر الحالي (أقل من minDist * 1.5)، يلجأ الـ EA إلى نسبة مخاطرة إلى مكافأة 2:1: tpPrice = price +/- slDist * 2. ينتج عن هذا RR 1:2 افتراضياً وجني أرباح متغير عندما يكون النطاق عريضاً بما يكفي لدعمه. يُرفق كل من SL وTP على جانب الوسيط عند إدخال الأمر ولا يُعدَّلان بعد ذلك.

تستخدم طبقة المخاطر وإدارة الأموال صيغة CalculatePositionSize(): lots = (balance * RiskPercent/100) / (slPips * pipValuePerLot). تُشتق قيمة النقطة لكل لوت من SYMBOL_TRADE_TICK_VALUE / SYMBOL_TRADE_TICK_SIZE * pipSize (حيث تُرجع pipSize القيمة _Point * 10 للرموز ذات 3 و5 أرقام، أو _Point الخام بخلاف ذلك — نفس التعديل الخاص بـ XAUUSD كما في بقية العائلة). تُقرَّب اللوتات إلى SYMBOL_VOLUME_STEP، وتُقيَّد بين SYMBOL_VOLUME_MIN وSYMBOL_VOLUME_MAX. مع الإعدادات الافتراضية لـ RiskPercent = 2.0 ووقف خسارة 15 نقطة على XAUUSD، تخاطر حساب بـ 1000 دولار بمبلغ 20 دولاراً لكل صفقة. يُفعَّل خيار FixedLotSize = 0.01 الاحتياطي عند إيقاف تشغيل UseMoneyManagement.

حزمة التنفيذ ضيقة عن قصد. تُحكَم دالة OnTick() بواسطة IsNewBar() على M15 — تمريرة قرار واحدة فقط لكل شمعة جديدة. تنسخ RefreshIndicators() أحدث قيمة لـ iATR(PERIOD_M15, 14)، تُستخدم كسياق تقلب لكل صفقة لفحوصات الانتشار إلى ATR، على الرغم من أن ATR لا يُستخدم في صيغة SL. يفرض CheckFilters() حداً أقصى للانتشار قدره 25 نقطة عند UseSpreadFilter = true. يحظر CountPositions() >= 1 أي دخول جديد بينما لا تزال هناك صفقة مفتوحة، مما يفرض انضباط المركز الواحد لكل رمز ولكل magic 22216007. تعني قاعدة المركز الواحد أن الـ EA لا يُضارب (pyramiding)، ولا يبني شبكة (grid)، ولا يوسط — إنه نموذج ارتداد نظيف لتداول واحد في كل مرة.

الإدارة بسيطة إلى أقصى حد. يُعرِّف الـ EA مساعد SafePositionModify() يتحقق من مسافات SL/TP الجديدة مقابل SYMBOL_TRADE_STOPS_LEVEL، ويُطبِّع إلى _Digits، ويرفض وضع SL على الجانب الخاطئ من السعر، ويرفض وضع TP على الجانب الخاطئ. لكن لا شيء في المسار المباشر يستدعيه فعلياً بعد الدخول: لا توجد خطوة تعادل (break-even)، ولا trailing stop، ولا إغلاق جزئي، ولا خروج قائم على الوقت، ولا خروج قائم على إشارة عكسية. تُغلق المراكز فقط عند ضرب SL أو TP، مما يجعل هندسة SL/TP بالغة الأهمية — إذا أخطأت في تحديد المنطقة، فلا توجد إدارة لإنقاذ الصفقة. يُحرر OnDeinit() مقبض ATR.

تستخدم طبقة مرونة تنفيذ الأوامر ثلاثة مساعدات إعادة المحاولة — TryClose_EX16007 وTryClosePartial_EX16007 وTryModify_EX16007 — كل منها يحاول ما يصل إلى 3 استدعاءات على REQUOTE / TIMEOUT / PRICE_OFF / PRICE_CHANGED، مع فترات سكون 200ms للإغلاق/الجزئي و100ms للتعديل بين المحاولات. تُربط هذه المساعدات في SafePositionModify() وتُتاح لأي مستدعٍ خارجي، ولكن نظراً لأن الـ EA لا يعدّل المراكز فعلياً بعد الدخول، فإن المسار المباشر الوحيد الذي يستفيد من هذه المرونة هو إرفاق TP/SL لمرة واحدة عند إدخال الأمر من خلال trade.Buy() / trade.Sell(). يتم استكشاف وضع التعبئة تلقائياً عبر GetAllowedFilling() (يُفضَّل FOK، ثم IOC، ثم RETURN)، ويُحدد trade.SetDeviationInPoints(Slippage=3) حد الانزلاق في أوامر السوق.

تحافظ مجموعات المدخلات الخمسة — إدارة المخاطر، إعدادات S/R، إعدادات التداول، والمرشحات — على التكوين مضغوطاً. المعاملات القابلة للتعديل هي LookbackBars = 50 (مدى ابتعاد الـ EA للبحث عن قمم التذبذب)، وZonePips = 10 (تفاوت التجمع)، وTouchConfirm = 2 (الحد الأدنى من اللمسات للتحقق من المستوى)، وStopLossPips = 15 (حاجز SL بعد مستوى S/R)، وRiskPercent = 2.0 / FixedLotSize = 0.01 (مبدل الحجم)، وMaxSpreadPips = 25.0 (مرشح الدخول). يحدد الرقم السحري 22216007 وتعليق التداول Psgrowth.com Expert_16007 أوامر الـ EA في سجل الحساب.

ما يُظهره الاختبار الخلفي (backtest): يُطلق الـ EA فقط على الشموع التي تُغلق داخل منطقة 10 نقاط لمستوى S/R مؤكد، مما قد ينتج عنه handful من الصفقات أسبوعياً في الأسواق ذات الاتجاه، بينما قد يُنتج إشارة أو اثنتين يومياً في جلسات XAUUSD M15 النطاقية. يعني غياب أي تعادل أو trailing أو إغلاق جزئي أن كل صفقة هي نتيجة ثنائية SL أو TP: مخاطرة 15 نقطة على جانب المستوى المكسور، ومكافأة 2:1 نحو المستوى المعاكس (أو نحو أي حد S/R تكشفه الهندسة). نظراً لأن SL يُوضع بعد مستوى S/R، فإن الاختراقات الكاذبة التي تخترق المنطقة بـ 5-10 نقاط ستظل تُوقَف عند SL — لا يحاول الـ EA ركوب إعادة الدخول بعد فتيل، بل يقبل الخسارة وينتظر الارتداد المؤكد التالي. تناسب الاستراتيجية المتداولين الذين يفكرون بالفعل في قنوات S/R ويريدون من الـ EA أن يكتشف وينفذ الارتدادات ميكانيكياً، بدلاً من المتداولين الذين يتوقعون إدارة تكيفية للصفقات.

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

عند كل شمعة M15 جديدة، تستدعي OnTick() الدالة RefreshIndicators() لنسخ أحدث قيمة لـ iATR(PERIOD_M15, 14)، ثم تمشي CalculateSRLevels() عبر الشموع 1-50، وتتعقب أعلى قمة وأدنى قاع، وتزيد عداد اللمسات عندما يقع ارتفاع/انخفاض كل شمعة في نطاق 10 نقاط من القيمة المتطرفة الجارية — لا يتأكد المستوى إلا عندما يتجاوز عدد اللمسات TouchConfirm = 2. تقرأ GetSRSignal() بعد ذلك إغلاق الشمعة 1 وإغلاق الشمعة 2: يُفعَّل الشراء إذا جلس الإغلاق داخل منطقة الدعم AND أغلق أعلى من الشمعة 2 (ارتداد نظيف)، وتعكس البيع على المقاومة. يفرض CheckFilters() حداً أقصى للانتشار قدره 25 نقطة عند تشغيل UseSpreadFilter، ويحظر CountPositions() >= 1 الإدخالات الجديدة بينما لا تزال هناك صفقة مفتوحة، مما يفرض انضباط المركز الواحد. تُثبِّت OpenPosition() الوقف 15 نقطة بعد مستوى S/R الذي تسبب في الصفقة وتشير TP إلى مستوى S/R المعاكس (مع احتياطي 2:1 RR). تحاول جميع مساعدات إعادة المحاولة الثلاثة (TryClose_EX16007 وTryClosePartial_EX16007 وTryModify_EX16007) ما يصل إلى 3 استدعاءات على REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED مع فترات سكون 100-200ms؛ يتم استكشاف وضع التعبئة تلقائياً (FOK > IOC > RETURN) ويحدد Slippage = 3 حد انزلاق أوامر السوق.

إشارة الدخول

يتداول الارتدادات من مستويات الدعم والمقاومة المحسوبة هندسياً. عند كل شمعة M15 جديدة، يمسح الـ EA آخر 50 شمعة، ويحدد أعلى قمة (مقاومة) وأدنى قاع (دعم) حيث تتجمع لمستان على الأقل من قمم/قيعان الشموع في نطاق 10 نقاط. تُفعَّل إشارة الشراء عندما تُغلق الشمعة 1 داخل 10 نقاط من مستوى الدعم المؤكد AND تُغلق أعلى من الشمعة 2 (شمعة انعكاس صاعدة). تعكس إشارة البيع نفس الشرط على المقاومة.

إشارة الخروج

تخرج المراكز فقط عبر SL أو TP على جانب الوسيط. لا يوجد trailing stop، ولا خطوة تعادل، ولا إغلاق جزئي، ولا خروج قائم على الوقت، ولا إغلاق قائم على إشارة عكسية. يستهدف جني الأرباح مستوى S/R المعاكس (المقاومة للشراء، الدعم للبيع)، أو يلجأ إلى ضعف مسافة SL إذا كان المستوى المعاكس قريباً جداً من سعر الدخول.

وقف الخسارة

للشراء، SL = مستوى الدعم - 15 نقطة (يُوضع 15 نقطة تحت منطقة الدعم). للبيع، SL = مستوى المقاومة + 15 نقطة. يفرض الكود حداً أدنى آمناً للوسيط عبر max(slDist, minDist * 1.5) حيث يُشتق minDist من SYMBOL_TRADE_STOPS_LEVEL. يُرفق SL عند إدخال الأمر ولا يُعدَّل.

جني الأرباح

يستهدف TP مستوى S/R المعاكس (المقاومة للشراء، الدعم للبيع). إذا كان المستوى المعاكس أقرب من minDist * 1.5 للسعر الحالي، يلجأ TP إلى ضعف مسافة SL (RR 1:2). يُرفق TP عند إدخال الأمر ولا يُعدَّل.

الأنسب لـ

متداولو الذهب على XAUUSD M15 الذين يديرون حساباً بـ 100 دولار أو أكثر على وسيط ECN/RAW منخفض الانتشار (حد أقصى للانتشار 25 نقطة). يناسب المتداولين الذين يفكرون بالفعل في قنوات S/R هندسية ويريدون من الـ EA أن يكتشف وينفذ ارتدادات المنطقة بانضباط مركز واحد نظيف. يُنشر بشكل أفضل خلال جلسة لندن وتداخل لندن-نيويورك عندما يكون XAUUSD أكثر نشاطاً في النطاق على M15. مستوى المخاطرة: متوسط عند المخاطرة الافتراضية البالغة 2% لكل صفقة.

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

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

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

الوصف: Gold Scalping EA trading bounces off calculated support/resistance zones. Detects S/R levels from recent price action and enters on bounces with ATR-based stops. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • SafePositionModify()
  • CalculateSRLevels()
  • RefreshIndicators()
  • GetSRSignal()
  • OpenPosition()
  • CalculatePositionSize()
  • IsNewBar()
  • GetPipSize()
  • CheckFilters()
  • CountPositions()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX16007 Trend — Execution Flow (from source analysis)
// Family: Trend
// Gold Scalping EA trading bounces off calculated support/resistance zones. Detects S/R levels from recent price action and enters on bounces with ATR-based stops. 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
الأطر الزمنية المُحسّنة:
M15

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

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

المعاملالافتراضيالوصف
LookbackBars50Bars to find S/R
ZonePips10Zone tolerance in pips
TouchConfirm2Min touches to confirm zone
InpMagicNumber22216007Magic Number (222 + Expert ID)
InpTradeComment"Psgrowth.com Expert_16007"Trade Comment
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16007.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16007 GoldScalper SuppResBounce ZoneRecovery — S/R bounce scalper, full 12-layer stack."

#include <Trade\Trade.mqh>

input group "=== Risk Management ==="
input bool   UseMoneyManagement = true;
input double RiskPercent        = 2.0;
input double FixedLotSize       = 0.01;

input group "=== S/R Settings ==="
input int    LookbackBars       = 50;         // Bars to find S/R
input int    ZonePips           = 10;         // Zone tolerance in pips
input int    TouchConfirm       = 2;          // Min touches to confirm zone

input group "=== Trade Settings ==="
input int    StopLossPips       = 15;
input int    Slippage           = 3;
input int    InpMagicNumber     = 22216007;                     // Magic Number (222 + Expert ID)
input string InpTradeComment    = "Psgrowth.com Expert_16007"; // Trade Comment

input group "=== Filters ==="
input bool   UseSpreadFilter    = true;
input double MaxSpreadPips      = 25.0;

CTrade trade;
int handleATR;
datetime lastBarTime = 0;
double currentATR;
double resistanceLevel = 0, supportLevel = 0;

ENUM_ORDER_TYPE_FILLING GetAllowedFilling()
{
   int filling_mode = (int)SymbolInfoInteger(_Symbol, SYMBOL_FILLING_MODE);
   if((filling_mode & SYMBOL_FILLING_FOK) == SYMBOL_FILLING_FOK) return ORDER_FILLING_FOK;
   else if((filling_mode & SYMBOL_FILLING_IOC) == SYMBOL_FILLING_IOC) return ORDER_FILLING_IOC;
   else return ORDER_FILLING_RETURN;
}


//+------------------------------------------------------------------+
//| Safe Position Modify - validates stops before modifying          |
//+------------------------------------------------------------------+
bool SafePositionModify(ulong ticket, double newSL, double newTP)
{
   // Select the position
   if(!PositionSelectByTicket(ticket))
   {
      return false; // Position doesn't exist, no error needed
   }
   
   // Get current price
   long type = PositionGetInteger(POSITION_TYPE);
   double price = (type == POSITION_TYPE_BUY) ? 
                  SymbolInfoDouble(_Symbol, SYMBOL_BID) : 
                  SymbolInfoDouble(_Symbol, SYMBOL_ASK);
   

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

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

الوسوم:ex16007trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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