لغة البرمجة MQL4

لغة البرمجة MQL4

كتابة برنامج بأى لغة برمجة يتطلب الفهم الكامل لكيفية عمل هذه اللغة ومن سيكون المستخدم. سوف نقوم بعمل مقارنة بين برنامج عادى ، مثل برامج الكمبيوتر العادية التى نعمل عليها ، وبين برنامج مكتوب بلغة البرمجة MQL4. فى البداية يجب ملاحظة من الذى يقوم بتنفيذ الأوامر.

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

والآن دعونا ننظر إلى حالة تشغيل برنامج مكتوب بلغة البرمجة MQL4. لا يمكن تشغيل البرنامج إذا لم يكن ميتاتريدر 4 مثبت على الحاسوب. وهذا يعنى أن هذا البرنامج ليس وحدة منفصلة. يتم تنفيذ الأشياء التى يريد البرنامج تنفيذها ليس بواسطة البرنامج ولكن بواسطة مترجم برامج MQL الموجود فى منصة التداول ميتاتريدر. عندما يحتاج البرنامج لقراءة ملف من القرص الصلب, فإنه لا يطلب ذلك من نظام التشغيل ولكنه يسأل المترجم ليطلب من برنامج التشغيل قراءة الملف. إذا كان البرنامج يحتاج لجمع رسمتين فإنه لا يمكن أن يطلب ذلك من المعالج ولكن يطلب من المترجم أن يرسل طلب إلى المعالج الذى يقوم هو فقط بجمع الرسمتين. يتم تنفيذ وتشغيل برامج MQL من خلال المترجم الذى هو جزء من منصة التداول. هل هذا شئ جيد أم سئ؟ للبرامج الموجهه للعمل فقط مع ميتاتريدر 4 يكون ذلك جيد. جميع الخدمات المتاحة فى ميتاتريدر 4 يمكن وضعها بسهولة فى برامج MQL. يقوم المترجم باستدعاء جميع الدوال للميتاتريدر وتنفيذها بمساعدة منصة العميل. لنقوم بتسمية حزمة الدوال والتسهيلات التى تقدمها برامج MQL بواجهة البرنامج. ولاحظ أن دراسة لغة برمجة هو بشكل عام دراسة الواجهات المتاحة لتنفيذ خطط البرامج.

بالإضافة إلى حقيقة أن لبرامج MQL واجهة المنصة تكون متوفرة، للاصدار الجديد من اللغة، امكانية تنفيذ الدوال تم اضافتها وهذا يسمح باجراء دوال أو وظائف بلغات برمجة آخرى. بهذه الطريقة كتابة مكتبة خاصة بك يسمح بانشاء واجهات المستخدم بنفسك ولذلك توسيع الوظيفية للميتاتريدر. إلا إنه يمكن مناقشة هذا الأمر فقط عند تعلم جميع أساسيات لغة البرمجة MQL; الآن، يجب ملاحظة أن الكثير من وظائف نظام التشغيل متاحة للاستخدام بهذه الطريقة فقط. ننصحك بالنظر إلى الملف WinUser32.mqh الموجود فى مجلد الميتاتريدر من أجل الاطلاع على القائمة الكاملة الدوال.

الآن هو الوقت لمناقشة أنواع البرامج التى يمكن كتابتها بلغة البرمجة MQL4..تم تقسيمهم إلى ثلاثة أنواع:

  • - خبراء مستشارين - اكسبيرتات;
  • - مؤشر;
  • - اسكربت.

يتم توفير هذه الأنواع الثلاثة من البرامج من قبل المعالج MetaEditor (بالضغط على ctrl+N).

اكسبيرت: يتم تنفيذه بعد كل تغيير للسعر. يتم استخدام الاكسبيرتات عادة لكتابة استراتيجيات التداول. فى واقع الأمر الاسم "خبراء مستشارين" يعنى حقيقة أن البرنامج تم عمله لتقديم المشورة ليفعل شيئاً أو لا يفعل عند كل تغيير فى السعر. هذا النوع له ميزة خاصة وهى امكانية تنفيذ عمليات تجارية. الأنواع الآخرى ليس بها هذه الميزة. بالاضافة لذلك يمكن للاكسبيرت عمل الصفقات بشكل حقيقى أو وهمى. بشكل وهمى تعنى أن الاكسبيرت يشير على الرسم البيانى إلى المكان الذى يمكن عمل صفقة عنده، إنها مشورة للقيام بذلك.

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

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

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

كما نرى، الأنواع الثلاثة تختلف من حيث أساليب التفاعل مع البيئة المنفذة (ميتاتريدر) ومن حيث الهدف.

الآن لنلقى نظرة على بنية البرنامج.

كقاعدة، لكتابة برنامج يجب استخدام المعالج (بالضغط على ctrl+N). تتم الخطوات بناءاً على نوع البرنامج، إذا تم اختيار اكسبيرت أو مؤشر فإنه يظهر نص مع ثلاثة دوال فارغة أو مع وظيفة واحدة إذا تم اختيار اسكربت.

يجدر القول بأن برامج MQL4 مهيكلة بشكل واضح ويتم تقسيم تنفيذها إلى مراحل متعددة.

المؤشرات والاكسبيرتات تحتوى على ثلاثة خطوات للتنفيذ ممثلة فى الدوال init(), star() ,deinit(). الاسكربت يتكون فقط من الدالة start(). هذه البنية تظهر الخطوات التى يتم اتخاذها بواسطة البرنامج من أول ربطه بالرسم البيانى حتى لحظة ايقافه بواسطة المستخدم.

دورة جميع البرامج باستثناء الاسكربتات تتضمن: تهيئة، بداية الجزء الرئيسى من البرنامج، وانهاء. يتم تمثيل هذه الخطوات بالدوال الثلاثة init(), start(), deinit().

ليس من الصعب تخمين أن الجزء الأكبر من البرنامج يتم تنفيذه فى الدالة start() لأنه يتم تنفيذه فى كل مرة يتغير فيها السعر. بعيداً عن الدوال يوجد عنوان للبرنامج. فى هذا العنوان يتم كتابة تعليقات عن مطورى البرنامج وحقوقهم الفكرية بالإضافة إلى تنفيذ البرنامج مثل: هل سيكون مؤشرر فى نفس إطار الرسم البيانى أم سيكون فى إطار منفصل. سيتم النظر فى جميع التفاصيل فى المقالات القادمة.

بالإضافة إلى ذلك من الموصى به النظر بعناية ومقارنة الأكواد الأصلية للمؤشرات والاكسبيرتات الموجودة مع منصة التداول. سيكون من المفيد جداً القراءة عن كيفية عمل MetaEditor4 وكيفية ترجمة البرامج.

« Back


Last news and analytics:
Forex Analytics
Forex TV
Forex Calendar