الرئيسية > المدونة > الإغلاق الجزئي مع الوقف المتحرك: أين يتعطل وكيف تفحصه

MQL5تطوير الإكسبيرت

الإغلاق الجزئي مع الوقف المتحرك: أين يتعطل وكيف تفحصه

نُشر: 2026-11-11وقت القراءة: حوالي 2 دقيقة
⏱ يعكس هذا المقال المعلومات حتى تاريخ نشره. تتغير أرقام أداء EA (PF وDD والعائد السنوي) مع التداول الحي وإعادة التحقق — راجع أحدث المعلومات في صفحات EA. اطلع على أحدث نتائج EA →
المحتوى (5)
  1. الخلاصة: ما يتعطل هو «تمرير الحالة» لا المنطق نفسه
  2. لماذا يتعطل الجمع بينهما؟
  3. لا يمكن الاعتماد على «ذاكرة» الـ EA لمعرفة الحجم المتبقي
  4. اللوت يُقرَّب «للأسفل» لا «للأقرب»
  5. اكتب SL في موضع واحد وفي النهاية
  6. قائمة التنفيذ والفحص
  7. الحدود والتنبيهات
  8. الخلاصة

الخلاصة: ما يتعطل هو «تمرير الحالة» لا المنطق نفسه

الإغلاق الجزئي والوقف المتحرك ليسا معقدين إذا استُخدم كل منهما وحده. تظهر المشكلات عندما يُطبَّقان على الصفقة نفسها. وفي تجربتنا في التطوير، تركزت المشكلات تقريبًا في ثلاثة مواضع:

  1. إدارة الحجم المتبقي: لا يستطيع الـ EA أن «يتذكر» أنه أغلق جزءًا من الصفقة بالفعل
  2. خطوة اللوت: حجم الإغلاق لا يتوافق مع الحد الأدنى للوت أو خطوته لدى الوسيط
  3. ترتيب إعادة ضبط SL: الإغلاق الجزئي ونقل الوقف إلى نقطة الدخول والوقف المتحرك تكتب فوق بعضها

وكلها أعطال نادرًا ما تظهر في الاختبار الخلفي، وغالبًا لا يلاحظها المرء إلا في التشغيل الحقيقي.

مقارنة الوسطاء الموصى بهم →

🎁 تحميل EA مجاناً

📧 دورة بريدية مجانية (8 رسائل) + حزمة من 13 مؤشر MT5 حصريًا للمشتركين

* الخصوصية محمية بشكل صارم. يمكنك إلغاء الاشتراك في أي وقت.

لماذا يتعطل الجمع بينهما؟

لا يمكن الاعتماد على «ذاكرة» الـ EA لمعرفة الحجم المتبقي

في MT5، لا يتغير رقم تذكرة الصفقة بعد الإغلاق الجزئي، بل ينقص POSITION_VOLUME فقط. فإذا اكتفيتَ بمتغير bool لتسجيل أن «الإغلاق الجزئي تم»، فستضيع قيمته عند إعادة تشغيل الـ EA أو إعادة اتصال الـ VPS أو تبديل الإطار الزمني. وعند أول تيك بعد ذلك، يغلق الـ EA نصف الصفقة المتبقية مرة أخرى، وهذا هو الحادث النموذجي.

وللتعامل مع ذلك، نتتبع سجل التنفيذ الخاص بالصفقة عبر HistorySelectByPosition()، ونحدد مرحلة الإغلاق الجزئي بمقارنة الحجم الأصلي عند الفتح بالحجم المتبقي الآن. أما العلامة (flag) في الذاكرة فتبقى عنصرًا مساعدًا فقط.

اللوت يُقرَّب «للأسفل» لا «للأقرب»

نصف 0.03 لوت هو 0.015. في حساب خطوته 0.01، سيؤدي التقريب العادي إلى إغلاق 0.02، أي أكثر مما كنت تريد. لذلك يجب تقريب حجم الإغلاق للأسفل وفق SYMBOL_VOLUME_STEP، والتحقق أيضًا من أن الحجم المتبقي بعد الإغلاق لا يقل عن SYMBOL_VOLUME_MIN. أما 0.01 لوت فلا يمكن تقسيمه أصلًا، ولذلك يجب أن تحدد في المواصفات هل «لا يُجرى إغلاق جزئي» أم «تُغلق الصفقة كلها»، وإلا ظل الـ EA يتلقى رسالة خطأ باستمرار.

اكتب SL في موضع واحد وفي النهاية

الدالة PositionModify() تحدد SL وTP معًا. وإذا مرّرت معالجة الوقف المتحرك القيمة 0 لـ TP، فسيُحذف TP. كذلك، إذا عملت عملية نقل SL إلى نقطة الدخول بعد الإغلاق الجزئي وعملية رفع SL بالوقف المتحرك بشكل منفصل في التيك نفسه، فإن آخر من يكتب هو الذي يفوز. والنتيجة أن SL الذي رُفع إلى نقطة الدخول قد ينخفض من جديد.

الترتيب الذي نعتمده هو التالي:

  • إرسال أمر الإغلاق الجزئي ← إعادة تحديد الصفقة والتحقق من الحجم المتبقي
  • حساب المرشحين معًا: SL عند نقطة الدخول وSL الوقف المتحرك
  • التحريك فقط نحو «الجهة الأفضل من SL الحالي» (الأعلى للشراء، والأدنى للبيع)
  • فحص مستوى الإيقاف (Stop Level) ومستوى التجميد (Freeze Level)، ثم التعديل مرة واحدة فقط مع إعادة تمرير قيمة TP الحالية

قائمة التنفيذ والفحص

بند الفحصالعَرَض عند الخللطريقة الفحص
هل تُحدَّد مرحلة الإغلاق الجزئي من سجل التنفيذ؟إغلاق جزئي مزدوج بعد إعادة التشغيلأعد إرفاق الـ EA أثناء التشغيل وراقب تغير الحجم المتبقي
هل يُقرَّب حجم الإغلاق للأسفل وفق الخطوة؟إغلاق أكثر من المتوقع أو ظهور أخطاءافتح صفقة بالحد الأدنى للوت وراجع السجل
هل حُدد كيفية التعامل مع التقسيم عند الحد الأدنى للوت؟فشل الإغلاق في كل تيكجرّب بحجم 0.01 لوت
هل يمكن أن يعود SL في اتجاه غير مناسب؟إغلاق بخسارة بعد وضع SL عند نقطة الدخولتتبّع تغيرات SL زمنيًا في السجل
هل يحذف تعديل SL قيمة TP؟لا يعمل جني الأرباحافحص خانة TP في الصفقة بعد التعديل
هل يمتنع تحريك SL إذا فشل الإغلاق الجزئي؟عدم اتساق الحجم المتبقي مع افتراضات SLأرسل أمرًا قبيل إغلاق السوق ليفشل عمدًا
هل يعمل الـ EA على حساب Netting؟تُدمج الصفقات مع صفقات EA آخرتحقق من نوع الحساب

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

الحدود والتنبيهات

منفّذ الاستراتيجيات (Strategy Tester) ينفّذ الأوامر فورًا، ونادرًا ما يحدث فيه أن يُنفَّذ جزء فقط من الأمر. ولذلك لا تكاد أعطال الإغلاق الجزئي تظهر في أرقام الاختبار الخلفي. أما اختلاف أسلوب التنفيذ (Filling Mode) في الحساب الحقيقي وسلوك إعادة التسعير (Requote)، فلا سبيل إلا اختباره لدى كل وسيط على حدة، وهذه هي الحقيقة.

كما أن إضافة الإغلاق الجزئي لا تعني بالضرورة تحسن النتائج. ففي الاستراتيجيات التابعة للاتجاه التي تكون نسبة الربح فيها منخفضة وتعتمد على قلة من الأرباح الكبيرة (مثل DONCHIAN ENGINE الذي بلغت نسبة ربحه 34.5% في الاختبار الخلفي)، يؤدي تقليص الحجم في المراحل التي تنمو فيها الأرباح إلى احتمال انخفاض القيمة المتوقعة. صحيح أن تقلبات الأرباح والخسائر تصبح أصغر، لكن ما تخسره في المقابل لا يُعرف إلا بالاختبار لكل EA على حدة. ونحن أيضًا لم نختبر كل التركيبات الممكنة.

وعند إضافة إغلاق جزئي بنفسك لاحقًا إلى استراتيجية مثل DONCHIAN ENGINE، انتبه إلى أن نتائج الاختبار الأصلية لن تنطبق عليها كما هي.

الخلاصة

  • ما يتعطل عند الجمع بين الإغلاق الجزئي والوقف المتحرك هو «تمرير الحالة» أكثر من المنطق
  • حدّد مرحلة الإغلاق الجزئي من سجل التنفيذ والحجم المتبقي، لا من علامة في الذاكرة
  • قرّب اللوت للأسفل وفق الخطوة، وتأكد ألا ينزل الحجم المتبقي عن الحد الأدنى للوت
  • اجمع تعديل SL في موضع واحد، وحرّكه نحو الجهة الأفضل فقط، ولا تحذف TP
  • يصعب اكتشاف هذه الأعطال في الاختبار الخلفي، لذا اختبر إعادة الإرفاق على حساب تجريبي
  • الإغلاق الجزئي يصغّر تقلبات الأرباح والخسائر، لكنه قد يخفض القيمة المتوقعة أيضًا

وللمزيد من الملاحظات حول التنفيذ، راجع معارف EA وMT5.

📧 دورة بريدية مجانية (8 رسائل) + حزمة من 13 مؤشر MT5 حصريًا للمشتركين

* الخصوصية محمية بشكل صارم. يمكنك إلغاء الاشتراك في أي وقت.

هل لديك سؤال عن المستشارين الآليين أو الفوركس؟

يمكنك طرحه في منتدى التداول على Nattzy (التسجيل مجاني). نرحب أيضًا بالأسئلة خارج موضوع هذا المقال، مثل إعدادات المستشار الآلي واختيار الوسيط.

اسأل على Nattzy ↗

التعليقات والأسئلة