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

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

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

Pipsgrowth EX16092 Trend — CCI-based entry with candlestick confirmation, optional martingale or step-by-step lot progression, trailing stop and fi. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

يقع مؤشر CCI(27) في قلب هذا المستشار الآلي، مقترنًا بنموذج ابتلاع شموع ياباني على ثلاث شموع وبسياسة صارمة لصفقة واحدة فقط في كل وقت. تم اختيار فترة المتوسط لمؤشر CCI أعلى عمدًا من القيمة التقليدية 14 — يسجل الترويسة Inp_ma_period عند 27 — مما يجعل المذبذب أقل ردة فعل على شموع M5 وينقل الدورة المثلى بعيدًا عن تذبذب التداول المتكرر إلى إيقاع تأرجح أعمق وأكثر تأنيًا. السعر الافتراضي المُطبَّق هو 6، الذي تربطه الدالة MapAppliedPriceInt بـ PRICE_TYPICAL، أي مقياس (الأعلى+الأدنى+الإغلاق)/3 الذي يُلطّف ظلال الشمعة الواحدة. يعمل الإطار الافتراضي M5 في الاختبار الخلفي؛ ويذكر المصدر صراحةً قابلية النقل بين M5 وH1، وهي خاصية غير شائعة — فمعظم مستشاري الاتجاه يختارون إطارًا زمنيًا واحدًا ويفرضون البقية. النتيجة مستشار آلي يعمل بإيقاعين متميزين من نفس الكود، بحسب ما يُرفقه المتداول.

يتكون تكوين الإشارة من جزأين متشابكين. يقرأ ذراع CCI أربع شموع عبر iCCIGetArray(0, 4, cci) ويبحث عن انعطاف يحلّ بالطريقة التي ينبغي أن يحل بها انعكاس الزخم: الشمعة الثالثة كانت أعلى من الثانية، والثانية أعلى من الأولى (تسلسل هابط)، والأولى انخفضت إلى ما دون +5 (عمليًا cci[1] < 5.0)، والشمعة الصفر ارتدت فوق الأولى. هذا هو الانعكاس القاعدي الكلاسيكي لمؤشر CCI. يجب أن يُظهر ذراع الشموع اليابانية على نفس الشموع الثلاث نموذج ابتلاع صاعد: الشمعة الثانية سوداء (الافتتاح>الإغلاق)، والشمعة الأولى سوداء (الافتتاح>الإغلاق)، والشمعة الصفر بيضاء (الافتتاح<الإغلاق) مع افتتاح الشمعة الأولى واقعًا تحت إغلاق الشمعة الصفر — أي أن الجسم الأبيض يبتلع الجسم الأسود. يجب أن يُطلق الذراعان معًا على نفس نافذة الشموع الثلاث. الإشارة الجزئية، التي يطبع فيها ذراع واحد فقط، ليست كافية للتصرف. مداخل البيع هي المرآة التامة: cci[1] > -5، cci[2] > cci[3]، cci[1] > cci[2]، cci[0] < cci[1]، مع شمعتين بيضاء وأولى سوداء، إضافة إلى افتتاح الأولى فوق إغلاق الصفر.

هناك سقف صارم لصفقة واحدة. يقع كتلة الدخول داخل if(!IsPositionExists())، التي تستعرض PositionsTotal() وتتحقق من الرمز والسحر معًا. السحر 22216092، يستخدمه معالج OnTradeTransaction لاحقًا لتصفية صفقات المستشار من تدفق صفقات الوسيط. يعني السقف أن المستشار لا يُكدّس الصفقات عبر تراكم الإشارات — لكنه مع ذلك يُغيّر حجم الدخول التالي عبر محرك منفصل لتطور اللوت. مارتينجال (InpMartin = false افتراضيًا) والخطوة-بخطوة (InpStep = false افتراضيًا) متنافيان — يرفض OnInit التحميل بـ INIT_PARAMETERS_INCORRECT إذا كان كلاهما مضبوطًا true، ويصدر تنبيهًا إما بالروسية أو الإنجليزية. يضرب مارتينجال لوت الصفقة الخاسرة في InpMartinCoeff (3.0) ويُقيّد عدد المضاعفات عند InpMartinMaxMultiplications (3). بدلًا من ذلك، تضيف الخطوة-بخطوة InpStepLots (0.1) إلى لوت الصفقة الخاسرة، بسقف InpStepLotsMax (1.5)، ويمكن تهيئتها لتُفعَّل بعد خسارة أو بعد ربح عبر مفتاح ENUM_STEP. تُعيد الصفقة الرابحة ضبط m_lots إلى الأساس InpLots (0.1).

تتكون مجموعة حماية الصفقة من ثلاث طبقات. الأولى وقف ثابت عند 20 نقطة وجني ربح ثابت عند 50 نقطة، يُحسب كلاهما من النقطة المُعدَّلة (m_adjusted_point) لتعمل الرياضيات بنفس الطريقة على تغذيات الأسعار بـ 3 أرقام و5 أرقام. الثانية قفل متحرك لا يُفعَّل إلا بعد أن يتحرك السعر بمقدار InpTrailingStop + InpTrailingStep على الأقل من سعر الدخول — 5 + 15 = 20 نقطة افتراضيًا — ثم يُعيد تركيب الوقف عند PriceCurrent ناقص 5 نقاط للصفقات الطويلة (أو متماثل للقصيرة)، ولا يُحرّكه للخلف أبدًا. الثالثة ثابت POSITION_TP الخاص بالوسيط، الذي يترك مسار التريلينج حقه. تستدعي استدعاء التريلينج دالة TryModify_EX16092، وهي مساعد إعادة المحاولة 3 مرات ضد TRADE_RETCODE_REQUOTE وTRADE_RETCODE_TIMEOUT وTRADE_RETCODE_PRICE_CHANGED مع سكون 100ms بين المحاولات.

ثمة خصوصية تستحق الإشارة: ترجع دالة OnTick مبكرًا عندما STimeCurrent.sec < 40، مما يقصر محاولة الدخول على الشريط الجديد إلى أول 40 ثانية من أي دقيقة. القصد من ذلك تجنب التصرف على شريط غير مكتمل التشكل حيث ما زالت تغذية الوسيط تستقر، لكن الأثر العملي أن المستشار لا يبحث عن إشارات إلا في أكثر أجزاء شمعة الدقيقة استقرارًا. مع سقف الصفقة الواحدة، هذا إعداد منخفض تكرار التداول بقصد — ينتج الاختبار الخلفي على M5 XAUUSD عادةً حفنة من المداخل أسبوعيًا، لا يوميًا.

مسار إغلاق الصفقة ضيق عمدًا. لا يستدعي المصدر TryClose_EX16092 أو TryClosePartial_EX16092 من OnTick — كلتا الدالتين موجودتان بمنطق إعادة المحاولة الكامل ضد requote وتغيّر السعر، لكن لا تُستدعيان في وقت التشغيل. لا يوجد خروج مبني على الوقت، ولا خروج عند عبور CCI للصفر، ولا خروج عند انعكاس الإشارة. الطرق الوحيدة للخروج من صفقة هي وقف الخسارة، وجني الأرباح، والقفل المتحرك. إذا كان المتداول يتوقع من المستشار أن يقلب الاتجاه على الشمعة التالية، فهذا لن يحدث — ستُتجاهل الإشارة التالية إذا بقيت الصفقة مفتوحة، وسينتظر المستشار ببساطة حتى تُسوّى الصفقة الجارية عبر أحد مسارات الخروج الثلاثة قبل أن تتمكن الإشارة التالية من الإطلاق.

بالنسبة للوسطاء، لا يستعلم المستشار عن الفارق السعري ولا يفرض مدخلًا للحد الأقصى من الفارق. لا يوجد مرشح أخبار، ولا بوابة جلسة، ولا مقياس تحسين OnTester. الانزلاق مُشفّر عند 10 نقاط عبر m_slippage=10. يُضبط السحر 22216092 على كائن CTrade عند التهيئة، وتُرفق سلسلة التعليق Psgrowth.com Expert_16092 بكل أمر. ادعاء الترويسة بـ 12 طبقة طموحي أكثر منه حرفي — REGIME وSIZING وOnTester غائبة عن التطبيق؛ التوصيل الفعلي هو SIGNAL وENTRY وCONFIRM وNO-TRADE وRISK وMANAGE وEXIT وSCALING. دالة mapAppliedPriceInt مكررة ثلاث مرات في المصدر، وهي أثر نسخ-لصق وليست خيار تصميم مقصودًا — لا تؤثر على وقت التشغيل.

في الاختبار الخلفي يتصرف المستشار كنظام انعكاس متوسط بطيء الوتيرة مع خطر مارتينجال مدمج. تنتج نافذة CCI(27) + الشموع الثلاث تدفق إشارات متفرق، وتحافظ نسبة المخاطرة/العائد الثابتة 1:2.5 على إيجابية معظم الصفقات الرابحة، ويحمي وقف التريلينج من قمم منتصف الشمعة بمجرد أن تتحرك الصفقة لصالحها. فرع مارتينجال هو الخطر — يمكن لثلاث تسلسلات متتالية 0.10.30.92.7 لوت أن تنفجر في حساب 100 دولار على XAUUSD حيث يبلغ وقف 20 نقطة نحو 54 دولارًا عند 0.1 لوت على الذهب. شغّل المستشار مع InpMartin = false وInpStep = false (الافتراضي) لاختبار وضع الإشارة النزيه، ولا تُفعّل تطور اللوت إلا بعد اختبار خلفي طويل وتحقق حي على حساب تجريبي. السلوك المتوقع على تغذية M5 نموذجية للذهب: من صفقتين إلى أربع صفقات مغلقة أسبوعيًا، معظمها يُقصّ بواسطة القفل المتحرك، مع مجموعة صغيرة تُغلق عند جني الأرباح الكامل 50 نقطة.

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

في كل تيـك يتحقق المستشار أولًا من IsPositionExists — بوابة صفقة-واحدة-فقط مصفّاة حسب الرمز والسحر 22216092. إذا كانت فارغة، يُفعَّل شرط الوقت فقط حين تكون الثانية الحالية 40 أو أعلى، ثم تُقرأ مصفوفة CCI(27) لأربع شموع وتُقارَن مع نموذج ابتلاع شموع ثلاثي؛ يجب أن يتوافق الذراعان معًا قبل استدعاء OpenBuy أو OpenSell، اللتان تُمرّران الأمر عبر CTrade بانزلاق 10 نقاط وحارس CheckVolume مسبق. تعمل دالة Trailing كل تيـك باستقلالية، تمسح جميع الصفقات المطابقة للسحر وتُحرّك الوقف عبر TryModify_EX16092 — مساعد إعادة المحاولة 3 مرات ضد أخطاء requote/timeout/price-change. يراقب معالج OnTradeTransaction أحداث DEAL_ENTRY_OUT على نفس السحر، ثم يضرب حجم اللوت التالي في InpMartinCoeff (فرع مارتينجال) أو يضيف InpStepLots (فرع الخطوة-بخطوة) شرطيًا، ويُعاد الضبط إلى InpLots=0.1 عند الربح.

إشارة الدخول

يتطلب الدخول الطويل تسلسل قاع لمؤشر CCI(27) على ثلاث شموع — cci[3]>cci[2]>cci[1] مع cci[1] دون +5 وcci[0] يعبر عائدًا فوق cci[1] — متزامنًا مع نموذج ابتلاع صاعد على الشموع 2-1-0 (الشمعة 2 و1 سوداوين، الشمعة 0 بيضاء مع افتتاح 1 أدنى من إغلاق 0). مداخل البيع هي المرآة التامة: cci[1] > -5، cci[2] > cci[3]، cci[1] > cci[2]، cci[0] < cci[1]، الشمعة 2 و1 بيضاوان، الشمعة 0 سوداء مع افتتاح 1 أعلى من إغلاق 0. كل المداخل مصفّاة بـ IsPositionExists (سقف صفقة واحدة) ومرشح الوقت في أول 40 ثانية من الدقيقة.

إشارة الخروج

المخارج محصورة في ثلاثة مسارات فقط: وقف خسارة ثابت عند 20 نقطة، وجني أرباح ثابت عند 50 نقطة، وقف متحرك يسحب وقف الخسارة للأمام فقط بعد أن يتحرك السعر 20 نقطة (TrailingStop+TrailingStep) فوق سعر الدخول، فيُثبَّت عند سعر العرض ناقص 5 نقاط للصفقات الطويلة. لا يوجد خروج عند انعكاس الإشارة ولا خروج مبني على الوقت — دوال TryClose_EX16092 وTryClosePartial_EX16092 معرّفة في المصدر لكنها لا تُستدعى من OnTick، كما أن مرشح السحر في معالج OnTradeTransaction لا يُغذّي أي مسار إغلاق.

وقف الخسارة

يُكتب وقف الخسارة الثابت عند 20 نقطة على الأمر لحظة الدخول، وتعمل دالة Trailing كل تيـك لسحب وقف الخسارة للأمام بزيادات قدرها 5 نقاط فقط بعد أن يتقدم السعر 20 نقطة (TrailingStop+TrailingStep) من سعر الدخول — ولا يُسحب للخلف أبدًا. حجم اللوت الأساسي 0.1 مع وقف 20 نقطة على XAUUSD يعادل نحو 5-6% من حساب 100 دولار، فالوقف مؤثر دون أن يكون مدمّرًا للحساب بالإعدادات الافتراضية.

جني الأرباح

يُكتب جني الأرباح الثابت عند 50 نقطة إلى POSITION_TP لحظة الدخول ولا يُعدَّل أبدًا بواسطة منطق التريلينج — دالة Trailing تُمرّر جني الأرباح الأصلي دون تغيير عبر m_position.TakeProfit() في استدعاء التعديل. مع وقف 20 نقطة وجني 50 نقطة، تكون نسبة المخاطرة إلى العائد الهيكلية 1:2.5 لكل صفقة، ويمكن لمضاعف مارتينجال أو التسلسل التدريجي في الدورة التالية أن يضغط العائد المُحقق أكثر.

الأنسب لـ

الأنسب لمتداولي التأرجح على XAUUSD M5 الذين يتحملون حساب 100 دولار لصفقة واحدة بحجم 0.1 لوت؛ يُنصح بـ وسيط ECN فروقه ضيقة حتى يتصرف وقف الخسارة الثابت 20 نقطة على الذهب كما هو متوقع. أبقِ InpMartin وInpStep مغلقين (الإعدادات الافتراضية) إلى أن يُتحقق من تيار الإشارات على حساب تجريبي، وشغّل المستشار في ساعات لندن ونيويورك النشطة حيث يحصل نموذج الابتلاع الثلاثي على أوضح موجات. بوابة أول 40 ثانية من الدقيقة تعني أن هذا المستشار يتداول فقط حين تكون الشمعة مكتملة التشكل، لذا يُناسب المتداولين الذين يفضلون الإشارات المتفرقة والمتأنية على المضاربة عالية التردد.

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

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

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

الوصف: CCI-based entry with candlestick confirmation, optional martingale or step-by-step lot progression, trailing stop and fixed SL/TP risk management. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • OnTradeTransaction()
  • RefreshRates()
  • CheckVolumeValue()
  • LotCheck()
  • iCCIGetArray()
  • IsPositionExists()
  • Trailing()
  • PrintResultModify()
  • OpenBuy()
  • OpenSell()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX16092 Trend — Execution Flow (from source analysis)
// Family: Trend
// CCI-based entry with candlestick confirmation, optional martingale or step-by-step lot progression, trailing stop and fixed SL/TP risk management. 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

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

المعاملالافتراضيالوصف
InpLots0.1Lots
InpStopLoss20Stop Loss ("0.0" -> off) (in pips)
InpTakeProfit50Take Profit ("0.0" -> off) (in pips)
InpTrailingStop5Trailing Stop ("0.0" -> off) (in pips)
InpTrailingStep15Trailing Step (in pips)
Inp_ma_period27CCI: averaging period
Inp_applied_price6Applied price (1=close,2=open,3=high,4=low,5=median,6=typical,7=weighted) // CCI: type of price
InpMartinfalseUse martingale
InpMartinCoeff3.0Martingale coefficient
InpMartinOrdinalNumber1Ordinal number of the losing trade
InpMartinMaxMultiplications3Maximum number of multiplications
InpStepfalseUse step by step
InpStepLots0.1Step lots
InpStepLotsMax1.5Maximum lots
InpStepProfitlossUse step afte ...
m_magic22216092magic number
InpTradeComment"Psgrowth.com Expert_16092"Trade Comment
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX16092.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX16092 CCI_and_Martin_Source_Code — CCI entry with candlestick confirmation, full 12-layer stack."
//---
#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>  
#include <Trade\AccountInfo.mqh>
CPositionInfo  m_position;                   // trade position object
CTrade         m_trade;                      // trading object
CSymbolInfo    m_symbol;                     // symbol info object
CAccountInfo   m_account;                    // account info wrapper
//+------------------------------------------------------------------+
//| ENUM_STEP                                                        |
//+------------------------------------------------------------------+
enum ENUM_STEP
  {
   loss =            -1, // ... lossing
   profit=           1,  // ... profitable
  };
//--- input parameters
ENUM_APPLIED_PRICE MapAppliedPriceInt(int ap)
{
   switch(ap)
   {
      case 1: return PRICE_CLOSE;
      case 2: return PRICE_OPEN;
      case 3: return PRICE_HIGH;
      case 4: return PRICE_LOW;
      case 5: return PRICE_MEDIAN;
      case 6: return PRICE_TYPICAL;
      case 7: return PRICE_WEIGHTED;
      default: return PRICE_CLOSE;
   }
}
ENUM_APPLIED_PRICE g_Inp_applied_price = PRICE_CLOSE;
input group "=== Trade Parameters ==="
input double               InpLots                       = 0.1;            // Lots
input ushort               InpStopLoss                   = 20;             // Stop Loss ("0.0" -> off) (in pips)
input ushort               InpTakeProfit                 = 50;             // Take Profit ("0.0" -> off) (in pips)
input ushort               InpTrailingStop               = 5;              // Trailing Stop ("0.0" -> off) (in pips)
input ushort               InpTrailingStep               = 15;             // Trailing Step (in pips)
ENUM_APPLIED_PRICE MapAppliedPriceInt(int ap)
{
   switch(ap)
   {
      case 1: return PRICE_CLOSE;
      case 2: return PRICE_OPEN;
      case 3: return PRICE_HIGH;
      case 4: return PRICE_LOW;
      case 5: return PRICE_MEDIAN;
      case 6: return PRICE_TYPICAL;
      case 7: return PRICE_WEIGHTED;
      default: return PRICE_CLOSE;
   }
}
ENUM_APPLIED_PRICE g_Inp_applied_price = PRICE_CLOSE;
input group "=== Indicator Parameters ==="

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

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

الوسوم:ex16092trendpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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