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

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

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

Pipsgrowth EX16096 Trend — Detects Dark Cloud Cover / Piercing Line candlestick patterns, confirmed by MFI oscillator levels and trend MA, then ent. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX16096 Trend هو إكسبرت أدفايزر لمنصة MetaTrader 5 يلتقط نمطي الانعكاس اليابانيين المعروفين بـ Dark Cloud Cover و Piercing Line. لا يبحث عن اختراقات أو شبكات أوامر معلقة أو اتجاه عبر عشرات المؤشرات. الاستراتيجية كلها تتلخص في: رصد انعكاس على شمعتين عند افتتاح شمعة M5 أو H1 جديدة، وطلب من مؤشر MFI تأكيد أن الانعكاس مدعوم بقراءة تدفق حجم متطرفة، ثم وضع وقف خسارة وهدف بمسافة ثابتة. إذا لم يُصَب الهدف أو الوقف خلال عشر شموع، يُغلق الإكسبرت المركز قسراً.

اكتشاف النمط يجلس داخل دالة CheckPattern() ويفحص آخر شمعتين مغلقتين بالكامل. بالنسبة لـ Dark Cloud Cover — انعكاس هبوطي — تتطلب الدالة وجود شمعة بيضاء طويلة قبل شمعتين (جسم أكبر من متوسط 12 شمعة)، وشمعة سوداء في الشمعة السابقة يغلق داخل جسم الشمعة البيضاء، وافتتاح الشمعة السابقة أعلى من القمة السابقة (قمة جديدة ضمن الاتجاه الصاعد)، وقيمة MidOpenClose(2) أعلى من خط المتوسط المتحرك لإغلاق الشمعة 2، مؤكدة أن الاتجاه السابق كان صاعداً. أما Piercing Line فيعكس الهيكل: شمعة سوداء طويلة قبل شمعتين، وشمعة بيضاء طويلة قبل شمعة واحدة يخترق إغلاقها جسم الشمعة السابقة دون أن يتجاوز افتتاحها، وافتتاح أدنى من القاع السابق (قاع جديد ضمن الاتجاه الهابط)، وMidOpenClose(2) أدنى من المتوسط المتحرك، مؤكدين أن الاتجاه السابق كان هابطاً. الشمعة الحالية تُتجاهل — الإكسبرت يتصرف فقط على شموع مغلقة، فلا يمكن إعادة رسم الإشارة.

مؤشر MFI (Money Flow Index) هو المرشح التأكيدي الوحيد. MFI هو RSI مرجح بالحجم، والإكسبرت يستخدمه بنظرة خلفية 37 فترة مع VOLUME_TICK كمصدر للحجم، ما يعني أن الحساب يجري عند كل تيك بدل حجم البورصة الفعلي — خيار معقول على MT5 لأن الحجم الفعلي غير متاح لمعظم أزواج العملات والذهب. العتبات متعمدة اللطف: الشراء لا ينطلق إلا إذا كان MFI(1) تحت 40، والبيع لا ينطلق إلا إذا كان MFI(1) فوق 60. هذا يقارب خمس الطريق إلى مناطق التشبع الشرائي/البيعي، لذا معظم الانعكاسات تمر — بوابة MFI موجودة لتصفية الأنماط التي تحدث في منتصف حركة اندفاعية حيث لا يُتوقع قراءة حجم متطرفة.

روتين إغلاق-عند-الإشارة CheckCloseSignal() يدير الخروج بناء على حالة المؤشر. إذا انخفض MFI(1) تحت 70 بينما MFI(2) فوق 70، أو انخفض MFI(1) تحت 30 بينما MFI(2) فوق 30، يُغلق الإكسبرت أي مركز شراء. يعكس ذلك للبيع: MFI(1) يصعد فوق 30 من الأسفل، أو يصعد فوق 70 من الأسفل، يُغلق مراكز البيع. هذه ليست عتبات تشبع كلاسيكية؛ بل صُممت لتغلق بمجرد عودة تدفق الحجم إلى الحياد، ملتقطة انعكاساً جزئياً بعد الانعكاس الأصلي. مسار خروج ثانٍ عبر CloseByTime() يفرض إغلاقاً مسطحاً بمجرد أن يتجاوز وقت الاحتفاظ InpDuration = 10 شموع على الإطار الزمني العامل.

إدارة المخاطر هي الجزء الأبسط. دالة PositionOpen() ترسل أمر سوق بسعر متاح بلوت ثابت 0.1 — لا حساب نسبة مخاطرة، لا تكبير لمنحنى الأسهم، لا Kelly. وقف الخسارة على بُعد InpSL = 200 نقطة خلف الدخول، وهدف جني الأرباح على بُعد InpTP = 200 نقطة أمامه. هذا يعطي نسبة مخاطرة/عائد 1:1 بالضبط على كل صفقة، وهو أمر غير معتاد لإكسبرت أنماط الشموع. معظم متداولي الشموع يختارون أهدافاً غير متناظرة، لذا التماثل 1:1 هنا خيار تصميم متعمد — يقول للإكسبرت أن يأخذ أرباحاً صغيرة متكررة ويدع وقف الخسارة يحدّ من الخسارة.

حماية من السبريد في نفس دالة PositionOpen() تمنع الإكسبرت من وضع الوقف أو الهدف داخل السبريد. إذا كان السبريد الحالي أوسع من 200 نقطة، يستبدل الإكسبرت مسافة SL أو TP بالسبريد نفسه. على وسيط XAUUSD من خمس خانات، هذا يعني أن مسافة الحماية تساوي على الأقل السبريد — لن يوضع وقف الخسارة فوق سعر الدخول على الشراء، ولن يوضع الهدف تحت سعر الدخول على البيع. هذا الحارس يُطلق سجل PrintFormat لتعرف متى السبريد يفرض التخطيط.

الإكسبرت يقرأ كل شيء عند افتتاح شمعة جديدة ثم يتصرف في تيك واحد لكل مرحلة. دالة OnTick() مقسمة إلى أربع مراحل: المرحلة 1 تستدعي CheckState() على الشمعة الجديدة وتحدّث أعلام الإشارات العالمية؛ المرحلة 2 تستدعي PositionOpen() إذا كانت إشارة شراء أو بيع موجودة ولا يوجد مركز في ذلك الاتجاه؛ المرحلة 3 تستدعي CloseBySignal() إذا كانت إشارة إغلاق موجودة؛ المرحلة 4 تستدعي CloseByTime() لأي مركز تجاوز عتبة الـ 10 شموع. بوابة الشمعة منفّذة بمتغير next_bar_open ثابت، لذا كل العمل يحدث مرة لكل شمعة، ليس عند كل تيك.

قاعدة الشفرة صغيرة. توجد 22 دالة — CheckState, PositionOpen, CloseBySignal, CloseByTime, PositionExist, PositionExpiredByTimeExist, BarsHold, Open, Close, Low, High, MidPoint, MidOpenClose, AvgBody, CheckPattern, CheckConfirmation, CheckCloseSignal, MFI, CloseAvg، وثلاث أدوات إعادة محاولة. مؤشران يُنشآن في OnInit(): مقبض iMFI(_Symbol, _Period, 37, VOLUME_TICK) ومقبض iMA(_Symbol, _Period, 5, 0, MODE_SMA, PRICE_CLOSE). ثلاث أدوات إعادة محاولة معرّفة — TryClose_EX16096, TryClosePartial_EX16096, وTryModify_EX16096 — مع ثلاث محاولات عند requote وtimeout وprice-off وprice-changed، ونوم 200 مللي ثانية بين المحاولات. فقط TryClose_EX16096 مربوط بمسارات الإغلاق الحية؛ الاثنتان الأخريان موجودتان في المصدر كهيكل لاستخدام مستقبلي.

ما لا يفعله هذا الإكسبرت مفيد بقدر ما يفعله. لا يوجد مرشح أخبار، لا مرشح جلسة، لا حد خسارة يومي، لا قاطع منحنى أسهم، لا سقف سحب أقصى، لا إغلاق جزئي، لا نقطة تعادل، لا وقف متحرك، لا توسيع للمراكز. قرار الخروج يرتكز كلياً على تقاطع MFI أو انتهاء الوقت. إذا شغّلته على شمعة نهاية أسبوع هادئة أو شمعة افتتاح السوق بسبريد عريض، حارس السبريد سيبقي الوقف خارج السبريد لكن الإشارة نفسها ستنطلق. حجم اللوت ثابت عند 0.1 بصرف النظر عن حجم الحساب، لذا النسبة المئوية للمخاطرة لكل صفقة تتدرج مع رصيدك. عند إيداع أدنى 100 دولار، هذا يعادل فعلياً 1% مخاطرة لكل كتلة نقاط من مسافة الوقف على XAUUSD M5؛ على حساب 10,000 دولار، نفس 0.1 لوت يصبح نسبة مئوية أصغر بكثير. اختر اللوت مع وضع الحساب في الاعتبار.

الرقم السحري 22216096 مختوم على كل أمر. تعليق الصفقة Psgrowth.com Expert_16096 يسمح للإكسبرت بالتعايش مع نسخ أخرى على نفس الرمز. بنية OnTick ذات الأربع مراحل تعني عدم وجود مفاجآت تنفيذية — عندما تنطلق إشارة، يحاول الإكسبرت فتح مركز واحد بالضبط في ذلك الاتجاه. إذا فشل الفتح، لا تُجرى محاولة ثانية داخل نفس الشمعة؛ ينتظر الإكسبرت CheckState() للشمعة التالية لإعادة التقييم. للاختبار التاريخي، توقع تياراً ثابتاً من صفقات 1:1 على إطار M5، ومجموعة أبعد على H1، وذيلاً طويلاً من شموع تُغلق بالوقت بدل الهدف أو الوقف.

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

متغير next_bar_open ثابت داخل OnTick() يجعل كل العمل الثقيل يحدث مرة لكل شمعة. عندما يتجاوز TimeCurrent ذلك الحد، تُستدعى CheckState() وتُشغّل CheckPattern() ثم CheckConfirmation(). تقارن CheckPattern() أحجام آخر شمعتين مغلقتين بمتوسط جسم 12 شمعة وتقرأ ميل SMA لـ 5 فترات على الإغلاق لتحديد أي نمط انعكاس — Dark Cloud Cover أم Piercing Line — قد تكوّن. تستعلم CheckConfirmation() بعدها MFI(37) عند الشمعة 1 وتطلب MFI(1) < 40 للشراء أو MFI(1) > 60 للبيع. نفس مرور CheckState() يقيّم CheckCloseSignal()، التي تبحث عن شروط تقاطع MFI(1)/MFI(2) عند حدود 30 و70 وتكتب إشارة CLOSE_LONG أو CLOSE_SHORT إذا تحققت الشروط. بعد حل الحالة، تُطلق المراحل 2 و3 و4 من OnTick إجراء واحد لإدارة المركز: أمر سوق بـ SL/TP من 200/200 نقطة إذا وُجدت إشارة جديدة، إغلاق إذا وُجدت إشارة إغلاق، أو إغلاق زمني إذا أرجع BarsHold قيمة >= InpDuration = 10.

إشارة الدخول

تُقيَّم الدخولات فقط عند افتتاح شمعة جديدة. يتطلب Dark Cloud Cover جسم أبيض طويل قبل شمعتين، وشمعة سوداء قبل شمعة واحدة تغلق داخل الجسم الأبيض ويفتح فوق القمة السابقة، وقيمة MidOpenClose(2) أعلى من المتوسط المتحرك لـ 5 فترات لتأكيد الاتجاه الصاعد السابق. Piercing Line هو المرآة: جسم أسود طويل قبل شمعتين، جسم أبيض طويل قبل شمعة واحدة يغلق داخل الجسم السابق دون تجاوز الافتتاح، ويفتح تحت القاع السابق، وMidOpenClose(2) تحت المتوسط المتحرك. بوابة MFI(37) تشترط MFI(1) < 40 لتأكيد الشراء وMFI(1) > 60 لتأكيد البيع.

إشارة الخروج

يُغلق الإكسبرت بناء على أحد ثلاثة محفزات. أولاً، تقاطع MFI: انتقال MFI(1) تحت 70 من فوق 70 (أو تحت 30 من فوق 30) يُغلق مراكز الشراء؛ صعود MFI(1) فوق 30 من تحت 30، أو فوق 70 من تحت 70، يُغلق مراكز البيع. ثانياً، جني أرباح ثابت عند InpTP = 200 نقطة. ثالثاً، انتهاء صلاحية زمني عند InpDuration = 10 شموع على الإطار الزمني العامل، تقيّمه دالة BarsHold() التي تعدّ الشموع بين open_time وTimeCurrent().

وقف الخسارة

وقف ثابت InpSL = 200 نقطة خلف الدخول. دالة PositionOpen() تستبدل مسافة الوقف بالسبريد الحالي كلما كان السبريد >= InpSL × Point، لذا لا يُوضع الوقف فوق سعر الدخول على الشراء أو تحته على البيع. لا توجد نقطة تعادل، ولا وقف متحرك، ولا إغلاق جزئي.

جني الأرباح

هدف ثابت InpTP = 200 نقطة أمام الدخول، يعطي نسبة مخاطرة/عائد 1:1 صارمة. كما في الوقف، تنهار مسافة الهدف إلى السبريد إذا كان السبريد >= InpTP × Point، لذا لا يُوضع الهدف داخل السبريد. لا يوسّع الإكسبرت الهدف أو ينقله لنقطة التعادل بعد الدخول.

الأنسب لـ

الحد الأدنى للرصيد 100 دولار على XAUUSD M5 أو H1؛ اللوت الثابت 0.1 ووقف 200 نقطة يعني 1% رصيد لكل نقطة على حساب 100 دولار، ويتناقص مع نمو الرصيد. شغّله على حساب ECN بسبريد منخفض أو سبريد خام حتى لا تنهار مسافة 200/200 باستمرار بسبب حارس السبريد. الاستراتيجية موجهة لجلسات تتجه ثم تنهك حيث يكون للانعكاسات متابعة بنسبة 1:1؛ لندن وتداخل صباح نيويورك أنتجا أكثر النوافذ على M5، بينما H1 يُنتج تيار إشارات أبعد يتماشى مع إدارة مراكز قائمة على الصبر.

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

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

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

الوصف: Detects Dark Cloud Cover / Piercing Line candlestick patterns, confirmed by MFI oscillator levels and trend MA, then enters with fixed SL/TP and time-based exit. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • CheckState()
  • PositionOpen()
  • CloseBySignal()
  • CloseByTime()
  • PositionExist()
  • PositionExpiredByTimeExist()
  • BarsHold()
  • Open()
  • Close()
  • Low()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX16096 Trend — Execution Flow (from source analysis)
// Family: Trend
// Detects Dark Cloud Cover / Piercing Line candlestick patterns, confirmed by MFI oscillator levels and trend MA, then enters with fixed SL/TP and time-based exit. 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

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

المعاملالافتراضيالوصف
InpAverBodyPeriod12period for calculating average candlestick size
InpMAPeriod5Trend MA period
InpPeriodMFI37MFI period
InpVolumeVOLUME_TICKvolume type
InpDuration10position holding time in bars
InpSL200Stop Loss in points
InpTP200Take Profit in points
InpSlippage10slippage in points
InpLot0.1lot
InpMagicNumber22216096Magic Number
InpTradeComment"Psgrowth.com Expert_16096"Trade Comment
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16096.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16096 DarkCloud_PiercingLine_MFI — candlestick pattern + MFI confirmation, full 12-layer stack."

#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>

#define SIGNAL_BUY    1             // Buy signal
#define SIGNAL_NOT    0             // no trading signal
#define SIGNAL_SELL  -1             // Sell signal

#define CLOSE_LONG    2             // signal to close Long
#define CLOSE_SHORT  -2             // signal to close Short

//--- Input parameters
input group "=== Indicator Parameters ==="
input int InpAverBodyPeriod=12;     // period for calculating average candlestick size
input int InpMAPeriod      =5;      // Trend MA period
input int InpPeriodMFI     =37;     // MFI period
input ENUM_APPLIED_VOLUME InpVolume=VOLUME_TICK;   // volume type

input group "=== Trade Parameters ==="
input uint InpDuration=10;          // position holding time in bars
input uint InpSL      =200;         // Stop Loss in points
input uint InpTP      =200;         // Take Profit in points
input uint InpSlippage=10;          // slippage in points
input group "=== Money Management ==="
input double InpLot=0.1;            // lot
input group "=== Identity ==="
input long InpMagicNumber=22216096; // Magic Number
input string InpTradeComment="Psgrowth.com Expert_16096"; // Trade Comment

//--- global variables
int    ExtAvgBodyPeriod;            // average candlestick calculation period
int    ExtSignalOpen     =0;        // Buy/Sell signal
int    ExtSignalClose    =0;        // signal to close a position
string ExtPatternInfo    ="";       // current pattern information
string ExtDirection      ="";       // position opening direction
bool   ExtPatternDetected=false;    // pattern detected
bool   ExtConfirmed      =false;    // pattern confirmed
bool   ExtCloseByTime    =true;     // requires closing by time 
bool   ExtCheckPassed    =true;     // status checking error
//---  indicator handles
int    ExtIndicatorHandle=INVALID_HANDLE;
int    ExtTrendMAHandle=INVALID_HANDLE;

//--- service objects
CTrade      ExtTrade;
CSymbolInfo ExtSymbolInfo;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   Print("InpSL=", InpSL);
   Print("InpTP=", InpTP);
//--- set parameters for trading operations
   ExtTrade.SetDeviationInPoints(InpSlippage);    // slippage

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

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

الوسوم:ex16096trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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