Pipsgrowth EX15001 SMC-OrderBlock — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · USDJPY · M15
Pipsgrowth EX15001 SMC-OrderBlock — SMC + SuperTrend confluence trend-follow EA. SuperTrend = HL2 +/- ATR*mult (inlined from iATR, no iCustom). EMA9/21 cros. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
EX15001 هو مستشار آلي لتتبع الاتجاه على زوج USDJPY بإطار M15، مبني على تقاطع ثلاث إشارات تضافر مستقلة: اتجاه SuperTrend محسوب داخليًا (HL2 ± 3.0*ATR(10) على 50 شمعة استرجاع)، تقاطع متوسطين EMA (9/21)، وبوابة قوة ADX(14). قبل أن تتأكد أي من هذه الإشارات الثلاث، يمرر المستشار كل تيك عبر مصنف نظام من 7 حالات مبني على ADX(14) ومرتبة مئين ATR لمدة 50 شمعة وفحص توسع عرض نطاق بولينجر(20, 2.0) — وعبر مرشح فخ SMC للدعم/المقاومة مبني على القمم/القيعان الكسورية الذي يحظر الدخول عندما يكون هيكل عاكس على بُعد 50 نقطة من السعر. النتيجة خط أنابيب قرار من 12 طبقة يجب أن يجتاز ست بوابات (REGIME وSIGNAL وCONFIRM وNO-TRADE وCAPITAL CAP وSIZING) قبل إرسال أي أمر.
مقابض المؤشرات السبعة التي تُنشأ في OnInit هي hADX(14) وhATR_reg(50) وhBB(20, 2.0) وhFastEMA(9) وhSlowEMA(21) وhATR_st(10) وhEMA_HTF(50 على الإطار الأعلى H1 — لاحظ أن الإدخال InpHTFTimeframe=8 يقع خارج محول MapTimeframeInt الذي يغطي 1-7 ويستقر على PERIOD_H1 كقيمة افتراضية). OnDeinit يحرر كل المقابض. SuperTrend «بلا iCustom» مبني يدويًا في SuperTrendAt(): يمشي للخلف 50 شمعة (N = max(STPeriod+2, 50))، ويحافظ على النطاقين العلوي والسفلي بقاعدة الـ ratchet القانونية (السفلي يرتفع فقط، العلوي ينخفض فقط)، ويحدد الاتجاه من قاعدة الانعكاس (إغلاق < سفلي ← بيع، إغلاق > علوي ← شراء). الدالة SignalComposite() لا تُرجع ±1 إلا عندما يتفق EMA و SuperTrend على الشمعة المغلقة، AND السعر ليس محاصرًا أمام قمة/قاع SMC عاكس.
مصنف النظام يُرجع إحدى سبع حالات — 0=اتجاه قوي (ADX ≥ 25 AND مئين ATR ≥ 0.6)، 1=اتجاه ضعيف، 2=مدى، 3=اختراق (بولينجر متوسع AND مئين ≥ 0.7)، 4=انضغاط، 5=توسع، 6=متذبذب (ADX < 15). المصنف يكبت الإشارات في نظامي المتذبذب (6) والانضغاط (4) — المستشار يرفض فعليًا دخول سوق منضغط وينتظر محاولة الاختراق التالية. هذا خيار تصميمي مقصود: يكلّف المستشار بعض التردد في الجولات مقابل تصفية ضوضاء العودة إلى المتوسط خلال ساعات طوكيو المعروفة بمداها على USDJPY.
مرشح فخ SMC للدعم/المقاومة هو القطعة الهيكلية التي تميز هذا المستشار عن بوت تتبع الاتجاه التقليدي بـ EMA. الدالة ScanSMCLevels() تمشي آخر 300 شمعة مرة لكل شمعة جديدة، وتبحث عن قمم وقيعان كسورية صارمة (5 شموع لكل جانب، يتحكم بها InpSwingSize=5)، وتخزن ما يصل إلى 64 منها. ثم SMCIsTrap() تحظر الشراء إذا كان هناك قمة مقاومة في حدود SMC_SR_PROXIMITY_PTS=50 نقطة فوق السعر الحالي، والبيع إذا كان هناك قاع دعم في حدود 50 نقطة تحت السعر. هذا المرشح وحده يلغي فئة كبيرة من أنماط صيد الستوب التي كان مركب EMA/SuperTrend سيقبلها.
طبقة CONFIRM تتطلب ثلاثة أشياء: EMA(50) على H1 يجب أن يتفق مع اتجاه الإشارة (إغلاق الشمعة السابقة على الجانب الصحيح)، نسبة المخاطرة/العائد المتوقعة يجب أن تكون ممكنة (SL = 3.0 * ATR؛ TP = SL * InpMinRR=1.5؛ كلاهما > 0)، وADX يجب أن يكون ≥ InpADXMin=20. نافذة الجلسة تُفرض هنا أيضًا: ساعات السيرفر 7-21 (معرّفة كـ SESSION_START_HOUR=7 وSESSION_END_HOUR=21) — تمتد من لندن وتداخل لندن/نيويورك ومعظم جلسة نيويورك على ساعة وسيط نموذجية. على وسيط GMT نفس النافذة تغطي من افتتاحية لندن إلى إغلاق نيويورك.
طبقة NO-TRADE تضيف مرشح سبريد متحرك: المستشار يحتفظ بمتوسط 50 شمعة من السبريد، ويحظر الدخول عندما يتجاوز السبريد الحالي 3× المتوسط أو المتوسط + 20 نقطة (أيهما أكبر). كما يرفض إذا كان SL المتوقع سيقع داخل مستوى الستوب لدى الوسيط، إذا تم بلوغ MAX_POSITIONS=5، أو إذا كان نفس الجانب لديه بالفعل MAX_PYRAMID_LEVELS=3 صفقات مفتوحة. فحص TERMINAL_TRADE_ALLOWED وفحص وضع التعبئة يجلسان في أسفل البوابة.
المخاطرة وتحديد الحجم مرتبطتان بـ EffectiveCapital() — Min(InpCapitalCapAmount، equity) إذا تم تعيين الغطاء، وإلا الـ equity الخام. مع الغطاء عند الافتراضي 0.0، الحجم هو 0.5% من الإكويتي لكل صفقة (InpRiskPercent=0.5)، محولًا إلى لوتات عبر riskMoney / (slDist / tickSize * tickValue)، ومُقَصًّا إلى خطوة اللوت لدى الرمز. إذا كانت نسبة المخاطرة ≤ 0، يسقط إلى InpFixedLot=0.01. حد الخسارة اليومي (3.0% من رأس المال الفعال، InpDailyLossLimitPct) يُفرض من الربح/الخسارة المحقق لجميع الصفقات بسحر 22215001 منذ الساعة 00:00 بتوقيت السيرفر. الإدخال InpCapitalCapFloor=50 يحظر دخولًا جديدًا بمجرد سقوط رأس المال الفعال تحت 50$.
إدارة الصفقة الجارية تعمل كل تيك. ManageInTrade() تمشي الصفقات المفتوحة وتفعل أربعة أشياء بالترتيب: (1) خروج زمني إذا عاشت الصفقة أكثر من MAX_BARS_IN_TRADE=96 شمعة (~24 ساعة على M15)، (2) خروج عكسي الإشارة إذا انقلب مركب SuperTrend+EMA، (3) إغلاق جزئي 50% (InpPartialPct=50) عند علامة 1R، (4) قفل نقطة التعادل عند InpBETriggerR=1.0 ثم تتبع ATR عند InpTrailATRmult=2.5 * ATR(10). التعادل يُضبط على الافتتاح + 2 نقاط للشراء، الافتتاح - 2 نقاط للبيع. التتبع يتحرك فقط في الاتجاه المواتي، ولا يتحرك للخلف أبدًا.
إضافات الهرم مُبوّأة عبر PyramidAllowed(): نفس الجانب فقط، وفقط بعد ربح 2.0 * ATR على كل صفقة موجودة من نفس الجانب، وحتى MAX_PYRAMID_LEVELS=3. إرسال الأوامر يمر عبر trade.Buy()/trade.Sell() مع إعادة محاولة واحدة عند TRADE_RETCODE_REQUOTE/TIMEOUT/PRICE_OFF داخل TryEntry(). مساعدات إعادة المحاولة المستمرة TryClose_EX15001 وTryClosePartial_EX15001 وTryModify_EX15001 (3 محاولات، 200ms للإغلاق / 100ms للتعديل على requote/timeout/price-off/price-changed) مدمجة في مسارات إدارة الصفقة الجارية وفي CloseAllOurs.
صيغة OnTester هي (netProfit * profitFactor) / (1 + balanceDrawdownDollars)، مع حد أدنى 30 صفقة قبل إرجاع درجة. هذا يجعل هدف التحسين يفضل كلًا من العائد الخام ومنحنى إكويتي سلس، مع عقوبة صريحة على الانخفاضات العميقة. أي مرور بأقل من 30 صفقة يُرجع 0.0، وأي باك تيست بدون انخفاض يُرجع 0.0 لكبح تشوهات المطابقة.
علمان للسلامة يأتيان كمدخلات: InpDryRun=true هو الافتراضي خارج الصندوق — المستشار يسجل الصفقات المقصودة بدلًا من إرسالها، ويجب قلبه قبل التداول الحقيقي. الإدخال InpKillSwitch يفرض CloseAllOurs في رأس كل تيك عند true. تفاوت الانزلاق مضبوط على SLIPPAGE_POINTS=30 (3 نقاط) ووضع التعبئة لكائن trade يُكتشف تلقائيًا لكل رمز.
هذه تنفيذية محددة لـ USDJPY-M15؛ الكود قابل للنقل إلى أزواج FX رئيسية أخرى لكن إقران EMA 9/21 + SuperTrend 3.0*ATR تم ضبطه مقابل نطاق USDJPY اليومي النموذجي 25-50 نقطة. الحد الأدنى للرصيد هو 100$ (مع حجم لوت ثابت 0.01)، و1000$+ مطلوبة لاستخدام حجم المخاطرة 0.5% بشكل مفيد. الوسيط يجب أن يكون ECN بسبريد منخفض مع سبريد خام لـ USDJPY أقل من 1 نقطة؛ مرشح السبريد المتحرك سيرفض الدخول تلقائيًا أثناء أحداث الأخبار ذات السبريد العريض، لكنه لا يستطيع حظر التعرض المحمول من قبل على صفقة مفتوحة بالفعل. للاختبارات الخلفية، صيغة OnTester ترجيح سلاسة منحنى الإكويتي بشدة، لذا مجموعة معاملات تطبع ربحًا عاليًا مع انخفاضات عميقة ستحتل مرتبة أدنى من مجموعة أكثر سلاسة ذات ربح مطلق أقل.
تفاصيل الاستراتيجية
المستشار يخصص سبعة مقابض مؤشرات في OnInit (ADX 14، ATR 50 للنظام، بولينجر 20/2.0، EMA 9، EMA 21، ATR 10 لـ SuperTrend، وEMA 50 على H1) ويحدّث ذاكرة SMC الكسورية مرة لكل شمعة جديدة في ScanSMCLevels. كل تيك يمر عبر ManageInTrade لمنطق التعادل وتتبع ATR والجزئي والخروج-الزمني والخروج-العكسي، لكن القرارات الجديدة مقيدة بقرار واحد لكل شمعة M15 مغلقة. كل قرار دخول يمشي خط الأنابيب الكامل المكون من 12 طبقة: RegimeClassify يُرجع واحدة من 7 حالات (يكبت المتذبذب والانضغاط)، SignalComposite يتطلب اتفاق EMA + SuperTrend المحسوب داخليًا AND مرشح فخ SMC نظيف، ConfirmOK يفرض اتفاق EMA(50) على H1، جدوى R/R، ADX ≥ 20، ونافذة 7-21 بتوقيت السيرفر، وNoTradeBlock يرفض على أساس السبريد أو مستوى الستوب أو الحد الأقصى للصفقات أو سقف الهرم. الحجم يستخدم 0.5% من Min(الغطاء، الإكويتي) محولًا إلى لوتات بعمليات حسابية للتيك، مع سقوط إلى 0.01. العلم InpDryRun افتراضه true، لذا التداول الحقيقي يتطلب قلبه في المدخلات.
على الشمعة M15 المغلقة، يبحث المستشار عن اتجاه SuperTrend (HL2 ± 3.0ATR(10)) يتفق مع تقاطع EMA(9)/EMA(21). يجب تواجد كليهما في نفس الشمعة المغلقة، ADX(14) يجب أن يكون ≥ 20، EMA(50) على H1 يجب أن يتفق مع جانب الإشارة، ومصنف النظام يجب ألا يكون متذبذبًا أو منضغطًا، والعرض/الطلب الحالي يجب ألا يكون في حدود 50 نقطة من قمة/قاع كسوري SMC عاكس. ثم يُرسل أمر شراء أو بيع بـ SL = 3.0ATR وTP = 1.5*SL، بحجم يخاطر بـ 0.5% من رأس المال الفعال.
الإدارة تعمل كل تيك. المستشار يغلق الصفقة إذا كانت مفتوحة لأكثر من 96 شمعة (~24 ساعة على M15)، إذا انقلب مركب SuperTrend+EMA إلى الاتجاه المعاكس، أو عندما يصل السعر إلى هدف TP بنسبة 1.5:1. إغلاق جزئي 50% يُطلق عند علامة 1R؛ بعد ذلك، ينتقل الستوب إلى نقطة التعادل (الافتتاح ± 2 نقطة) ثم يتتبع عند 2.5*ATR(10) على كل حركة لاحقة في الاتجاه المواتي.
وقف الخسارة الأولي يُضبط على InpATRSLmult=3.0 مضروبًا في ATR(10) — تقريبًا 30-50 نقطة على USDJPY M15. الستوب ينتقل إلى نقطة التعادل (الافتتاح ± 2 نقطة) بمجرد أن يصل السعر إلى 1R، ثم يتتبع عند 2.5*ATR(10) على كل شمعة لاحقة في الاتجاه المواتي، يتحرك إلى الأمام فقط ولا يتحرك للخلف أبدًا.
جني الأرباح ثابت عند SL * InpMinRR=1.5، أي نسبة مخاطرة/عائد 1.5:1 (تقريبًا 45-75 نقطة على USDJPY M15). إغلاق جزئي 50% يُطلق عند 1R قبل الوصول إلى هدف TP الكامل؛ النسبة المتبقية 50% تركب مع تتبع الستوب.
النشر المقصود هو USDJPY M15 على وسيط ECN بسبريد منخفض مع سبريد خام لـ USDJPY أقل من 1 نقطة. الحد الأدنى للرصيد هو 100$ (مع حجم لوت ثابت 0.01)، و1000$+ موصى به لاستخدام حجم المخاطرة 0.5% بشكل مفيد. نافذة الجلسة 7-21 بتوقيت السيرفر (من لندن إلى معظم نيويورك) مبرمجة بشكل ثابت عبر SESSION_START_HOUR وSESSION_END_HOUR، لذا هذا المستشار ليس لاستراتيجيات USDJPY في الجلسة الآسيوية فقط؛ يعمل أفضل في فترة تداخل لندن+نيويورك ذات ADX الأعلى والمدى الأكبر. أوقف المستشار يدويًا حول أخبار USDJPY المؤثرة (قرارات بنك اليابان، CPI الأمريكي، NFP، FOMC) — مرشح السبريد المتحرك سيحظر الدخول السيئ لكنه لا يستطيع حظر التعرض المحمول من قبل على الصفقات المفتوحة بالفعل.
منطق الاستراتيجية
Pipsgrowth EX15001 SMC-OrderBlock — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: SMC-OrderBlock
الماجيك: 22215001
الإصدار: 2.00
الوصف:
SMC + SuperTrend confluence trend-follow EA. SuperTrend = HL2 +/- ATR*mult (inlined from iATR, no iCustom). EMA9/21 cross trend filter, ADX gate, SMC swing-pivot S/R trap filter blocks entries near opposing S/R. Capital cap uses effective_capital. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
DayStamp()EffectiveCapital()TodayRealizedPnL()NormalizePrice()StopsLevelPrice()ClampVolume()CountOurs()CountOursByType()CloseAllOurs()CopyBufSafe()
// Pipsgrowth EX15001 SMC-OrderBlock — Execution Flow (from source analysis)
// Family: SMC-OrderBlock
// SMC + SuperTrend confluence trend-follow EA. SuperTrend = HL2 +/- ATR*mult (inlined from iATR, no iCustom). EMA9/21 cross trend filter, ADX gate, SMC swing-pivot S/R trap filter blocks entries near opposing S/R. Capital cap uses effective_capital. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpMagicNumber | 22215001 | Magic Number (222xxx) |
| InpTradeComment | "Psgrowth.com Expert_15001" | Trade comment |
| InpDryRun | true | Dry-run (no live sends) |
| InpKillSwitch | false | Kill switch (block everything) |
| InpRiskPercent | 0.5 | Risk % per trade (of effective_capital) |
| InpFixedLot | 0.01 | Fixed lot fallback (risk=0) |
| InpDailyLossLimitPct | 3.0 | Daily loss limit % (of effective_capital) |
| InpCapitalCapAmount | 0.0 | Capital cap amount ($ REAL MONEY equity) |
| InpCapitalCapFloor | 50.0 | Capital floor ($ — block new entries below) |
| InpFastEMA | 9 | Fast EMA period |
| InpSlowEMA | 21 | Slow EMA period |
| InpSTPeriod | 10 | SuperTrend ATR period |
| InpSTMultiplier | 3.0 | SuperTrend ATR multiplier |
| InpADXMin | 20.0 | ADX minimum (trend strength gate) |
| InpHTFTimeframe | 8 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // HTF trend agreement TF |
| InpMinRR | 1.5 | Minimum reward:risk ratio |
| InpSwingSize | 5 | Fractal swing size (bars each side) |
| InpATRSLmult | 3.0 | Initial SL = mult * ATR |
| InpBETriggerR | 1.0 | Break-even trigger (R multiples) |
| InpTrailATRmult | 2.5 | ATR trailing distance (mult) |
| InpPartialPct | 50.0 | Partial close % at TP1 (1R) |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX15001 USDJPY_SMC_SuperTrend — SMC + SuperTrend confluence trend-follow, full 12-layer stack."
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>
#include <Trade\OrderInfo.mqh>
#include <Trade\DealInfo.mqh>
CTrade trade;
CPositionInfo position;
CSymbolInfo sym;
CAccountInfo acc;
//============================== INPUTS ==============================
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_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_TIMEFRAMES g_InpHTFTimeframe = PERIOD_H1;
input group "=== Identity ==="
input long InpMagicNumber = 22215001; // Magic Number (222xxx)
input string InpTradeComment = "Psgrowth.com Expert_15001";// Trade comment
input bool InpDryRun = true; // Dry-run (no live sends)
input bool InpKillSwitch = false; // Kill switch (block everything)
ENUM_TIMEFRAMES MapTimeframeInt(int tf)
{
switch(tf)
{
case 1: return PERIOD_M1;الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.