P
PipsGrowth
أخرىمفتوح المصدر - مجاني

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()
الرمز الزائف (Pseudocode)
// 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)

ملف التحسين

الوسطاء المُحسّنون:
ExnessIC Markets
الرموز المُحسّنة:
XAUUSD
الأطر الزمنية المُحسّنة:
M5H1

كيفية تثبيت الإكسبرت على MT5

  1. 1حمّل ملف .mq5 بالضغط على زر التحميل أعلاه
  2. 2افتح برنامج MetaTrader 5 على حاسوبك
  3. 3من القائمة العلوية اختر File → Open Data Folder
  4. 4انتقل إلى مجلد MQL5 → Experts والصق الملف هناك
  5. 5في MT5، انقر بالزر الأيمن على Expert Advisors في لوحة Navigator → Refresh
  6. 6اسحب الإكسبرت على رسم بياني يطابق الإطار الزمني الموصى به
  7. 7هيّء المعاملات وفقاً للجدول في هذه الصفحة
  8. 8فعّل Allow Algo Trading واضغط OK

معاملات الإكسبرت

المعاملالافتراضيالوصف
InitialLot0.01Starting Lot Size
LotMultiplier1.2Lot Multiplier for Pyramid
UseLotMultiplierfalseEnable Lot Multiplier (false = Fixed Lot)
MaxPositions5Maximum Number of Pyramid Levels
InitialSLPoints300Initial Stop Loss (Points)
BasketTakeProfit20.0Target Profit to Close All ($)
BasketStopLoss8.0Emergency Stop Loss ($)
SecureProfitPoints100Profit Required to Secure Position (Points)
EMA_Fast20Fast EMA
EMA_Slow50Slow EMA
ADX_Period14ADX Period
ADX_Threshold25ADX Strength
PyramidStepPoints300Points to move before adding position
EntryZonePoints200Entry Zone Width around Fast EMA (Points)
MagicNumber22212060Magic number
InpTradeComment"Psgrowth.com Expert_12060"Trade comment
ShowDashboardtrue--- Global Variables ---
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX12060.mq5
#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();

الكود المصدري الكامل متاح عند التحميل

لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.

الوسوم:ex12060multiindicatorconfluencepipsgrowthfreemt5xauusd

تحذير صريح: لأغراض تعليمية فقط

تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.

وسطاء موصى بهم لهذا الإكسبرت

هذه الروبوتات تعمل على MT5 — استخدم وسيطاً موثوقاً بتنفيذ سريع وسبريد منخفض

مجتمع المستخدمين

سجّل دخولك للمشاركةتسجيل الدخول

لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.

اسم الملفPipsgrowth_com_EX12060.mq5
حجم الملف19.2 KB
الإصدارv2.00
PlatformMetaTrader 5
نوع الملف.mq5 Source
الاستراتيجيةأخرى
المخاطرةمخاطرة متوسطة
الأطر الزمنية
M5H1
أزواج العملات
XAUUSD
الحد الأدنى للإيداع$100