Pipsgrowth EX10004 Momentum-Scalper — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، M15
Pipsgrowth EX10004 Momentum-Scalper — TSI (True Strength Index) is a double-smoothed momentum oscillator. Long/short trigger = TSI main crosses its EMA signal. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
EX10004 يبني مؤشر True Strength Index الخاص به من أسعار الإغلاق الخامة، ثم يتداول تقاطع ذلك المؤشر مع خط الإشارة الملد، وذلك على آخر شمعة مكتملة من الإطار الزمني للإشارة. البناء كاملاً داخل الدالة CalcTSI — لا يوجد مرجع iCustom ولا مؤشر TSI جاهز. يأخذ التنفيذ سلسلة CopyClose للإطار الزمني المحدد، يحسب فروق الأسعار بين النقاط، يأخذ القيمة المطلقة لهذه الفروق، ثم يمر كل سلسلة عبر متوسطين متتابعين بفترتين 25 و 13. تُقسم سلسلة الزخم ذات التمليس المزدوج على سلسلة الزخم المطلق ذات التمليس المزدوج وتُضرب في 100، مما ينتج مؤشر متذبذب بين -100 و +100 تقريبًاً. متوسط متحرك 10 فترات للمؤشر نفسه يصبح خط الإشارة، ويُفعل الروبوت عندما يتقاطع الخط الرئيسي مع خط الإشارة على الشمعة 1 — متجاهًلاً الشمعة المتشكلة لتفادي إعادة الرسم.
تقاطع TSI الخام هو بذرة الدخول، وليس محفّز الدخول. قبل أن يصل أي أمر إلى DoSend()، يجب أن يتجاوز التقاطع ConfirmHTF()، وهي سلسلة تأكيد من أربعة بوابات. يطلب البواب الأول اتفاق الإطار الزمني الأعلى: متوسط متحرك 50 على H1 يُبنى بـ iMA على PERIOD_H1، ويجب أن يكون إغلاق H1 السابق فوق المتوسط للشراء أو تحته للبيع. البواب الثاني هو ترتيب المتوسطات المتحركة في نفس الإطار — المتوسط السريع 50 فوق البطيء 100 للشراء، والعكس للبيع. البواب الثالث مرشح RSI(14) الذي يحجب عمليات الشراء عندما يكون RSI في منطقة الشراء المفرط والبيع عندما يكون في منطقة البيع المفرط، مما يحمي من ملاحقة آخر ساق في اتجاه معاكس. البواب الرابع هو حد أدنى 1.2 لنسبة R:R على مسافات SL/TP المتوقعة من سعر الدخول. تُجمع الأربعة بـ AND؛ أي حالة فشل تطبع [SKIP-CONFIRM] مع علم البواب المحدد وتعود بدون إطلاق.
قبل حتى تعمل سلسلة التأكيد، يجب أن يكون البيئة قابلة للتداول. تُنتج DetectRegime() ملصقًا من 1 إلى 7 من ثلاث قياسات: ADX(14) على آخر شمعة مكتملة، الترتيب المئوي لقيمة ATR(14) الحالية ضد آخر 100 قيمة ATR، وعرض حزم Bollinger (20، 2.0). السبع حالات هي: StrongTrend، WeakTrend، Range، Breakout، Compress، Expand، و Choppy. يتم حظر الدخول مطلقًا في Range أو Compress أو Choppy، و ManageExits() يأمر بإغلاق كل مركز مفتوح فورّه أن يتحول المصنّف إلى Range أو Choppy. ذلك يعني أن مركزًا تم فتحه ضمن نظام صالح قد يتم سحبه من الروبوت في الشمعة التالية إذا تدهورت البيئة — تكلفة متعمدة لتداول التقاطع دون تجاوز النظام.
تدور دورة حياة المركز في كل تيك، بستقلاً عن فحص الشمعة الجديدة. تمشي ManageExits() عبر المراكز المفتوحة في سلسلة من ستة مراحل. إغلاق تغير النظام لديه الأولوية، يليه إغلاق الإشارة المعاكسة (تقاطع TSI هبوطي جديد يغلق الشراء، وتقاطع صعودي يغلق البيع)، ثم حد زمني صلب عند 80 شمعة محتفظ بها (DEF_MAX_BARS). بعد هذه الثلاثة تأتي مراحل الإدارة: جزء من TP عند 1R يغلق 50% من المركز ويوسم التذكرة بـ P1 لمنع جزء ثان؛ وضع تعادل عند 0.8R ينقل وقف الخسارة إلى open + 0.15R ولا يرجع إلى الوراء؛ ووقف متتبع ATR عند 2.5× ATR(14) يُفعّل بعد 1R من التقدم ويتحرك فقط في الاتجاه الملائم. كتابة وقف جديد تحدث في كل تيك يحسّن الوضع، بـ SYMBOL_TRADE_STOPS_LEVEL للوسيط لتأكد أن التعديل لا يقع داخل نطاق التجميد.
المخاطر محدودة على مستوى الروبوت. حجم اللوت يأتي من CalcLots()، التي تقسم رأس المال الفعّال على المخاطرة لكل لوت المستمدة من مسافة وقف الخسارة المتوسطة بـ ATR و SYMBOL_TRADE_TICK_VALUE و SYMBOL_TRADE_TICK_SIZE، ثم تقص إلى SYMBOL_VOLUME_STEP و SYMBOL_VOLUME_MIN و SYMBOL_VOLUME_MAX. رأس المال الفعّال هو الأصغر بين حقوق الملكية في الحساب و InpCapitalCapAmount عند تفعيل السقف، مع حد أدنى 50 دولار تحته تحظر NoTrade() كل دخول. حدود الخسارة 3% من رأس المال الفعّال يوميًا و 7% أسبوعيًا، كلاهما محسوب من تاريخ الصفقات بتصفية بالرمز السحري والرمز. ثلاث خسائر متتالية تفعّل فترة تبريد 30 دقيقة. بوابة السعر 35 نقطة والانزلاق 20 نقطة، ونافذة الجلسة بوقت الخادم 7 إلى 21 — خارج هذه النافذة يعود الروبوت بصمت ولا يطبع شيئًا.
علامتان تنفيذ تستحقان الاهتمام قبل التداول الحي. InpDryRun=true هي الافتراضية؛ مع هذه العلامة، يسجل الروبوت كل أمر مقترح مع SL و TP وسلسلة التعليل لكن لا يدخله. InpKillSwitch=true هي زر الذعر: مع تفعيلها، تعود OnTick() فورًا على السطر الأول ولا تتشغّل أي من منطق الإدارة. تتم تنفيذ الأوامر عبر CTrade مع الكشف التلقائي عن وضع التملأ من SYMBOL_FILLING_MODE، فحص OrderCalcMargin مسبقًا، وإعادة محاولة واحدة على أخطاء requote أو timeout أو price-off أو price-changed قبل تسجيل الأمر كفاشل. متغير OnTester الخاص هو net * profit_factor / (1 + balance_dd)، مع حد أدنى 30 صفىقة أدناه الدرجة صفر، و dd <= 0 يعالج صفر الانخفاض كأحد لمنع القسمة على صفر.
تفاصيل الاستراتيجية
يبني EX10004 مؤشر True Strength Index داخليًا من رياضيات CopyClose: زخم نقطة بنقطة، تمليس مزدوج بـ EMA بفترتين 25 و 13، يُقسم على الزخم المطلق ذو التمليس المزدوج ويُضرب في 100، مع خط إشارة EMA بفترة 10. يُقرأ التقاطع فقط على آخر شمعة مكتملة (الفهرس 1). يتم تصفية التقاطع الخام بـ ConfirmHTF() — اتفاق H1 EMA(50)، ترتيب M5 EMA(50/100)، عدم تطرف RSI(14)، وحد أدنى 1.2 R:R. مصنّف سبعي الحالات DetectRegime() (ADX14 + الترتيب المئوي لـ ATR14 على 100 شمعة + عرض BB20) يحجب الدخول في Range أو Compress أو Choppy، و ManageExits() يأمر بإغلاق المراكز عند تدهور النظام. دورة حياة المركز سلسلة من ستة مراحل على كل تيك: إغلاق تغير النظام، إغلاق الإشارة المعاكسة، حد زمني 80 شمعة، جزء TP 50% عند 1R (مع وسم P1)، تعادل عند 0.8R يثبّت الوقف عند open + 0.15R، ووقف متتبع ATR عند 2.5× ATR14 يُفعّل بعد 1R. المخاطر محدودة بـ 0.5% من رأس المال الفعّال لكل صفقة، مع حدود خسارة يومية 3% وأسبوعية 7%، فترة تبريد 30 دقيقة بعد 3 خسائر متتالية، بوابة سعر 35 نقطة، ونافذة جلسة 7-21 بوقت الخادم. الافتراضيتان المهمتان: InpDryRun=true هي الحالة الافتراضية فيسجل الروبوت كل أمر مقترح لكن لا يرسله حتى تغيّر العلامة إلى false؛ و InpKillSwitch=true يوقف كل المنطق على أول سطر في OnTick(). متغير OnTester هو net * profit_factor / (1 + balance_dd)، مع حد أدنى 30 صفقة و dd <= 0 يعالج صفر الانخفاض كأحد.
يُفعّل الدخول للشراء عندما يتقاطع الخط الرئيسي لـ True Strength Index فوق خط إشارة EMA بفترة 10 على آخر شمعة مكتملة (الفهرس 1) من الإطار الزمني للإشارة، مع فحص تقاطع خام (القيمة الافتراضية لـ InpTSICrossBuf هي 0). البيع هو التقاطع المعاكس. يجب أن يتجاوز التقاطع أربعة بوابات مجمعة بـ AND في ConfirmHTF(): اتفاق H1 EMA(50) مع الاتجاه، ترتيب M5 EMA(50/100)، عدم وجود RSI(14) في منطقة متطرفة، وحد أدنى 1.2 R:R على SL/TP المتوقعة المبنية على ATR. يجب أن يعود المصنّف سبعي الحالات بحالة قابلة للتداول (StrongTrend أو WeakTrend أو Breakout أو Expand) — يتم حظر الدخول في Range أو Compress أو Choppy. مركز واحد في الوقت، دخول واحد لكل شمعة مكتملة، حجم اللوت عبر CalcLots() بـ 0.5% من رأس المال الفعّال.
تتم الخروج في سلسلة من ستة مراحل في ManageExits() على كل تيك. أولاً، إغلاق تغير النظام يأمر بإغلاق كل مركز مفتوح فورّه أن يتحول المصنّف إلى Range أو Choppy. ثانيًا، إغلاق الإشارة المعاكسة يحدث عند تقاطع TSI هبوطي جديد يغلق شراء، أو تقاطع صعودي يغلق بيع. ثالثًا، حد زمني صلب يغلق أي شيء محتفظ به أكثر من 80 شمعة (DEF_MAX_BARS). رابعًا، جزء من TP عند 1R يغلق 50% من المركز ويوسم التذكرة بـ P1 لمنع جزء ثان. خامسًا، وضع تعادل عند 0.8R ينقل وقف الخسارة إلى open + 0.15R بلا رجوع. سادسًا، وقف متتبع ATR عند 2.5× ATR(14) يُفعّل بعد 1R من التقدم ويتحرك فقط في الاتجاه الملائم.
وقف الخسارة الأولي هو ATR(14) * 1.8 من DEF_SL_MULT، مع حد أدنى صلب عند SYMBOL_TRADE_STOPS_LEVEL. يتم تثبيت وقف الخسارة على شمعة الدخول، ثم يتم إدارته بآلية أساليب: وضع تعادل في المرة الواحدة عند ربح 0.8R ينقل الوقف إلى open + 0.15R؛ وقف متتبع ATR عند 2.5× ATR(14) يُفعّل بعد 1R من التقدم ويتحرك فقط في الاتجاه الملائم؛ وإغلاق قسري عند تغير النظام أو الإشارة المعاكسة يتجاوز وقف الخسارة بالكامل.
هدف الربح الأولي هو ATR(14) * 3.0 من DEF_TP_MULT، مما يعطي 1.67:1 R:R. ثم يتم تقسيم الربح عبر جزء TP في ManageExits(): عند 1R من التقدم، يغلق الروبوت 50% من المركز ويدع الباقي يجري تحت وقف متتبع ATR (2.5× ATR، يُفعّل بعد 1R). النصف المتبقي يخضع لوقف المتتبع، أو إغلاق الإشارة المعاكسة، أو إغلاق تغير النظام، أو حد الوقت عند 80 شمعة — أيّهما يحدث أولاً. لا يوجد هدف ربح سلة ولا إعادة دخول بنمط المارتنجل.
مصمم لـ XAUUSD على M5 (يعمل على M5-M15) مع وسيط ECN يحافظ على سعر XAUUSD تحت 30 نقطة خلال نافذة 7-21 بوقت الخادم. بوابة اتفاق H1 EMA(50)، ومصنّف النظام ADX، ووقف الخسارة المتوسط بـ ATR كلها تفضّل جلستي لندن ونيويورك عندما يكون لـ XAUUSD تدفق اتجاهي؛ تشغيل الروبوت في جلسة آسيا سيبقي المصنّف في Range أو Compress ويحجب معظم الدخىل. الحد الأدنى الموصى به للرصيد: 500$ — حجم 0.5% لكل صفقة لا يوفر تنوعًا معنيًا أدناه ذلك. مدخل سقف رأس المال (InpCapitalCapAmount، الافتراضي 0 = معطل) هو أنظف طريقة لتحديد حجم الروبوت على حساب فرعي. اافتراضي InpDryRun=true فائبه إلى false قبل التداول الحي، واستخدم InpKillSwitch=true كزر ذعر.
منطق الاستراتيجية
Pipsgrowth EX10004 Momentum-Scalper — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Momentum-Scalper
الماجيك: 22210004
الإصدار: 2.00
الوصف:
TSI (True Strength Index) is a double-smoothed momentum oscillator. Long/short trigger = TSI main crosses its EMA signal line in the direction of the slow/fast EMA stack bias, on the last CLOSED bar. Entries gated by ADX/ATR-pct/BB-width regime, HTF-EMA agreement, RSI filter, min R/R, session, spread, daily-loss/capital cap. Exits: BE, partial-TP, ATR- trail, opposite-signal, time, regime-change. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
ATRADXRSIBBFastEMASlowEMAHTF_EMA
الدوال الرئيسية:
SymPoint()SymDigits()NormalizePrice()NormalizeLots()NewBar()RegimeStr()EMA_Series()CalcTSI()DetectRegime()EffectiveCapital()
// Pipsgrowth EX10004 Momentum-Scalper — Execution Flow (from source analysis)
// Family: Momentum-Scalper
// TSI (True Strength Index) is a double-smoothed momentum oscillator. Long/short trigger = TSI main crosses its EMA signal line in the direction of the slow/fast EMA stack bias, on the last CLOSED bar. Entries gated by ADX/ATR-pct/BB-width regime, HTF-EMA agreement, RSI filter, min R/R, session, spread, daily-loss/capital cap. Exits: BE, partial-TP, ATR- trail, opposite-signal, time, regime-change. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
ON_INIT:
Create indicator handles: ATR, ADX, RSI, BB, FastEMA, SlowEMA, HTF_EMA
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اسحب الإكسبرت من Navigator وأفلته على أي رسم بياني (يُنصح بـ M1 أو M5)
- 7في نافذة الإعدادات، فعّل Allow Algo Trading وحدد حجم اللوت
- 8اضغط OK — سيبدأ الإكسبرت بالتداول تلقائياً
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpTradeComment | "Psgrowth.com Expert_10004" | Trade comment / magic-tag |
| InpMagic | 22210004 | Magic number |
| InpTFSig | 4 | Timeframe (1=M1,2=M5,3=M15,4=M30,5=H1,6=H4,7=D1) // Signal timeframe |
| InpBaseLots | 0.05 | Base lot (risk floor / fallback) |
| InpRiskPercent | 0.5 | Risk per trade (% of effective capital) |
| InpDailyLossLimitPercent | 3.0 | Daily loss limit (% of effective capital) |
| InpWeeklyLossLimitPercent | 7.0 | Weekly loss limit (% of effective capital) |
| InpMaxOpenTrades | 1 | Max concurrent open positions (this EA+symbol) |
| InpLossCooldownN | 3 | Cooldown after N consecutive losses |
| InpMaxSpreadPts | 35.0 | Max allowed spread (in points) |
| InpSlippagePts | 20 | Order slippage deviation (points) |
| InpCapitalCapAmount | 0.0 | Cap amount (real-money equity $) |
| InpCapitalCapFloor | 50.0 | Floor below which entries blocked |
| InpTSICrossBuf | 0.0 | TSI main/signal buffer (TSI units, 0..100) |
| InpUseRSIFilter | true | Require RSI extreme (avoid mid-range) |
| InpRequireHTF | true | Require HTF-EMA agreement |
| InpRequireTrendBias | true | Require fast/slow EMA stack bias |
| InpUseAdxGate | true | Gate entries on ADX strength |
| InpUseBreakEven | true | Enable one-shot break-even |
| InpUsePartialTP | true | Enable partial TP at TP1 |
| InpUseATRTrail | true | Enable ATR trailing stop |
| InpExitOppSignal | true | Exit on opposite TSI cross |
| InpExitRegimeChg | true | Exit on regime change to Range/Choppy |
| InpDryRun | true | Dry-run: log but do not send orders |
| InpKillSwitch | false | Kill switch (true = block all trading) |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX10004 TSI XAUUSD 5M — True Strength Index momentum scalper, 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>
//=========================== CONSTANTS ==============================
#define DEF_TSI_R 25 // TSI first smoothing (momentum)
#define DEF_TSI_S 13 // TSI second smoothing
#define DEF_TSI_SIG 10 // TSI signal line EMA
#define DEF_FAST_EMA 50 // Fast trend EMA
#define DEF_SLOW_EMA 100 // Slow trend EMA
#define DEF_HTF_EMA_P 50 // HTF EMA period
#define DEF_HTF_TF PERIOD_H1
#define DEF_ATR_P 14
#define DEF_ADX_P 14
#define DEF_RSI_P 14
#define DEF_BB_P 20
#define DEF_BB_DEV 2.0
#define DEF_ATR_PCT_BARS 100
#define DEF_ATR_PCT_HI 0.85
#define DEF_ATR_PCT_LO 0.20
#define DEF_REGIME_ADX_STRONG 25
#define DEF_REGIME_ADX_WEAK 18
#define DEF_RSI_OB 70
#define DEF_RSI_OS 30
#define DEF_MIN_RR 1.2
#define DEF_SESSION_START 7
#define DEF_SESSION_END 21
#define DEF_SL_MULT 1.8 // SL = ATR * mult
#define DEF_TP_MULT 3.0 // TP = ATR * mult (R:R ~1.67)
#define DEF_TP1_R 1.0 // partial TP at 1R
#define DEF_TP1_PCT 50
#define DEF_BE_R 0.8 // BE trigger at 0.8R
#define DEF_BE_OFFSET_R 0.15
#define DEF_TRAIL_ATR 2.5
#define DEF_TRAIL_START_R 1.0
#define DEF_MAX_BARS 80
#define DEF_LOSS_COOLDOWN_S (30*60)
#define DEF_SPREAD_MULT 2.5
//+------------------------------------------------------------------+
//| INPUTS (12-22, grouped) |
//+------------------------------------------------------------------+
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;الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض
إكسبرتات مشابهة
عرض جميع الإكسبرتاتإكسبرتات أخرى بنفس استراتيجية سكالبينج
Pipsgrowth EX14020 Scalper — إكسبرت أدفايزر إكسبرت أدفايزر
Pipsgrowth EX14020 Scalper — AI-assisted XAUUSD scalper using a multi-filter signal scoring system combining RSI, MACD, EMA50/200 and ATR. Entry trig. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX10006 Momentum-Scalper — إكسبرت أدفايزر إكسبرت أدفايزر
Pipsgrowth EX10006 Momentum-Scalper — USDJPY M1 pullback scalp — fast EMA above slow EMA (uptrend), then a micro dip toward the pullback EMA, with bar-1 close. إكسبرت أدفايزر MT5 مفتوح المصدر.
Pipsgrowth EX14021 Scalper — إكسبرت أدفايزر إكسبرت أدفايزر
Pipsgrowth EX14021 Scalper — EURUSD scalper using Bollinger Bands + MACD divergence. Entry triggers on BB band touch confirmed by MACD crossover. إكسبرت أدفايزر MT5 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.