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

Pipsgrowth EX12017 MultiIndicatorConfluence — إكسبرت أدفايزر إكسبرت أدفايزر

إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5

Pipsgrowth EX12017 MultiIndicatorConfluence — This EA implements internal AMLI (Adaptive Market Liquidity Index) logic using Volume and ATR-based volatility analysis.. إكسبرت أدفايزر MT5 مفتوح المصدر.

نظرة عامة

يبني Pipsgrowth EX12017 قراءة فهرسة واحدة للسوق من داخله — مؤشر السيولة التكيّفية (AMLI). المؤشر لا يُرسم على الشارت؛ بل تُحسبه الدالة CalculateAMLI() داخل الـ EA بدمج نسبة حجم التداول المُنعّم مع نسبة الـ ATR في مذبذب يقع بين 0 و100. القيمة الافتراضية 50.0 (محايدة)، ترتفع فوق 50 حين يتوسّع الحجم والتذبذب معاً، وتنخفض دون 50 حين تخفّ السيولة. تلك المنطقة تحت 50 هي فخ السيولة الذي يستهدفه الـ EA: حين يجفّ تدفق الأوامر ويتوقف السعر عن الحركة، يهبط AMLI، وأي انفجار لاحق في النشاط هو الاختراق الذي يريد الـ EA اقتناصه.

منطق الفخ قائم على الأحداث لا على الأعمدة. في OnTick() يُحدَّث الرمز أولاً، ويُرفض أي تيك يتجاوز فيه السبريد InpMaxSpread (200 نقطة على XAUUSD M5، أي تسامح 20 نقطة — فضفاض بما يكفي لتحمّل معظم توسّعات منتصف اليوم، وضيق بما يكفي لاستبعاد الطبعات غير السائلة). بعدها تُنفَّذ ManageProfitLock() على قائمة المراكز المفتوحة قبل فحص الشمعة الجديدة، ليكون محرك التريلينج متقدّماً دائماً على محرك الإشارات. عند افتتاح شمعة M5 جديدة، يسحب الـ EA قيمة AMLI من آخر شمعة مغلقة (إزاحة 1) ومن الشمعة التي قبلها (إزاحة 2). حالة الفخ هي (amli_curr < InpLiquidityTrap) المنطقية، ويتتبّع الـ EA عداد g_trap_duration يزداد فقط ما دام AMLI تحت العتبة. الإشارة تنطلق عند الانتقال: حين تكون الشمعة السابقة في الفخ والشمعة الحالية خارجه — بشرط أن يكون الفخ استمرّ شمعتين على الأقل (g_trap_duration >= 2) وأن يتجاوز التغيّر المطلق في AMLI عتبة InpMinAMLIChange (3.0). إن لم يتحقق بوابة اختراق الفخ، يبقى مسار ثانٍ مفتوحاً: دخول زخم قوي مسموح به حين |amli_change| >= InpMinAMLIChange * 1.5، بصرف النظر عن حالة الفخ. الاتجاه يتبع إشارة تغيّر AMLI — التغيّر الموجب شراء، والسالب بيع.

إدارة المراكز هي حيث يبتعد EX12017 بصمت عن نمط الاختراق التقليدي. لا يضيف الـ EA إلى صفقة عند إشارة جديدة على نفس المستوى؛ بل يضيف فقط حين تكون الصفقة القائمة قد جنّت ربحاً مؤمّناً. تتحقق CheckPyramidSafety() من القائمة المفتوحة وتحسب secured = (sl - open) / _Point للشراء (والمرآة للبيع). إن كان هذا الربح المؤمّن دون InpPyramidMinProfit (100 نقطة، 10 نقاط)، يُرفض الدخول الجديد. هذا يعني أن إضافات الهرم الثانية والثالثة (السقف InpMaxPyramidTrades = 3) لا تحدث إلا بعد أن يرتفع وقف الخسارة فوق سعر الدخول — الـ EA مُجبَر على الصبر. الإضافة ضد الاتجاه المفتوح (إشارة شراء مع وجود بيع قائم، أو العكس) محظورة أيضاً في طبقة الأمان، فلا يستطيع الـ EA أن يقفل نفسه في تحوط معقّد حين ينقلب اتجاه اختراق الفخ على أعمدة متتالية. سقف المراكز المفتوحة الإجمالي هو 3، ما يحافظ على عدم انزلاق الـ EA إلى سلّة متضخّمة حين يُعاد تفعيل الفخ.

محرك التريلينج تدرّج بسلالم، لا منحنى مستمر. لا تعمل ManageProfitLock() إلا حين تكون الصفقة على بعد InpLockTrigger (300 نقطة، 30 نقطة) من الربح، وحتى حينها لا تحرّك الوقف إلا إذا كان الهدف الجديد يتفوّق على الوقف الحالي بفارق InpLockStep على الأقل (50 نقطة، 5 نقاط). يُضبط الوقف الجديد عند السعر الحالي مطروحاً منه InpLockDistance (100 نقطة، 10 نقاط)، ما يعني أنه فور تجاوز صفقة الشراء عتبة 30 نقطة، يتبع الوقف السعر بزيادات 5 نقاط مع وسادة 10 نقاط. تلك الوسادة هي أقصى سحب من السعر الحالي خلال التريلينج — لا تتوسّع أبداً. يبقى كل من SL الثابت الأصلي (500 نقطة) وTP (750 نقطة) على الصفقة؛ القفل تراكب لا استبدال. تُغلِّف TryModify_EX12017 أمر التعديل في حلقة إعادة محاولة بثلاث محاولات مع تأخير 100 مللي ثانية على TRADE_RETCODE_REQUOTE وTRADE_RETCODE_TIMEOUT، وتقوم TryClose_EX12017 وTryClosePartial_EX12017 بالمثل على الإغلاق بتأخير 200 مللي ثانية على المجموعة الأوسع requote/timeout/price-off/price-changed.

إدارة المخاطر ورأس المال تتبع فصلاً نظيفاً. تحسب GetLotSize() الحجم من الرصيد حين يكون InpRiskPercent موجباً (1.0% من رصيد الحساب افتراضياً)، مع حساب قيمة النقطة مقابل InpStopLoss ليتناقص الحجم مع اتساع الوقف — رياضيات الترميز المعياري المعتادة. حين يُضبط InpRiskPercent إلى صفر، يرجع الـ EA إلى InpFixedLot (0.01) وسقف صلب عند InpMaxLotSize (10.0 لوت لكل صفقة). مسافة الوقف InpStopLoss = 500 نقطة (50 نقطة على XAUUSD خمس خانات)، والهدف InpTakeProfit = 750 نقطة (75 نقطة)، أي 1:1.5 مخاطرة إلى عائد على الفرع الثابت. الـ EA مبرمج على m_trade.SetTypeFilling(ORDER_FILLING_FOK) وSetDeviationInPoints(InpSlippage=30)، وInpMagicNumber افتراضيه 22212017 ليُقسَّم الحساب نظيفاً بين نسخ متعددة على نفس الحساب.

فلتر الوقت عادي لكن يستحق الملاحظة. تحلّل IsTradingTime() InpStartTime ("08:00") وInpEndTime ("20:00") إلى دقائق وتُغلق فرع الشمعة الجديدة على تلك النافذة. خارج النافذة، لا يفتح الـ EA صفقات جديدة ولا يعدّل القائمة (تستمر ManageProfitLock لأنها فوق فلتر الوقت)، إلا إذا كان InpCloseAtEnd = true — عندها تُستدعى CloseAllPositions() لتسوية الكتاب. تغطّي نافذة 08:00-20:00 بتوقيت السيرفر كامل جلسة لندن والثلثين الأولين من جلسة نيويورك، حيث يحدث فعلاً حجم تداول XAUUSD الفوري وسلوك الفخ مقابل الاختراق الذي يقيسه AMLI. نمط التعبئة FOK، فأي صفقة لا يمكن تنفيذها بالسعر المطلوب تُرفض بالكامل لا جزئياً.

ماذا تتوقع في الباك تيست مقابل التداول الفعلي. لأن AMLI مؤشر مشتق (نسبة الحجم + نسبة الـ ATR مطبّعة إلى 0-100)، فإن سلوك الـ EA شديد الحساسية للنظام السائد: في سنوات ترند الذهب (2020، 2024) يولّد فرع الزخم القوي تياراً ثابتاً من الدخول؛ في سنوات النطاق (الربع الثالث 2022) يطلق فرع اختراق الفخ مرات أقل وتأتي معظم الإشارات من العتبة المرنة 1.5x. يعني زوج SL/TP الثابت 500/750 نقطة أن الـ EA لا يتنفّس مع التذبذب — في يوم بنسبة تذبذب 2x، يكون وقف 50 نقطة أضيق مما يجب، وفي يوم 0.5x يكون سخياً. سقف الهرم 3 متحفّظ؛ على المستخدم العدواني اختبار InpMaxPyramidTrades حتى 5 فقط بعد أن يرى بوابة الربح المؤمّن تعمل كما يتوقّع. يجب أن يبدأ النشر الفعلي بـ InpRiskPercent = 0.5 (لا 1.0 الافتراضي) لأسبوعين، مع ترميز لحالة أسوأ من 3 مراكز بسعر 3% من الرصيد لكل خانة، ويجب قلب InpUsePyramid إلى false لأسبوع ورقي لعزل فرع الدخول الأحادي.

تفاصيل الاستراتيجية

في كل تيك M5 يرفض الـ EA أولاً العمل حين يتجاوز سبريد XAUUSD 200 نقطة، ثم يُشغّل ManageProfitLock() على القائمة المفتوحة قبل بوابة الشمعة الجديدة. عند كل شمعة جديدة يحسب AMLI من آخر شمعتين مغلقتين في CalculateAMLI() — فهرس من 0 إلى 100 مبني من نسبة حجم 14 شمعة مضروبة في نسبة ATR لـ 20 شمعة، مطبّع حول 50. تنطلق الإشارة من مسارين: اختراق فخ يعبر فيه AMLI فوق 35 بعد بقاء دونه شمعتين أو أكثر مع تغيّر ≥ 3، أو مسار زخم بتغيّر ≥ 4.5. تتحقق CheckPyramidSafety() ثم تمنع الدخول إن كانت الإشارة الجديدة تعاكس الاتجاه المفتوح أو إن لم تكن كل الصفقات القائمة قد رفعت وقفها إلى ربح مؤمّن ≥ 100 نقطة، ويُحدّ السقف بـ 3 مراكز متزامنة. يُرمَّز الخطر عند 1% من الرصيد مقابل وقف 500 نقطة (أو InpFixedLot حين يكون الخطر صفراً)، ويُرفق الهدف 750 نقطة عند الدخول، ويرفض نمط FOK أي أمر لا يمكن تنفيذه. يسير قفل الربح بوقف الخسارة خلف السعر بسلالم 50 نقطة مع وسادة 100 نقطة حالما يتجاوز الربح 300 نقطة، وتُجبر بوابة توقيت السيرفر 08:00-20:00 الـ EA على التوقّف خارج الجلسة.

إشارة الدخول

يُطلق الشراء حين يعبر AMLI (50 × (نسبة الحجم + نسبة ATR)، مُقيَّد بين 0-100) فوق InpLiquidityTrap (35) بعد بقاء في الفخ شمعتين أو أكثر مع |تغيّر AMLI| ≥ 3.0، أو في أي شمعة يكون فيها |تغيّر AMLI| ≥ 4.5 (1.5× الحد) بصرف النظر عن حالة الفخ. إشارة تغيّر AMLI هي التي تحدد الاتجاه. يضيف الهرم فقط حين يكون الربح المؤمّن للصفقة القائمة (وقف الخسارة مقارنة بسعر الدخول بالنقاط) ≥ InpPyramidMinProfit (100 نقطة)، بسقف 3 مراكز متزامنة على XAUUSD M5.

إشارة الخروج

تُغلق المراكز عند الهدف الثابت الأصلي 750 نقطة (75 نقطة على XAUUSD خمس خانات)، أو عبر طبقة قفل الربح حالما تبلغ الصفقة 300 نقطة ربحاً ويُضرب وقف التريلينج. خارج نافذة الوقت المحدّدة مع تفعيل InpCloseAtEnd، تُفرّغ CloseAllPositions() الكتاب قسراً. لا يوجد خروج بانعكاس الإشارة — يعامل الـ EA الهرم كومة أحادية الاتجاه، لا كتاب تحوط متأرجح.

وقف الخسارة

وقف ثابت 500 نقطة (50 نقطة على XAUUSD خمس خانات) يُضبط عند الدخول عبر m_trade.Buy()/Sell()، ثم يُضيق تدريجياً بسُلَّم قفل الربح حالما يتجاوز الربح 300 نقطة. مخاطرة الصفقة 1% من الرصيد افتراضياً، مُطَبَّعة على وقف 500 نقطة بحيث يؤدي توسيع InpStopLoss تلقائياً إلى تقليص حجم اللوت.

جني الأرباح

هدف ثابت 750 نقطة (75 نقطة على XAUUSD خمس خانات) يُرفق عند الدخول — 1:1.5 مخاطرة إلى عائد مقابل وقف 500 نقطة. لا يُجرَّف الهدف؛ تعدّل طبقة قفل الربح وقف الخسارة فقط، ويُترك الهدف الأصلي في مكانه إلى أن يُضرب أحدهما.

الأنسب لـ

مصمم لـ XAUUSD على M5 برصيد بداية موصى به 100$. يجعل زوج SL/TP الثابت 500/750 نقطة وخطر الصفقة 1% الافتراضي مناسباً بامتياز للمتداولين الذين يريدون مخاطرة صريحة متوقعة لكل دخول بدلاً من الترميز التكيّفي القائم على ATR. يتحمّل سقف السبريد 200 نقطة (20 نقطة) توسّعاً أكبر مما يتحمّله سكالبير السبريد الخام، لكن يظل وسيط ECN بسبريد منخفض مطلوباً لإبقاء وقف 500 نقطة واقعياً. يُفضّل تشغيله داخل نافذة 08:00-20:00 بتوقيت السيرفر — جلسة لندن والثلثين الأولين من نيويورك — حيث تنتج سيولة XAUUSD نظام الحجم-التذبذب الذي يقيسه AMLI.

منطق الاستراتيجية

Pipsgrowth EX12017 MultiIndicatorConfluence — تحليل منطق الاستراتيجية (من كود .mq5)

العائلة: MultiIndicatorConfluence الماجيك: 22212017 الإصدار: 2.00

الوصف: This EA implements internal AMLI (Adaptive Market Liquidity Index) logic using Volume and ATR-based volatility analysis. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester

المؤشرات:

  • مؤشرات قياسية

الدوال الرئيسية:

  • CalculateAMLI()
  • CheckPyramidSafety()
  • ManageProfitLock()
  • GetLotSize()
  • RefreshRates()
  • IsTradingTime()
  • StrToTime()
  • CloseAllPositions()
  • TryClose_EX12017()
  • TryClosePartial_EX12017()
الرمز الزائف (Pseudocode)
// Pipsgrowth EX12017 MultiIndicatorConfluence — Execution Flow (from source analysis)
// Family: MultiIndicatorConfluence
// This EA implements internal AMLI (Adaptive Market Liquidity Index) logic using Volume and ATR-based volatility analysis. 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
الأطر الزمنية المُحسّنة:
M5

كيفية تثبيت الإكسبرت على 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

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

المعاملالافتراضيالوصف
InpVolumePeriod14Volume Smoothing Period
InpVolatilityPeriod20Volatility (ATR) Period
InpLiquidityTrap35.0Liquidity Trap Level (0-100)
InpMinAMLIChange3.0Minimum AMLI Change for Signal
InpRiskPercent1.0Risk per trade (% of Balance)
InpFixedLot0.01Fixed Lot (if Risk=0)
InpMaxLotSize10.0Max Lot Size per trade
InpStopLoss500Stop Loss (Points)
InpTakeProfit750Take Profit (Points)
InpSlippage30Max Slippage (Points)
InpMaxSpread200Max Spread (Points)
InpMagicNumber22212017Magic Number
InpUsePyramidtrueEnable Safe Pyramiding
InpMaxPyramidTrades3Max Open Positions
InpPyramidMinProfit100Min Secured Profit (Points) for Next Add
InpUseProfitLocktrueEnable Profit Lock / Trailing
InpLockTrigger300Trigger Distance (Points in Profit)
InpLockStep50Step to advance SL (Points)
InpLockDistance100Distance to keep SL from Price (Points)
InpUseTimeFiltertrueEnable Time Filter
InpStartTime"08:00"Start Trading Time (Server)
InpEndTime"20:00"End Trading Time (Server)
InpCloseAtEndfalseClose all at end time
InpTradeComment"Psgrowth.com Expert_12017"Trade Comment
كود المصدر (.mq5)Open Source
Pipsgrowth_com_EX12017.mq5
#property copyright "Pipsgrowth.com"
#property link      "https://pipsgrowth.com"
#property version   "2.00"
#property strict
#property description "Pipsgrowth.com EX12017 AMLI_XAUUSD_5M — Adaptive Market Liquidity Index EA for XAUUSD, full 12-layer stack."

#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\AccountInfo.mqh>

// --- Global Objects ---
CTrade         m_trade;
CSymbolInfo    m_symbol;
CPositionInfo  m_position;
CAccountInfo   m_account;

// --- Inputs ---

input group "=== AMLI Indicator Parameters ==="
input int      InpVolumePeriod      = 14;          // Volume Smoothing Period
input int      InpVolatilityPeriod  = 20;          // Volatility (ATR) Period
input double   InpLiquidityTrap     = 35.0;        // Liquidity Trap Level (0-100)
input double   InpMinAMLIChange     = 3.0;         // Minimum AMLI Change for Signal

input group "=== Money Management ==="
input double   InpRiskPercent       = 1.0;         // Risk per trade (% of Balance)
input double   InpFixedLot          = 0.01;        // Fixed Lot (if Risk=0)
input double   InpMaxLotSize        = 10.0;        // Max Lot Size per trade

input group "=== Trade Management ==="
input int      InpStopLoss          = 500;         // Stop Loss (Points)
input int      InpTakeProfit        = 750;         // Take Profit (Points)
input int      InpSlippage          = 30;          // Max Slippage (Points)
input int      InpMaxSpread         = 200;         // Max Spread (Points)
input ulong    InpMagicNumber       = 22212017;    // Magic Number

input group "=== Pyramid / Scaling ==="
input bool     InpUsePyramid        = true;        // Enable Safe Pyramiding
input int      InpMaxPyramidTrades  = 3;           // Max Open Positions
input int      InpPyramidMinProfit  = 100;         // Min Secured Profit (Points) for Next Add

input group "=== Profit Lock & Trail ==="
input bool     InpUseProfitLock     = true;        // Enable Profit Lock / Trailing
input int      InpLockTrigger       = 300;         // Trigger Distance (Points in Profit)
input int      InpLockStep          = 50;          // Step to advance SL (Points)
input int      InpLockDistance      = 100;         // Distance to keep SL from Price (Points)

input group "=== Time Management ==="
input bool     InpUseTimeFilter     = true;        // Enable Time Filter
input string   InpStartTime         = "08:00";     // Start Trading Time (Server)
input string   InpEndTime           = "20:00";     // End Trading Time (Server)
input bool     InpCloseAtEnd        = false;       // Close all at end time

input string   InpTradeComment      = "Psgrowth.com Expert_12017"; // Trade Comment

// --- Global Handles ---
int h_atr        = INVALID_HANDLE;

// --- State Tracking ---

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

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

الوسوم:ex12017multiindicatorconfluencepipsgrowthfreemt5xauusd

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

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

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

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

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

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

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

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