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

بسم الله الرحمن الرحيم
والصلاة والسلام على سيدنا محمد النبي الأمي
أهلا وسهلا بكم أيها الاخوة الاكارم مع الحلقة الخامسة من دورة البرمجة في الفوركس للمبتدئين, نسعى جاهدين الى تعليمك البرمجة بأسهل الطرق.
الآن نريد إضافة متغيرات خارجية لمؤشرنا حتى نستطيع التحكم باعداداته فلو اردنا مثلا تغيير التايم فريم الذي يتم حساب المتوسط الحسابي له بغض النظر عن الفريم الذي قمنا بتركيب المؤشر عليه فربما نكون نعمل على فريم الساعة ونريد المتوسط الحسابي لفريم الاربع ساعات فماذا نعمل؟
لفعل ذلك نقوم بعدة خطوات
اولا نقوم بتعريف متغير من نفس نوع البيانات التي يتقبلها ذلك الامر في مثالنا حاليا نريد وضع متغير للتايم فريم وهذا الاخير تكون بياناته من النوع الصحيح اي
int
وايضا قبل نوع البيانات نضع كلمة جديدة تعرف من خلالها المنصة بان هذا متيغير خارجي اي يمكن تغييره من قبل المستخدم في اي وقت
والآن لنبدء
ثم سنقوم بوضع هذا المتغير داخل الامر المسؤول عن حساب المتوسط الحسابي وطبعا يجب ان يكون ف مكانه المناسب بهذا الشكل:
ولنرى كيف سيكون التنفيذ:
طبعا لم يتغير شيء ولكن للننظر الى متغيرات المؤشر
والآن لنجعل قيمة الفريم 30 اي اننا نريد حسب المتوسط الحسابي لفريم الدقيقة على الرغم من اننا في فريم الساعة
ملاحظة:
هذا المتغير تكون قيمه على الشكل التالي:
0 : يعني انه سيتعامل مع الفريم الذي تم تركيب المؤشر عليه وهو خيارنا الافتراضي
1 : المؤشر سيقوم بالحساب على فريم الدقيقة
5 : المؤشر سيقوم بالحساب على فريم الخمس دقائق
15 : المؤشر سيقوم بالحساب على فريم الربع ساعة
30 : المؤشر سيقوم بالحساب على فريم النصف ساعة
60 : المؤشر سيقوم بالحساب على فريم الساعة
240 : المؤشر سيقوم بالحساب على فريم الاربع ساعات
1440 : المؤشر سيقوم بالحساب على فريم اليومي
والآن هذا هو شكل مؤرنا على النصف ساعة
نلاحظ ان هناك إختلاف واضح وهذا راجع لاختلاف الشموع في فريم النصف ساعة
الآن نريد ان نقوم بتغييرات أكبر
مثلا نريد ان نملك القدرة على تغيير عدد الشموع التي يتم حساب المتوسط الحسابي فبدلا من ان تكون 15 دائما نريد ان تحكم بهذه الفترة كما نريد
اذا نقوم باضافة متغير جديد وساسمية:
ma_period
وهذا سيكون من النوع الصحيح اي
int
وسيصبح البرنامج بهذا الشكل
هذه اول خطوة:
الخطوة الثانية
والآن لننظر لمتغيرات المؤشر
لنجعل الفترة الآن 43 (وطبعا هذا مجرد رقم يدل على عدد الشموع التي سيتم حساب المتوسط الحسابي له لا أكثر) بدلا من 15
لاحظ كيف تغير الشكل تبعا للتغييرات في اعدادات المؤشر
والآن ساضيف ثلاثة متغيرات جديدة دفعة واحدة وبنفس الطريقة السابقة ولكن كل متغير له عمل مختلف:
ma_shift
هذا المتغير سيكون مسؤولا عن إزاحة المؤشر لليمين او اليسار بعدد معين من الشموع وهو من النوع الصحيح
ma_method
هذا المتغير سيكون مسؤولا عن تحديد طريقة حساب المتوسط الحسابي هل سيكون متوسط بسيط ام اكسبو أم……
(راجع الدروس السابقة فقد وضعت عدة جداول تبين جميع خيارات المتوسطات الحسابية)
وهذا المتغير من النوع الصحيح
applied_price
هذا المتغير سيكون مسؤولا عن عملية حساب المتوسط الحسابي على اي سعر هل سيتم الحساب عبى سعر الاغلاقات ام الافتتاحات ام…..
وايضا هو من النوع الصحيح
وسصبح شكل مؤشرنا بهذا الشكل:
هنا مرحلة اضافة المتغيرات الخارجية
هنا مرحلة دمج المتغيرات الجديدة مع كود البرنامج
والآن لننظر للخيارات التي اصبحت في متناولنا ضمن خيارات المؤشر
وللتعامل مع هذه الخيارات الجديدة وقيمها الخاصة ارجو مراجعة الدروس السابقة فقد وضعت عدة جداول تشرح كل شي بالتفصيل
ملاحظة هامة جدا:
قد يظن البعض ان المتغير وسر عمله يكمن في اسمه وهذا اعتقاد خاطئ تماما بل الواقع ان سر عمل المتغير يكمن في الموقع الذي تجعله يعمل به ولا اعني الموقع الذي قمت بتعريف المتغير به بل المكان الذي دمجت به متغيرك مع الكود
فمثلا اول متغير لدينا كان
period
وهو يعبر عن التايم فريم
وثاني متغير هو
ma_period
وهو يعبر عن عدد الشموع التي سيتم حساب المتوسط الحسابي لها
والآن دعونا نقوم بهذا التلاعب الصغير (لا تقلقوا أوكد لكم ان المطبخ لن يتفجر)
في هذا الموقع من الكود
لنقم بالتبديل بين موقع المتغيرين ليصبح الكود بهذا الشكل:
اولا بعد عمل تصريف للبرنامج ستلاحظ اختفاء المؤشر
وثانيا عند ذهابك للتأكد من خيارات المؤشر لن تلاحظ اي إختلاف فانت لم تغير في ترتيبك لتعريف المتغيرات
فما الذي حدث:
انت تذكر اننا افتراضا حدنا قيمة للمتغير
period
تساوي الصفر
والمتغير
ma_period
قيمته الافتراضية تساوي 15
فمالذي حدث بالضبط؟؟؟؟؟؟؟
ببساطة شديدة:
متغير
period
والذي يعبر عن الفريم وهو يساوي الصفر افتراضيا
اصبح يعبر عن عدد الشموع الواجب حساب المتوسط الحسابي لها وبهذا الشكل انت تريد حساب المتوسط الحسابي لـ 0 شمعة
والمتغير
ma_period
والذي يعبر عن عدد الشموع الواجب حساب المتوسط الحسابي لها وقيمته الافتراضية تساوي 15
اصبح يعبر عن التايم فريم الذي يجب حساب المتوسط الحسابي لشموعه
لاحظ ان كل هذا حدث فقط لاننا قمنا بتغيير مواقع هذه المتغيرات ضمن الكود ولم نقم ابدا بتغيير قيمها او تغيير اسمائها
والآن حتى نحصل على النتيجة السابقة لمؤشرنا الذي يعمل فقط عدل المتغيرات الخارجية لتصبح بهذا الشكل:
وهذا هو شكل التنفيذ:
والآن رجع مؤشرنا الى حالته الاصلية
وساٌقوم بارجاع اسماء المتغيرات الى مواقعها السابقة حتى نستطيع البناء على هذا المؤشر في المستقبل لان اسماء هذه المتغيرات تعبر عن دلالات معينة يستطيع اي مبرمج من خلال قراءة اسم المتغير ان يتصور ما هو استخدام هذا المتغير
فهذا الاسم
period
أكيد انه سيعبر عن فترة ما
والمتغير
ma_period
أكيد انه سيعبر عن فترة خاصة بالموفينج افريج لان بدايته مع الحرفين
ma
اختصارا لـ
Moving Average
طبعا هناك الكثير والكثير من الامور التي تسأل نفسك (مثلا : كيف عرف ان نوع هذا المتغير سيكون من النوع الصحيح وكيف عرف كذا و كيف……)
هناك أمور ساشرحها في حينها باذن الله وهناك أمور ستأتيك فقط مع الخبرة
انهي هذا الدرس عند هذا الحد ومع الدرس القادم ان شاء الله
سنتعلم موضوع مهم جدا جدا ويحتاجه كل متداول وليس فقط المبرمجين من يحتاجونه الا وهو كيف نقوم باختبار المؤشرات في الباك تيست وسنعرج على كيفية كشف المؤشرات التي تعيد رسم نفسها
مواضيع ذات صلة: