تعلم البرمجة باسهل طريقة......الحلقة الخامسة

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • تعلم البرمجة باسهل طريقة......الحلقة الخامسة

    بسم الله الرحمن الرحيم
    والصلاة والسلام على سيدنا محمد النبي الأمي

    أهلا وسهلا بكم أيها الاخوة الاكارم
    مع الحلقة الخامسة من سلسلة تعلم البرمجة باسهل طريقة

    الآن نريد إضافة متغيرات خارجية لمؤشرنا حتى نستطيع التحكم باعداداته فلو اردنا مثلا تغيير التايم فريم الذي يتم حساب المتوسط الحسابي له بغض النظر عن الفريم الذي قمنا بتركيب المؤشر عليه فربما نكون نعمل على فريم الساعة ونريد المتوسط الحسابي لفريم الاربع ساعات فماذا نعمل؟

    لفعل ذلك نقوم بعدة خطوات
    اولا نقوم بتعريف متغير من نفس نوع البيانات التي يتقبلها ذلك الامر في مثالنا حاليا نريد وضع متغير للتايم فريم وهذا الاخير تكون بياناته من النوع الصحيح اي
    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

    طبعا هناك الكثير والكثير من الامور التي تسأل نفسك (مثلا : كيف عرف ان نوع هذا المتغير سيكون من النوع الصحيح وكيف عرف كذا و كيف......)
    هناك أمور ساشرحها في حينها باذن الله وهناك أمور ستأتيك فقط مع الخبرة

    انهي هذا الدرس عند هذا الحد ومع الدرس القادم ان شاء الله
    سنتعلم موضوع مهم جدا جدا ويحتاجه كل متداول وليس فقط المبرمجين من يحتاجونه الا وهو كيف نقوم باختبار المؤشرات في الباك تيست وسنعرج على كيفية كشف المؤشرات التي تعيد رسم نفسها

    اترككم في رعاية الله
    التعديل الأخير تم بواسطة Turkm; 2014 - 11 - 23, 23:11.
يعمل...
X