تطوير مستشار خبير لـMetaTrader 5: من الاستراتيجية إلى الحساب الحقيقي
كيف يُطوَّر مستشار خبير لـMT5: الفرق بين EA والمؤشر، وصياغة الاستراتيجية في مواصفات، وبنية MQL5، وإدارة المخاطر، والاختبار الرجعي، والتحسين، وVPS.
MetaTrader 5 (MT5) منصة تداول واسعة الاستخدام في أسواق الفوركس والسلع والمؤشرات. وأقوى ما في المنصة أن البرامج المكتوبة بلغة MQL5 تعمل على الرسم البياني وتستطيع فتح الصفقات وإغلاقها بنفسها. تُسمى هذه البرامج المستشارين الخبراء (Expert Advisor أو EA). أنا Berke Özyaşar؛ أطوّر مستشارين خبراء ومؤشرات لـMetaTrader 4 و5، ومؤشرات Pine Script لـTradingView. وفي هذا المقال أشرح كيف يسير مشروع EA من البداية إلى النهاية، وخصوصًا الأجزاء التي تقع خارج الشيفرة.
EA أم مؤشر؟
هذا هو السؤال الأول عادةً. كلاهما يُكتب بلغة MQL5، لكن وظيفتيهما مختلفتان:
- المؤشر يرسم معلومات على الرسم البياني: خطًا، أو سهمًا، أو تغيّرًا في اللون، أو تنبيهًا. والقرار والأمر لك.
- المستشار الخبير يرسل الأمر بنفسه عند تحقق القواعد، ويدير المركز ويغلقه.
إذا لم تكن واثقًا تمامًا من استراتيجيتك بعد، أو كان جزء من القرار يتطلب تقديرًا شخصيًا، فالبدء بمؤشر هو الخيار الأصوب في الغالب. ومع اتضاح القواعد يمكن نقل المنطق نفسه إلى EA. وفي بعض المشاريع يُكتب الاثنان معًا: يولّد المؤشر الإشارة، ويقرأها الـEA وينفّذ الصفقة.
أهم خطوة: صياغة الاستراتيجية في مواصفات
تبدأ معظم الطلبات بجملة واحدة مثل "اشترِ عند تقاطع المتوسطات المتحركة". قد تكفي هذه الجملة إنسانًا، لكنها لا تكفي برنامجًا. وقبل كتابة الشيفرة يجب أن تكون الإجابات عن الأسئلة التالية كلها جاهزة:
- أي رمز وأي إطار زمني؟ هل سيعمل على أكثر من رمز في الوقت نفسه؟
- هل تُفحص الإشارة عند إغلاق الشمعة، أم عند كل تغيّر في السعر؟
- ما شروط الدخول بالضبط؟ أي مؤشرات، وبأي معاملات؟
- كيف يُغلق المركز: وقف خسارة وجني أرباح ثابتان، أم وقف متحرك، أم إشارة معاكسة؟
- كم مركزًا يمكن أن يكون مفتوحًا في الوقت نفسه؟ وماذا يحدث إذا جاءت إشارة في الاتجاه المعاكس؟
- في أي ساعات لا يُتداول: عند إعلانات البيانات المهمة، وإغلاق نهاية الأسبوع، والساعات التي يتسع فيها الفارق السعري (spread)؟
- كيف يُحسب حجم العقد (اللوت)؟
ملء هذه القائمة معًا يستغرق أحيانًا وقتًا أطول من الشيفرة نفسها، لكنه يمنع إلى حد كبير نقاشات "لم أقصد ذلك" لاحقًا. كما تصبح المواصفات مرجعًا للتحقق في مرحلة الاختبار من أن الـEA يتصرف بشكل صحيح.
بنية المستشار الخبير في MQL5
يُبنى المستشار الخبير في MQL5 حول عدد من دوال الأحداث:
- OnInit(): تعمل مرة واحدة عند إضافة الـEA إلى الرسم البياني. هنا تُنشأ مقابض (handles) المؤشرات، وتُتحقق صحة معاملات الإدخال. وإذا كانت المعاملات غير منطقية فيجب إيقاف الـEA هنا قبل أن يبدأ.
- OnTick(): تعمل مع كل سعر جديد يصل إلى الرمز، وهي قلب الاستراتيجية. وفي الاستراتيجيات التي تعمل عند إغلاق الشمعة، يكون أول ما يُفعل التحقق من تكوّن شمعة جديدة؛ وإلا عولجت الإشارة نفسها مرات عديدة داخل الشمعة الواحدة.
- OnDeinit(): تعمل عند إزالة الـEA أو إغلاق المنصة. تُحرَّر مقابض المؤشرات، وتُزال الكائنات المرسومة على الرسم البياني.
وإلى جانبها يمكن استخدام OnTimer() للمهام المجدولة، وOnTradeTransaction() لمتابعة أحداث الأوامر والمراكز. وتُرسَل الأوامر عادةً عبر الفئة CTrade في المكتبة القياسية. وفي الـEA المتين يجب التحقق من رمز النتيجة لكل أمر: فحالات مثل عدم كفاية الهامش، أو إغلاق السوق، أو مستوى وقف غير صالح، أو إعادة التسعير، تحدث في الحساب الحقيقي أكثر مما تتوقع. كما يجب أن تتكيّف الشيفرة مع أصغر خطوة للوت، والحد الأدنى لمسافة الوقف، وعدد المنازل العشرية للرمز؛ فالـEA الذي يعمل بلا مشاكل لدى وسيط قد يعطي أخطاء لدى وسيط آخر بسبب هذه التفاصيل.
يجب أن تكون إدارة المخاطر جزءًا من الشيفرة
أهم جزء في الـEA ليس إشارة الدخول، بل إدارة المخاطر. والمسائل التي أتناولها بشكل قياسي في كل EA:
- حجم المركز: بدلًا من لوت ثابت، بنية تخاطر بنسبة محددة من الحساب في كل صفقة وتحسب اللوت وفق مسافة الوقف.
- وقف خسارة في كل صفقة: عدم فتح أي مركز دون وقف.
- حدود الخسارة اليومية والإجمالية: أن يتوقف الـEA عن التداول لبقية اليوم أو نهائيًا عند بلوغ خسارة معيّنة.
- مرشح الفارق السعري: عدم فتح صفقات عندما يتجاوز الفارق السعري قيمة معيّنة.
- تحمّل إعادة التشغيل: أن يتعرف الـEA على مراكزه المفتوحة عبر الرقم السحري (magic number) عند إعادة تشغيل المنصة ويواصل إدارتها.
الاختبار الرجعي في Strategy Tester
تشغّل أداة Strategy Tester في MT5 الـEA على البيانات التاريخية وتقدّم تقريرًا بالنتائج. وهنا بعض النقاط التي يجب الانتباه إليها. نموذج الاختبار مهم: فالاختبار بأسعار الافتتاح فقط سريع، لكنه مضلل في الاستراتيجيات التي تعتمد على الحركة داخل الشمعة؛ والاختبار ببيانات التكات الحقيقية أبطأ لكنه أكثر واقعية. ويجب إدخال تكاليف مثل الفارق السعري والعمولة والمبادلة (swap) في الاختبار. وبدلًا من التركيز على رقم صافي ربح واحد في التقرير، ينبغي فحص أقصى تراجع (drawdown)، وعدد الصفقات، وكيفية توزّع النتائج عبر الزمن.
التحسين والإفراط في المواءمة
يستطيع Strategy Tester مسح تركيبات المعاملات وإيجاد أفضلها نتيجة. وهي أداة قوية، لكن فيها يقع الخطأ الأكثر شيوعًا: إذا ضبطت عددًا كافيًا من المعاملات بدقة كافية، فستحصل على نظام يبدو ممتازًا في الماضي لكنه لا يصيب المستقبل أبدًا. ويُسمى هذا الإفراط في المواءمة (overfitting).
وللوقاية منه أفصل جزءًا من البيانات لا يُعرض على التحسين إطلاقًا، وأختبر المعاملات التي وُجدت على هذه الفترة غير المرئية. ويمكن لخيار الاختبار الأمامي (forward) في MT5 القيام بذلك تلقائيًا. كما أفضّل، بدلًا من قيمة ذروة واحدة، منطقة واسعة تعطي نتائج معقولة في المعاملات المجاورة أيضًا. وكلما قلّ عدد المعاملات، زادت الثقة بأن النتائج تستند إلى شيء حقيقي.
الحساب التجريبي والاختبار الأمامي
مهما كان الاختبار الرجعي جيدًا، يجب أن يعمل الـEA فترة على حساب تجريبي أو على حساب حقيقي بأحجام صغيرة جدًا قبل الانتقال إلى التداول الفعلي. والهدف في هذه المرحلة ليس قياس الربح بقدر ما هو التحقق من أن الـEA يتصرف وفق المواصفات في الظروف الحقيقية: هل تُفتح الأوامر في الوقت الصحيح، وكم يبلغ الانزلاق، وهل تسبب قواعد الوسيط مشكلات؟ وتسجيل الـEA لكل قرار في السجل يسهّل هذا التحقق كثيرًا.
VPS: بيت المستشار الخبير
لا يعمل الـEA إلا ما دامت منصة MetaTrader مفتوحة. فعندما يُطفأ حاسوبك، أو ينقطع الإنترنت، أو يُعاد تشغيل نظام التشغيل للتحديث، يتوقف الـEA أيضًا. لذلك تُستضاف المستشارات الخبيرة التي يجب أن تعمل باستمرار عادةً على خادم VPS. ويمكن استخدام خدمة الاستضافة الافتراضية من MetaQuotes نفسها، أو خادم Windows VPS مستقل. والموقع القريب من خادم الوسيط يقلّل زمن الاستجابة.
الخلاصة
يبدأ الـEA الجيد بمواصفات جيدة، ويضع إدارة المخاطر في قلب الشيفرة. والاختبار الرجعي نقطة بداية لا دليل؛ والتحسين يضلّل إذا لم يُجرَ بحذر. لا يضمن أي EA تحقيق ربح، وهذا المقال ليس نصيحة استثمارية. يمكنك الاطلاع على أعمالي في هذا المجال في صفحة المستشارون الخبراء والمؤشرات لـMetaTrader، وعلى جانب متابعة الأسواق في تطبيق All Financial Market Watcher. وإذا كنت تفكر في EA أو مؤشر MQL5 لاستراتيجيتك الخاصة، يمكنك التواصل معي عبر صفحة روبوتات التداول.