Pipsgrowth EX15029 SMC-OrderBlock — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX15029 SMC-OrderBlock — Smart Money Concepts breakout EA — detects order blocks, CHOCH and liquidity sweeps using EMA cross + structure break, A. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
إكس 15029 من بيبس جراوث هو خبير آلي متخصص في مفاهيم المال الذكي يركّز على حدث سوقي واحد محدد بدقة: تغيير الشخصية (CHOCH). في حين أن معظم روبوتات SMC في هذا الكتالوج تبني إطاراً متعدد الكواشف ثقيلاً، يبسط إكس 15029 الفكرة إلى ثلاثة مكوّنات فقط — تقاطع المتوسطين المتحركين الأسِّيين، وكسر النطاق الهيكلي، وخروج بنسبة مخاطرة إلى عائد 2:1 — وينفّذها بإيقاع شريط جديد نظيف مع سقف لعدد الصفقات المفتوحة.
تحدث عملية الكشف في معالج OnTick، محكومة بحارس تيك لكل شريط (يتم تحديث المتغير lastBar إلى وقت فتح الشريط الحالي؛ إذا كان وقت الشريط الجديد يساوي lastBar، تعود الدالة فوراً). بمجرد افتتاح شريط جديد، ينفذ الخبير فلتر سبريد صارم: إذا تجاوز سبيد الرمز الحالي قيمة InpMaxSpread (25 نقطة افتراضياً)، يتم تخطي التيك بالكامل. هذا يعني أن الخبير سيجلس مكتوف الأيدي خلال فترات التقلب أو عندما يوسّع الوسيط السبريد حول الأخبار — ولن يدخل صفقة بسعر سيئ. إذا اجتاز الرمز اختبار السبريد، فإن البوابة التالية هي سقف المراكز: HasTrade() تمشي عبر كومة المراجع الموجودة بالعكس، بحثاً عن أي مركز يساوي POSITION_MAGIC فيه قيمة InpMagicNumber (22215029) و POSITION_SYMBOL يطابق الرمز الحالي. إذا وُجد مركز، يعود الخبير دون فعل أي شيء آخر. فقط عندما لا يكون هناك مركز مفتوح، يبحث عن إشارة.
بناء الإشارة هو المكان الذي يثبت فيه الخبير قيمته. تُنشأ ثلاثة مقابض مؤشرات في OnInit: hEMA20 و hEMA50 هما متوسطات متحركة أسّية لأسعار الإغلاق (فترتان 20 و 50، مطبقتان على PRICE_CLOSE، على الإطار الزمني الحالي)، و hATR هو متوسط المدى الحقيقي لمدة 14 فترة. في كل شريط جديد، ينسخ الخبير آخر ثلاث قيم لكل متوسط متحرك وآخر قراءة ATR. ثم يستخدم CopyHigh و CopyLow و CopyClose عبر نافذة InpOBLookback (10 أعمدة افتراضياً للخلف من الشريط الحالي) لبناء نطاق هيكلي محلي. يجد ArrayMaximum أعلى ارتفاع في تلك النافذة — ليصبح structureHigh — ويجد ArrayMinimum أدنى انخفاض لـ structureLow.
يتم استيفاء شرط CHOCH الصاعد عندما تحدث ثلاثة أشياء على نفس الشريط: قيمة المتوسط المتحرك 20 أعلى من قيمة المتوسط المتحرك 50، وكان المتوسط 20 عند أو تحت المتوسط 50 في الشريط السابق (حدث تقاطع للتو)، ويطبع إغلاق الشريط فوق قمة الهيكل لـ 10 أعمدة. يعكس CHOCH الهابط هذا المنطق: المتوسط 20 الآن تحت المتوسط 50، وكان فوقه أو مساوياً له في الشريط السابق، ويطبع الإغلاق تحت قاع الهيكل لـ 10 أعمدة. يوفر التقاطع في علاقة المتوسطات المتحركة البصمة الزخم، ويوفر الكسر الهيكلي تأكيد SMC، ويؤكد الإغلاق فوق/تحت القمة/القاع المتأرجحة أن السوق قبل السعر الجديد فعلياً.
عندما ينطلق CHOCH، يتم تعيين وقف الخسارة على 1.5 مرة قراءة ATR الحالية، ويوضع جني الأرباح على هذا الوقف مضروباً في InpRRRatio (2.0 افتراضياً) — لذا فإن الصفقة النموذجية تفتح بوقف 1.5 ATR وهدف 3.0 ATR. يمر تحديد حجم اللوت عبر CalcLot(sl)، الذي يحجم المركز بناءً على نسبة InpMaxRiskPct من رصيد الحساب (1.0% افتراضياً). يتم تقسيم مخاطرة الدولار على المخاطرة لكل وحدة محسوبة من مسافة الوقف وقيمة التيك وحجم التيك. تُقص النتيجة إلى حد أدنى قدره 0.01 لوت وتُطبع إلى منزلتين عشريتين. مع InpLotSize = 0.10 كتجاوز يدوي، السلوك الافتراضي هو استخدام تحديد الحجم بنسبة المخاطرة — لكن المتداولين الذين يريدون لوتاً ثابتاً ومسطحاً يمكنهم ضبط المدخلات لتعطيل هذا المسار.
تُرسل الصفقة نفسها عبر نسخة CTrade trade، التي تم ضبط رقمها السحري في OnInit عبر trade.SetExpertMagicNumber(InpMagicNumber). أمر الشراء الطويل يشتري بسعر Ask الحالي بوقف عند Ask - sl وهدف عند Ask + tp؛ أمر البيع يبيع بسعر Bid الحالي بوقف عند Bid + sl وهدف عند Bid - tp. يُضبط حقل التعليق على InpTradeComment القابل للتهيئة (الافتراضي "Psgrowth.com Expert_15029"). لا يوجد توسيع، ولا نقطة تعادل، ولا وقف متحرك، ولا إدارة لكل صفقة في المسار الحي — الخبير يترك المراكز تركض إلى وقفها أو هدفها. سقف المراكز هو منطق الخروج الوحيد الذي يطبقه الخبير بنشاط؛ بمجرد فتح الصفقة، لن يلمسها مرة أخرى حتى يصل السعر إلى وقف الخسارة أو جني الأرباح.
ما يجعل إكس 15029 يستحق الاختيار على إخوته الأكثر تعقيداً في SMC-OrderBlock هو إمكانية التنبؤ. لا توجد طبقات شبكة، ولا فلاتر أخبار، ولا روافع حقوق ملكية، ولا مفاتيح كاشف مزدوج. مساعدات إعادة المحاولة TryClose_EX15029 و TryClosePartial_EX15029 و TryModify_EX15029 معرّفة وجاهزة للتعامل مع ردود REQUOTE و TIMEOUT و PRICE_OFF و PRICE_CHANGED بثلاث محاولات ونوم 100-200 مللي ثانية بين المحاولات — لكن في هذا البناء، يمر مسار الدخول والخروج الحي عبر trade.Buy و trade.Sell مباشرة، لذا فإن مساعدات إعادة المحاولة مُسلكّة لأي إدارة مركزية قد يريد أحد توصيلها في المستقبل. يحرر OnDeinit مقابض المؤشرات الثلاثة بأمان، لذا فإن إزالة الرسم البياني أو الخبير لا تسرّب الموارد.
تم معايرة هذا الخبير للمتداولين الذين يريدون إشارة نظيفة واحدة لكل شريط على رسم بياني مدته 5 دقائق أو ساعة، حيث يكون تقاطع المتوسطات المتحركة هو مرشح الاتجاه وكسر الهيكل لـ 10 أعمدة هو المحفز. ليس من المضاربين، ولا الشبكة، ولا المارتينجال. المعاملات الافتراضية مضبوطة لحساب 100 دولار كحد أدنى لأن مخاطرة 1% لكل صفقة عند 1.5 وقف ATR وحد أدنى 0.01 لوت تترك هامشاً كافياً لتكاليف الهامش والتمويل للوسيط دون فرض نداء هامش. سقف السبريد المكون من 25 نقطة يناسب كل من الذهب وأزواج العملات الرئيسية في ظروف ECN النموذجية خلال جلستي لندن ونيويورك.
إذا كنت تريد دخول SMC-OrderBlock بسيط وشفاف يناسب داخل قاعدة صفقة-واحدة-مفتوحة-في-الوقت، فإن إكس 15029 هو أخف تنفيذ في هذه العائلة. إنه الخبير الذي يجب استخدامه عندما تريد دراسة ميكانيكا CHOCH دون التنافس مع dozen من طبقات الاستراتيجية الأخرى، أو عندما تريد اختبار فرضية التقاطع-زائد-الكسر-الهيكلي-في-العزلة.
تفاصيل الاستراتيجية
في كل شريط جديد، يفلتر الخبير السبريد (≤25 نقطة)، ثم يستدعي HasTrade() للتأكد من عدم وجود مركز مفتوح بالفعل تحت السحر 22215029. يسحب ثلاثة أعمدة من EMA(20) و EMA(50)، وعموداً واحداً من ATR(14)، وعشرة أعمدة من ارتفاع/انخفاض/إغلاق، ثم يحسب نطاق هيكلي لـ 10 أعمدة عبر ArrayMaximum/ArrayMinimum. ينطلق CHOCH الطويل عندما يعبر EMA20 فوق EMA50 على الشريط الحالي AND close[0] > structureHigh؛ والمرآة تعطي CHOCH قصير. نقاط الوقف 1.5×ATR والأهداف 3.0×ATR (2:1 RR افتراضي)، مع حجم لوت محسوب لمخاطرة 1% بالضبط من رصيد الحساب عبر CalcLot(). يحرر OnDeinit مقابض المؤشرات الثلاثة؛ مساعدات TryClose/TryClosePartial/TryModify معرّفة بمنطق 3-محاولات/100-200-مللي-ثانية-نوم لإدارة المركز المستقبل لكن المسار الحي يستخدم CTrade Buy/Sell مباشرة.
تنفّذ الأوامر على شريط جديد واحد فقط. يُثار أمر الشراء الطويل (Buy فوري) عندما يعبر المتوسط المتحرك 20 فوق المتوسط المتحرك 50 على الشريط الحالي ويطبع إغلاق الشريط فوق أعلى ارتفاع لنافذة الـ 10 أعمدة للنظر الخلفي (InpOBLookback=10). أمر البيع هو المرآة: يعبر المتوسط 20 تحت المتوسط 50 ويطبع الإغلاق تحت أدنى انخفاض لنفس نافذة الـ 10 أعمدة. يحدّان كل محاولة دخول سقف سبريد 25 نقطة (InpMaxSpread=25) وقاعدة مركز-واحد-مفتوح (فحص HasTrade()).
المخارج قائمة على السعر بالكامل. كل مركز يفتح بوقف خسارة وجني أرباح مرفقَين مباشرة بالأمر — يُوضع الوقف عند 1.5 مرة قراءة ATR(14) الحالية ويُضبط جني الأرباح على 2.0 مرة مسافة الوقف (InpRRRatio=2.0). الخبير لا يطبّق وقفاً متحركاً، ولا ينقل إلى نقطة التعادل، ولا يدير المراكز المفتوحة بنشاط. يعني سقف المركز الواحد أنه لا يمكن تنفيذ دخول جديد إلا بعد إغلاق المركز السابق عند وقفه أو هدفه.
يُضبط وقف الخسارة لكل صفقة على 1.5× قراءة ATR(14) الحالية في لحظة انطلاق إشارة CHOCH. يُوضع وقف الصفقة الطويلة عند Ask - 1.5ATR ووقف الصفقة القصيرة عند Bid + 1.5ATR. لا يوجد وقف بنقاط ثابتة، ولا وقف قائم على حقوق الملكية، ولا سقف سحب عالمي — المخاطرة محدودة بتحديد حجم 1% لكل صفقة وسقف المراكز.
يُضبط جني الأرباح على 2.0× مسافة الوقف (InpRRRatio=2.0 الافتراضي)، مما يعطي هدف 3.0 ATR مقابل وقف 1.5 ATR على شريط نموذجي M5 لـ XAUUSD أو أزواج العملات الرئيسية. كل من وقف الخسارة وجني الأرباح مرفقان بالأمر كمراتب من جانب الوسيط عند الدخول، لذا ينفذان من جانب الخادم دون مزيد من التدخل من الخبير.
الأنسب للمتداولين الذين يريدون إشارة CHOCH نظيفة واحدة لكل شريط على رسم بياني M5/M10/M15/M30/H1 لـ XAUUSD أو أزواج العملات الرئيسية. الحد الأدنى للرصيد الموصى به: 100 دولار (1% مخاطرة لكل صفقة مع حد أدنى 0.01 لوت ووقف 1.5 ATR يناسب الهامش القياسي). شغّله على حساب ECN بسبريد منخفض أو RAW — يفترض سقف السبريد المكون من 25 نقطة ظروف ECN نموذجية خلال تقاطع جلستي لندن ونيويورك. تجنب تشغيله خلال تقاطع الجلسات الآسيوية، أو فجوات السيولة المنخفضة، أو حول أحداث الأخبار عالية التأثير عندما تتجاوز السبريدات روتينياً بوابة الـ 25 نقطة.
منطق الاستراتيجية
Pipsgrowth EX15029 SMC-OrderBlock — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: SMC-OrderBlock
الماجيك: 22215029
الإصدار: 2.00
الوصف:
Smart Money Concepts breakout EA — detects order blocks, CHOCH and liquidity sweeps using EMA cross + structure break, ATR-based SL/TP with risk-percent lot sizing. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
HasTrade()CalcLot()OnInit_20260012_placeholder()TryClose_EX15029()TryClosePartial_EX15029()TryModify_EX15029()
// Pipsgrowth EX15029 SMC-OrderBlock — Execution Flow (from source analysis)
// Family: SMC-OrderBlock
// Smart Money Concepts breakout EA — detects order blocks, CHOCH and liquidity sweeps using EMA cross + structure break, ATR-based SL/TP with risk-percent lot sizing. 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
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX15029 SMCBreakoutEA — SMC breakout CHOCH/liquidity sweep EA, full 12-layer stack."
#include <Trade\Trade.mqh>
input group "=== Risk & Sizing ==="
input double InpLotSize = 0.10;
input int InpOBLookback = 10;
input double InpRRRatio = 2.0;
input double InpMaxRiskPct = 1.0;
input int InpMaxSpread = 25;
input group "=== Identity ==="
input int InpMagicNumber = 22215029;
input string InpTradeComment = "Psgrowth.com Expert_15029";
CTrade trade;
datetime lastBar=0;
int hEMA20, hEMA50, hATR;
int OnInit() {
trade.SetExpertMagicNumber(InpMagicNumber);
hEMA20 = iMA(_Symbol,PERIOD_CURRENT,20,0,MODE_EMA,PRICE_CLOSE);
hEMA50 = iMA(_Symbol,PERIOD_CURRENT,50,0,MODE_EMA,PRICE_CLOSE);
hATR = iATR(_Symbol,PERIOD_CURRENT,14);
return INIT_SUCCEEDED;
}
void OnDeinit(const int r) { IndicatorRelease(hEMA20);IndicatorRelease(hEMA50);IndicatorRelease(hATR); }
void OnTick() {
datetime cb=iTime(_Symbol,PERIOD_CURRENT,0);
if(cb==lastBar) return; lastBar=cb;
if(SymbolInfoInteger(_Symbol,SYMBOL_SPREAD)>InpMaxSpread) return;
if(HasTrade()) return;
double ema20[3],ema50[3],atr[1];
if(CopyBuffer(hEMA20,0,1,3,ema20)<3||CopyBuffer(hEMA50,0,1,3,ema50)<3||CopyBuffer(hATR,0,1,1,atr)<1) return;
double high[],low[],close[];
ArraySetAsSeries(high,true); ArraySetAsSeries(low,true); ArraySetAsSeries(close,true);
if(CopyHigh(_Symbol,PERIOD_CURRENT,1,InpOBLookback,high)<InpOBLookback) return;
if(CopyLow(_Symbol,PERIOD_CURRENT,1,InpOBLookback,low)<InpOBLookback) return;
if(CopyClose(_Symbol,PERIOD_CURRENT,1,InpOBLookback,close)<InpOBLookback) return;
double structureHigh=high[ArrayMaximum(high,0,InpOBLookback)];
double structureLow =low[ArrayMinimum(low,0,InpOBLookback)];
double ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK), bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
double sl=atr[0]*1.5, tp=sl*InpRRRatio;
double lot=CalcLot(sl);
bool bullishCHOCH = ema20[0]>ema50[0] && ema20[1]<=ema50[1] && close[0]>structureHigh;
bool bearishCHOCH = ema20[0]<ema50[0] && ema20[1]>=ema50[1] && close[0]<structureLow;
if(bullishCHOCH) trade.Buy(lot,_Symbol,ask,ask-sl,ask+tp,InpTradeComment);
if(bearishCHOCH) trade.Sell(lot,_Symbol,bid,bid+sl,bid-tp,InpTradeComment);
}
bool HasTrade() { for(int i=PositionsTotal()-1;i>=0;i--) if(PositionGetTicket(i)>0&&PositionGetInteger(POSITION_MAGIC)==InpMagicNumber&&PositionGetString(POSITION_SYMBOL)==_Symbol) return true; return false; }
double CalcLot(double sl) { double b=AccountInfoDouble(ACCOUNT_BALANCE),tv=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE),ts=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE); if(sl<=0||ts<=0) return 0.01; return NormalizeDouble(MathMax(0.01,(b*InpMaxRiskPct/100)/(sl/ts*tv)),2); }
int OnInit_20260012_placeholder() { return 0; } // placeholder to avoid unused warning
//+------------------------------------------------------------------+
bool TryClose_EX15029(ulong ticket)
{
for(int a=0; a<3; a++)
{
if(trade.PositionClose(ticket) &&
(trade.ResultRetcode()==TRADE_RETCODE_DONE || trade.ResultRetcode()==TRADE_RETCODE_DONE_PARTIAL))
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 EX01012 Adaptive — إكسبرت أدفايزر تكييفي
Pipsgrowth EX01012 Adaptive — High-Frequency Gold EA with adaptive market-condition detection (trend/range/volatility regime) using EMA crossover, RSI. إكسبرت أدفايزر 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.