Pipsgrowth EX14021 Scalper — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · EURUSD · M5
Pipsgrowth EX14021 Scalper — EURUSD scalper using Bollinger Bands + MACD divergence. Entry triggers on BB band touch confirmed by MACD crossover. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
Pipsgrowth EX14021 هو مضارب (سكالبير) على زوج EURUSD عند الإطار الزمني M5، وتكمن ميزته بالكامل في قاعدة تزامن واحدة: يجب أن يحدث ارتداد شريط بولينجر وتقاطع زخم MACD على نفس الشمعة المغلقة. لا يكفي أي من المؤشرين بمفرده. إشارة الشراء تتطلب أن يكون سعر إغلاق الشمعة السابقة عند أو تحت الحد السفلي لبولينجر، وأن يكون سعر العرض الحالي قد عاد فوق هذا الحد السفلي، مع تقاطع خط MACD الرئيسي فوق خط إشارة MACD في نفس الشمعة الحالية. النسخ المعاكس يطلق صفقات بيع ضد الحد العلوي. يجب أن يتحقق كلا الاختبارين على نفس الشمعة، وبنفس سعر الإغلاق، قبل أن يرسل المستشار طلبًا. إذا تعافى السعر من الحد دون تقاطع MACD، لا يفعل المستشار شيئًا. وإذا تقاطع MACD دون لمس الحد، لا يفعل شيئًا أيضًا. التزامن بين الحدثين هو الفرضية كاملة.
اختبار بولينجر غير متماثل عمدًا ويستحق فهمه بدقة. ليس المقصود "السعر عند الحد". المقصود "السعر كان عند الحد قبل شمعة واحدة، وعاد داخل القناة الآن". مُنفذ في الكود كـ bid <= lower[1] && bid > lower[0]، حيث lower[1] قيمة الحد السفلي للشمعة السابقة وlower[0] قيمة الحد السفلي للشمعة الحالية. لذلك، الشراء يتطلب أن تكون الشمعة السابقة قد لامست فعليًا الحد السفلي، وأن تكون الشمعة الحالية قد أغلقت داخل القناة. هذا التسلسل يستبعد الاختراق الجديد في الاتجاه الخاطئ ويستبعد الدخول في منتصف التعافي عندما يبقى الحد السفلي هو نقطة اللمس. صفقات البيع تستخدم الاختبار المعاكس ضد الحد العلوي. إعدادات بولينجر هي فترة 20 وانحراف 2.0 على سلسلة أسعار الإغلاق — المعلمات التقليدية التي توفرها معظم منصات التداول كقيم افتراضية.
اختبار MACD يعمل بالتوازي على نفس الشمعة المغلقة. خط MACD الرئيسي في الشمعة السابقة يجب أن يكون تحت خط الإشارة، وخط MACD الرئيسي في الشمعة الحالية يجب أن يكون عند أو فوق خط الإشارة. الإعدادات الكلاسيكية 12/26/9 مطبقة على سلسلة أسعار الإغلاق. يتم ضم القيمتين البوليتين (ارتداد بولينجر وتقاطع MACD) بعلامة AND منطقية، لذا لا تُفتح الصفقة إلا عندما يتحقق كلاهما على نفس الشمعة. لا تسامح مع "تقاطع شبه كامل" أو "لمس الحد ضمن N نقاط" — القرار ثنائي، كلاهما يجب أن يكون صحيحًا على نفس الإغلاق.
إدارة المخاطر هي الجانب الأبسط في التصميم. كل طلب يخرج مع وقف خسارة 15 نقطة وجني أرباح 25 نقطة مُرفقًا من جانب الوسيط لحظة فتح الصفقة. هذا يعطي نسبة مخاطرة/مكافأة 1.67:1 (25/15). حجم اللوت ثابت عند 0.10 — InpLotSize = 0.10 في مجموعة Trading، دون إدارة مالية، أو مدخل نسبة مخاطرة، أو تحجيم ديناميكي، أو أي منطق تحجيم. حارس HasTrade() يمشي قائمة المراكز المفتوحة في بداية كل قرار ويرفض اتخاذ دخول جديد إذا كان أي مركز بسحر 22214021 على الرمز الحالي لا يزال مفتوحًا. النتيجة هي سلوك صارم لصفقة واحدة في كل مرة. لا توسع، لا تكديس، لا متوسط هبوطي، ولا استرداد مارتينجال. إما أن يضرب وقف الخسارة 15 نقطة، أو جني الأرباح 25 نقطة، أو يبقى حتى يغلقه شيء آخر. نظرًا لأن كل من SL وTP مُرفقان عند الدخول، لا يوجد تشغيل لأي منطق تتبع، أو نقطة تعادل، أو إغلاق جزئي بعد دخول الصفقة.
معالج OnTick مُحكم بفحص شمعة جديدة (if(cb==lastBar) return; lastBar=cb;)، لذا يتخذ المستشار قرارًا واحدًا بالضبط عند إغلاق كل شمعة M5 بصرف النظر عن عدد التيكات داخل الشمعة. مرشح السبريد يرفض أي تيك يكون فيه السبريد الحالي أوسع من InpMaxSpread = 15 نقطة. خمس عشرة نقطة عتبة سخية لـ EURUSD عند وسيط ضيق — أعلى بكثير من السبريد المعتاد 5-10 نقاط خلال جلستي لندن ونيويورك، وضيقة بما يكفي ليبتعد المستشار عن أوسع لحظات التداول الآسيوي وأي ارتفاعات من جانب الوسيط. لا يوجد مرشح جلسة، ولا حارس يوم في الأسبوع، ولا مرشح أخبار، ولا خروج مبني على الوقت، ولا وقف بناءً على الأسهم. المستشار مستعد للتداول في أي ساعة يكون فيها السبريد محصورًا.
معالجة المؤشرات بسيطة. يُنشأ في OnInit مؤشران أصليان: iBands(_Symbol, PERIOD_CURRENT, InpBBPeriod=20, 0, InpBBDev=2.0, PRICE_CLOSE) وiMACD(_Symbol, PERIOD_CURRENT, InpMACDFast=12, InpMACDSlow=26, InpMACDSignal=9, PRICE_CLOSE). كلاهما يُحرر في OnDeinit عبر IndicatorRelease(hBB) وIndicatorRelease(hMACD). يسحب المعالج آخر شمعتين مكتملتين من الحد العلوي، الحد السفلي، الحد الأوسط، خط MACD الرئيسي، وإشارة MACD — خمسة بفرات، شمعتان لكل بفر. أي شيء أقل من شمعتين لأي بفر يُلغي القرار بصمت لذلك التيك دون سطر سجل، دون إعادة محاولة، دون خطأ. عند فشل OnInit (إرجاع أحد المؤشرات INVALID_HANDLE)، يُرجع المستشار INIT_FAILED ولا يعمل.
يعلن الرأس عن بنية 12-طبقة تشمل كشف النظام، توليد الإشارة، الدخول، التأكيد، بوابة عدم التداول، سقف رأس المال، المخاطرة، التحجيم، الإدارة، الخروج، التوسيع، وOnTester. الكود الفعلي لا يحترم هذا التعداد. لا توجد دالة OnTester()، ولا مصنف نظام، ولا سقف سحب عالمي، ولا حد خسارة يومي، ولا مرشح ارتباط، ولا منطق توسيع، ولا قفل نقطة تعادل. "الطبقات" موجودة فقط في كتلة التعليق. ما ينشره الكود فعليًا هو مجموعة فرعية من الطبقة 2 (الإشارة) إلى الطبقة 3 (الدخول)، بالإضافة إلى طبقة مخاطرة رقيقة (مدخلات SL/TP) وطبقة مرشح رقيقة (السبريد فقط). إنه تطبيق صغير ومركّز، وليس نظام 12-طبقة. أي شخص يقيّم هذا بناءً على وصف الرأس وحده سيبالغ في تقدير ما هو حي فعليًا.
توجد ثلاث دوال مساعدة لإعادة المحاولة في أسفل الملف: TryClose_EX14021، TryClosePartial_EX14021، وTryModify_EX14021. كل واحدة تدور حتى ثلاث مرات على رموز REQUOTE وTIMEOUT وPRICE_OFF وPRICE_CHANGED، مع تراجع 200 مللي ثانية على محاولات الإغلاق و100 مللي ثانية على محاولات التعديل. كود إعادة المحاولة متشكل جيدًا. لكنه أيضًا كود ميت. لا توجد نقاط استدعاء في OnTick — مسارات الإغلاق والتعديل الحية تستخدم trade.Buy وtrade.Sell مباشرة مع SL/TP مُرفق من الوسيط، لذا لا يصدر أي طلب تعديل أو إغلاق لاحق، مما يعني أن دوال إعادة المحاولة لا تعمل أبدًا. هي سقالات قالب موروثة من نمط بناء EX14 وغير مدمجة في دورة حياة هذا المستشار الفعلية. إذا أضاف بناء مستقبلي منطق تتبع، أو نقطة تعادل، أو إغلاق جزئي، هذه الدوال جاهزة للتوصيل. يوجد عنصر نائب OnInit_20260005_placeholder() لنفس السبب — يُرجع 0، ولا يُستدعى أبدًا، ويوجد فقط لإسكات تحذير الدالة غير المستخدمة الذي سيرفعه المترجم.
في الاختبار الخلفي، توقع أن يكون المستشار انتقائيًا لا نشطًا. ينتج EURUSD M5 في المتوسط بضع أشرطة ارتداد بولينجر نظيفة لكل جلسة، وتقابل MACD على نفس الشمعة في جزء فقط منها. ستشهد معظم أيام التداول دورة إلى أربع دورات مكتملة تحت التقلب الطبيعي. وقف 15 نقطة ضيق بما يكفي لأن المستشار سيُخرج من الصفقات في حصة ذات مغزى من المحاولات خلال نوافذ الأخبار عالية التقلب؛ إذا أردت أن يبدو الاختبار الخلفي أنظف، شغله على جلسات أكثر هدوءًا وفكر في إيقافه يدويًا حول تقويم الأخبار الحمراء. لا يوجد تنعيم منحنى أسهم مدمج، ولا مارتينجال، ولا شبكة، ولا آلية استرداد — ما تراه لكل صفقة هو ما يقدمه المستشار، ربحًا كان أم خسارة، دون آليات بقاء مركبة في الخلف.
تلك البساطة هي المغزى. مؤشرات مفهومة جيدًا، قاعدة تزامن واضحة، معلمات مخاطرة ثابتة، لا ميزات خيالية، لا هندسة مبالغ فيها. الاستراتيجية تفعل شيئًا واحدًا — اصطياد ارتداد بولينجر يتفق معه MACD — وتقوم به على رسم بياني لخمس دقائق على أكثر أزواج العملات سيولة في العالم. عند استخدامه كما هو مُعلن، EX14021 مضارب EURUSD هادئ ومنخفض التردد مع غلاف مخاطرة ثابت وسقف لصفقة واحدة. إذا كنت بحاجة إلى تتبع، أو توسع، أو كشف نظام، أو طبقة تحوط، انظر إلى أعضاء عائلة EX14 الأكبر؛ هذا يبقى بسيطًا عن قصد، ويفهم بشكل أفضل كاختبار تزامن بين بولينجر وMACD على EURUSD M5.
تفاصيل الاستراتيجية
عند كل شريط M5 جديد يسحب المستشار آخر شمعتين مكتملتين من بفرات بولينجر العلوية والوسطى والسفلية (فترة 20، انحراف 2.0) وبفرات خط MACD الرئيسي والإشارة (12/26/9)، ويتفقد السبريد الحالي مقابل سقف 15 نقطة، ويسأل HasTrade() ما إذا كان مركز بسحر 22214021 على هذا الرمز مفتوحًا بالفعل. إذا لم يكن هناك مركز مفتوح، يختبر شرط ارتداد بولينجر (عودة سعر العرض داخل القناة بعد لمس الحد السفلي للشمعة السابقة للشراء، والعكس للبيع) AND تقاطع MACD على نفس الشمعة — يجب أن يكون كلا البوليين صحيحًا على نفس الإغلاق. عندما يتحقق كلاهما معًا، يفتح المستشار طلب سوق واحد بحجم 0.10 لوت مع وقف 15 نقطة وهدف 25 نقطة مُرفقين عند الدخول. تبقى الصفقة دون مساس حتى يضرب الوسيط أحد هذين المستويين. يتم تحرير مؤشري المعالجة عند deinit؛ دوال إعادة المحاولة الثلاث (TryClose_EX14021، TryClosePartial_EX14021، TryModify_EX14021) هي سقالات قالب وغير مدمجة في المسار الحي.
يتطلب الدخول وجود شريط ارتداد بولينجر وتقاطع MACD على نفس شمعة M5 المغلقة. تُطلق إشارة الشراء عندما يكون سعر إغلاق الشمعة السابقة عند أو تحت الحد السفلي (فترة 20، انحراف 2.0) ويكون سعر العرض الحالي قد عاد فوق هذا الحد، مع تقاطع خط MACD الرئيسي فوق خط الإشارة (12/26/9) في نفس الشمعة. تعكس إشارات البيع هذا الشرط على الحد العلوي مع تقاطع خط MACD الرئيسي تحت خط الإشارة. يرفض مرشح السبريد الدخول فوق 15 نقطة، ويفرض فحص HasTrade() سقفًا صارمًا لصفقة واحدة في كل مرة.
يتم الخروج بالكامل من جانب الوسيط عبر وقف الخسارة وجني الأرباح المُرفقين عند الدخول. يضرب الوسيط وقف الخسارة 15 نقطة أو الهدف 25 نقطة دون تدخل من المستشار — لا يوجد وقف متحرك، ولا قفل نقطة تعادل، ولا إغلاق جزئي، ولا خروج مبني على الوقت، ولا إغلاق بناءً على إشارة معاكسة. تبقى الصفقة دون مساس حتى يُطلق SL أو TP، وبعدها تسمح بوابة الشمعة الجديدة بفحص تزامن جديد عند إغلاق M5 التالي.
وقف خسارة ثابت 15 نقطة مُرفق من جانب الوسيط لحظة الدخول (sl = InpStopLoss_Point10). لا يوجد تتبع، ولا نقطة تعادل، ولا تعديل ديناميكي لكل صفقة — يُضبط SL مرة واحدة ويبقى عند هذا المستوى حتى يضربه الوسيط أو يُطلق TP أولاً.
جني أرباح ثابت 25 نقطة مُرفق من جانب الوسيط عند الدخول (tp = InpTakeProfit_Point10)، مما يعطي نسبة مكافأة/مخاطرة 1.67:1 مقابل وقف الخسارة 15 نقطة. لا يوجد خروج متدرج، ولا جني أرباح متحرك، ولا إغلاق جزئي — يُطلق TP مرة واحدة ويحرر فتحة الصفقة للإشارة التالية.
يُنشر بشكل أفضل على EURUSD M5 من قبل المتداولين الذين يريدون مضاربًا هادئًا ومنخفض التردد بصفقة واحدة مع مخاطرة ثابتة وقاعدة دخول تزامن واحدة. الحد الأدنى الموصى به للرصيد هو 200 دولار — حجم اللوت ثابت عند 0.10 (بدون مفتاح إدارة مالية، أو مدخل نسبة مخاطرة)، لذا فإن حسابًا بـ 200 دولار يخاطر بنحو 0.75% من الأسهم لكل صفقة عند وقف 15 نقطة. أفضل الجلسات هي تداخل جلستي لندن ونيويورك عندما يكون سبريد EURUSD أقل بكثير من سقف 15 نقطة؛ أما التداول الآسيوي فسيرى المستشار جالسًا عن أوسع نوافذ السبريد. استخدم على حساب ECN أو قياسي بسبريد ضيق — وقف 15 نقطة وهدف 25 نقطة لا يتركان هامشًا للانزلاق. مستوى المخاطرة مرتفع لأن المستشار يعمل بلوت ثابت 0.10 بصرف النظر عن الرصيد، ويتخذ صفقة واحدة في كل مرة، ولا يوجد حد خسارة يومي أو وقف بناءً على الأسهم لالتقاط سلسلة خسائر.
منطق الاستراتيجية
Pipsgrowth EX14021 Scalper — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: Scalper
الماجيك: 22214021
الإصدار: 2.00
الوصف:
EURUSD scalper using Bollinger Bands + MACD divergence. Entry triggers on BB band touch confirmed by MACD crossover
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
HasTrade()OnInit_20260005_placeholder()TryClose_EX14021()TryClosePartial_EX14021()TryModify_EX14021()
// Pipsgrowth EX14021 Scalper — Execution Flow (from source analysis)
// Family: Scalper
// EURUSD scalper using Bollinger Bands + MACD divergence. Entry triggers on BB band touch confirmed by MACD crossover
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اسحب الإكسبرت من Navigator وأفلته على أي رسم بياني (يُنصح بـ M1 أو M5)
- 7في نافذة الإعدادات، فعّل Allow Algo Trading وحدد حجم اللوت
- 8اضغط OK — سيبدأ الإكسبرت بالتداول تلقائياً
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX14021 EURUSDScalper — BB + MACD divergence scalper, full 12-layer stack."
#include <Trade\Trade.mqh>
input group "=== Identity ==="
input int InpMagicNumber = 22214021;
input string InpTradeComment = "Psgrowth.com Expert_14021";
input group "=== Trading ==="
input double InpLotSize = 0.10;
input group "=== Signal ==="
input int InpBBPeriod = 20;
input double InpBBDev = 2.0;
input int InpMACDFast = 12;
input int InpMACDSlow = 26;
input int InpMACDSignal = 9;
input group "=== Risk ==="
input int InpStopLoss = 15;
input int InpTakeProfit = 25;
input group "=== Filter ==="
input int InpMaxSpread = 15;
CTrade trade;
int hBB, hMACD;
datetime lastBar = 0;
int OnInit() {
trade.SetExpertMagicNumber(InpMagicNumber);
hBB = iBands(_Symbol,PERIOD_CURRENT,InpBBPeriod,0,InpBBDev,PRICE_CLOSE);
hMACD = iMACD(_Symbol,PERIOD_CURRENT,InpMACDFast,InpMACDSlow,InpMACDSignal,PRICE_CLOSE);
return(hBB!=INVALID_HANDLE && hMACD!=INVALID_HANDLE) ? INIT_SUCCEEDED : INIT_FAILED;
}
void OnDeinit(const int r) { IndicatorRelease(hBB); IndicatorRelease(hMACD); }
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 upper[2],lower[2],mid[2],macdMain[2],macdSig[2];
if(CopyBuffer(hBB,1,1,2,upper)<2 || CopyBuffer(hBB,2,1,2,lower)<2 || CopyBuffer(hBB,0,1,2,mid)<2) return;
if(CopyBuffer(hMACD,0,1,2,macdMain)<2 || CopyBuffer(hMACD,1,1,2,macdSig)<2) return;
double ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
double bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
double sl=InpStopLoss*_Point*10, tp=InpTakeProfit*_Point*10;
bool buyBB = bid <= lower[1] && bid > lower[0];
bool buyMACD = macdMain[1]<macdSig[1] && macdMain[0]>=macdSig[0];
bool sellBB = bid >= upper[1] && bid < upper[0];
bool sellMACD = macdMain[1]>macdSig[1] && macdMain[0]<=macdSig[0];
if(buyBB && buyMACD) trade.Buy(InpLotSize,_Symbol,ask,ask-sl,ask+tp,InpTradeComment);
if(sellBB && sellMACD) trade.Sell(InpLotSize,_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; }
int OnInit_20260005_placeholder() { return 0; } // placeholder to avoid unused warning
//+------------------------------------------------------------------+
bool TryClose_EX14021(ulong ticket)
{
for(int a=0; a<3; a++)
{
if(trade.PositionClose(ticket) &&
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 EX10004 Momentum-Scalper — إكسبرت أدفايزر إكسبرت أدفايزر
Pipsgrowth EX10004 Momentum-Scalper — TSI (True Strength Index) is a double-smoothed momentum oscillator. Long/short trigger = TSI main crosses its EMA signal. إكسبرت أدفايزر 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.