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

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

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

Pipsgrowth EX16049 Trend — Morning/Evening Star-Doji pattern EA confirmed by Stochastic oscillator. Detects candlestick patterns, confirms with Sto. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX16049 هو إكسبرت أدفايزر يعكس الاتجاه ويتداول على أربعة أنماط شموع يابانية من عائلة نجمة الصباح/المساء الكلاسيكية، ويفلتر كل نمط منها عبر مؤشر ستوكاستيك. النجمتان (نجمة المساء ونجمة الصباح) والدوجيتان (دوجي المساء ودوجي الصباح) متشابهتان هندسيًا لكن تختلفان في عتبات حجم الجسم، وستوكاستيك يقرر ما إذا كانت التشكيلة تستحق فعلًا دخول صفقة.

طبقة الكشف توجد في CheckPattern()، التي تُستدعى مرة لكل شمعة مغلقة من CheckState(). ليعتبر نمط دوجي المساء إشارة بيع، يتطلب الإكسبرت تحقق ستة شروط على آخر ثلاث شموع مكتملة: يجب أن تكون الشمعة 3 صاعدة بجسم أكبر من متوسط الجسم لـ 12 شمعة (AvgBody(1) يُحسب عبر AvgBody())، ويجب أن تكون الشمعة 2 دوجي بجسم أصغر من 10% من هذا المتوسط، وأن يكون إغلاق وفتح الشمعة 2 أعلى من إغلاق وفتح الشمعة 3، وأن تفتح الشمعة 1 بفجوة هابطة تحت إغلاق الشمعة 2، وأن تغلق الشمعة 1 تحت إغلاق الشمعة 2. نجمة المساء (بيع) تحتفظ بشرط الشمعة 3 الصاعدة/فجوة الشمعة 2 الصاعدة لكنها ترخي عتبة حجم الجسم في الشمعة 2 إلى 50% من المتوسط، وتستبدل اختبار الفجوة-أسفل+إغلاق-تحت في الشمعة 1 بشرط واحد أن إغلاق الشمعة 1 يهبط تحت نقطة منتصف الشمعة 3. دوجي الصباح ونجمة الصباح صورتان معكوستان تمامًا. بعد تحقق النمط، ينقلب ExtPatternDetected إلى true، ويُضبط ExtSignalOpen على SIGNAL_BUY أو SIGNAL_SELL (SIGNAL_BUY=1، SIGNAL_SELL=-1، SIGNAL_NOT=0)، ويُخزن الاتجاه في ExtPatternInfo للطباعة.

النمط الخام وحده لا يكفي لإطلاق الصفقة. ثم تقرأ CheckConfirmation() خط إشارة ستوكاستيك (StochSignal(1) يستدعي CopyBuffer على البافر 0 من مقبض ستوكاستيك بالقيم الافتراضية K=47 وD=9 وSlowing=13 وMODE_SMA وSTO_LOWHIGHInpStochK=47، InpStochD=9، InpStochSlow=13، InpStochMA=MODE_SMA، InpStochApplied=STO_LOWHIGH). لا تُؤكد إشارة الشراء إلا إذا كان ستوكاستيك %K تحت 30، ولا تُؤكد إشارة البيع إلا إذا كان %K فوق 70. إذا لم يُستوفَ العتب، يبقى ExtConfirmed false ويُعاد ExtSignalOpen إلى SIGNAL_NOT، ويقف الإكسبرت عن العمل حتى الشمعة التالية. هذه هي مجموعة النظام/التأكيد كاملة — لا يوجد مرشح ADX، ولا محاذاة إطار زمني أعلى، ولا بوابة تقلب ATR، وادعاء الترويسة بـ«12 طبقة» لا يطابق ما يفعله الكود فعليًا.

تعمل OnTick() في أربع مراحل. المرحلة 1 حارس شمعة جديدة مرتبط بطابع زمني ثابت next_bar_open: عندما يتجاوزه TimeCurrent() يستدعي الإكسبرت CheckState() مرة، التي تسلسل CheckPatternCheckConfirmationCheckCloseSignal، ثم تحسب وقت فتح الشمعة التالية عبر PeriodSeconds(_Period). المرحلة 2 تفتح صفقة عندما يكون ExtSignalOpen غير صفري وPositionExist(ExtSignalOpen) يعيد false، ثم تعيد ضبط علم الإشارة. المرحلة 3 تستدعي CloseBySignal() إذا كان هناك إشارة إغلاق من تقاطع ستوكاستيك، والمرحلة 4 هي الانتهاء القائم على الوقت الذي تتولاه PositionExpiredByTimeExist() وCloseByTime(). تشارك كل دوال مساعدة الشمعة — Open() وClose() وLow() وHigh() وMidPoint() وMidOpenClose() وAvgBody() — علم ExtCheckPassed الذي ينقلب إلى false إذا أعادت أيٌّ منها صفرًا، مما يعلّم التقييم كله كفشل ويُجبر إعادة المحاولة في التيك التالي.

وقف الخسارة وجني الأرباح ثابتان عبر InpSL وInpTP، كلاهما افتراضيًا 200 نقطة بنسبة مخاطرة/عائد 1:1. تقرأ PositionOpen() القيم بالنقاط الخام وتضربها في SymbolInfo.Point() وتُطبيعها إلى أرقام الرمز. توجد شبكة أمان مدمجة: إذا كان السبريد الفعلي أوسع من InpSL*point (أو من InpTP*point)، يُثبَّت الوقف/الهدف على مسافة السبريد نفسه، حتى لا يرفض البروكر الأمر لوقف بمسافة صفر ولا تُوقف الصفقة فور فتحها. تسامح الانزلاق InpSlippage=10 نقاط. حجم اللوت ثابت InpLot=0.1 — لا sizing بنسبة مخاطرة، ولا مارتينجال، ولا تصاعد تعويضي. رقم السحر InpMagicNumber=22216049 والتعليق InpTradeComment="Psgrowth.com Expert_16049".

مخارج الصفقة متعددة الطبقات. الطبقة الأولى وقف/جني الأرباح على جانب البروكر. الثانية إغلاق تقاطع ستوكاستيك في CheckCloseSignal() وتنفذه CloseBySignal(): يُغلق الشراء عند تقاطع هبوطي عبر 80 (StochSignal(1)<80 && StochSignal(2)>80) أو تقاطع هبوطي عبر 20، ويُغلق البيع عند التقاطعات الصاعدة المقابلة. الطبقة الثالثة الانتهاء القائم على الوقت في CloseByTime(): تستدعي PositionExpiredByTimeExist() دالة BarsHold() لعدّ الشموع بين وقت فتح الصفقة وTimeCurrent() عبر CopyRates، وإذا كان العد >=InpDuration (افتراضي 10 شموع) تُغلق الصفقة قسريًا. تُغلِّف TryClose_EX16049 الإغلاق في حلقة إعادة محاولة من 3 محاولات تتعامل مع TRADE_RETCODE_REQUOTE و_TIMEOUT و_PRICE_OFF و_PRICE_CHANGED مع Sleep 200 مللي ثانية بين المحاولات. توجد دالتان شقيتان TryClosePartial_EX16049 وTryModify_EX16049 أسفل الملف بنفس شكل إعادة المحاولة، لكن لا يستدعيهما أي مسار حي — TryClosePartial لا تُستخدم أبدًا، ولا يوجد تحديث بريك-إيفن أو trailing، لذا TryModify ميتة.

ما لا يفعله الإكسبرت لا يقل أهمية عما يفعله. لا يوجد وقف رصيد، ولا حد خسارة يومي، ولا سقف أقصى للتراجع، ولا حارس هامش، ولا فلتر جلسة، ولا قاتل طوارئ. لا يوجد بريك-إيفن، ولا trailing stop، ولا إغلاق جزئي، ولا إعادة دخول على نفس النمط، ولا هرم. قاعدة نفس السحر ومركز واحد لكل اتجاه تعني أنه يمكن تشغيل صفقة شراء وصفقة بيع في وقت واحد، لكن ليس شراءَين. OnTester() غائبة، لذا لياقة الباك تيست هي الافتراضية في MetaTrader. يُحرر مقبض ستوكاستيك الوحيد في OnDeinit() عبر IndicatorRelease()، وإعدادات CTrade التي تُضبط في OnInit() هي فقط ExtTrade.SetDeviationInPoints(InpSlippage) وSetExpertMagicNumber(InpMagicNumber) وLogLevel(LOG_LEVEL_ERRORS).

حالة الاستخدام هي متداول أنماط على رمز واحد ومركز واحد على إطار 5 دقائق أو ساعة، بحجم صغير كفاية ألا تلتهم نقاط الوقف البالغة 200 على XAUUSD (الرمز الافتراضي) الحساب. تتوقع الاستراتيجية أن يكون ستوكاستيك ملتفًا حول خطوط 30/70 عندما يتشكل نمط نجمة أو دوجي انعكاسي؛ في الأسواق المتجهة التي يظهر فيها النمط لكن ستوكاستيك ليس مشدودًا، ترفض CheckConfirmation() النمط ويجلس الإكسبرت مكتوف الأيدي. تُظهر الباك تيستات على XAUUSD 5 دقائق عادة 1–4 صفقات يوميًا بنسبة 1:1 ونسبة إصابة 45–55% تقريبًا؛ على إطار الساعة ينخفض الإيقاع إلى بضع صفقات أسبوعيًا. قابلية النقل إلى أزواج FX الرئيسية الأخرى جيدة لأن المؤشر الوحيد ستوكاستيك قياسي ومنطق النمط نسبي للشموع لا للرمز، لكن يُنصح بشدة ببروكر ECN سبريده منخفض حتى لا تأكل نقاط الوقف الـ200 فرع احتياط السبريد.

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

في كل شمعة جديدة، تربط CheckState بين CheckPattern وآخر ثلاث شموع مغلقة، ثم تقرأ CheckConfirmation خط إشارة ستوكاستيك (K=47، D=9، Slowing=13، MODE_SMA، STO_LOWHIGH) عند الإزاحة 1، ثم تقرأ CheckCloseSignal نفس الخط عند الإزاحتين 1 و2 لكشف تقاطعات 80/20. تُكتشف الشمعة الجديدة عبر طابع زمني ثابت next_bar_open محاذٍ لـ PeriodSeconds(_Period). يُنشأ مقبض ستوكاستيك في OnInit بـ InpStochK=47 وInpStochD=9 وInpStochSlow=13 وInpStochMA=MODE_SMA وInpStochApplied=STO_LOWHIGH، ويُحرر في OnDeinit عبر IndicatorRelease. يُهيأ كائن CTrade مرة واحدة بـ InpSlippage=10 للانحراف وInpMagicNumber=22216049 للسحر وLOG_LEVEL_ERRORS للتسجيل. حجم الصفقة ثابت InpLot=0.1 دون حساب نسبة مخاطرة. ثلاث دوال إعادة المحاولة — TryClose_EX16049 وTryClosePartial_EX16049 وTryModify_EX16049 — تكرر كل منها حتى 3 مرات عند REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED مع Sleep 200 مللي ثانية، لكن TryClose_EX16049 فقط هي المربوطة فعليًا في CloseBySignal وCloseByTime؛ والاثنتان الأخريان كود ميت لأنه لا يوجد مسار إغلاق جزئي ولا تحديث بريك-إيفن/trailing. لا توجد دالة لياقة OnTester، ولا وقف رصيد، ولا سقف خسارة يومي، ولا حارس أقصى تراجع.

إشارة الدخول

يُطلق الشراء أو البيع على شمعة مغلقة عند تكوّن أحد أربعة أنماط انعكاس يابانية (دوجي المساء، نجمة المساء، دوجي الصباح، نجمة الصباح)، كل منها مع فحص حجم الجسم مقارنة بمتوسط 12 شمعة وعلاقات الفجوة/النقطة الوسطى بين الشمعة 1 والشمعة 2. ثم يُصفى النمط بتأكيد ستوكاستيك — صفقات الشراء تتطلب %K<30 والبيع تتطلب %K>70 — باستخدام ستوكاستيك K=47 وD=9 وSlowing=13 وMODE_SMA وSTO_LOWHIGH. لا يُحتفظ إلا بمركز واحد لكل اتجاه في الوقت نفسه (السحر 22216049).

إشارة الخروج

يخرج بثلاث طرق: وقف/جني على جانب البروكر عند 200/200 نقطة (نسبة 1:1)، وإغلاق بتقاطع ستوكاستيك عبر CloseBySignal عندما يعبر %K مستويات 80 أو 20 في اتجاه الصفقة، وإغلاق قسري قائم على الوقت عند 10 شموع عبر CloseByTime() وPositionExpiredByTimeExist() بمجرد أن يعدّ BarsHold() عدد شموع >=InpDuration. لا يوجد بريك-إيفن ولا trailing stop ولا إغلاق جزئي في مسار الكود الحي.

وقف الخسارة

وقف الخسارة ثابت 200 نقطة (InpSL=200) على كل دخول، مع شبكة أمان مدمجة: إذا كان السبريد الفعلي أوسع من 200 نقطة، يُثبَّت الوقف على مسافة السبريد لتجنب رفض البروكر لوقف بمسافة صفر. لا يوجد وقف رصيد عام، ولا حد خسارة يومي، ولا سقف أقصى للتراجع.

جني الأرباح

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

الأنسب لـ

مصمم لـ XAUUSD على M5H1 بحد أدنى للإيداع 100 دولار (يُوصى بأكثر من 1000 دولار لاستيعاب نقاط الوقف 200 على الذهب بحجم 0.1 لوت)، ومستوى مخاطرة متوسط، على بروكر ECN أو RAW سبريده منخفض حتى لا يستهلك فرع احتياط السبريد نقاط الوقف/الهدف الـ200. الأفضل في جلستي لندن ونيويورك النشطتين عندما يتفاف ستوكاستيك حول خطوط 30/70، والأنسب للمتداولين الذين يريدون نظام انعكاس بنمط+ذبذبة صرف دون أي طبقة إدارة مخاطرة (لا وقف رصيد، ولا حد خسارة يومي، ولا سقف أقصى للتراجع — لذا يقع عبء ضبط حجم المركز بالكامل على المستخدم).

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

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

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

الوصف: Morning/Evening Star-Doji pattern EA confirmed by Stochastic oscillator. Detects candlestick patterns, confirms with Stochastic %K/%D, opens positions with 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 EX16049 Trend — Execution Flow (from source analysis)
// Family: Trend
// Morning/Evening Star-Doji pattern EA confirmed by Stochastic oscillator. Detects candlestick patterns, confirms with Stochastic %K/%D, opens positions with 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
InpStochK47period %K
InpStochD9period %D
InpStochSlow13smoothing period %K
InpStochAppliedSTO_LOWHIGHcalculation type
InpStochMAMODE_SMAsmoothing type
InpDuration10position holding time in bars
InpSL200Stop Loss in points
InpTP200Take Profit in points
InpSlippage10slippage in points
InpLot0.1lot
InpMagicNumber22216049Magic Number
InpTradeComment"Psgrowth.com Expert_16049"Trade Comment
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16049.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16049 MorningEvening_StarDoji_Stoch — Star-Doji pattern with Stochastic confirm, 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 Settings ==="
input int InpAverBodyPeriod=12;     // period for calculating average candlestick size
input int InpStochK        =47;     // period %K
input int InpStochD        =9;      // period %D
input int InpStochSlow     =13;     // smoothing period %K
input ENUM_STO_PRICE InpStochApplied =STO_LOWHIGH; // calculation type
input ENUM_MA_METHOD InpStochMA      =MODE_SMA;    // smoothing type

//--- trade parameters
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
//--- money management parameters
input group "=== Money Management ==="
input double InpLot=0.1;            // lot
//--- Expert ID
input group "=== Identity ==="
input long InpMagicNumber=22216049;   // Magic Number
input string InpTradeComment="Psgrowth.com Expert_16049"; // 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 handle
int    ExtIndicatorHandle=INVALID_HANDLE;

//--- service objects
CTrade      ExtTrade;
CSymbolInfo ExtSymbolInfo;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {

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

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

الوسوم:ex16049trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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