MetaQuotes Language Reference

From binaryoption
Jump to navigation Jump to search
Баннер1

```wiki

مرجع لغة MetaQuotes

مقدمة

لغة MetaQuotes (MQL4 و MQL5) هي لغة برمجة خاصة تم تطويرها بواسطة شركة MetaQuotes Software Corp. وهي تستخدم بشكل أساسي لإنشاء الروبوتات التداولية (Expert Advisors – EAs)، والمؤشرات المخصصة، والبرامج النصية، والمكتبات لـ منصات التداول MetaTrader 4 و MetaTrader 5. تعتبر هذه اللغة حجر الزاوية في تطوير استراتيجيات التداول الآلية وتحليل الأسواق المالية. هذا المقال موجه للمبتدئين ويهدف إلى تقديم مرجع شامل للغة MetaQuotes، مع التركيز على مفاهيمها الأساسية وتطبيقاتها في عالم الخيارات الثنائية والتداول بشكل عام.

الاختلافات بين MQL4 و MQL5

قبل الغوص في تفاصيل اللغة، من المهم فهم الاختلافات الرئيسية بين MQL4 و MQL5:

  • **MQL4:** مصممة لمنصة MetaTrader 4، وهي أقدم وأكثر شيوعًا. تتميز ببساطتها وسهولة تعلمها.
  • **MQL5:** مصممة لمنصة MetaTrader 5، وهي أحدث وأكثر قوة. تقدم المزيد من الميزات، بما في ذلك دعم التحليل متعدد الأطر الزمنية، واختبار الإستراتيجية المحسن، وإمكانية الوصول إلى بيانات السوق بشكل أسرع.

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

بنية البرنامج في MQL

يتكون برنامج MQL عادةً من عدة أجزاء:

  • **الخصائص (Properties):** تحدد معلومات حول البرنامج، مثل اسمه ومؤلفه وإصداره.
  • **المتغيرات (Variables):** تستخدم لتخزين البيانات.
  • **الدوال (Functions):** مجموعات من التعليمات البرمجية التي تنفذ مهمة معينة.
  • **الأحداث (Events):** تشغل الدوال استجابةً لأحداث معينة تحدث في السوق، مثل وصول سعر جديد أو تغيير في الوقت.

أنواع البيانات

تدعم MQL أنواع البيانات التالية:

أنواع البيانات في MQL
الوصف | عدد صحيح (مثل -10, 0, 5) | رقم عشري (مثل 3.14, -2.5) | قيمة منطقية (true أو false) | نص (مثل "Hello, world!") | تاريخ ووقت (تنسيق خاص) | لون (تنسيق خاص) |

المتغيرات

يجب تعريف المتغيرات قبل استخدامها. على سبيل المثال:

```mql int myInteger = 10; double myDouble = 3.14; string myString = "Hello"; ```

العمليات الحسابية

تدعم MQL العمليات الحسابية الأساسية:

  • `+`: الجمع
  • `-`: الطرح
  • `*`: الضرب
  • `/`: القسمة
  • `%`: باقي القسمة

العبارات الشرطية

تستخدم العبارات الشرطية لتنفيذ تعليمات برمجية معينة بناءً على شرط معين:

  • `if`: ينفذ التعليمات البرمجية إذا كان الشرط صحيحًا.
  • `else`: ينفذ التعليمات البرمجية إذا كان الشرط خاطئًا.
  • `else if`: يسمح بالتحقق من عدة شروط.

مثال:

```mql if (Close[0] > Open[0]) {

 // السعر أغلق أعلى من الافتتاح
 Print("السعر صاعد");

} else {

 // السعر أغلق أقل من أو يساوي الافتتاح
 Print("السعر هابط");

} ```

الحلقات التكرارية

تستخدم الحلقات التكرارية لتنفيذ تعليمات برمجية معينة عدة مرات:

  • `for`: ينفذ التعليمات البرمجية لعدد محدد من المرات.
  • `while`: ينفذ التعليمات البرمجية طالما أن الشرط صحيح.
  • `do...while`: ينفذ التعليمات البرمجية مرة واحدة على الأقل، ثم يستمر في التنفيذ طالما أن الشرط صحيح.

الدوال

تستخدم الدوال لتجميع مجموعة من التعليمات البرمجية في وحدة واحدة قابلة لإعادة الاستخدام.

مثال:

```mql double CalculateSMA(int period) {

 double sum = 0;
 for (int i = 0; i < period; i++) {
   sum += Close[i];
 }
 return sum / period;

} ```

الأحداث

تتيح الأحداث للبرامج التفاعل مع منصة التداول. بعض الأحداث الشائعة تشمل:

  • `OnInit()`: يتم استدعاء هذه الدالة عند تهيئة البرنامج.
  • `OnDeinit()`: يتم استدعاء هذه الدالة عند إلغاء تهيئة البرنامج.
  • `OnTick()`: يتم استدعاء هذه الدالة في كل مرة يتم فيها تحديث سعر السوق.
  • `OnTrade()`: يتم استدعاء هذه الدالة عند تنفيذ صفقة.

الوصول إلى بيانات السوق

تتيح MQL الوصول إلى بيانات السوق المختلفة، مثل:

  • `Open[0]`: سعر الافتتاح للشمعة الحالية.
  • `High[0]`: أعلى سعر للشمعة الحالية.
  • `Low[0]`: أقل سعر للشمعة الحالية.
  • `Close[0]`: سعر الإغلاق للشمعة الحالية.
  • `Volume[0]`: حجم التداول للشمعة الحالية.
  • `Time[0]`: وقت إنشاء الشمعة الحالية.

يمكن الوصول إلى بيانات الشموع السابقة باستخدام فهرس سالب. على سبيل المثال، `Close[1]` يمثل سعر الإغلاق للشمعة السابقة.

المؤشرات المخصصة

يمكن استخدام MQL لإنشاء المؤشرات الفنية المخصصة. المؤشرات المخصصة تسمح للمتداولين بتحليل الأسواق المالية بطرق فريدة.

مثال:

```mql

  1. property indicator_chart_window

double ma_value;

int OnInit() {

 return(INIT_SUCCEEDED);

}

int OnCalculate(int rates_total, int prev_calculated, int begin, double &buffer[]) {

 int limit = rates_total - prev_calculated;
 int i;
 double sum = 0;
 for (i = begin; i < begin + limit; i++) {
   sum += Close[i];
 }
 ma_value = sum / limit;
 for (i = begin; i < begin + limit; i++) {
   buffer[i] = ma_value;
 }
 return(limit);

} ```

الروبوتات التداولية (Expert Advisors)

يمكن استخدام MQL لإنشاء الروبوتات التداولية التي تنفذ الصفقات تلقائيًا بناءً على استراتيجيات محددة.

مثال (تبسيط):

```mql

  1. property expert_name "Simple EA"

extern double Lots = 0.1; extern int MagicNumber = 12345;

int OnInit() {

 return(INIT_SUCCEEDED);

}

void OnTick() {

 if (Close[0] > Open[0]) {
   // فتح صفقة شراء
   OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, "Simple EA", MagicNumber, 0, Green);
 } else {
   // فتح صفقة بيع
   OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, "Simple EA", MagicNumber, 0, Red);
 }

} ```

البرامج النصية

يمكن استخدام MQL لإنشاء البرامج النصية التي تنفذ مهام معينة، مثل تحليل البيانات أو إرسال الإشعارات.

المكتبات

يمكن استخدام MQL لإنشاء المكتبات التي تحتوي على دوال قابلة لإعادة الاستخدام.

أدوات التطوير

  • **MetaEditor:** محرر التعليمات البرمجية المدمج في MetaTrader.
  • **MQL5 Community:** موقع ويب يوفر موارد تعليمية وأمثلة وخبراء.
  • **Stratégie du canal de Donchian:** استراتيجية قناة دونشيان.
  • **استراتيجية المتوسط المتحرك المتقاطع:** استراتيجية تقاطع المتوسطات المتحركة.
  • **استراتيجية الاختراق:** استراتيجية الاختراق.
  • **استراتيجية بولينجر باند:** استراتيجية بولينجر باند.
  • **استراتيجية Ichimoku Cloud:** استراتيجية Ichimoku Cloud.
  • **استراتيجية MACD:** استراتيجية MACD.
  • **استراتيجية RSI:** استراتيجية RSI.
  • **استراتيجية Fibonacci Retracement:** استراتيجية Fibonacci Retracement.
  • **تحليل حجم التداول (Volume Spread Analysis):** تحليل حجم التداول.
  • **التحليل الفني (Technical Analysis):** التحليل الفني.
  • **التحليل الأساسي (Fundamental Analysis):** التحليل الأساسي.
  • **مؤشر ستوكاستيك (Stochastic Oscillator):** مؤشر ستوكاستيك.
  • **مؤشر القوة النسبية (Relative Strength Index):** مؤشر القوة النسبية.
  • **مؤشر متوسط الحركة (Moving Average):** مؤشر متوسط الحركة.
  • **مؤشر بولينجر باند (Bollinger Bands):** مؤشر بولينجر باند.
  • **مؤشر MACD (Moving Average Convergence Divergence):** مؤشر MACD.
  • **الشموع اليابانية (Candlestick Patterns):** الشموع اليابانية.
  • **نماذج الرسوم البيانية (Chart Patterns):** نماذج الرسوم البيانية.
  • **اتجاه السوق (Market Trend):** اتجاه السوق.
  • **الدعم والمقاومة (Support and Resistance):** الدعم والمقاومة.
  • **الارتداد (Retracement):** الارتداد.
  • **التقلب (Volatility):** التقلب.

الموارد الإضافية

الخلاصة

لغة MetaQuotes هي أداة قوية للمتداولين الذين يرغبون في أتمتة استراتيجياتهم وتحليل الأسواق المالية بشكل أكثر فعالية. على الرغم من أنها قد تبدو معقدة في البداية، إلا أن المفاهيم الأساسية نسبياً ويمكن تعلمها من خلال الممارسة والتجربة. أتمنى أن يكون هذا المرجع قد قدم لك أساسًا جيدًا للبدء في رحلتك مع لغة MetaQuotes. ```

ابدأ التداول الآن

سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер