دورة البرمجة في الفوركس للمبتدئين – الدرس الأول

في عالم التداول، يُعتبر استخدام المؤشرات الفنية أحد أهم الأدوات التي تساعد المتداولين على تحليل حركة الأسعار واتخاذ قرارات مستنيرة. ورغم توفر العديد من المؤشرات الجاهزة، إلا أن القدرة على برمجة مؤشرات مخصصة يعتبر ميزة إضافية تمنح المتداول حرية أكبر لتطوير أدوات تتناسب مع استراتيجياته الشخصية.
في هذا الدرس، سنبدأ بأول خطوة في دورة البرمجة في الفوركس للمبتدئين، حيث سنشرح كيفية إعداد مشروع جديد في MetaTrader باستخدام لغة MQL4. سوف نتعرف على كيفية فتح واجهة البرمجة وإعداد قالب أساسي لمؤشر مخصص. الهدف من هذا الدرس هو تمكينك من بدء برمجة مؤشرات خاصة بك، وتخصيصها بما يلبي احتياجاتك في السوق.
اتبع التعليمات خطوة بخطوة، وستكون قادرًا على إعداد البيئة الأساسية لبدء مشروعك الأول في برمجة المؤشرات.
دعونا نختار بداية:
Custom Indicator
أي اننا سنقوم بإنشاء مؤشر خاص ثم اضغط :
Next
لننتقل للنافذة التالية بهذا الشكل:
(اترك كل شئ كما هو)
فقط اضغط مفتاح
Next
لتظهر لنا النافذة الاخيرة بهذا الشكل:
فقط اضغط مفتاح
Finishملاحظة : اعلم اني لم اشرح اي شئ من النوافذ السابقة ولكن الآن هذه الأمور ستفهما بشكل لن تصدقه بعد ان تقوم بعمل اول برنامج لك.
ملاحظة هامة جدا:
لن أقوم بكتابة الكود (أو الأوامر بشكل نصي في المنتدى) بل ستراه في الصور وذلك حتى أجبرك على ان تبدء بكتابة البرنامج بيدك ولاتقوم بعملية النسخ واللصق فهذه العملية هي العدو الأول في رحلة تعلمك للبرمجة فإذا اردت ان تتعلم البرمجة وبسرعة فيجب عليك ان تستعمل أصابعك.
الآن سنقوم بكتابة أول أمر برنامج وكما جرت العادة في بداية تعليم اي لغة برمجية:
Hello World برنامج :
لعمل هذا البرنامج (او المؤشر) يجب ان تكتب كما في الصورة التالية:
والآن قم بعمل حفظ لهذا البرنامج ثم عملية التصريف(اي التحويل للصيغة المغلقة) كما في الصورة:
وقبل ان ننتقل للخطوة التالية:
عملية التصريف او
Compile
هي عملية تحويل البرنامج من الصيغة المفتوحة كما تراها أمامك بشكل نصي وفي هذه المرحلة يتم حفظ البرنامج بالصيغة المفتوحة بلاحقة
mq4
وذلك لعمل نسخة جديدة من البرنامج بصيغة مغلقة(لحمايته) وجعل منصة الميتاتريدر(منصة المتاجرة) قادرة على التعامل معه وفي هذه المرحلة تصبح لاحقة الملف بالصيغة المغلقة
ex4
وانت عندما تقوم بعملية التصريف لن تخسر الصيغة المفتوحة بل سيكون لديك مثلا ملفين دائما من كل مؤشر او إكسبيرت تقوم بإنشائهم واحد بصيغة مفتوحة من أجل عمليات التعديل والتطوير في المستقبل وواحد بصيغة مغلقة من أجل منصة المتاجرة
ملاحظة هامة: كل مرة تقوم بالتعديل على الصيغة المفتوحة ثم تقوم بعملية تصريف له فورا سيتم تعديل الصيغة المغلقة لتتوافق مع التعديلات الجديدة في الصيغة المفتوحة
والآن بعد ان قمنا بعملية التصريف لاحظ ان نافذة الأخطاء قد تم فتحها بشكل تلقائي بهذا الشكل:
نذهب لمنصة المتاجرة ومثلما نقوم بإضافة اي مؤشر كما في الصورة:
بعد إضافة المؤشر للشارت
والآن لنأتي لشيء من التفصيل لأمر الـ:
Comment
والآن ماذا سيحدث لو غيرنا الجملة النصية واعني:
Hellow World
هل سيتعطل البرنامج
ام ستتوقف المنصة عن العمل
أم سأخسر حسابي
أم سيحترق جهاز الكمبيوتر
لحسن الحظ لاشئ مما سبق سيحدث طالما اننا نغير فقط ما داخل علامتي التنيصيص ولنقم بتجربة ذلك ليصبح برنامجنا بهذا الشكل:
ولا ننسى عملية التصريف ولنرى ما سيحدث:
والآن لنرجع لجملة
Hellow World
ماذا لو اردنا ان نكتب جملتنا 5 مرات:
بسيطة نجعل الأمر بهذا الشكل :
(طبعا هذه هي الطريقة الغبية ولكن في مرحلتنا هذه هذا أقصى ما نستطيعه)
طبعا قمت بوضع ثلاث مسافات بين كل جملة وجملة لنحصل على هذه النتيجة على الشارت:
ولكن ماذا لو أردنا ان تكتب هذه الجمل واحدة فوق الأخرى وليست كلها في سطر واحد
الحل نقوم بإدخال أحد الرموز الخاصة وفي هذه الحالة سنستعمل هذا الرمز:
\n
هل هذا رمز؟
نعم صدق او لا تصدق هذا ما نتحدث عنه
وسيصبح الأمر البرمجي بهذا الشكل:
وسنحصل على هذه النتيجة:
ولكن ألم نقل ان اي شيء داخل علامات التنصيص لايتم التعامل معه
نعم قلنا ذلك ولكن الرموز الخاصة هي استثناء من هذه القاعدة يعني ببساطة (عندها واسطة)
والآن ماذا لو اردنا ان نكتب الجمل السابقة 20 مرة أيضا بسيطة
نلجأ مرة أخرى للطريقة الغبية
طالما ان كل سطر برمجي من أمر الكومنت يقوم بكتابة الجملة 5 مرات اذا نكرك هذا الأمر اربع مرات
ليصبح لدينا 4 * 5 = 20
تمام حصلنا على الحل اذا للنفذ ذلك ليصبح برنامجنا بهذا الشكل:
طبعا لتحصل على سطر فارغ جديد كل ماعليك ان تضع مؤشر الكتابة عند نهاية السطر السابق (اي بعد الفاصلة المنقوطة)
ثم تضفط مفتاح
Enter
والآن نقوم بعملية التصريف ولنرى ماهي النتيجة على الشارت:
حصلنا على نتيجة مشابهة تماما مثل كتابة سطر برمجي واحد من أمر الكومنت
هذا بسبب طبيعة أمر الكومنت فكل أمر كومن جديد سيمسح كل شيء سابق من أمر كومنت سابق وسيكتب مابداخله
إذا ما هو الحل؟؟؟؟
الحل سيكون بتجميع كل الجمل التي نريد كتابتها في وعاء ثم نقول لامر الكومنت أكتب كل شيء على الشارت موجود في داخل هذا الوعاء
طيب نحن نعلم كيف نحضر وعاء من المطبخ ولكن كيف سنعمل هذا الوعاء هنا
بسيطة:
أولا هذا لايسمى وعاء بل يسمى (مكدس) اي نقوم بتجميع وتكديس جميع هذه القيم في هذا المكدس ولكن لحظة!!!
كل مرة نقوم فيها بوضع قيمة في هذا المكدس ألا تتغير قميته عن القييمة السابقة التي كان عليها
نعم هو كذلك
هو عبارة عن متغير نقوم بوضع هذه القيمة الجديدة إلى جانب قيمته السابقة ثم وضع الكل بداخل هذا المتغير
هذا محير……
خلونا نعمل مثال برمجي ونشوف بعدين
والآن سوف أفترض ان لدي مكدس أو متغير واسمه:
Hellow
لحظة …. لحظة …. لحظة …. لحظة …. لحظة …. لحظة …. لحظة …. لحظة …. لحظة ….
طيب كيف افترضنا ذلك …. ببساطة يمكنك ان تفترض اي شيء طالما انك لاتخالف قاعدة تسميات المتغيرات (وسنشرحها بشيء من التفصيل مستقبلا ان شاء الله)
وسيصبح برنامجنا بهذا الشكل:
ولنقم بعملية التصريف لنحصل على خطأ واحد + 8 تحذيرات لاحظ الصورة:
الآن ما يهمنا هو الخطأ وسنجاهل هذه التحذيرات…. رسالة الخطأ تقول:
‘Hellow’ – undeclared identifier
وهذا معناه ان متغير:
Hellow
لم يتم تعريفه
ماذاااااااااااااااااااااااااااااااااااااا
لم يخبرنا أحد بأن المتغيرات يجب ان يتم تعريفها وكيف سنعرفها اذا كنا نحن اساسا لا نعرفها
الأمر أبسط مما تتصور:
فقط فكر قليلا ماذا تريد من متغير
Hellow
ان يحمل
الجواب: نريده ان يحمل مجموعة من الجمل النصية…
أذا هذا المتغير سيتعامل مع النصوص وعلى هذا الاساس سنقوم بتعريفه على انه متغير نصي
اي سنضع هذا السطر
string Hellow;
قبل ان نقوم باي عملية على متغير
Hellow
وسيصبح برنامجنا بهذا الشكل:
ملاحظة يجب ان تنتبه الى كل شيء خارج علامات التنصيص فالحرف الكبير يجب ان يكتب كبيرا والصغير يجب ان يكتب صغيرا
فكلمة
Hellow
ليست هي نفسها
hellow
يجب ان تنتبه لهذا الأمر كثيرا
والآن لنقم بعملية التصريف وهنا لن نحصل على أخطاء وعند الذهاب للشارت سنحصل على هذه النتيجة
تمام ولكن لم يكن هو المطلوب وذلك لان عند انتهاء السطر الأول من الكتابة اي عند الجملة الخامسة لايوجد الرمز الخاص
\n
الذي يقوم بجعل امر الكومنت ينتقل لبداية سطر جديد اذا نقوم ببعض التعديلات الطفيفية ليصبح برنامجنا بهذا الشكل:
وسنحصل على هذه النتيجة: