- هل تعرف كيفية كتابة روبوت تداول في منصة MetaTrader 5 وتشغيله بثبات عالٍ؟
- مقدمة تقنية إلى MetaTrader 5 و MQL5
- البنية الأساسية لخوارزمية التطور في لغة MQL5
- إرسال الطلبات وإدارة المراكز
- مثال عملي - روبوت المتوسط المتحرك المتقاطع
- تثبيت وتشغيل MetaTrader 5 على خادم (VPS / Cloud)
- اختبار الروبوتات وتحسينها ونشرها
- اختيار الموقع وتكوين خادم افتراضي خاص (VPS) للتجار
- الأمن والمراقبة ونصائح عملية
- ملخص واقتراح فني
- الأسئلة الشائعة
هل تعرف كيفية كتابة روبوت تداول في منصة MetaTrader 5 وتشغيله بثبات عالٍ؟
سيساعدك هذا الدليل المفصل خطوة بخطوة على التعرف على البيئة. ميتاتريدر 5 ولغة البرمجة MQL5 يتناول هذا الدليل كتابة واختبار ونشر المستشار الخبير (EA). كما يتضمن نصائح عملية حول تشغيله على مدار الساعة طوال أيام الأسبوع على خادم افتراضي خاص/خادم سحابي، واختيار موقع بأقل زمن استجابة (ping)، والأمان، والمراقبة لضمان تشغيل الروبوت في بيئة واقعية بثبات وزمن استجابة منخفض.
مقدمة تقنية إلى MetaTrader 5 و MQL5
ميتاتريدر 5 (MT5) إنها منصة متطورة MQL5 تُستخدم كلغة برمجة لكتابة المستشارين الخبراء (EAs) والمؤشرات والبرامج النصية. البنية MQL5 يشبه ذلك لغة C++ والفئة سي تريد يتم توفيرها لإرسال الطلبات وإدارة الصفقات.
المتطلبات الأساسية: التثبيت ميتاتريدر 5/ميتا إديتور، الوصول إلى موجز بيانات الوسيط أو الحساب التجريبي / الحقيقي، وفي بيئة الخادم، يوصى باستخدام خادم افتراضي خاص (VPS) مع زمن استجابة منخفض ووقت تشغيل عالٍ.
البنية الأساسية لخوارزمية التطور في لغة MQL5
يتضمن برنامج الذكاء الاصطناعي البسيط الوظائف الرئيسية التالية:
- OnInit(): للتهيئة
- OnDeinit()للتنظيف
- OnTick()دالة يتم تنفيذها مع كل تغيير في السعر
#include <Trade\Trade.mqh>
CTrade trade;
int OnInit() {
// initialization
return INIT_SUCCEEDED;
}
void OnDeinit(const int reason) {
// cleanup resources
}
void OnTick() {
// trading logic
}
إرسال الطلبات وإدارة المراكز
في MQL5 من الفصل سي تريد تُستخدم هذه الأداة لإرسال طلب شراء. يوضح المثال التالي عملية شراء بسيطة في السوق، ويعرض خطأً محتملاً.
double lot = 0.1;
if(trade.Buy(lot, _Symbol)) {
Print("BUY executed");
} else {
Print("Error Buy: ", GetLastError());
}لإغلاق مركز، يمكنك أخذ التذكرة واستخدام الطريقة إغلاق المركز يستخدم:
ulong ticket = PositionGetTicket(0);
if(trade.PositionClose(ticket)) {
Print("Position closed");
}
مثال عملي - روبوت المتوسط المتحرك المتقاطع
المنطق: الشراء عند عبور المتوسط المتحرك السريع للمتوسط المتحرك البطيء من الأسفل إلى الأعلى؛ والعكس صحيح عند البيع. يمكن تعزيز هذا المثال الأساسي بإدارة المخاطر، ومستويات وقف الخسارة/جني الربح، ووقف الخسارة المتحرك، وفلتر وقت السوق.
input int FastPeriod = 10;
input int SlowPeriod = 50;
double FastMA, SlowMA;
int OnInit() {
return INIT_SUCCEEDED;
}
void OnTick() {
FastMA = iMA(_Symbol, PERIOD_M1, FastPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
SlowMA = iMA(_Symbol, PERIOD_M1, SlowPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
double prevFast = iMA(_Symbol, PERIOD_M1, FastPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
double prevSlow = iMA(_Symbol, PERIOD_M1, SlowPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
if(prevFast < prevSlow && FastMA > SlowMA) {
trade.Buy(0.1, _Symbol);
} else if(prevFast > prevSlow && FastMA < SlowMA) {
trade.Sell(0.1, _Symbol);
}
}
تثبيت وتشغيل MetaTrader 5 على خادم (VPS / Cloud)
لتشغيل برامج الروبوت على مدار الساعة، يُنصح باستخدام خادم افتراضي خاص (VPS) أو خادم سحابي. هناك طريقتان شائعتان:
- ويندوز سيرفر (اقتراح شائع لمنصة MT5)
- لينكس + واين (لتقليل التكلفة، ولكن قد تكون بعض الإصدارات غير متوافقة)
إعدادات مُوصى بها لخوادم ويندوز الافتراضية الخاصة
نصائح مُوصى بها لنظام التشغيل Windows Server:
- تثبيت ويندوز سيرفر 2019/2022
- تفعيل بروتوكول سطح المكتب البعيد (RDP) باستخدام مصادقة على مستوى الشبكة
- تثبيت ميتاتريدر 5 و محرر البيانات الوصفية
- قم بإدارة التحديثات التلقائية يدويًا لمنع عمليات إعادة التشغيل غير المرغوب فيها.
لينكس + واين - أمثلة على الأوامر (أوبونتو)
إذا كنت ترغب في تشغيل منصة MT5 على نظام لينكس، فستساعدك الأوامر النموذجية التالية على البدء. قد تواجه بعض منصات الوساطة أو الإضافات مشاكل عند استخدام Wine؛ لذا يُنصح بإجراء اختبارات شاملة.
sudo apt update && sudo apt install -y wine winetricks xvfb xrdp
# create a dedicated mt5 user
sudo useradd -m mt5user
sudo passwd mt5user
# run mt5 installer under the user with a virtual framebuffer
sudo -u mt5user xvfb-run wine mt5setup.exe
أمان بروتوكول سطح المكتب البعيد (RDP) والوصول الآمن
لحماية الوصول إلى الخادم، يوصى بما يلي:
- قم بتغيير منفذ RDP الافتراضيقم بتمكين NLA واستخدم VPN أو نفق SSH لاتصال RDP
- قم بتقييد الوصول باستخدام جدار الحماية وأضف عناوين IP صالحة إلى القائمة البيضاء
- تثبيت Fail2ban للحماية من القوة الغاشمة
sudo ufw allow from 203.0.113.0/24 to any port 3389 proto tcp
sudo ufw enable
اختبار الروبوتات وتحسينها ونشرها
مختبر الاستراتيجيات تتمتع منصة MT5 بإمكانيات الاختبار الرجعي والتحسين والاختبار الأمامي. يمكنك استخدام الخوارزمية الجينية لتحسين المعلمات والاستفادة من البيانات عالية الجودة (بيانات التداول).
- استخدم بيانات التداول الحقيقية للحصول على نتائج قريبة من الواقع.
- قم بالاختبار على خادم افتراضي خاص وحساب تجريبي لبضعة أسابيع على الأقل قبل التشغيل على حساب حقيقي.
أساليب تقييم المخاطر
الأساليب التي ينبغي استخدامها لقياس المخاطر والاستدامة:
- تحليل المشي للأمام: إجراء الاختبارات على فترات زمنية مختلفة لتجنب الإفراط في التخصيص.
- مونت كارلو: لقياس الاستقرار بناءً على محاكاة التغييرات في تنفيذ المعاملات.
- مراجعة المقاييس: معدل النمو السنوي المركب، نسبة شارب، الحد الأقصى للانخفاض، عامل الربح.
التكامل المستمر/التسليم المستمر والنشر الآلي
لإدارة كود EA والنشر الآلي، يمكنك استخدام GitLab أو GitHub وإعداد Runner على VPS الخاص بك لأتمتة عملية تجميع ونقل ملف EX5.
مثال على نص برمجي لنسخ ملف EX5 إلى مجلد الطرفية:
# copy the compiled EA to MetaTrader 5 Experts folder
cp MyEA.ex5 "/home/mt5user/.wine/drive_c/Program Files/MetaTrader 5/MQL5/Experts/"
# restart terminal or signal reloadيمكن أيضًا استخدام واجهات برمجة التطبيقات أو ZeroMQ للتواصل بين خدمة Python و MT5 لتمرير بيانات الذكاء الاصطناعي/التعلم الآلي إلى المستشار الخبير.
اختيار الموقع وتكوين خادم افتراضي خاص (VPS) للتجار
بالنسبة للمتداولين، يُعدّ زمن الاستجابة (ping/latency) واستقرار الشبكة من العوامل الحاسمة. وينبغي أن يستند اختيار الموقع إلى قربه من خوادم الوسيط أو السوق المستهدف.
مقارنة المواقع الرئيسية
- لندن/مانشستر/فرانكفورت/أمستردامممتاز للوسطاء الأوروبيين وأسواق شبكات الاتصالات الإلكترونية الأوروبية.
- نيويورك/واشنطنمناسب للوسطاء الأمريكيين وتنفيذ سريع في سوق نيويورك.
- سنغافورة/طوكيو/هونغ كونغ: يوفر زمن استجابة منخفض للوسطاء والأسواق الآسيوية.
- أفضل الممارسات: ابحث عن عنوان IP الخاص بالوسيط أو نظامه المستقل واختر مركز البيانات الذي يحتوي على أقصر مسار BGP.
شركتنا لديها أكثر من 85 موقعًا عالميًا يوفر إمكانية اختيار أقرب مركز بيانات لخادم الوسيط.
إعدادات الخادم الافتراضي الخاص الموصى بها للتداول
- وحدة المعالجة المركزية: 2-4 أنوية ذات أرجل ثابتة وترددات عالية.
- كبش: 4-8 جيجابايت أساسية؛ 8-16 جيجابايت للمستشارين الخبراء الثقيلين.
- تخزين: قرص SSD من نوع NVMe للإدخال/الإخراج السريع.
- شبكة: 1 جيجابت في الثانية أو أعلى؛ زمن انتقال ثابت ومنافذ مزودة ببروتوكول BGP ومضاد لهجمات DDoS.
- الميزات: لقطات الشاشة، النسخ الاحتياطي التلقائي، المراقبة على مدار الساعة، خادم مضاد لهجمات DDoS، واتفاقية مستوى خدمة موثوقة.
بالنسبة للاستراتيجيات القائمة على الذكاء الاصطناعي أو التحليلات المعقدة، قد تحتاج إلى خادم مزود بوحدات معالجة الرسومات لتشغيل نماذج التعلم الآلي ثم إرسال الإشارات إلى MT5.
الأمن والمراقبة ونصائح عملية
حماية النظام والشبكة
- قم بتمكين جدار الحماية المحلي (جدار حماية ويندوز أو ufw/iptables).
- استخدم VPN أو قائمة عناوين IP المسموح بها للوصول إلى RDP.
- قم بتثبيت برنامج مكافحة الفيروسات وبرنامج مراقبة سلامة الملفات للمجلد.
MQL5.
المراقبة والتنبيه
إعداد خدمة مراقبة (على سبيل المثال) بروميثيوس + غرافانا) مهم للتحقق من وحدة المعالجة المركزية والذاكرة والشبكة وصحة منصة MT5.
يوصى بإرسال تنبيه عبر البريد الإلكتروني/سلاك/تيليجرام في حالة فقدان الاتصال أو حدوث خطأ حرج.
منع الانزلاق والارتداد
- اختر خادمًا افتراضيًا خاصًا (VPS) يتميز بزمن استجابة منخفض وموقع قريب من الوسيط.
- استخدام أوامر السوق مقابل أوامر الحد وتحديدها أقصى انزلاق في إعدادات المستشار الخبير أو منصة التداول MetaTrader.
- قم بتفعيل إعادة الاتصال التلقائي في برنامج التداول الآلي لمنع خسارة الصفقات في حالة انقطاع الاتصال.
ملخص واقتراح فني
يغطي هذا الدليل الأساسيات. MQL5 تمت مناقشة الاختبار والتحسين والنشر على الخوادم الافتراضية الخاصة، كما تمت مناقشة النصائح العملية للأمان واختيار الموقع المناسب.
إذا كنت بحاجة إلى خادم مع أكثر من 85 موقعًا عالميًاسواء كان لديك خوادم مضادة لهجمات DDoS، أو NVMe، أو شبكات BGP، أو كنت بحاجة إلى وحدات معالجة الرسومات لاستراتيجيات الذكاء الاصطناعي، فإن فريق الدعم لدينا جاهز للرد على مدار الساعة طوال أيام الأسبوع للتوصية بالتكوين الأنسب بناءً على وسيطك واستراتيجيتك.









