P
PipsGrowth
أخرىمفتوح المصدر - مجاني

Pipsgrowth EX15028 SMC-OrderBlock — إكسبرت أدفايزر إكسبرت أدفايزر

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

Pipsgrowth EX15028 SMC-OrderBlock — SMC Star V02 (simpleforextools) — Smart Money Concepts order block EA with ANN/SMC block detection, pending-order grids,. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

Pipsgrowth EX15028 SMC-OrderBlock (Pipsgrowth_com_EX15028.mq5، الإصدار 2.00) هو تطبيق MT5 لإطار عمل SMC Star V02 القادم من simpleforextools، معبأ تحت الرقم السحري 22215028 وتعليق الصفقة 'Psgrowth.com Expert_15028'. يأتي الملف مزوداً بـ 30 مُدخلاً و85 دالة و0 ثوابت #define و0 مؤشراً داخلياً — كل قمة وقيعان وبلوك أوامر وابتلاع يُحسب من الصفر عبر iHighest / iLowest / iClose / iOpen. الحلقة المركزية حلقة كاملة لكل تيكت تُعيد تقييم كامل طوبولوجيا بلوكات SMC في كل تيكت وارد: لا يوجد حارس شريط جديد، لا تخزين مؤقت، لا تحسين IsNewBar. هذه أبرز سمة في الملف.

العمود الفقري للإشارة هو تصميم ثنائي البلوكات: بلوك ANN (بأسلوب الشبكة العصبية الاصطناعية) وبلوك SMC (مفاهيم المال الذكي) — كل منهما يُحسب ثلاث مرات لكل تيكت على ثلاثة أطر زمنية مختلفة. يستخدم بلوك ANN g_BigAnnOBtimeframe = 8 الذي يتم تعيينه عبر MapTimeframeInt() إلى PERIOD_D1، بينما يستخدم بلوك SMC g_BigSMCOBtimeframe = 8 (PERIOD_D1 أيضاً). كلاهما يسحب تأكيده البنيوي الدقيق من g_TinyOBtimeframe = 5 (PERIOD_H1). PeaksLookBack = 199 هي نافذة البحث عن القمم والقيعان. يتحكم showlder = 4 وstartbar = 5 في shoulder وشريط البدء لمسح الكشف عن القمم. يُرسم رسمان فرعيان على الشارت: بلوكات ANN بـ clrPink (صاعد) وclrKhaki (هابط) وبلوكات SMC بـ clrMagenta وclrGoldenrod على الإطار الزمني الأعلى، إضافة إلى clrRed / clrGreen لبلوكات H1 الدقيقة — كلها قابلة للتبديل عبر DrawAnnOrderBlock وDrawSMCOrderBlock.

يتم وضع صفقة الدخول كأمر معلق وليس أمر سوق. تعمل دالة PendCond() مرة لكل تيكت داخل OnTick، ولكل i = 1..InpUpQuantity تُسلّح BuyStop أو SellStop بشرط: (أ) احترام مستوى الستوبات عند الوسيط، (ب) نافذة الجلسة النشطة تسمح بالتداول، (ج) عدد الصفقات العكسية أقل من InpBuySellQuantity = 1، (د) عدد الأوامر المعلقة من النوع المعني أقل من InpUpQuantity، (هـ) بوابة buySignal() / sellSignal() صحيحة. سعر الأمر المعلق يُحسب بإزاحة 2x السبريد: price_ask = (Ask() + Spread × 2) + CountPendingOrders() × InpUpStep × Point، price_bid = (Bid() − Spread × 2) − CountPendingOrders() × (InpUpStep + Spread) × Point. InpUpStep = 10 نقاط هي الفجوة بين طبقات المعلقة المتتالية. يُنشأ الأمر بـ sl = 0 وtp = 0، لذا لا توجد وقفات من جانب الوسيط عند الإنشاء؛ تُضاف لاحقاً عبر ApplyStopLoss() وApplyTakeProfit().

buySignal() وsellSignal() هما بوابتا التأكيد ثنائيتا المحرك. تحتوي كل منهما على شرطين مستقلين تماماً: فرع TradeAnn (يستخدم OBhighann / OBlowann ونافذة ابتلاع H1 ذات 12 شريطاً من EngulfBuy / EngulfSell) وفرع TradeSmc (يستخدم OBhighsmc / OBlowsmc ونفس نافذة الابتلاع). تفعيل أي فرع كافٍ لجعل الإشارة صحيحة، لذا يمكن للـ EA الإطلاق إما على كسر قمة بأسلوب ANN أو كسر هيكل بأسلوب SMC، مع نمط ابتلاع H1 على آخر 12 شريطاً كمرشح زخم. شريط Maximum / Minimum / Fifty ذو الإزاحة 5% يُحسب ضد PERIOD_M20 في رأس دالتي الإشارة لكنه لا يُستخدم فعلياً في البوابة — بقايا كود ميت موروثة من قالب أقدم. TradeAnn وTradeSmc قابلتان للتبديل المستقل، لذا يمكن للمستخدم تقييد EA على وضع بلوك واحد.

علاوة السبريد 2x هي شبكة الأمان البنيوية للملف: تجبر الأمر المعلق على الجلوس فوق Ask بمقدار سبريد كامل (أو تحت Bid بمقدار سبريد كامل) إضافة إلى طبقات InpUpStep × CountPendingOrders(). في سوق سريع مع توسع السبريد، ببساطة لن يُملأ الأمر؛ يفضل الـ EA تفويت الملء على الدخول بسعر أسوأ. يُعزز ذلك عازلة الإلغاء 200 + InpStopLossPoints: إذا تحرك Ask() أكثر من 350 نقطة تحت سعر فتح BuyStop، أو تحرك Bid() أكثر من 350 نقطة فوق سعر فتح SellStop، يُلغى الأمر تلقائياً عبر DeletePendingOrder(). يُطلق نفس المسار في اللحظة التي يعود فيها buySignal() / sellSignal() إلى false.

مخاطر ما بعد الملء تُضاف عبر ApplyStopLoss() وApplyTakeProfit()، وكلاهما يمشي على PositionsTotal() ولا يعمل إلا على المراكز المفتوحة في آخر PositionOpenWithin = 300 ثانية — نافذة 5 دقائق تمنع الـ EA من إعادة تثبيت الوقفات على صفقات قديمة لم يفتحها فعلياً. يُثبّت SL عند InpStopLossPoints = 150 نقطة تحت / فوق سعر الملء، مع إزاحة سبريد: sl = PriceOpen − (150 + Spread) × Point. يُثبّت TP عند InpTakeProfitPoints = 1720 نقطة فوق / تحت سعر الملء، مع إزاحة سبريد أيضاً. نسبة المخاطرة / العائد الهندسية على دخول نظيف هي 1720 / 150 ≈ 11.5 : 1. كل من TP وSL يُطبقان عبر كائن CTrade الثانوي Trade (لا يوجد رقم سحري مُعيّن عليه) بدلاً من m_trade الخاص بالدخول، لذا يستخدم الملف كائني CTrade متميزين — خصوصية تستحق الملاحظة.

بمجرد أن يكون المركز في مكانه، تدير ApplyBE() وApplyTrailingStop() دورة الحياة. تنقل ApplyBE() الوقف إلى نقطة التعادل بالإضافة إلى عازلة 50 نقطة (InpBEStopLossPoints = 50) بمجرد أن يتحرك السعر InpTriggerBEStopLossPoints = 210 نقطة في صالح المركز، ولا تفعل ذلك إلا على المراكز ذات الرقم السحري 22215028. تُحكّم ApplyTrailingStop() الوقف للأمام كلما كان price_current > SL + InpTrailStopLossPoints × TrailMultiplier = 320 × 1.1 = 352 نقطة، مقفلة الربح. منطق التريل مُقيّد بمرشح 'السعر الحالي على الجانب الصحيح من الفتح' فلا يُضيّق ضد صفقة رابحة بالفعل. نفس مرشح الرقم السحري مُدمج في دالة التريل (السطر 784). مستوى خط HLineSL يُسحب عبر ObjectMove().

مخاطر مستوى الحساب تُدار بواسطة مدير حقوق رباعي المقابض: MaxFloatLoss = 1.3 (سقف $130 مطلق عند 0.01 لوت — ليس نسبة مئوية من الرصيد، ولا يتناسب مع اللوت)، EquityTrigBEStop = 7 (محفز $700 لقفل التعادل العائم)، EquityBEStopLoss = 2.5 (وقف عائم $250)، وEquityTrail = 10 (خطوة تريل $1000). عندما currentProfitHLineSLprice()، يُستدعى ClosePositions() لجني السلة. يعمل MaxFloatLoss كقاطع خسارة متماثل: إذا currentProfit ≤ −MaxFloatLoss × 100 × Lots وEquityManager = true، تُغلق كل المراكز بخسارة دولار ثابتة بغض النظر عن عدد المراكز.

التحكم الزمني يستخدم نافذتين بتوقيت السيرفر: StartTradingi = 07:00 إلى EndTradingi = 11:00، وStartTradingii = 13:00 إلى EndTradingii = 17:00. تقلب دالة CheckTradingTime() قيمة TradingIsAllowed العامة عند بلوغ الدقيقة الحدية، وتستشير PendCond() هذا المتغير قبل فتح أوامر معلقة جديدة. لا يوجد مرشح يوم من أيام الأسبوع. يوجد 3 دوال إعادة محاولة: TryClose_EX15028 وTryClosePartial_EX15028 وTryModify_EX15028، لكن TryClose_EX15028 فقط مدمج فعلياً في المسار الحي. يوجد مفتاح OrderTest لمختبر الاستراتيجية: عندما OrderTest = true وMQLInfoInteger(MQL_TESTER) صحيح، سيتناوب الـ EA على Sell(0.1) وBuy(0.1) في كل تيكت.

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

في كل تيكت وارد يُعيد الـ EA تقييم هيكل SMC + ANN على PERIOD_D1 (BigAnnOBtimeframe وBigSMCOBtimeframe كلاهما = 8) والبنية الدقيقة على PERIOD_H1 (TinyOBtimeframe = 5)، مع إعادة بناء بلوكات الشراء / البيع من مسحات iHighest / iLowest على PeaksLookBack = 199 شريطاً مع showlder = 4 وstartbar = 5. تُرجع دوال buySignal وsellSignal صحيحاً عندما يتفاعل السعر مع منطقة بلوك D1 ويتفق نمط ابتلاع H1 على 12 شريطاً في الاتجاه، مع محركين فرعيين مستقلين تماماً (TradeAnn وTradeSmc) بحيث يمكن لأي نمط بلوك وحده إطلاق الإشارة. عندما تكون البوابة صحيحة ونافذة TradingIsAllowed (07:00-11:00 أو 13:00-17:00 توقيت السيرفر) مفتوحة، تُسلّح PendCond() أمر BuyStop أو SellStop بإزاحة 2x سبريد + 10 نقاط لكل طبقة معلقة. بعد الملء، يُضيف ApplyStopLoss وApplyTakeProfit SL عند 150 نقطة وTP عند 1720 نقطة داخل نافذة 5 دقائق، بينما ApplyBE وApplyTrailingStop يرفعان إلى نقطة التعادل + 50 نقطة بعد حركة 210 نقطة ويكبحان SL كل 352 نقطة أبعد. مدير حقوق رباعي المقابض (MaxFloatLoss = 1.3 / EquityTrigBEStop = 7 / EquityBEStopLoss = 2.5 / EquityTrail = 10) يُغلق السلة إما عند خسارة $130 ثابتة أو بعد بلوغ خط HLineSL.

إشارة الدخول

يطلق buySignal أو sellSignal عندما يكتشف فرع بلوك ANN أو فرع بلوك SMC تفاعل السعر مع منطقة قمة / قاع D1، ويؤكد نمط ابتلاع H1 على 12 شريطاً الزخم في نفس الاتجاه، ثم تُسلّح PendCond() أمر BuyStop أو SellStop بإزاحة 2x سبريد إضافة إلى فجوة طبقة 10 نقاط.

إشارة الخروج

تتشكل الخروج عبر جني الأرباح عند 1720 نقطة، ووقف الخسارة عند 150 نقطة، ووقف التريل (يُحكم عند 320 × 1.1 = 352 نقطة فوق SL بمجرد تحرك السعر لصالح المركز)، وقفل نقطة التعادل (بعد 210 نقطة لصالح المركز، ينتقل SL إلى سعر الدخول + 50 نقطة)، وإغلاق سلة مدير الحقوق عندما ينخفض إجمالي الربح إلى خط الكلاّك.

وقف الخسارة

يُضاف وقف الخسارة الأولي بعد الملء عند 150 نقطة مع إزاحة سبريد عبر ApplyStopLoss() داخل نافذة PositionOpenWithin البالغة 5 دقائق، ثم يُرفع إلى نقطة التعادل + 50 نقطة بمجرد تحرك السعر 210 نقطة لصالح المركز، ويُحكم أكثر بواسطة بوابة وقف التريل 320 نقطة × مضاعف 1.1.

جني الأرباح

جني الأرباح على بعد 1720 نقطة فوق / تحت سعر الملء، يُضاف أيضاً بعد الملء عبر ApplyTakeProfit() داخل نافذة 5 دقائق؛ هذا يعطي نسبة عائد / مخاطرة هندسية 1720:150 ≈ 11.5:1، لكن معظم الخروج الواقعي في شريط متقلب يأتي من وقف التريل بدلاً من TP نفسه.

الأنسب لـ

مناسب لحساب مايكرو $100 على XAUUSD بأطر M5 / M10 / H1 مع وسيط ECN أو RAW سبريد منخفض يحترم سقف انزلاق 10 نقاط؛ نوافذ 07:00-11:00 + 13:00-17:00 توقيت السيرفر تتوافق مع جلستي لندن ونيويورك على معظم خوادم GMT+2 / GMT+3، وسقف MaxFloatLoss المطلق $130 ونافذة SL/TP البالغة 5 دقائق بعد الملء تحافظان على مخاطرة اللوت الواحد قابلة للتنبؤ.

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

Pipsgrowth EX15028 SMC-OrderBlock — تحليل منطق الاستراتيجية (من كود .mq5)

العائلة: SMC-OrderBlock الماجيك: 22215028 الإصدار: 2.00

الوصف: SMC Star V02 (simpleforextools) — Smart Money Concepts order block EA with ANN/SMC block detection, pending-order grids, equity manager, trailing and BE stops. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

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

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

  • PendCond()
  • buySignal()
  • sellSignal()
  • CheckTradingTime()
  • ApplyTakeProfit()
  • ApplyStopLoss()
  • ApplyBE()
  • ApplyTrailingStop()
  • IsPendingOrderExist()
  • IsPendingOrdersExists()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX15028 SMC-OrderBlock — Execution Flow (from source analysis)
// Family: SMC-OrderBlock
// SMC Star V02 (simpleforextools) — Smart Money Concepts order block EA with ANN/SMC block detection, pending-order grids, equity manager, trailing and BE stops. 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
الأطر الزمنية المُحسّنة:
M10M5H1

كيفية تثبيت الإكسبرت على 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اسحب الإكسبرت على رسم بياني يطابق الإطار الزمني الموصى به
  7. 7هيّء المعاملات وفقاً للجدول في هذه الصفحة
  8. 8فعّل Allow Algo Trading واضغط OK

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

المعاملالافتراضيالوصف
DrawAnnOrderBlocktrueDraw ANN Order Block
DrawSMCOrderBlocktrueDraw SMC Order Block
TradeAnntrueExecute Ann Order Block Trades
TradeSmctrueExecute SMC Order Block Trades
BigAnnOBtimeframe8Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) //Higher TimeFrame of ANN OB
BigSMCOBtimeframe8Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) //Higher TimeFrame of SMC OB
TinyOBtimeframe5Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) //Lower TimeFrame of OB
showlder4Shoulder
startbar5StartBar
PeaksLookBack199Look Back How Far To Find Order Block
InpTakeProfitPoints1720TakeProfit points Added to open Trade with NO TP
InpStopLossPoints150StopLoss points Added to open Trade with NO SL
InpTriggerBEStopLossPoints210TriggerBEStopLossPoints
InpBEStopLossPoints50BEStopLossPoints
InpTrailStopLossPoints320TrailPoints
TrailMultiplier1.1TrailMultiplier
Lots0.01Lots
InpBuySellQuantity1Max Buy Or Sell u want
InpUpQuantity1Pending quantity How many Pending u want
InpUpStep10Step/Gap between orders (in points)Distance Between Order's'
TS_period5Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)// Pend Price Trig Timeframe
InpMagicNumber22215028Magic Number
PositionOpenWithin300Open Within Seconds Applies 2 SL
OrderTestfalseEnable Tester Order (in Backtest Only)
Slippage10Slippage
EquityManagertrueTurn Euity Manager On True Off False
MaxFloatLoss1.3Money Equity Loss Stop
EquityBEStopLoss2.5Money Equity BE Stop
EquityTrigBEStop7Money To Trig BE Stop
EquityTrail10Money To Trail After BE
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX15028.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX15028 SMCstarV02_simpleforextools — SMC order block breakout/retest EA, full 12-layer stack."
#include <Trade\SymbolInfo.mqh>
#include <Trade\OrderInfo.mqh>
#include <Trade\Trade.mqh>
CTrade         m_trade;                      // trading object
CTrade         Trade;
CSymbolInfo    m_symbol;                     // symbol info object
COrderInfo     m_order;                      // object of COrderInfo class

ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
   switch(tf)
   {
      case 1: return PERIOD_M1;
      case 2: return PERIOD_M5;
      case 3: return PERIOD_M15;
      case 4: return PERIOD_M30;
      case 5: return PERIOD_H1;
      case 6: return PERIOD_H4;
      case 7: return PERIOD_D1;
      default: return PERIOD_H1;
   }
}
ENUM_TIMEFRAMES g_BigAnnOBtimeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_BigSMCOBtimeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_TinyOBtimeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_TS_period = PERIOD_H1;
input group                "=== Order Block Trading ==="
input bool             DrawAnnOrderBlock       =true;//Draw ANN Order Block
input bool             DrawSMCOrderBlock       =true;//Draw SMC Order Block
input bool             TradeAnn       =true;//Execute Ann Order Block Trades
input bool             TradeSmc       =true;//Execute SMC Order Block Trades
input int BigAnnOBtimeframe = 8; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)   //Higher TimeFrame of ANN OB
input int BigSMCOBtimeframe = 8; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)   //Higher TimeFrame of SMC OB
input int TinyOBtimeframe = 5; // Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)   //Lower TimeFrame of OB
input  int showlder = 4;   //Shoulder
input  int startbar = 5;   //StartBar
input  int PeaksLookBack = 199;   //Look Back How Far To Find Order Block

ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
   switch(tf)
   {
      case 1: return PERIOD_M1;
      case 2: return PERIOD_M5;
      case 3: return PERIOD_M15;
      case 4: return PERIOD_M30;
      case 5: return PERIOD_H1;
      case 6: return PERIOD_H4;
      case 7: return PERIOD_D1;
      default: return PERIOD_H1;
   }
}
ENUM_TIMEFRAMES g_BigAnnOBtimeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_BigSMCOBtimeframe = PERIOD_H1;
ENUM_TIMEFRAMES g_TinyOBtimeframe = PERIOD_H1;

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

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

الوسوم:ex15028smc-orderblockpipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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