تصميم MagicNumber: تشغيل عدة EA على حساب واحد
المحتوى
الخلاصة: MagicNumber هو «بطاقة اسم» الـ EA، فلا تكرّره داخل الحساب الواحد
إذا كنت ستشغّل عدة EA على حساب واحد، فأول ما يجب تحديده هو توزيع قيم MagicNumber. MagicNumber هو رقم يُلحق بالأوامر والصفقات المفتوحة ليدل على «أي EA أصدرها». تعتمد معظم الـ EA على هذا الرقم لتحديد أي الصفقات المفتوحة تخصها.
عند تكرار الرقم قد يظن أحد الـ EA أن صفقة EA آخر تخصه، فيغلقها أو يعدّل وقف الخسارة فيها من تلقاء نفسه. لا تظهر أي رسالة خطأ، ويبدو كلا الـ EA يعملان بشكل طبيعي على الشاشة، ولذلك يصعب اكتشاف هذه المشكلة.
مقارنة الوسطاء الموصى بهم →
🎁 تحميل EA مجاناً📧 دورة بريدية مجانية (8 رسائل) + حزمة من 13 مؤشر MT5 حصريًا للمشتركين
* الخصوصية محمية بشكل صارم. يمكنك إلغاء الاشتراك في أي وقت.
آلية العمل: كيف يميّز الـ EA «صفقاته»؟
في MT5 يمكن للـ EA أن يُرفق رقم MagicNumber عددياً عند إرسال الأمر. يبقى هذا الرقم مسجلاً في الصفقة المفتوحة (POSITION_MAGIC) وفي سجل التداول (DEAL_MAGIC). أما الأوامر اليدوية فيكون رقمها عادةً 0.
يقوم الـ EA المعتاد عند عدّ الصفقات أو إدارتها بالتصفية وفق شرطين:
- هل الرمز هو نفسه رمز الرسم البياني الخاص به؟
- هل MagicNumber مطابق للقيمة المضبوطة عنده؟
لا يعامل الـ EA «كحصته» إلا الصفقات التي تحقق الشرطين معاً. والمهم هنا أن منصة MT5 نفسها لا تمنع تكرار MagicNumber؛ فالرقم مجرد اتفاق، والالتزام به متروك لمن يدير التشغيل ولطريقة بناء الـ EA.
ماذا يحدث عند التكرار؟
إذا عمل EA اثنان على الرمز نفسه وبـ MagicNumber نفسه، فقد تقع حالات مثل:
- منع الدخول: EA مضبوط على «الحد الأقصى للصفقات 1» يحسب صفقة الـ EA الآخر على أنها صفقته، فيتجاهل الدخول الجديد
- إغلاق صفقات الغير: عند صدور إشارة إغلاق تُغلق معها صفقة الـ EA الآخر
- الكتابة فوق وقف الخسارة: يحرّك الـ trailing stop مستوى SL في صفقة الـ EA الآخر أيضاً
- اختلال حساب اللوت: في الـ EA الذي يحدد اللوت بحسب عدد الصفقات المفتوحة قد يكبر حجم المركز عمّا هو متوقع
لا يمكن إعادة إنتاج أي من هذه الحالات في الاختبار الرجعي (backtest)، لأن tester يشغّل EA واحداً في كل مرة. وهذا أحد أسباب الفارق بين نتائج الاختبار والتشغيل الفعلي.
تتبّع الإغلاق الجزئي
في الـ EA الذي يستخدم الإغلاق الجزئي، يلزم الانتباه إلى طريقة تتبّع السجلات أيضاً. في الحسابات من نوع hedging لا يتغير معرّف الصفقة (POSITION_IDENTIFIER) بعد الإغلاق الجزئي، ويبقى مسجلاً في صفقة الإغلاق ضمن السجل باسم DEAL_POSITION_ID. فإذا أردت لاحقاً تجميع أداء كل EA على حدة، فالأضمن أن تصفّي بـ MagicNumber ثم تجمّع حسب معرّف الصفقة هذا.
غير أن MagicNumber المسجل في صفقة الإغلاق قد يكون أحياناً قيمة الجهة التي أرسلت أمر الإغلاق. فإذا أغلقتَ يدوياً جزءاً من صفقة فتحها EA، فقد يصبح رقم تلك الصفقة وحدها 0، وعندها لا تتطابق الأرقام إذا اعتمدت على MagicNumber وحده. كما أن حقل التعليق قد يُعاد كتابته من جهة الوسيط أو الخادم، فلا يصلح الاعتماد عليه للتمييز.
قائمة الفحص قبل الإعداد
| بند الفحص | طريقة الفحص | الخطر عند إهماله |
|---|---|---|
| هل MagicNumber لكل EA غير مكرر؟ | اجمع القيم من شاشة معاملات كل EA في قائمة وسجّلها | تداخل في الإغلاق وتعديل SL |
| عند استخدام الـ EA نفسه على عدة رسوم بيانية، هل خصصت لكل رسم رقماً مختلفاً؟ | استخدم رقماً مختلفاً حتى لو اختلف الرمز أو الإطار الزمني | الخلط في الـ EA الذي لا ينظر إلى الرمز |
| هل الحساب من نوع hedging؟ | تحقق من معلومات الحساب | في حساب netting تُدمج صفقات الرمز الواحد في صفقة واحدة ولا يمكن فصلها بالرقم |
| هل غيّرت الرقم أثناء التشغيل؟ | تأكد من عدم وجود صفقات مفتوحة قبل التغيير | تبقى الصفقات القائمة دون إدارة |
| هل خلطت التداول اليدوي معها؟ | افصل التداول اليدوي في حساب مستقل | خلل في التجميع ونقص في السجلات بسبب الإغلاق اليدوي |
اعتمد قاعدة بسيطة للأرقام، مثل «تخصيص خانة عشرية مستقلة لكل EA»، فلن تتشتت عند مراجعة السجل لاحقاً. موضع شاشة الإعدادات موضح في طريقة إعداد EA.
الحدود والتنبيهات
تفصيل MagicNumber لا يمنع كل أنواع التداخل. وأكتب ذلك بصراحة:
- لا يفيد مع الـ EA الذي لا ينظر إلى MagicNumber: الـ EA الذي يصفّي بالرمز فقط، أو يدير كل صفقات الحساب، سيتداخل حتى لو فصلت الأرقام. وإذا أضفت EA من جهات أخرى فلا نعرف نحن كيف بُنيت.
- تصادم القيم الافتراضية: توزَّع معظم الـ EA بقيمها الافتراضية. ومن المحتمل جداً أن تتطابق القيم الافتراضية في EA من مطوّرين مختلفين، لذا تحقق من القيمة بنفسك دائماً.
- EA متعدد الرموز: عندما يتعامل EA واحد مع عدة رموز، مثل ATLAS وTRINITY، فإنه يتنافس مع الـ EA الأخرى على الرمز نفسه. وحتى مع اختلاف الأرقام يبقى الهامش مشتركاً، فيظل احتمال تزامن drawdown قائماً.
- إدارة رأس المال لا تنفصل: الأرقام تفصل إدارة الصفقات فقط. أما نسبة الهامش (margin level) والإغلاق القسري (stop out) فتُحدَّدان على مستوى الحساب كله. وإذا خسر EA واحد خسارة كبيرة تأثرت بقية الـ EA معه.
وإن أردت تجنّب التداخل بشكل مؤكد، فأبسط حل هو تخصيص حساب مستقل لكل EA. واعتبر تصميم الأرقام الحد الأدنى من الاحتياط عند قرارك تشغيلها على حساب واحد.
الخلاصة
- MagicNumber رقم تعريف الـ EA المحفوظ في الأوامر والصفقات والسجل، ومنصة MT5 لا تمنع تكراره
- عند التكرار قد يحدث منع الدخول وإغلاق صفقات EA آخر والكتابة فوق SL واختلال حساب اللوت، ولا تظهر هذه الحالات في الاختبار الرجعي
- يتم تتبّع الإغلاق الجزئي بالجمع بين MagicNumber ومعرّف الصفقة، وقد تختل السجلات عند الإغلاق اليدوي
- في حساب netting لا يمكن فصل الصفقات بالرقم، وعند استخدام عدة EA استخدم حساب hedging
- حتى مع فصل الأرقام يبقى الهامش مشتركاً، ولتجنّب التداخل بشكل مؤكد افصل الحسابات
لمزيد من خبرات التشغيل راجع معارف EA وMT5.
ذات صلة
📧 دورة بريدية مجانية (8 رسائل) + حزمة من 13 مؤشر MT5 حصريًا للمشتركين
* الخصوصية محمية بشكل صارم. يمكنك إلغاء الاشتراك في أي وقت.
هل لديك سؤال عن المستشارين الآليين أو الفوركس؟
يمكنك طرحه في منتدى التداول على Nattzy (التسجيل مجاني). نرحب أيضًا بالأسئلة خارج موضوع هذا المقال، مثل إعدادات المستشار الآلي واختيار الوسيط.
اسأل على Nattzy ↗