Pipsgrowth EX12060 MultiIndicatorConfluence — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX12060 MultiIndicatorConfluence — Secure Momentum Pyramid strategy using EMA crossover with ADX strength filter. Pyramids into trends with step-based entr. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
اكس 12060 هو مستشار خبير يركّز على بناء هرم اتجاهي قوي على رمز واحد. يعتمد على ثلاثة مؤشرات على الإطار الزمني الحالي: المتوسط المتحرك الأسي لمدة 20 فترة، المتوسط المتحرك الأسي لمدة 50 فترة، ومؤشر ADX لمدة 14 فترة. لا يفتح أول صفقة في اتجاه جديد إلا عندما يكون المتوسط السريع على الجانب الصحيح من المتوسط البطيء، وأن يتجاوز مؤشر ADX مستوى 25، وأن يكون السعر واقعاً داخل نطاق ±200 نقطة حول المتوسط السريع. بعد وضع الصفقة الأولى، يكدّس اكس 12060 ما يصل إلى أربع صفقات إضافية في نفس الاتجاه، لكن بشرط بقاء الاتجاه قوياً وأن تكون كل تذكرة موجودة في ذلك الجانب قد "أُمنت" — أي أنها رابحة بـ 100 نقطة على الأقل وقد تم نقل وقف الخسارة إلى نقطة التعادل.
تعمل محركات التداول من داخل دالة OnTick() عند كل تكة. أولاً، تُحدّث بافرات المؤشرات الثلاثة (3 أعمدة لكل مؤشر) من iMA وiADX. ثم تُستخرج قيمة الربح الإجمالي للسلة من دالة CalculateTotalProfit() وتُقارن مع عتبتي السلة بالدولار: ربح السلة BasketTakeProfit عند 20 دولاراً، ووقف السلة BasketStopLoss عند 8 دولارات. عند تحقّق أيٍّ من الشرطين، تستدعي كل من CloseAll(POSITION_TYPE_BUY) وCloseAll(POSITION_TYPE_SELL) لتُغلقا كامل دفتر الأوامر بالرقم السحري 22212060، تُسجّل الدالة السبب، وتُنهى OnTick مبكراً حتى لا تُفتح صفقات جديدة في تلك الشمعة. هذا يعني أن جني الأرباح ووقف الخسارة على مستوى السلة لهما الأولوية دائماً — لا يمكن لأي تذكرة داخل السلة أن تبقى معلّقة عند بلوغ عتبة الدولار.
طبقة الإشارة مكوّنة من دالة CheckEntryLogic(). تقرأ الدالة اتجاه الترند (isTrendUp = السريع > البطيء، isTrendDown = السريع < البطيء) وقوته (isStrongTrend = ADX > 25). قبل تقييم أي دخول، تُنفّذ الداة فلتراً مسبقاً بالغ الأهمية: إذا انعكس الترند للتو، تُغلق فوراً كل التذاكر على الاتجاه المعاكس. فإذا كان السعر يهبط ثم عاد المتوسط السريع فوق البطيء، ستُغلق الدالة كل صفقات البيع المفتوحة قبل أن تفكر في فتح شراء جديد. هذا هو المسار السريع الوحيد للتعامل مع انعكاس الترند في هذا المستشار — لا يوجد مصنّف نظام سوق منفصل، ولا محاذاة متعدد الأطر الزمنية، ولا حالة انتقالية.
بالنسبة للدخول الأول (count=0)، تسمح الدالة بالشراء فقط عندما يكون سعر Ask واقعاً ضمن 200 نقطة من المتوسط السريع في أي اتجاه. هذا تصميم متعمد قائم على "انتظار الارتداد نحو المتوسط المتحرك": المستشار لا يطارد الاختراقات، بل يفضّل إعادة الاختبار. تنطبق القاعدة المعكوسة على البيع — يجب أن يكون سعر Bid ضمن ±200 نقطة من المتوسط السريع. بمجرد وضع الصفقة الأولى، تخضع كل تذكرة هرمية لاحقة في نفس الاتجاه لبوابتين تُفحصان معاً: (1) ArePositionsSecure(type) ترجع true فقط عندما تكون كل تذكرة حالية في نفس الاتجاه رابحة بـ 100 نقطة على الأقل (بحيث يكون وقف الخسارة قد انتقل فعلياً إلى نقطة التعادل على كل واحدة منها عبر حلقة الإدارة)، و(2) السعر الحالي تحرّك 300 نقطة على الأقل (PyramidStepPoints) بعد أحدث سعر فتح في اتجاه الترند. دالة GetLastOpenPrice(type) تُرجع أقصى سعر دخول — أعلى شراء أو أدنى بيع. إذا اجتازت البوابتان معاً، تُرسل trade.Buy(...) التذكرة رقم 2، 3، 4، 5.
حجم اللوت موجود في دالة CalculateLot(int existingCount). مع UseLotMultiplier = false (الإعداد الافتراضي)، تكون كل تذكرة بنفس الحجم: 0.01 لوت، تُقرّب إلى الأسفل لتطابق خطوة اللوت لدى الوسيط وتُقيّد ضمن حدود الحد الأدنى/الأعلى لدى الوسيط. مع UseLotMultiplier = true، تُضرب كل تذكرة لاحقة بـ 1.2^(count) — فتصبح: #1=0.01، #2=0.012، #3=0.0144، #4=0.01728، #5=0.02074 — مما يُنتج سلة ذات تدرّج هندسي يُسحب فيها متوسط سعر الدخول تدريجياً نحو الترند لكن التذاكر الأخيرة تحمل مخاطرة أكبر. وقف الخسارة لكل تذكرة ثابت عند 300 نقطة تحت سعر الدخول للشراء، و300 نقطة فوقه للبيع (InitialSLPoints = 300 × خطوة السعر للرمز). يُحدّد هذا الوقف عند الفتح ولا يُوسَّع لاحقاً؛ التعديل الوحيد على الوقف يحدث في حلقة الإدارة.
دالة ManagePositions() هي حيث يعيش منطق "التأمين إلى نقطة التعادل". تمر على كل صفقة مفتوحة، تتخطى التذاكر ذات الرقم السحري المختلف، ولكل واحدة تتحقق مما إذا كان السعر قد تحرّك 100 نقطة بعد الفتح في الاتجاه المربح. إذا كان الجواب نعم، والوقف الحالي لا يزال على جانب الخسارة من سعر الفتح (أو صفر لتذكرة جديدة لم يُربط بها وقف)، تستدعي TryModify_EX12060(ticket, openPrice, tp) لنقل الوقف إلى سعر الدخول. يبقى حقل TP الأصلي عند 0 (لا جني أرباح ثابت)، فلا تملك الصفقة هدفاً محدداً — لا يمكنها الخروج إلا عبر جني أرباح السلة، أو وقف السلة، أو إغلاق انعكاس الترند، أو وقف التعادل المُدار. هذه فلسفة "اترك الرابحين يركضون حتى تطبع السلة أو ينكسر النظام".
طبقة إدارة المخاطر قصيرة. لا توجد حدود R متعددة لكل صفقة، ولا حدود خسارة يومية، ولا نوافذ زمنية، ولا سقف سبريد، ولا سقف انزلاق يتجاوز الـ 50 نقطة المُمرّرة إلى CTrade.SetDeviationInPoints(). يُعيَّن وضع تعبئة IOC في OnInit (SetTypeFilling(ORDER_FILLING_IOC)) للتنفيذ السريع. قواطع الدائرة الصلبة الوحيدة هي: (1) وقف السلة عند -8 دولارات يُغلق كامل الدفتر، (2) إغلاق انعكاس الترند الذي يفرّغ الصفقات المعاكسة، و(3) سقف MaxPositions=5 على عدد التذاكر لكل اتجاه. هذا يجعل اكس 12060 حساساً لعمق الانسحاب على مستوى السلة، لا على مستوى التذكرة الواحدة. حركة واحدة بـ 300 نقطة ضد تذكرة الدخول الأعلى لن تُوقفها — تحتاج السلة إلى خسارة صافية قدرها 8 دولارات لتنشيط إغلاق الطوارئ.
الطبقة المرسومة ترسم لوحة معلومات صغيرة على الرسم البياني في الزاوية العلوية اليمنى عبر CreateDashboard() وUpdateDashboard(). تعرض اللوحة ربح/خسارة السلة الحالي، اتجاه الترند (صاعد/هابط)، قيمة ADX مع وسم "(قوي)" أو "(ضعيف)" نسبةً إلى العتبة، والعدد المباشر لصفقات الشراء والبيع. يتغيّر لون نص اللوحة بين clrLime (ربح موجب) وclrRed (خسارة سالبة). علامتان صغيرتان (صفراء للمتوسط السريع، dodger-blue للبطيء) ترسوان على الحافة اليمنى للرسم البياني عبر DrawTrendLines() لتُظهرا القيم الحيّة دون رسم الخطوط كاملة. كل العناصر المرئية محكومة بـ ShowDashboard = true وتُزال بدقّة في OnDeinit() مع مقابض المؤشرات.
اكس 12060 استراتيجية للمتداولين الذين يثقون بالترند ويريدون أن يُدفع لهم مقابل الانتظار. يؤدي أفضل أداء على إطارات M5 لأزواج العملات الرئيسية السائلة والمعادن (XAUUSD هو الافتراضي المُقترح) حيث يكون تقاطع EMA 20/50 نظيفاً ويكتشف ADX لمدة 14 فترة الطاقة الاتجاهية بوضوح. يؤدي أداءً أضعف على الأزواج المتذبذبة حيث ينعكس الترند كل بضع أعمدة — كل انعكاس يكلّف عملية إفراغ سلة، وخمس هرمات فاشلة متتالية قد تكدّس خسائر تقترب من وقف السلة عند 8 دولارات. شغّله على وسيط ECN أو سبريد منخفض؛ تفاوت 50 نقطة يغطي معظم حالات التعبئة، لكن وضع IOC يعني أن وسيط سبريد 5 نقاط سيلتهم أرباحه عند أول دخول ارتدادي.
تفاصيل الاستراتيجية
في كل تكّة، تُحدّث مقابض المؤشرات الثلاثة (EMA 20، EMA 50، ADX 14) بافراتها ذات الثلاث أعمدة عبر CopyBuffer. تجمع CalculateTotalProfit() ربح/خسارة الدولار لكل صفقات الرقم السحري 22212060؛ إذا بلغ +20 دولاراً أو هبط إلى -8 دولارات، تستدعي كل من CloseAll() لتُفرّغ كامل الدفتر وتُنهى OnTick مبكراً. وإلا، تمر ManagePositions() على كل صفقة مفتوحة وتنقل وقفها إلى نقطة التعادل بمجرد أن تحقق 100 نقطة ربح، مع توجيه التعديل عبر غلاف TryModify_EX12060 ذي 3 محاولات و200 مللي ثانية. ثم تُقيّم CheckEntryLogic() الترند: إذا كان المتوسط السريع على الجانب الصحيح من البطيء وكان ADX فوق 25، إما أن تفتح تذكرة جديدة داخل نطاق ±200 نقطة حول المتوسط السريع (دخول أولي)، أو تُضيف تذكرة هرمية على بعد 300 نقطة على الأقل من آخر دخول في ذلك الجانب، بشرط أن تُؤكّد ArePositionsSecure() أن كل تذكرة سابقة رابحة بـ 100 نقطة فعلاً.
يدخل اكس 12060 في صفقة شراء عندما يكون المتوسط المتحرك الأسي 20 فوق المتوسط المتحرك الأسي 50، وأن يتجاوز مؤشر ADX لمدة 14 فترة مستوى 25، وأن يكون سعر Ask واقعاً ضمن ±200 نقطة من المتوسط السريع. تتطلب الإضافات الهرمية (حتى MaxPositions=5 لكل اتجاه) تحرّك السعر 300 نقطة على الأقل (PyramidStepPoints) بعد أحدث دخول في اتجاه الترند، وأن تكون كل تذكرة سابقة في نفس الاتجاه رابحة بـ 100 نقطة على الأقل (عتبة التأمين).
لا يملك اكس 12060 جني أرباح لكل تذكرة. تحدث الخروج فقط عبر: (1) جني أرباح السلة عند بلوغ إجمالي الربح/الخسارة بالرقم السحري 22212060 مستوى 20 دولاراً (BasketTakeProfit)، (2) وقف الخسارة على مستوى السلة عند -8 دولارات، (3) انعكاس الترند الذي يُغلق كل التذاكر على الاتجاه المعاكس فور انعكاس علاقة المتوسطين السريع/البطيء داخل CheckEntryLogic()، أو (4) وقف التعادل المُدار الذي يُفعَّل بمجرد أن تحقق كل تذكرة 100 نقطة ربح عبر ManagePositions().
تُفتَح كل تذكرة بوقف ثابت قدره 300 نقطة (InitialSLPoints × خطوة السعر للرمز). تنقل ManagePositions() هذا الوقف إلى سعر الدخول بمجرد أن تحقق التذكرة 100 نقطة ربح غير محققة (SecureProfitPoints). يُعدّ وقف السلة قاطع دائرة منفصل بالدولار عند -8 دولارات بعملة الحساب يُفرّغ كامل دفتر الأوامر بالرقم السحري 22212060 في نفس التكّة.
لا يُحدَّد جني أرباح لكل تذكرة عند الفتح (حقل TP = 0). جني الأرباح على مستوى السلة فقط: تُقارن CalculateTotalProfit() مع BasketTakeProfit (20 دولاراً افتراضياً) عند كل تكّة، وعند بلوغ العتبة تُغلق كل التذاكر في الاتجاهين عبر CloseAll() — تطبع السلة وينتظر اكس 12060 تقاطع المتوسط التالي قبل إعادة الدخول.
اكس 12060 الأنسب للمتداولين الذين يديرون حساب مايكرو من 100 إلى 500 دولار على XAUUSD M5 مع وسيط ECN أو سبريد منخفض. اللوتات الموصى بها: أبقِ UseLotMultiplier=false (0.01 ثابت) للحسابات تحت 1000 دولار؛ لا تُفعّل المضاعف 1.2x إلا فوق 1000 دولار حيث تتسع كل مستوى هرمي داخل الهامش بكل ارتياح. شغّله خلال جلستي لندن ونيويورك حيث يُنتج XAUUSD M5 أنظف فواصل بين EMA 20 و50، واقرنه بقاعدة خسارة يومية قصوى على الحساب الأب — وقف السلة عند 8 دولارات فقط، والهرمات الخاسرة المتتالية قد تتضاعف بسرعة عندما يتذبذب الترند.
منطق الاستراتيجية
Pipsgrowth EX12060 MultiIndicatorConfluence — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: MultiIndicatorConfluence
الماجيك: 22212060
الإصدار: 2.00
الوصف:
Secure Momentum Pyramid strategy using EMA crossover with ADX strength filter. Pyramids into trends with step-based entries, basket TP/SL management, and position securing via stop-loss to break-even. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
CalculateLot()CalculateTotalProfit()CountPositions()GetLastOpenPrice()ArePositionsSecure()CloseAll()ManagePositions()CheckEntryLogic()UpdateDashboard()CreateDashboard()
// Pipsgrowth EX12060 MultiIndicatorConfluence — Execution Flow (from source analysis)
// Family: MultiIndicatorConfluence
// Secure Momentum Pyramid strategy using EMA crossover with ADX strength filter. Pyramids into trends with step-based entries, basket TP/SL management, and position securing via stop-loss to break-even. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InitialLot | 0.01 | Starting Lot Size |
| LotMultiplier | 1.2 | Lot Multiplier for Pyramid |
| UseLotMultiplier | false | Enable Lot Multiplier (false = Fixed Lot) |
| MaxPositions | 5 | Maximum Number of Pyramid Levels |
| InitialSLPoints | 300 | Initial Stop Loss (Points) |
| BasketTakeProfit | 20.0 | Target Profit to Close All ($) |
| BasketStopLoss | 8.0 | Emergency Stop Loss ($) |
| SecureProfitPoints | 100 | Profit Required to Secure Position (Points) |
| EMA_Fast | 20 | Fast EMA |
| EMA_Slow | 50 | Slow EMA |
| ADX_Period | 14 | ADX Period |
| ADX_Threshold | 25 | ADX Strength |
| PyramidStepPoints | 300 | Points to move before adding position |
| EntryZonePoints | 200 | Entry Zone Width around Fast EMA (Points) |
| MagicNumber | 22212060 | Magic number |
| InpTradeComment | "Psgrowth.com Expert_12060" | Trade comment |
| ShowDashboard | true | --- Global Variables --- |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX12060 G4_7 — Secure Momentum Pyramid with EMA+ADX, full 12-layer stack."
#include <Trade\Trade.mqh>
//--- Input Parameters ---
input group "=== Risk Management ==="
input double InitialLot = 0.01; // Starting Lot Size
input double LotMultiplier = 1.2; // Lot Multiplier for Pyramid
input bool UseLotMultiplier = false; // Enable Lot Multiplier (false = Fixed Lot)
input int MaxPositions = 5; // Maximum Number of Pyramid Levels
input double InitialSLPoints = 300; // Initial Stop Loss (Points)
input double BasketTakeProfit = 20.0; // Target Profit to Close All ($)
input double BasketStopLoss = 8.0; // Emergency Stop Loss ($)
input double SecureProfitPoints = 100; // Profit Required to Secure Position (Points)
input group "=== Strategy Settings ==="
input int EMA_Fast = 20; // Fast EMA
input int EMA_Slow = 50; // Slow EMA
input int ADX_Period = 14; // ADX Period
input int ADX_Threshold = 25; // ADX Strength
input int PyramidStepPoints = 300; // Points to move before adding position
input int EntryZonePoints = 200; // Entry Zone Width around Fast EMA (Points)
input group "=== Identity ==="
input int MagicNumber = 22212060; // Magic number
input string InpTradeComment = "Psgrowth.com Expert_12060"; // Trade comment
input group "=== Visuals ==="
input color BullishColor = clrLime;
input color BearishColor = clrRed;
input bool ShowDashboard = true;
//--- Global Variables ---
CTrade trade;
int handle_ema_fast;
int handle_ema_slow;
int handle_adx;
double EMA_Fast_Buffer[];
double EMA_Slow_Buffer[];
double ADX_Buffer[];
//+------------------------------------------------------------------+
//| Helper Functions (Declared First to fix errors) |
//+------------------------------------------------------------------+
double CalculateLot(int existingCount);
double CalculateTotalProfit();
int CountPositions(ENUM_POSITION_TYPE type);
double GetLastOpenPrice(ENUM_POSITION_TYPE type);
bool ArePositionsSecure(ENUM_POSITION_TYPE type);
void CloseAll(ENUM_POSITION_TYPE type);
void ManagePositions();
void CheckEntryLogic(double currentTotalProfit);
void UpdateDashboard(double profit, double adx, double emaF, double emaS);
void CreateDashboard();
void DrawTrendLines();
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.