النتائج 1 إلى 3 من 3
  1. #1
    الصورة الرمزية wadi2012
    wadi2012 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2012
    الإقامة
    جرين لاند
    المشاركات
    1,089

    افتراضي Global Variables موضوع بسيط للمبرمجين الجدد

    بعد مطالعة في لغة MQL4 أحببت المشاركة في التعريف ب Global variables للمبتدئين في البرمجة .
    فال Global variables مهمة جدا لك مبرمج
    التعريف :
    تعني المتغيرات العامة او Global Variables بمتغيرات يمكن تغيير قيمها او قراءتها من قبل الدوال على نطاق أوسع يشمل الاكسبيرتات والمؤشرات بخلاف المتغيرات العادية المحلية local او او المتغيرات الخارجية داخل البرنامج التي يمكن ان يتم قراءتها داخل الدوال في الاكسبيرت نفسه .
    فمعنى اذا كان لدي دالة وتم تعريف متغيرات داخلها لا يمكن رؤيتها من قبل الدوال الاخرى وهذه المتغيرات تسمى local اما المتغيرات الخارجية هي متغيرات داخل الاكسبيرت او المؤشر تعرف خارج النطاق العام للدوال جميعها ويتم استخدامها من اي دالة
    واما المتغيرات الثابته Constant والتي تعرف ب static فهي متغيرات تأخذ قيم داخل الدالة وتحتفظ بها حتى بعد الخروج من عمل الدالة في حين المتغير العادي داخل الدالة عند الانتهاء من عمله تتغير قيمته الى القيمة الابتدائية .
    لكن لنفترض ان المبرمج صمم اكسبيرت لوظيفة معينة حسابية ويحتفظ بالقيمة بعد كل tick اي كل قيمة سعرية تأتي الى السيرفير
    ويريد استدعاء اخر قيمة بعد الخروج من دالة start فاما ان يخزنها في متغير ثابت ويعرفه static ولكن تبقى هناك مشكلة وهي اذا توقف السيرفير او انقطع الكهرباء عن الكمبيوتر فما الحل ؟؟؟

    هنا يأتي دور Global Variables تخزن القيم في الجهاز وعند استدعائها نباشر عمل الاكسبيرت بالشكل الطبيعي ويمكن رؤية ال global variables من المنصة بالدخول الى Tools ستجد ال Global variabls وقيمها وتاريخ تسجيلها بالجهاز ويمكن ان تحفظ القيم في الجهاز لمدة اسبوعين

    هناك وظيفة مهمة أخرى وهي ان ال Global Variables هي حلقة الوصل والاتصل بين مجموعة اكسبيرتات تتبادل المعلومات بينهما كيف؟
    لنفترض انك تشغل اكسبيرت على شارت يورودولار واكسبيرت اخر يعمل على شارت آخر وتريد ان يرقب احدهما الاخر هل دخل بيع ام شراء حتى يفعل نفسه لمهمة محددة . هنا يأتي دور ال global variables فان تعرف متغير على انه global variable في اكسبيرت ثم الاكسبيرت الاخر يقرأ هذا المتغير وعليه يحدد مهمته

    حتى تصل الصورة أكثر قمت بعمل اكسبيرتين
    الاول يعرف متغيرين عامين global variable ويعرض على الشارت قيمة يتم ادخالها ويعرض اغلاق السعر على الشارت

    والثاني يقرأ القيم من الاكسبيرت الاول ويعرضها عنده

    الاكسبيرت الاول

    كود PHP:
    extern int g=77

    int start()
      {

      
    double x,d;
       
    string str="Var";
       
    string str1="Var1";
        
     
        
    x=Close[0];
        
    GlobalVariableSet(str,g);
        
    GlobalVariableSet(str1,x);
        
    d=  GlobalVariableGet(str);
        
    d=d+5;


       
    Comment(str," ",d," ",GlobalVariableGet(str),"  ",GlobalVariableGet(str1));

       return(
    0);
      } 
    والثاني يقرأ من الاكسبيرت الاول القيم

    كود PHP:
    int start()
      {

    double x,d;
      
       if( 
    GlobalVariableCheck("Var"))
      
    dGlobalVariableGet("Var");
         if(
    GlobalVariableCheck("Var1"))
          
    x=GlobalVariableGet("Var1");
       
    Comment(d,"   ",x);

       return(
    0);
      } 

    شغل الاكسبيرتين على شارتين مختلفين وراقب النتيجة على الشارت ثم اغلق الكبيوتر او المنصة وراقب النتيجة

    أتمنى أن أكون أوصلت المعلومات بشكل واضح

  2. #2
    الصورة الرمزية Qamar14
    Qamar14 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2010
    الإقامة
    المملكة العربية السعودية
    المشاركات
    1,488

    افتراضي

    شكرا ليك كتير كتير يا wadi2012
    معلومه مفيده كتير
    ولكن لو عملت هاد الاكسبيرتات
    وحطيتها هنا كمرفقات بيكون مناسب كتير

  3. #3
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,864

    افتراضي

    بارك الله فيك معلومات قيمه
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17