تعليم لغة mql4 8

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

  • تعليم لغة mql4 8

    بيانات ما قبل المعالجة في لغة MQL4


    ماذا نعني بهذه البيانات ؟

    هذه البيانات هي تعليمات يقوم المبرمج بتزويدها للمجمع compiler ليقوم بحفظها كما هي قبل معالجة الكود .

    بمعنى اخر , خلال عملية التجميع compile (راجع مقدمة الدروس) يقوم المجمع compiler بتحويل برنامجك (بعد انتهائك منه) من لغتنا البشرية الى لغة الألة (الواحد والصفر) ليقوم بعمله .

    حسنا ماذا لو اردت منه ان لا يقوم بتحويل بعض التعليمات الى لغة الألة واخراجها كما هي بلغتنا ( كرابط موقع مثلا او تعريف بصانع الكسبرت وحقوقه .. الخ) ؟

    هذه البيانات وتسمى preprossesors ( اي قبل المعالجة ) تقوم بهذه الوظيفة .

    اللهم انك سلطت علينا عدوا عليما بعيوبنا - يرانا هو
    وقبيله من حيث لانراهم -- اللهم آيسه منا كما آيستـه من رحمتك وقنطه
    منا كما قنطـته من عـفوك -- وباعــد بيننا وبينه كما باعـدت بينه وبين
    رحمتك وجنتك

  • #2
    رد: تعليم لغة mql4 8

    هناك 4 انواع من هذه البيانات في لغة MQL4 :

    1- بيان التعريف define directive :

    وهو الأمر الذي ينتج ثابت ما ..

    لا حظ الفرق بين المتغير والثابت فالأول يأخذ قيم متغيرة طوال الوقت سواء من المبرمج او المستخدم او الشارت , اما الثابت فهو ذو قيمة محددة لا تتغير ابدا .

    مثال :


    كود PHP:
    #define my_constant 100

    كما تلاحظ في المثال اعلاه لا توجد علامة المساواة ( = ) فقط فراغ space بين اسم الثابت (my_constant ) وبين قيمته ( 100 )

    كما يمكنك ان تلاحظ ايضا عدم انتهاء الجملة بأي من علامات الترقيم مثل الفاصلة المنقوطة مثلا ; . وانما انتهت بمجرد انتقالنا الى سطر جديد في البرنامج .

    اسم الثابت يخضع لجميع القواعد الخاصة التي تعلمتها الخاصة بتسمية المعرفات ( راجع درس ال SYNTAX ) , مثلا لا يمكنك ان تبدأ برقم او تزيد عدد الأحرف اكثر من 31 حرف مثلا .

    يمكنك ان تضع اي قيمة تريدها من اي نوع لهذا الثابت في البداية .

    ان استخدمته في كود ما سيتامل معه البرنامج كقيمة ثابتة كما تمت كتاتها .

    وهكذا يمكن كتابته على النحو التالي :


    كود PHP:
    sum = constant1 * 10;
    اللهم انك سلطت علينا عدوا عليما بعيوبنا - يرانا هو
    وقبيله من حيث لانراهم -- اللهم آيسه منا كما آيستـه من رحمتك وقنطه
    منا كما قنطـته من عـفوك -- وباعــد بيننا وبينه كما باعـدت بينه وبين
    رحمتك وجنتك

    تعليق


    • #3
      رد: تعليم لغة mql4 8

      2- بيان الملكية property directive :

      هل تتذكرون عبارة “Controlling Compilation” السابق ذكرها في الدرس الأول وأخبرتكم وقتها ان شرحها سيأتي لاحقا .

      حسنا , هي احد خواص لغة MQL4 التي تسمح لك بوضع البيان ( prperty ) وامامه اي جملة ( او قيمة ) وسيخرجها المجمع compiler كما هي في ملف البرنامج المستخدم من قبل الألة ( ex4. ) .

      امثلة :


      كود PHP:
      #property link "http://www.forex-tsd.com"

      #property copyright "Anyone wants to use"

      اللهم انك سلطت علينا عدوا عليما بعيوبنا - يرانا هو
      وقبيله من حيث لانراهم -- اللهم آيسه منا كما آيستـه من رحمتك وقنطه
      منا كما قنطـته من عـفوك -- وباعــد بيننا وبينه كما باعـدت بينه وبين
      رحمتك وجنتك

      تعليق


      • #4
        رد: تعليم لغة mql4 8

        3- بيان الإحتواء include directive :

        عندما تخبر البرنامج بالأمر (include) لملف خارجي ما , فكأنك تماما تقوم بنسخ محتويات هذا الملف داخل سطر ( include ) داخل البرنامج .

        مثال :


        كود PHP:
        #include <win32.h>



        في المثال اعلاه انت اخبرت الكومبيوتر بفتح الملف (win32.h) وقراءته ونسخ محتوياته داخل جملة ( include ).

        حسنا , ما معنى القوسين < > في المثال اعلاه ؟

        هما لتحديد مكان الملف المراد قراءته ( win32.h ) , وهنا القوسين < > يحددان المكان (المجلد) الإفتراضي لأي ملف داخل الميتاتريدر على هذا الأمتداد : (metatrader 4\experts\include) .

        طيب ماذا لو كان الملف المراد قراءته في مكان أخر ؟

        لو كان في نفس مجلد البرنامج , نضع اسمه مباشرة بين العلامتين " " .

        مثال :


        كود PHP:
        #include “mylib.h”



        ولو كان في مجلد أخر ( مثلا داخل مجلد D:\books ) نضع اسمه هكذا :


        كود PHP:
        #include “D:\books\mylib.h”



        وفي جميع الحالات ان لم يجد البرنامج الملف في مكانه سيقوم بإصدار رسالة ( error ) اي خطأ في البرنامج .

        يمكننا استخدام الأمر ( include ) في اي سطر من البرنامج ولكن جرت العادة ان يكون في رأس البرنامج .
        اللهم انك سلطت علينا عدوا عليما بعيوبنا - يرانا هو
        وقبيله من حيث لانراهم -- اللهم آيسه منا كما آيستـه من رحمتك وقنطه
        منا كما قنطـته من عـفوك -- وباعــد بيننا وبينه كما باعـدت بينه وبين
        رحمتك وجنتك

        تعليق


        • #5
          رد: تعليم لغة mql4 8

          4- بيان الإستيراد import directive : (هذا الأمر للقراءة وهو للمتخصصين فقط )

          هو يشبه تماما الأمر السابق ( include ) من حيث جلبه لملف خارجي .

          ولكنه يختلف عنه في نوع الملف , فهو يقوم بقراءة الملفات ذات الأمتدادات ( dll. ) و ( ex4. ) لوضعها داخل اكواد البرنامج .

          مثال :


          كود PHP:
          #import "user32.dll"

          int MessageBoxA(int hWnd,string lp****,string lpCaption
          ,

          int uType
          );

          int MessageBoxExA(int hWnd,string lp****,string lpCaption
          ,

          int uType,int wLanguageId
          );

          #import "melib.ex4"

          #import "gdi32.dll"

          int GetDC(int hWnd
          );

          int ReleaseDC(int hWnd,int hDC
          );

          #import

          متى ادخلت دوال خاصة بملف ( ex4 ) فلن تحتاج ان تقوم بإعداداها declaration داخل البرنامج الأصلي.

          لكن متى ادخلت دوال من ملف ( dll ) فيجب عليك اعداداها اولا داخل البرنامج الأصلي ( وذلك لأختلاف اللغة فقد يكون الملف مصدره لغة ال C مثلا فيجب وقتها ان توافق بين اللغتين )

          مثال :


          كود PHP:
          int MessageBoxA(int hWnd,string lp****,string lpCaption,

          int uType
          );

          وستعمل الدوال التي اعددتها فقط في البرنامج .

          يجب ان تنهي امر ( import ) بسطر ( import ) مجرد و خالي من اي اقواس او اسماء


          كود PHP:
          #import
          اللهم انك سلطت علينا عدوا عليما بعيوبنا - يرانا هو
          وقبيله من حيث لانراهم -- اللهم آيسه منا كما آيستـه من رحمتك وقنطه
          منا كما قنطـته من عـفوك -- وباعــد بيننا وبينه كما باعـدت بينه وبين
          رحمتك وجنتك

          تعليق


          • #6
            رد: تعليم لغة mql4 8

            المشاركة الأصلية بواسطة medo مشاهدة المشاركة
            2- بيان الملكية property directive :

            هل تتذكرون عبارة “Controlling Compilation” السابق ذكرها في الدرس الأول وأخبرتكم وقتها ان شرحها سيأتي لاحقا .

            حسنا , هي احد خواص لغة MQL4 التي تسمح لك بوضع البيان ( prperty ) وامامه اي جملة ( او قيمة ) وسيخرجها المجمع compiler كما هي في ملف البرنامج المستخدم من قبل الألة ( ex4. ) .

            امثلة :


            كود PHP:
            #property link "http://www.forex-tsd.com"

            #property copyright "Anyone wants to use"


            أخي أريد التدخل من بعد إذنك !!
            عند نقلك للموضوع لم تنته لتغير مكان ' # ' بالتالي بتغير مكانها أصبح من المستحيل تطبيقها على mq4 compilteur
            حيث إن مكانها في أول السطر و ليس آخر السر أخي الكريم !! إن هذا خطأ برمجي فادح الرجاء أن تتفطن له !!
            فمثلا :
            هذه هي الطريق الصحيحة في الكتابة


            نفس الخطأ يتكر في باقي المشاركات
            تقبل مروري أخي

            تعليق


            • #7
              رد: تعليم لغة mql4 8

              أخي هناك الكثير من الأخطاء البرمجية فيما ذكرته يستحيل نقل لغة mq4 دون فهمها !!
              راجع المشاركات السابقة

              تعليق

              يعمل...
              X