Pipsgrowth EX12023 MultiIndicatorConfluence — إكسبرت أدفايزر إكسبرت أدفايزر
إكسبرت أدفايزر MT5 مفتوح المصدر · XAUUSD · M5، H1
Pipsgrowth EX12023 MultiIndicatorConfluence — Dematus EA uses DeMarker oscillator for overbought/oversold detection with equity trailing and virtual stop for risk con. إكسبرت أدفايزر MT5 مفتوح المصدر.
نظرة عامة
إكس 12023 ديماتوس هو خبير آلي (EA) قائم على مؤشر واحد فقط هو مؤشر ديماركر. يعمل مؤشر ديماركر بفترة 13 افتراضياً (يتم التحكم بها عبر المدخل Inp_ma_period) ويتذبذب بين 0 و1، حيث تشير القراءات تحت 0.3 إلى إنهاك جانب البيع، والقراءات فوق 0.7 إلى إنهاك جانب الشراء. يستغل ديماتوس لحظة الخروج من هذه المناطق القصوى، ويضيف مراكز إضافية بمضاعل حجم قابل للضبط عندما يتحرك الصفقة لصالحه.
منطق الدخول موجود في دالة OnTick() ومحكوم ببوابة طابع زمني للشمعة الجديدة. يلتقط الخبير الآلي قيمة iTime() للشمعة الحالية في متغير ستاتيكي PrevBars، ويعود فوراً عند كل tick حتى يتغير هذا الطابع الزمني. عند كل شمعة جديدة، يسحب قيمتين من مقبض iDeMarker عبر دالة iDeMarkerGet(): القيمة قبل شمعتين (demarker_2) والقيمة المغلقة للشمعة الحالية (demarker_0). إشارة الشراء تتطلب demarker_2 < 0.3 AND demarker_0 > 0.3 — أي أن ديماركر كان في منطقة التشبع البيعي قبل شمعة واحدة، وقد عاد لتوه فوق عتبة 0.3. إشارة البيع هي المرآة الصارمة: demarker_2 > 0.7 AND demarker_0 < 0.7. يجب أن يكون التقاطع نظيفاً؛ ديماتوس لا يطلق إشارة أثناء تذبذب ديماركر داخل القناة 0.3-0.7، بل فقط عند الخروج الواضح من الحافة المتطرفة. إذا كان مركز بنفس الرقم السحري (magic) مفتوحاً بالفعل، فإن فحص IsPositionExists() في بداية كتلة الإشارة يمنع الخبير الآلي من فتح دخول أولي إضافي.
إدارة المراكز موزعة على طبقتين. طبقة التريلينج لكل مركز تعمل عند كل tick عبر دالة Trailing(). مع InpTrailingStop=5 وInpTrailingStep=5، لا يتم رفع وقف خسارة مركز الشراء إلى Bid ناقص 5 نقاط إلا عندما يتجاوز الربح 10 نقاط (مجموع التريلينج والخطوة). خطوة 5 نقاط تمنع التعديلات المجهرية وتقلل من حركة التعديلات إلى الوسيط. تستخدم مراكز البيع الفحص المعاكس المتماثل. تتم إدارة حماية الحساب عبر TrailEquiti() التي تحافظ على وقف خسارة افتراضي (virtual) على منحنىEquity: عندما تتجاوز Equity رصيد Balance + InpTrailingStartEquity + InpTrailingEquity (افتراضياً 20$ + 5$ = 25$ فوق أعلى رصيد سابق)، يرتفع VSL إلى Equity ناقص InpTrailingEquity. إذا عادت Equity إلى ما دون VSL، تستدعي CloseAllPositions() لإغلاق كل المراكز الحاملة للرقم السحري 22212023. الإعداد الافتراضي InpVirtualStopEquity = 99999 يعطّل فعلياً الحد الأدنى للوقف الافتراضي، لذا فإن الخروج الوحيد على مستوى الحساب في الإعداد الافتراضي هو تريلينجEquity التصاعدي.
آلية التوسع (scaling) هي ما يميز ديماتوس عن نمط عكس-مؤشر بسيط. بعد فتح مركز، تسجل OnTradeTransaction() سعر التنفيذ في m_last_deal_price_IN. إذا تحرك السعر بعدها InpDistance = 50 نقطة في الاتجاه لصالح المركز، وتكونت إشارة ديماركر جديدة في نفس الاتجاه، يفتح الخبير الآلي مركزاً جديداً بحجم يساوي InpCoefficient × حجم المركز السابق (افتراضياً 2.0×). تقوم دالة LotCheck() بتقريب الناتج نزولاً إلى أقرب خطوة حجم، مع تغطية بحد الحجم الأقصى للرمز، وتعود إلى InpLots إذا كانت النتيجة صفراً. ينتج عن ذلك سلوك «المضاعفة عند الربح»: يتراكم تعرض الخبير الآلي على تأكيد استمرار الحركة، ولا يمكن لإشارة عكس وحدها فتح مركز حتى يُغلق المركز الحالي (IsPositionExists() يحظر الدخول أثناء وجود مركز). يتحكم المدخل InpResetPrice فيما إذا كان m_last_deal_price_IN يُمسح عند إغلاق المركز الحالي — false افتراضياً، ما يعني أن سعر المرجع 50 نقطة يستمر عبر دورات المراكز.
مخاطر الإعداد الافتراضي متساهلة عمداً. InpStopLoss = 999 نقطة تعني فعلياً «لا وقف خسارة ثابت» — OpenBuy() ترسل SL = Ask - 999 نقطة، وعلى سعر XAUUSD بـ5 أرقام عند 0.01$ للنقطة، يكون على بعد نحو 100$ من الدخول. ينتج عن InpLots = 0.1 الافتراضي دخول أولي بحجم 0.1 لوت، ومع معامل 2.0× ينتج 0.2 / 0.4 / 0.8 لوت في عمليات التوسع اللاحقة، خاضعة لتقريب خطوة الحجم. على حساب بحد أدنى 100$ يشغل XAUUSD M5، فإن مخاطر الهبوط الفعلية يحكمها بالكامل تقريباً تريلينجEquity، وليس أي وقف خسارة ثابت لكل صفقة.
مسار تنفيذ الصفقة مباشر لكنه متين. تستدعي OpenBuy() وOpenSell() m_trade.Buy() / m_trade.Sell() بعد فحص CheckVolume() مسبق يلتقط أخطاء نقص الهامش قبل وصولها إلى الوسيط. TryClose_EX12023() وTryClosePartial_EX12023() تعيدان المحاولة حتى 3 مرات بفاصل 200 مللي ثانية على أكواد REQUOTE / TIMEOUT / PRICE_OFF / PRICE_CHANGED؛ أما TryModify_EX12023() فتعيد المحاولة 3 مرات بفاصل 100 مللي ثانية على REQUOTE / TIMEOUT فقط — ولا تعيد المحاولة على PRICE_CHANGED، لأن رد PRICE_CHANGED يعني أن الوسيط قبل حالة جديدة أصلاً وأن SL الأصلي قديم. كائن الصفقة مضبوط عبر SetTypeFillingBySymbol() وSetDeviationInPoints(10) وSetExpertMagicNumber(22212023).
من حيث الفريمات، يوصي رأس المصدر بـM5 مع قابلية النقل إلى M5-H1. ديماركر قراءة واحدة بفترة 13، لذا يتكيف الخبير الآلي طبيعياً مع أي فريم يملؤه المؤشر — M1 يعطي إشارات أكثر، وH1 يعطي إشارات أقل وأنظف. بوابة الشمعة الجديدة في OnTick() تعني أن الخبير الآلي يقيّم شروط الدخول مرة واحدة في الشمعة كحد أقصى، ما يقلل من حركة الشبكة للوسيط ويمنع الإفراط في التداخل أثناء الانفجارات السعرية.
ادعاء «12 طبقة» في رأس المصدر طموحي أكثر منه حرفي — ديماتوس أقرب إلى مكدس من 6 طبقات: الإشارة (تقاطع ديماركر)، الدخول (بوابة الشمعة الجديدة + شرط التقاطع)، التحجيم (معامل اللوت والتقريب)، التوسع (مسافة InpDistance + تقاطع نفس الاتجاه)، الإدارة (تريلينج بالنقاط لكل مركز)، الخروج (تريلينجEquity). الطبقات الست الأخرى المذكورة في الوصف — فلتر النظام، فلتر التأكيد، بوابة عدم-التداول، سقف رأس المال، سقف مخاطر لكل صفقة، دالة لياقة OnTester — غير منفذة في هذا البناء.
للمتداول الذي يقيّم ديماتوس، الأسئلة العملية هي: هل تثق في تقاطع عكس ديماركر على رمزك وفريمك، وهل يمكن لحجم حسابك استيعاب سلسلة توسع 2×-4× إذا تأخر تفعيل تريلينجEquity؟ اختبر الإعداد الافتراضي على 12 شهراً على الأقل من بيانات M5 لرمزك المستهدف قبل التشغيل الحقيقي، وراقب رفع VSL لمنحنى Equity في الوضع البصري لاختبار الاستراتيجية، وتأكد أن مضاعف اللوت لا يتجاوز حد المراكز القصوى لدى وسيطك في اتجاه واحد. يمكن ضبط InpVirtualStopEquity على رقم دولار حقيقي (مثل 50 أو 100) لإضافة أرضية صلبة على تراجع الحساب تحت الرصيد الجاري.
تفاصيل الاستراتيجية
يقرأ مؤشر ديماركر بين 0 و1 مع منطقتي تطرف عند <0.3 (إنهاك جانب البيع) و>0.7 (إنهاك جانب الشراء)؛ ديماتوس يطلق الإشارة فقط عند التقاطع خارج هاتين المنطقتين، بحيث تكون قيمة الشمعة -2 داخل التطرف وقيمة الشمعة 0 قد عادت إلى الحياد. تحكم دالة OnTick() التقييم خلف فحص طابع الشمعة الجديدة NewBar، لذا تُعالَج الدخول مرة واحدة عند إغلاق الشمعة وليس عند كل tick. يستخدم التوسع داخل الصفقة استدعاء OnTradeTransaction لتسجيل سعر آخر دخول، ثم يفتح مركزاً إضافياً بحجم 2.0× حجم المركز السابق عندما يتحرك السعر 50 نقطة في الاتجاه لصالح المركز ويتكون تقاطع ديماركر جديد في نفس الاتجاه. تعدل دالة Trailing() وقف الخسارة SL فقط عندما يتجاوز الربح InpTrailingStop+InpTrailingStep (10 نقاط إجمالاً افتراضياً)، ثم تقفل الوقف على بعد 5 نقاط من السعر الحالي. تحافظ دالة TrailEquiti() على رافعة وقف Equity افتراضية تغلق كل المراكز الحاملة للرقم السحري 22212023 عندما تنخفض Equity إلى ما دون أعلى Equity مسجلة ناقص مبلغ التريلينج.
يأخذ ديماتوس إشارات الشراء عندما يعبر ديماركر (فترة 13) صعوداً عبر 0.3 (demarker_2 < 0.3 AND demarker_0 > 0.3)، وإشارات البيع عندما يعبر ديماركر هبوطاً عبر 0.7 (demarker_2 > 0.7 AND demarker_0 < 0.7). لا تُقيَّم الدخول إلا عند افتتاح شمعة جديدة عبر بوابة طابع الوقت NewBar، وليس عند كل tick. إذا كان هناك مركز مفتوح بالفعل، ينتظر الخبير الآلي تحرك السعر InpDistance=50 نقطة في الاتجاه لصالح المركز قبل إضافة مركز جديد بحجم InpCoefficient × حجم المركز السابق (افتراضياً 2.0×).
تُغلق المراكز عبر تريلينج منحنى Equity في TrailEquiti() — عندما تنخفض Equity إلى ما دون VSL (الذي يرتفع تدريجياً بمقدار InpTrailingEquity=$5 بعد أن تتجاوز Equity الرصيد + 25$)، تُغلق جميع المراكز الحاملة للرقم السحري 22212023 قسرياً عبر CloseAllPositions(). أما الخروج لكل مركز فيأتي من تريلينج وقف الخسارة الكلاسيكي 5 نقاط مع خطوة 5 نقاط في Trailing()، الذي يرفع SL بمجرد أن يتجاوز الربح مجموع التريلينج والخطوة. لا يوجد جني أرباح على الأمر نفسه (TP=0)؛ الخروج تريلينج خالص + وقف Equity، بالإضافة إلى إشارة ديماركر المعاكسة التي تفتح صفقة جديدة في الاتجاه المعاكس بعد إغلاق المركز القائم.
يُضبط وقف الخسارة على 999 نقطة لكل أمر عبر OpenBuy()/OpenSell()، وعلى سعر XAUUSD بـ5 أرقام يكون SL على بعد نحو 100$ من الدخول — وهو في الإعداد الافتراضي «بلا وقف ثابت» فعلياً. الحماية الوحيدة النشطة من الانخفاض هي تريلينج منحنى Equity على مستوى الحساب في TrailEquiti()، التي تغلق كل المراكز إذا انخفضت Equity دون VSL التصاعدية؛ يمكن خفض InpVirtualStopEquity من 99999 إلى رقم دولار حقيقي لإضافة أرضية صلبة للتراجع.
لا يوجد جني أرباح على الأمر نفسه؛ تمرر كل من OpenBuy() وOpenSell() القيمة tp=0.0 إلى m_trade.Buy()/m_trade.Sell(). يتم جني الأرباح حصرياً عبر رفع وقف الخسارة التريلينج 5 نقاط في Trailing() وعبر VSL منحنى Equity في TrailEquiti() — ديماتوس مصمم لترك الرابحين يركضون بآلية تريلينج محكمة بدلاً من جني أرباح ثابت.
يُنشر بأفضل شكل على XAUUSD أو أزواج العملات الرئيسية على فريم M5 (يعمل على M5-H1)، مع رصيد أدنى موصى به 100$ بحجم أساس 0.1 لوت. مثالي للمتداولين الذين يثقون في تقاطع عكس ديماركر ويرغبون في خبير آلي يعمل بمؤشر واحد مع تريلينج Equity بسيط، دون فلاتر تأكيد معقدة أو مصنفات نظام سوق. مضاعف اللوت 2.0× على خطوة توسع 50 نقطة يعني أن حساب 100$ قد يشهد دخولات 0.2/0.4/0.8 لوت على حركة قوية — حدد الحجم بتحفظ على حساب صغير وفكر في ضبط InpCoefficient=1.0 إذا كان وسيطك يفرض حدود مراكز ضيقة لكل رمز.
منطق الاستراتيجية
Pipsgrowth EX12023 MultiIndicatorConfluence — تحليل منطق الاستراتيجية (من كود .mq5)
العائلة: MultiIndicatorConfluence
الماجيك: 22212023
الإصدار: 2.00
الوصف:
Dematus EA uses DeMarker oscillator for overbought/oversold detection with equity trailing and virtual stop for risk control. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
المؤشرات:
- مؤشرات قياسية
الدوال الرئيسية:
OnTradeTransaction()RefreshRates()CheckVolumeValue()TrailEquiti()iDeMarkerGet()OpenBuy()OpenSell()PrintResultTrade()Trailing()PrintResultModify()
// Pipsgrowth EX12023 MultiIndicatorConfluence — Execution Flow (from source analysis)
// Family: MultiIndicatorConfluence
// Dematus EA uses DeMarker oscillator for overbought/oversold detection with equity trailing and virtual stop for risk control. 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
معاملات الإكسبرت
| المعامل | الافتراضي | الوصف |
|---|---|---|
| InpTradeComment | "Psgrowth.com Expert_12023" | Trade Comment |
| m_magic | 22212023 | magic number |
| InpLots | 0.1 | Lots |
| InpStopLoss | 999 | Stop Loss (in pips) |
| InpTrailingStop | 5 | Trailing Stop (in pips) |
| InpTrailingStep | 5 | Trailing Step (in pips) |
| InpDistance | 50 | Distance (in pips) |
| InpTrailingEquity | 5.0 | Trailing Equity (in money) |
| InpVirtualStopEquity | 99999 | Virtual Stop Equity (in money) |
| InpTrailingStartEquity | 20 | Trailing Start Equity (in money) |
| Inp_ma_period | 13 | DeMarker: averaging period |
| InpCoefficient | 2.0 | Coefficient Lots positions |
| InpResetPrice | false | Reset "last price IN" after deal OUT |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX12023 Dematus — DeMarker oscillator with equity trailing, full 12-layer stack."
//---
#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>
CPositionInfo m_position; // trade position object
CTrade m_trade; // trading object
CSymbolInfo m_symbol; // symbol info object
CAccountInfo m_account; // account info wrapper
//--- input parameters
input group "=== Identity ==="
input string InpTradeComment = "Psgrowth.com Expert_12023"; // Trade Comment
input ulong m_magic = 22212023; // magic number
input group "=== Trade Parameters ==="
input double InpLots = 0.1; // Lots
input ushort InpStopLoss = 999; // Stop Loss (in pips)
input ushort InpTrailingStop = 5; // Trailing Stop (in pips)
input ushort InpTrailingStep = 5; // Trailing Step (in pips)
input ushort InpDistance = 50; // Distance (in pips)
input double InpTrailingEquity = 5.0; // Trailing Equity (in money)
input double InpVirtualStopEquity = 99999; // Virtual Stop Equity (in money)
input double InpTrailingStartEquity=20; // Trailing Start Equity (in money)
input int Inp_ma_period = 13; // DeMarker: averaging period
input double InpCoefficient = 2.0; // Coefficient Lots positions
input bool InpResetPrice = false; // Reset "last price IN" after deal OUT
//---
ulong m_slippage=10; // slippage
double ExtStopLoss=0.0;
double ExtTrailingStop=0.0;
double ExtTrailingStep=0.0;
double ExtDistance=0.0;
int handle_iDeMarker; // variable for storing the handle of the iDeMarker indicator
double m_adjusted_point; // point value adjusted for 3 or 5 points
double VSL=0.0;
double m_last_deal_price_IN=0.0;
double m_lot=0.0;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
if(InpTrailingStop!=0 && InpTrailingStep==0)
{
string text=(TerminalInfoString(TERMINAL_LANGUAGE)=="Russian")?
"Трейлинг невозможен: параметр \"Trailing Step\" равен нулю!":
"Trailing is not possible: parameter \"Trailing Step\" is zero!";
Alert(__FUNCTION__," ERROR! ",text);
return(INIT_PARAMETERS_INCORRECT);
}
الكود المصدري الكامل متاح عند التحميل
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.
تحذير صريح: لأغراض تعليمية فقط
تحذير صريح: هذا الإكسبرت لأغراض تعليمية واختبارية فقط. لا تستخدمه بأموال حقيقية. اختبره فقط على حساب تجريبي. التداول بأموال حقيقية ينطوي على مخاطر فقدان رأس المال. لا يشكل هذا نصيحة استثمارية.
وسطاء موصى بهم لهذا الإكسبرت
هذه الروبوتات تعمل على 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 مفتوح المصدر.
مجتمع المستخدمين
لأغراض تعليمية فقط. لا تستخدمه بأموال حقيقية. اختبر على حساب تجريبي فقط.