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). عندما currentProfit ≤ HLineSLprice()، يُستدعى 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()
// 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)ملف التحسين
كيفية تثبيت الإكسبرت على MT5
- 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
- 2افتح برنامج MetaTrader 5 على حاسوبك
- 3من القائمة العلوية اختر File → Open Data Folder
- 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
- 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
- 6اسحب الإكسبرت على رسم بياني يطابق الإطار الزمني الموصى به
- 7هيّء المعاملات وفقاً للجدول في هذه الصفحة
- 8فعّل Allow Algo Trading واضغط OK
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| DrawAnnOrderBlock | true | Draw ANN Order Block |
| DrawSMCOrderBlock | true | Draw SMC Order Block |
| TradeAnn | true | Execute Ann Order Block Trades |
| TradeSmc | true | Execute SMC Order Block Trades |
| BigAnnOBtimeframe | 8 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) //Higher TimeFrame of ANN OB |
| BigSMCOBtimeframe | 8 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) //Higher TimeFrame of SMC OB |
| TinyOBtimeframe | 5 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) //Lower TimeFrame of OB |
| showlder | 4 | Shoulder |
| startbar | 5 | StartBar |
| PeaksLookBack | 199 | Look Back How Far To Find Order Block |
| InpTakeProfitPoints | 1720 | TakeProfit points Added to open Trade with NO TP |
| InpStopLossPoints | 150 | StopLoss points Added to open Trade with NO SL |
| InpTriggerBEStopLossPoints | 210 | TriggerBEStopLossPoints |
| InpBEStopLossPoints | 50 | BEStopLossPoints |
| InpTrailStopLossPoints | 320 | TrailPoints |
| TrailMultiplier | 1.1 | TrailMultiplier |
| Lots | 0.01 | Lots |
| InpBuySellQuantity | 1 | Max Buy Or Sell u want |
| InpUpQuantity | 1 | Pending quantity How many Pending u want |
| InpUpStep | 10 | Step/Gap between orders (in points)Distance Between Order's' |
| TS_period | 5 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1)// Pend Price Trig Timeframe |
| InpMagicNumber | 22215028 | Magic Number |
| PositionOpenWithin | 300 | Open Within Seconds Applies 2 SL |
| OrderTest | false | Enable Tester Order (in Backtest Only) |
| Slippage | 10 | Slippage |
| EquityManager | true | Turn Euity Manager On True Off False |
| MaxFloatLoss | 1.3 | Money Equity Loss Stop |
| EquityBEStopLoss | 2.5 | Money Equity BE Stop |
| EquityTrigBEStop | 7 | Money To Trig BE Stop |
| EquityTrail | 10 | Money To Trail After BE |
#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;
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية أخرى
Pipsgrowth EX01007 Adaptive — إكسبرت أدفايزر تكييفي
Pipsgrowth EX01007 Adaptive — Adaptive signal scorer EA combining EMA crossover, RSI, Heiken Ashi, Bollinger Bands, ATR and volume spike detection int. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX01019 Adaptive — إكسبرت أدفايزر تكييفي
Pipsgrowth EX01019 Adaptive — Self-adaptive market regime EA that auto-detects trending, ranging, volatile, quiet and breakout conditions. Switches be. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX15029 SMC-OrderBlock — إكسبرت أدفايزر إكسبرت أدفايزر
Pipsgrowth EX15029 SMC-OrderBlock — Smart Money Concepts breakout EA — detects order blocks, CHOCH and liquidity sweeps using EMA cross + structure break, A. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.