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

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

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

Pipsgrowth EX16058 Trend — News Stopper utility that fetches economic calendar data via HTTP, closes open trades and pending orders, and halts auto. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

EX16058 Trend من Pipsgrowth ليس خبيراً يولّد إشارات دخول، بل هو أداة متخصصة لإدارة مخاطر الأخبار الاقتصادية. يُرفق على منصة MT5 إلى جانب أي خبير آخر ويعمل كحارس: فعندما يقترب موعد حدث اقتصادي مهم، يُغلق EX16058 الصفقات المفتوحة على الزوج المتأثر، ويحذف الأوامر المعلقة، ويُوقف التداول الآلي تلقائياً، ثم يُعيد تفعيله بعد انقضاء صدمة الخبر.

الآلية واضحة لكنها متعددة الطبقات. عند التهيئة، يُرسل الخبير طلب GET إلى https://nfs.faireconomy.media/`ff_calendar_thisweek`.xml عبر دالة WebRequest() في MQL5. الاستجابة عبارة عن تغذية XML بأحداث الأسبوع الاقتصادي. يتنقل EX16058 داخل كتلة ويستخرج و و و و من كل عقدة ، ويُحوّل السلسلة الزمنية إلى قيمة datetime، ويخزن النتيجة في مصفوفة news_event_struct بسعة 500 حدث. يُجدوَل إعادة الجلب كل ساعتين عبر EventSetTimer(news_update_hour*3600) ليظل التقويم محدّثاً دون إرهاق الشبكة.

قبل التخزين، يمر كل حدث عبر ثلاث دوال تصفية. CurrencySelected() تُبقي الأحداث التي تتضمن عملتها في رمز الأداة (افتراضي) أو في قائمة مخصصة — افتراضياً USD,EUR,GBP,JPY,CAD,CHF، تُضبط عبر symbol_type وnews_symbols. TitleSelected() تُضيّق النطاق اختيارياً إلى قائمة كلمات مفتاحية مفصولة بفواصل، والقيمة الافتراضية هي Non-Farm,Unemployment,ISM,PMI,CPI,FOMC,Retail Sales,Final GDP q/q,Core PCE Price Index m/m,Empire State Manufacturing Index,Advance GDP q/q,JOLTS — الإصدارات الأمريكية القليلة التي تحرك سعر الذهب والفضة فعلياً. ImpactSelected() تُقيّد حسب الأثر، وتقتصر افتراضياً على الأحداث عالية الأثر مع تعطيل include_medium وinclude_low. أي من هذه المرشحات الثلاث يمكن توسيعه.

بعد تخزين التقويم، تنفذ منطق OnTick() فحصين زمنيين. BeforeNewsForZeroProfit() تُعيد العملة المتأثرة إذا كان الوقت الحالي بتوقيت GMT بين min_before_zero=60 دقيقة قبل الحدث والحدث نفسه. AtNews() تُعيد العملة المتأثرة إذا كان الوقت بين min_before=5 دقائق قبل الحدث وmin_after=45 دقيقة بعده. الفرق بين النافذتين مقصود في الشكل: نافذة ما قبل الخبر أوسع (60 دقيقة) وتُستخدم لجني الأرباح قبل التقلب، بينما نافذة الحدث غير متماثلة (5 قبل، 45 بعد) وتُستخدم للإغلاق الدفاعي الكامل أثناء هضم السوق للصدمة.

حين تنطلق نافذة ما قبل الخبر (مع close_zero=true افتراضياً)، يتحقق EX16058 من أن ACCOUNT_PROFIT >= close_profit (افتراضياً دولار واحد). إذا تحقق، تُنفذ CloseAll(_pair) التي تتنقل عكسياً في مجمع الصفقات، وتستدعي trade.PositionClose() على كل تذكرة عبر المُساعد TryClose_EX16058()، وتقبل كلاً من TRADE_RETCODE_DONE وTRADE_RETCODE_DONE_PARTIAL كنجاح. يعيد المُساعد المحاولة حتى 3 مرات عند ظهور رموز requote أو timeout أو price off أو price changed. إذا كان close_pending=true، تتبعها DeleteAllPendings() — نفس الحلقة لكن مع trade.OrderDelete(). إذا كان close_only_news_pair=false (افتراضي)، يكون زوج الإغلاق هو "all" ويشمل الإغلاق جميع صفقات الحساب.

حين تنطلق نافذة الحدث، ينفذ نفس منطق الإغلاق دون شرط الربح (إذا كان close_open=true). إذا كان stop_algo=true، تُستدعى AlgoTradingStatus(false) — وهي النقطة الوحيدة التي يلامس فيها EX16058 ويندوز: يجلب معرّف نافذة الأداة عبر ChartGetInteger()، يصعد سلسلة الأبوين عبر GetAncestor(hwnd, GA_ROOT)، ويُرسل WM_COMMAND بقيمة MT_WMCMD_EXPERTS لإيقاف زر التداول الآلي. عندما تُعيد AtNews() القيمة "No News" ويظل المتغير allow_trade على false، تُستدعى الدالة مجدداً بقيمة true لاستعادة الزر. تُرسل Print() وSendNotification() وAlert() رسالة موحدة ("[NEWS!] All trades are Closed. All pendings are Deleted. Auto trading is Disabled.") لحظة الإغلاق الدفاعي.

التصور البصري مُفعّل افتراضياً. تعمل DrawNews() عند التهيئة ومع كل تنشيط للمؤقت، فتضع خطاً عمودياً على كل حدث في أول 100 موقع مخزّن، باللون الأحمر clrRed، النمط STYLE_DOT، العرض 1 (قابلة للضبط). تكون الخطوط مخفية من التحديد أمام الشموع. عند إزالة الخبير، OnDeinit تمسح التعليق وObjectsDeleteAll(0) تحذف الخطوط.

تفاصيل إضافية تُكمل البناء: slippage=5 ثابتة برمجياً (لا يوجد إدخال)، وtrade.SetTypeFillingBySymbol() تُضبط قبل كل إغلاق أو حذف للتعامل مع بورصات IOC وFOK دون إعداد يدوي. MarketOpen() تتحقق من جدول جلسة الرمز وتُعيد false في عطلات نهاية الأسبوع، مما يمنع محاولات الإغلاق حين يكون السوق متجمداً. TryClosePartial_EX16058() مُعرَّفة لكن لا تُستدعى — كود ميت. كل صفقة يُلمسها الخبير تحمل تعليق Psgrowth.com Expert_16058، مما يُسهّل فصل الإغلاقات المرتبطة بالأخبار عن الإغلاقات اليدوية في تحليلات ما بعد التداول.

النشر العملي يتطلب إعدادين في المنصة: تفعيل استيراد DLL من Tools → Options → Expert Advisors، وإضافة https://nfs.faireconomy.media/ إلى قائمة WebRequest المسموح بها. كلاهما إعداد لمرة واحدة يستغرق أقل من دقيقة.

حالة الاستخدام ضيقة لكنها محددة بوضوح: متداول منهجي أو تقديري يشغّل أي خبير على XAUUSD أو EURUSD أو GBPUSD أو USDJPY أو USDCAD أو USDCHF ويرغب في دفاع حتمي ضد الإصدارات الأمريكية القليلة شهرياً التي تتسبب عادة في تقلبات حادة بحدود 20-50 نقطة. سلوك الباك تيست بنيوي وليس إحصائياً — لا توجد منحنى حقوق ملكية ولا تخصيص ربح ولا سطح تحسين يمكن ضبطه. الخبير إما يجلب التقويم ويُغلق النوافذ بشكل صحيح أو لا يفعل، والخطوط العمودية الحمراء على الشارت وسجل Print() هما التشخيص الوحيد.

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

في كل تكة، تُنفذ OnTick() فحصين زمنيين على التقويم المخزّن. تُفعّل BeforeNewsForZeroProfit() نافذة الستين دقيقة السابقة للحدث: إذا كان ربح الحساب موجباً، تُغلق CloseAll() الصفقات وDeleteAllPendings() تحذف الأوامر وتُرسل SendNotification() وAlert() إشعاراً للمتداول. تُفعّل AtNews() نافذة الخمس دقائق قبل إلى 45 دقيقة بعد: تفرض نفس تسلسل الإغلاق والحذف، ثم تُرسل AlgoTradingStatus(false) رسالة WM_COMMAND في ويندوز لإيقاف زر التداول الآلي. يُعاد التفعيل تلقائياً في أول تكة بعد انقضاء النافذة. تعمل DrawNews() عند التهيئة ومع مؤقت ساعتين لرسم خطوط عمودية حمراء منقطة عند كل وقت حدث ذي صلة، وOnDeinit() تحذفها عند الإيقاف.

إشارة الدخول

لا يفتح EX16058 أي صفقات من تلقاء نفسه. مُحفّز التفعيل هو دخول الوقت الحالي في نافذة ما قبل الخبر (60 دقيقة قبل) أو نافذة الحدث (5 دقائق قبل و45 دقيقة بعد). مصدر التفعيل هو تغذية XML مُجلوبة من https://nfs.faireconomy.media/ ومُصفّاة في الذاكرة حسب العملة (رمز الأداة أو قائمة مخصصة من ستة أزواج) والكلمة المفتاحية (قائمة افتراضية من اثني عشر إصداراً أمريكياً) وشدة الأثر (عالي افتراضياً).

إشارة الخروج

خلال نافذة الربح ما قبل الخبر، تُغلق CloseAll() جميع الصفقات المفتوحة على الزوج المتأثر (أو جميع صفقات الحساب إذا كان close_only_news_pair=false) عندما يصل ربح الحساب إلى دولار واحد، ثم تحذف DeleteAllPendings() كل الأوامر المعلقة. خلال نافذة الحدث، ينفذ الإغلاق دون شرط الربح، وAlgoTradingStatus(false) تُوقف زر التداول الآلي عبر PostMessageW في ويندوز. يُستعاد الزر تلقائياً في أول تكة بعد انقضاء النافذة.

وقف الخسارة

لا يُحدَّد وقف خسارة لكل صفقة. لا يفتح EX16058 صفقات، لذا فإن السيطرة ذات الصلة هي الإغلاق الكامل عند الأخبار: فعل الخبير نفسه المعتمد على النافذة الزمنية هو الإجراء الوقائي لأي استراتيجية تعمل على نفس الحساب.

جني الأرباح

لا يُحدَّد جني أرباح لكل صفقة. آلية تحقيق الربح هي نافذة ما قبل الخبر ذاتها: عندما يصل ربح الحساب إلى دولار واحد داخل نافذة الستين دقيقة السابقة للحدث، تُغلق جميع الصفقات المفتوحة بسعر السوق بصرف النظر عن مستويات جني الأرباح الفردية، مما يضمن أي ربح يفوق عتبة الدولار قبل تقلبات الخبر.

الأنسب لـ

المتداولون الذين يشغّلون أي خبير على XAUUSD أو EURUSD أو GBPUSD أو USDJPY أو USDCAD أو USDCHF ويرغبون في دفاع حتمي ضد الإصدارات الأمريكية عالية الأثر القليلة شهرياً. الحد الأدنى للرصيد 100 دولار (لا ينفذ EX16058 أي sizing). تعمل الأداة على M5 أو H1، وتتطلب تفعيل استيراد DLL وإضافة https://nfs.faireconomy.media/ إلى قائمة WebRequest المسموح بها، وتُناسب الوسطاء الذين يقدمون فروقات ضيقة على المعادن وأزواج العملات الرئيسية لأن EX16058 نفسه لا يطلب أسعاراً — يستهلك فقط مجمع الصفقات القائم.

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

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

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

الوصف: News Stopper utility that fetches economic calendar data via HTTP, closes open trades and pending orders, and halts auto-trading around high-impact news events with configurable time windows and notification options. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • OnTimer()
  • NewsUpdate()
  • MakeDateTime()
  • DrawNews()
  • CurrencySelected()
  • TitleSelected()
  • ImpactSelected()
  • AtNews()
  • BeforeNewsForZeroProfit()
  • CloseAll()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX16058 Trend — Execution Flow (from source analysis)
// Family: Trend
// News Stopper utility that fetches economic calendar data via HTTP, closes open trades and pending orders, and halts auto-trading around high-impact news events with configurable time windows and notification options. 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

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

المعاملالافتراضيالوصف
InpMagic22216058EA Magic Number
InpTradeComment"Psgrowth.com Expert_16058"Trade comment
info1" ------======<<[ News Management ]>>======------ "---=== News Settings ===---
news_link"https://nfs.faireconomy.media/"--- News URL (to be placed in settings)
min_before5Minutes Before News to close
min_before_zero60Minutes Before News to close with zero profit
min_after45Minutes After News to halt
include_hightrueInclude high
include_mediumfalseInclude medium
include_lowfalseInclude low
use_titletrueFilter News based on title
title_phrase"Non-Farm,Unemployment,ISM,PMI,CPI,FOMC,Retail Sales,Final GDP q/q,Core PCE Price Index m/m,Empire State Manufacturing Index,Advance GDP q/q,JOLTS"title keyword (comma seperated)
news_update_hour2Update time interval (in hours)
symbol_typetype1Currencies check method
news_symbols"USD,EUR,GBP,JPY,CAD,CHF"Custom Currencies to Check For News
close_only_news_pairfalseOnly Close Orders of The Events Currency
draw_news_linestrueDraw News Lines on chart
Line_ColorclrRedLines Color
Line_StyleSTYLE_DOTLines Style
Line_Width1Line Width
info2" ------======<<[ Order Management ]>>======------ "---=== Order Management ===---
stop_algotrueStop Auto trading
close_opentrueClose all open trades
close_pendingtrueDelete all Pending orders
close_zerotrueClose all trades with profit
close_profit1Profit for Closing all trades (in $)
close_chartsfalseClose all Charts
info3" ------======<<[ Settings ]>>======------ "---=== Settings ===---
send_notiftrueSend notification
send_alerttrueSend Alert
delay5Delay if somthing goes wrong (in seconds)
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16058.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16058 News_Stopper_MT5 -- News event management tool that closes trades and halts auto-trading around high-impact news, full 12-layer stack."
#include <Trade\Trade.mqh>
CTrade   trade; 

#ifdef __MQL5__
   #include <WinAPI\winapi.mqh>
   #define MT_WMCMD_EXPERTS   32851   
#else
   #define HANDLE       int
   #define PVOID        int
   #import "user32.dll"
      HANDLE   GetAncestor(  HANDLE hwnd, uint flags);
      int      PostMessageW( HANDLE hwnd, uint Msg, PVOID param, PVOID param );
   #import
   #define MT_WMCMD_EXPERTS   33020
#endif

#define WM_COMMAND 0x0111
#define GA_ROOT    2


//Enums

enum currencies
  {
   type1,//Chart Symbol (Auto)
   type2,//Custom Symbols
  };


//Inputs 

input group "=== Identity ==="
input ulong       InpMagic = 22216058;                  // EA Magic Number
input string      InpTradeComment = "Psgrowth.com Expert_16058"; // Trade comment

input string                  info1 = " ------======<<[  News Management  ]>>======------ "; //---=== News Settings ===---
input string                  news_link = "https://nfs.faireconomy.media/";// --- News URL (to be placed in settings)

input int                     min_before = 5;         //Minutes Before News to close
input int                     min_before_zero = 60;   //Minutes Before News to close with zero profit
input int                     min_after = 45;         //Minutes After News to halt

input bool                    include_high = true;       // Include high
input bool                    include_medium = false;    // Include medium
input bool                    include_low = false;       // Include low

input bool                    use_title  = true;   // Filter News based on title
input string                  title_phrase="Non-Farm,Unemployment,ISM,PMI,CPI,FOMC,Retail Sales,Final GDP q/q,Core PCE Price Index m/m,Empire State Manufacturing Index,Advance GDP q/q,JOLTS";//title keyword (comma seperated)

input int                     news_update_hour = 2;//Update time interval (in hours) 

input currencies              symbol_type = type1;                         //Currencies check method
input string                  news_symbols = "USD,EUR,GBP,JPY,CAD,CHF";    // Custom Currencies to Check For News
input bool                    close_only_news_pair  = false;                // Only Close Orders of The Events Currency

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

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

الوسوم:ex16058trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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