- بواسطة x32x01 ||
ليه لغة MQL5 مختلفة وقوية عن MQL4؟ 💪
أحب أطمنك الأول إن لغة MQL5 بقت قوية جداًوبقت لغة برمجة حقيقية مقادة بالأحداث 🧠
وده فرق كبير عن MQL4 اللي كانت إمكانياتها محدودة شوية.
لكن خلّي بالك ❗
كل التطوير ده جه معاه عيب مهم وهو عدم التوافق مع MQL4.
هل ينفع أشتغل بكود MQL4 على MQL5؟ 🤨
الإجابة المختصرة: لا ❌أي:
- مؤشر
- أو إكسبرت
لازم يتعاد برمجته من جديد على MQL5.
يعني كأنك بتتعلم لغة جديدة - بس الخبرة القديمة هتفيدك 👍
إنما:
- منهجية مختلفة
- أوامر جديدة
- وظائف جديدة تماماً
ليه لازم تتعلم MQL5 من البداية؟ 🎯
علشان MQL5 بتشتغل بأسلوب: Event Driven Programmingيعني البرنامج بيستجيب لأحداث زي:
- حركة الماوس 🖱️
- الضغط على الكيبورد ⌨️
- فتح صفقة
- إغلاق صفقة
- الوصول لهدف أو ستوب لوس
يعني إيه برمجة مقادة بالأحداث؟ 🔄
أي برنامج في MetaTrader 5(إكسبرت - مؤشر - سكريبت) بيعتمد على Events.
الـ Event هو:
وظيفة بتتنفذ تلقائي لما يحصل شرط معين 👌
حدث OnInit - بداية تشغيل البرنامج 🚀
أول حدث مهم هو OnInitوده بيشتغل أول ما:
- تحط المؤشر على الشارت
- أو تشغل الإكسبرت
- تهيئة المتغيرات
- إعداد الخصائص
- تجهيز البفرات
مثال:
C++:
int OnInit()
{
Print("Expert Started Successfully");
return(INIT_SUCCEEDED);
} حدث OnDeinit - نهاية تشغيل البرنامج 🛑
الدالة OnDeinitبتشتغل لما:
- تشيل المؤشر من الشارت
- أو تقفل الميتاتريدر
- قفل ملفات
- حفظ بيانات
- تنظيف الذاكرة
C++:
void OnDeinit(const int reason)
{
Print("Expert Stopped");
} الفرق بين Indicator و Expert و Script ⚙️
ببساطة 👇- Indicator
👉 بيرسم على الشارت فقط
👉 مفيش صفقات - Expert Advisor
👉 يدير الصفقات
👉 مبيعملش رسومات - Script
بيشتغل مرة واحدة
👉 ينفذ أمر سريع وخلاص
إنشاء Expert Advisor جديد في MQL5 🧑💻
الخطوات:- نضغط New
- نختار Expert Advisor
- نكتب:
- اسم الإكسبرت
- اسم المطور
- رابط الموقع
- Next 👉 Next 👉 Finish
شكل كود الإكسبرت الافتراضي 📄
C++:
//+------------------------------------------------------------------+
//| FirstExpert.mq5 |
//| Copyright 2026, Dev.Mostafa Elghayesh |
//| https://tabcode.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, Dev.Mostafa Elghayesh"
#property link "https://www.tabcode.net"
#property version "1.00"
int OnInit()
{
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
}
void OnTick()
{
} يعني إيه Comments في MQL5؟ 💬
الـ Commentsهي سطور شرح جوه الكود
مش أوامر برمجية
وبيتم تجاهلها وقت التشغيل 👌
بتبدأ بـ
//مثال:
C++:
// This is a comment line استخدام التعليقات لتعطيل كود مؤقت 🧪
بدل ما تمسح سطر:- حط قبله
// - جرب كود تاني
- وارجع شيلها بعدين
التعليقات متعددة الأسطر 📌
لو عايز:- تشرح أكتر من سطر
- أو توقف بلوك كامل من الكود
/* */مثال:
C++:
/*
#property copyright "Copyright 2026"
#property link "https://tabcode.net"
#property version "1.00"
*/ الخلاصة 💡
- MQL5 أقوى وأذكى
- مختلفة تماماً عن MQL4
- مبنية على الأحداث
- وبتفتحلك مجال احترافي كبير
لو عندك أي سؤال
متترددش تسيبه في التعليقات 👇
ونكمل سوا خطوة خطوة 💪
التعديل الأخير: