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

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

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

Pipsgrowth EX16090 Trend — Detects 3 Black Crows / 3 White Soldiers candlestick patterns, confirmed by Stochastic oscillator levels, then enters wi. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX16090 هو مستشار آلي مبني على فكرة واحدة: إنهاك الزخم أحادي الاتجاه على الرسم البياني لمدة 5 دقائق حدث قابل للتداول عندما يتزامن مع قراءات المتذبذب. يبحث الأسلوب عن تشكيلتين محددتين من ثلاث شموع — ثلاثة غربان سوداء لصفقات البيع وثلاثة جنود بيض لصفقات الشراء — ويرفض تفعيل أي من الجانبين ما لم تكن قراءة الاستوكاستك في القطب المناسب. النتيجة دخول انعكاسي مشروط بإحكام يُفتح في بداية شمعة جديدة ويُحفظ على مسافة نقطية ثابتة في الاتجاهين، مع الخروج عند أول حد أو مؤقت ينطلق.

اختبار النمط يتم في CheckPattern(). تفحص الدالة آخر ثلاث شموع مغلقة. لتركيبة البيع، يجب أن يكون الجسم الحقيقي لكل شمعة من تلك الشموع أكبر من متوسط الجسم لـ 12 شمعة (AvgBody(1))، وأن تكون الشموع الثلاث سوداء (الإغلاق أقل من الافتتاح)، وأن يكون منتصف كل شمعة لاحقة أقل من سابقتها — وهو نمط الدرج الذي يعرّف تشكيل ثلاثة غربان سوداء. الجانب الطويل هو ثلاث شموع بيضاء متتالية بمنتصفات متصاعدة تدريجيًا، وهو الجنود البيض الثلاثة. يُضبط boolean بسيط عند الاكتشاف: ExtSignalOpen يصبح SIGNAL_SELL أو SIGNAL_BUY ويُعيَّن ExtDirection لغايات السجل. حجم الجسم كعتبة هو التكيف الوحيد مع التذبذب — لا يقوم المستشار بقياس حجم الشمعة نسبة إلى ATR.

قبل أن تتحول الإشارة إلى أمر، يجب أن تتجاوز CheckConfirmation(). تم ضبط الاستوكاستك عند البدء بـ 47 فترة لـ %K و9 فترات لـ %D و13 فترة تجانس، محسوبًا على أساس أدنى/أعلى مع المتوسط المتحرك البسيط. تستدعي الدالة StochSignal(1) لجلب خط الإشارة الرئيسي من الشمعة 1. الشراء يحتاج إلى قيمة أقل من 30 — أي أن الاستوكاستك قد غُسل نحو منطقة التشبع البيعي بينما صعد الجنود. البيع يحتاج قيمة أعلى من 70، وهي الحالة المعكوسة. إذا جلس الاستوكاستك في منتصف نطاقه، يُكتشف النمط لكن يبقى ExtConfirmed خاطئًا وتُعاد تهيئة ExtSignalOpen إلى SIGNAL_NOT. يسجل المستشار اسم النمط في السجل في كلتا الحالتين؛ الأنماط المؤكدة فقط هي التي تتحول إلى أوامر.

يمر مسار التنفيذ عبر PositionOpen()، التي تبني الأمر من لقطة CSymbolInfo الحية. حجم اللوت ثابت عند 0.1 — لا توجد حسابات نسبةリスク، ولا تحجيم للرصيد، ولا منطق طبقات الهامش. وقف الخسارة وجني الأرباح كلاهما 200 نقطة افتراضيًا، يوضعان بمجرد تنفيذ الأمر. تحتوي الدالة على حارس سبريد دفاعي: إذا كان السبريد الحالي يساوي أو يتجاوز مسافة الـ 200 نقطة، تُستبدل المسافة الواقية بالسبريد نفسه، حتى لا ينتج عن سبريد 220 نقطة على وقف 200 نقطة تفعيل فوري للوقف. مدخل الانزلاق ثابت عند 10 نقاط ويُطبق من خلال CTrade::SetDeviationInPoints(). تعليق الأمر مشفر كـ Psgrowth.com Expert_16090 والرقم السحري 22216090، يُقرأان مباشرة من المدخلات.

يُفرض وجود صفقة واحدة فقط. تمشي PositionExist() عبر قائمة الصفقات، وتُرشِّح حسب الرمز والرقم السحري، وتعيد true عند أول مطابقة للاتجاه المطلوب. طالما أن شراءً مفتوحًا، لا يمكن لأي شراء جديد أن ينطلق؛ وطالما أن بيعًا مفتوحًا، لا يمكن لأي بيع جديد. هذا التقييد خاص بالاتجاه، لذلك يمكن أن يتعايش شراء وبيع على نفس الرسم في وضع netting، رغم أن المستشار غير مصمم لتشغيل الجانبين معًا. حجم اللوت الثابت 0.1 يجعل المستشار قابلاً للاستخدام على حسابات الحد الأدنى للمنصة، لكن غياب تحجيم الصفقة يعني أن المخاطرة لكل صفقة تتدرج حسب ما تنتجه قيمة النقطة لدى الوسيط على مسافة الوقف المختارة.

منطق الخروج يأتي من ثلاثة مصادر. الأول هو وقف الخسارة/جني الأرباح المرفق عند الدخول. الثاني هو CloseBySignal() التي تستطلع CheckCloseSignal() لأحد تقاطعات حدود الاستوكاستك الأربعة: هبوط خط الإشارة تحت 80، أو تحت 20، أو صعوده فوق 20، أو فوق 80. التقاطع تحت 80 أو 20 يغلق الشراء؛ التقاطع فوق 20 أو 80 يغلق البيع. الثالث هو CloseByTime() التي تعد الأعمدة منذ الفتح عبر BarsHold() وتغلق الصفقة قسرًا بمجرد وصول العد إلى InpDuration=10 بصرف النظر عن الربح أو الخسارة. سقف الـ 10 أعمدة حارس صارم — حتى لو كانت الصفقة في صالحها، لن يحتفظ المستشار بها بعد العمود العاشر. تمر كل من CloseBySignal() وCloseByTime() إغلاقيهما عبر TryClose_EX16090() التي تعيد المحاولة 3 مرات على requote وtimeout وprice-off وprice-changed بفواصل 200 مللي ثانية. المساعدتان الأخريان — TryClosePartial_EX16090 وTryModify_EX16090 — مُجمَّعتان لكن لم تُستدعيا من مسار OnTick الحي: لا يوجد إغلاق جزئي ولا تعديل لوقف/جني بمجرد دخول الصفقة.

تقييم الإشارة يعمل فقط عند افتتاح عمود جديد. تستخدم OnTick() طابعًا زمنيًا ثابتًا next_bar_open كبوابة؛ التيكات داخل العمود الحالي لا تفعل شيئًا سوى مراقبة الصفقة المحتفظ بها بحثًا عن الخروج. هذا يعني أن عمودًا قيد التكوين لا يمكنه إطلاق دخول مبكر على نمط جزئي، ولا يمكن تقييم نفس التشكيل أكثر من مرة حتى افتتاح العمود التالي. تُعيد CheckState() false عند أي خطأ في نسخ المؤشر، وتخرج OnTick() لذلك التيك دون تغيير الحالة — التيك التالي يعيد محاولة قراءة البيئة كاملة.

ما هو مفقود يستحق الذكر. لا يوجد وقف متحرك، ولا نقطة تعادل، ولا إغلاق جزئي، ولا طبقات مارتينجال أو شبكة، ولا قاطع دائرة خسارة/ربح يومي، ولا مرشح جلسة، ولا مرشح أخبار. يعمل المستشار بانسجام على أي جلسة. يدّعي تعليق الترويسة كومة من 12 طبقة (REGIME، SIGNAL، ENTRY، CONFIRM، NO-TRADE، CAPITAL CAP، RISK، SIZING، MANAGE، EXIT، SCALING، OnTester)، لكن التنفيذ يربط فعليًا فقط SIGNAL وCONFIRM وENTRY وSIZING وEXIT وMANAGE — طبقات RISK وNO-TRADE وCAPITAL CAP وSCALING وREGIME وOnTester معلنة في التوثيق لكنها غائبة عن مسار التشغيل. الاستراتيجية تعمل بنفس الطريقة على كل تيكل في كل يوم؛ ما يحدد إن كانت ستتداول هو ما إذا كان النمط الثلاثي اكتمل وكان الاستوكاستك في القطب المناسب.

لتفسير الاختبار الخلفي، توقع استراتيجية منخفضة التواتر: نمط الأعمدة الثلاثة شرط متطلب، وأقطاب الاستوكاستك عند 30 و70 تصفي شريحة إضافية من المرشحين. معظم الأسابيع ستنتج حفنة من الصفقات، وأحيانًا لا شيء. هندسة وقف/جني 1:1 مع سقف 10 أعمدة تعني أن المستشار مضبوط للحركات السريعة والأرباح الصغيرة، وليس لركوب اتجاهات بأسلوب السوينج.

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

عند افتتاح كل عمود جديد، تستدعي OnTick() الدالة CheckState() التي تشغّل CheckPattern() لمسح آخر ثلاث شموع مغلقة بحثًا عن تشكيل ثلاثة غربان سوداء أو ثلاثة جنود بيضاء نسبة إلى متوسط حجم الجسم لـ 12 شمعة. عند اكتشاف نمط، تسحب CheckConfirmation() قيمة خط إشارة الاستوكاستك من الشمعة 1 وتُؤمّن الدخول بشرط Stoch<30 (طويل) أو Stoch>70 (قصير) — الأنماط التي لا تجتاز اختبار المتذبذب تُسجل لكن لا تُنتج أمرًا. مع التأكيد، يمرر OnTick() المرحلة 2 الصفقة إلى PositionOpen() التي تبني أمر سوق بحجم لوت 0.1 مع وقف/جني 200 نقطة، مع تطبيق حارس سبريد يستبدل المسافة الواقية بالسبريد عندما يكون السبريد واسعًا جدًا. تفرض PositionExist() صفقة مفتوحة واحدة لكل اتجاه. يعمل منطق الخروج باستمرار: تراقب CloseBySignal() أربع تقاطعات لحدود الاستوكاستك، وتغلق CloseByTime() قسرًا بعد InpDuration=10 أعمدة يقيسها BarsHold()؛ يمر كلا المسارين عبر TryClose_EX16090() لإعادة المحاولة على requote/timeout/price-changed.

إشارة الدخول

ثلاث شموع متتالية بأجسام أكبر من متوسط الجسم لـ 12 شمعة تُشكّل المحفز: ثلاث شموع سوداء بمنتصفات متناقصة تدريجيًا (ثلاثة غربان سوداء) للبيع، وثلاث شموع بيضاء بمنتصفات متصاعدة تدريجيًا (ثلاثة جنود بيض) للشراء. يجب أن يؤكد خط إشارة الاستوكاستك (47/9/13) في القطب المناسب — أقل من 30 للشراء، أعلى من 70 للبيع — وإلا تُسقط الإشارة حتى لو اكتمل النمط. تُقيَّم الإدخالات فقط عند افتتاح عمود جديد وفقط عندما لا توجد صفقة مفتوحة في نفس الاتجاه تحت الرقم السحري 22216090.

إشارة الخروج

يُطلق الخروج من ثلاثة مسارات: تقاطع حدود الاستوكاستك عند 80 أو 20 (يُفحص في CheckCloseSignal())، أو جني الأرباح الثابت عند 200 نقطة، أو عدّ تنازلي للـ 10 أعمدة عبر BarsHold() يُغلق الصفقة قسرًا بصرف النظر عن الربح/الخسارة. تُرشِّح CloseBySignal() حسب الرمز والرقم السحري، ثم تمرر الإغلاق عبر TryClose_EX16090() التي تعيد المحاولة 3 مرات على requote وtimeout وprice-changed بفواصل 200 مللي ثانية. بمجرد اكتمال الإغلاق، تُعاد تهيئة ExtSignalClose ويمكن للعمود التالي إعادة تسليح فحص النمط.

وقف الخسارة

وقف الخسارة ثابت 200 نقطة يُضبط عند الدخول عبر PositionOpen()، بدون وقف متحرك، أو نقطة تعادل، أو تعديل لكل عمود. يوجد حارس سبريد داخل الدالة نفسها يستبدل مسافة الـ 200 نقطة بالسبريد الحالي كلما كان السبريد يساوي أو يتجاوز مسافة الوقف، مما يمنع تفعيل الوقف الفوري بسبب السبريد وحده في بيئات السبريد الواسع. يُضبط المستوى الواقي مرة واحدة عند التنفيذ ويُحتفظ به حتى يأخذ وقف الخسارة أو جني الأرباح عند 200 نقطة أو إشارة إغلاق الاستوكاستك أو مؤقت الـ 10 أعمدة الصفقة.

جني الأرباح

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

الأنسب لـ

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

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

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

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

الوصف: Detects 3 Black Crows / 3 White Soldiers candlestick patterns, confirmed by Stochastic oscillator levels, 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 EX16090 Trend — Execution Flow (from source analysis)
// Family: Trend
// Detects 3 Black Crows / 3 White Soldiers candlestick patterns, confirmed by Stochastic oscillator levels, 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
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
InpMagicNumber22216090Magic Number
InpTradeComment"Psgrowth.com Expert_16090"Trade Comment
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16090.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16090 BullishBearish_MeetingLines_Stoch — candlestick pattern + Stochastic 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 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

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=22216090; // Magic Number
input string InpTradeComment="Psgrowth.com Expert_16090"; // 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()
  {
   Print("InpSL=", InpSL);
   Print("InpTP=", InpTP);
//--- set parameters for trading operations

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

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

الوسوم:ex16090trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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