صفحة 1 من 13 123456711 ... الأخيرةالأخيرة
النتائج 1 إلى 15 من 192
  1. #1
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي أصنع أكسبرتك بنفسك

    بسم الله الرحمن الرحيم

    سأقوم بهذا الموضوع بشرح طريقة صنع أكسبرت بلغة MQL4 بطريقة متدرجة من الأكواد السهلة الي الصعبة وبهذه الطريقة ستتمكن من أتقان صنع الأكسبرتات أن شاء الله

  2. #2
    تاريخ التسجيل
    Apr 2010
    الإقامة
    الرياض - حماه
    المشاركات
    2,743

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة Ram22 مشاهدة المشاركة
    بسم الله الرحمن الرحيم

    سأقوم بهذا الموضوع بشرح طريقة صنع أكسبرت بلغة MQL4 بطريقة متدرجة من الأكواد السهلة الي الصعبة وبهذه الطريقة ستتمكن من أتقان صنع الأكسبرتات أن شاء الله
    متابع ياغالي
    بالتوفيق

  3. #3
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    الدرس الأول (الدوال الرئيسية)

    كود:
     int init()
      {
    //----
       
    //----
       return(0);
      }
    وهذه مهمتها أن تعمل ببداية وضع الأكسبرت علي التشارت ثم تتوقف بعدها

    مثال : أصنع أكسبرت يظهر صندوق مكتوب به (( بدأت الدالة الأولي بالعمل)) ثم يتوقف بعدها.
    كود:
      int init()
      {
    Alert("بدأت الدالة الأولي بالعمل");
       return(0);
      }
    
    int start()
      {
    
       return(0);
      }

    حيث نستعمل الكود
    كود:
     Alert("");
    ونكتب الجملة موضوعة بين الرمز "" والذي مهمته يعطي تنبيه ويظهر لنا الرسالة التي نريدها
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 11.gif‏  
    الملفات المرفقة الملفات المرفقة
    آخر تعديل بواسطة Ram22 ، 07-11-2011 الساعة 09:55 AM

  4. #4
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    كود:
     int deinit()
      {
    
       
    
       return(0);
      }
    وهذه مهمتها العمل لحظة نزع الأكسبرت من التشارت

    مثال: أصنع أكسبرت يظهر صندوق مكتوب عليه (الأكسبرت نزع من التشارت) عند نزعه.


    كود:
     int init()
      {
    
       
    
       return(0);
      }
    
    
    int deinit()
      {
    
     Alert("الأكسبرت نزع من التشارت");  
    
       return(0);
      }
    
    
    
    int start()
      {
    
       
    
       return(0);
      }
    ملاحظة : عندما نجد جملة مكتوب قبلها الرمز // فلا يقرأها الأكسبرت ولا تعتبر كود ونستعملها نحن كي نكتب شرح عن عمل الكود أو أي شئ نريد كتابته دون أن يعطل البرنامج مثل
    كود:
     //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 12.gif‏  
    الملفات المرفقة الملفات المرفقة

  5. #5
    تاريخ التسجيل
    Apr 2010
    الإقامة
    الرياض - حماه
    المشاركات
    2,743

    افتراضي

    للحين كلو واضح

  6. #6
    الصورة الرمزية se2007
    se2007 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2009
    الإقامة
    الأردن
    المشاركات
    615

    افتراضي

    بارك الله فيك واتمنى ان تشرح كيف بالبرمجه نستخدم الادوات الموجوده بالميتاتريدر

  7. #7
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    كود:
     int start()
      {
    //----
       
    //----
       return(0);
      }
    وهذه أهم دالة ومهمتها العمل أثناء وجود الأكسبرت علي التشارت وتعمل بدون توقف .


    مثال : أصنع أكسبرت يظهر لنا الأسعار بأستمرار ولا يتوقف الصندوق ويظهر رسالة بالبدية مكتوب بها ((سيبدأ الأكسبرت بمراقبة الأسعار )) وعند نزعه يظهر رسالة مكتوب بها ((نزع بنجاح))

    كود:
      int init()
      {
    
    Alert("سيبدأ الأكسبرت بمراقبة الأسعار");
    
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
     Alert("نزع بنجاح");  
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start()
      {
    //----
    Alert(Bid);   
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    وأستعملنا الكود
    كود:
    Alert(Bid);
    وضعنا كلمة Bid وهي تعطينا السعر الحالي ونلاحظ لم نضع الرمز "" لأنها رقم وليس كلمة.
    الملفات المرفقة الملفات المرفقة

  8. #8
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة se2007 مشاهدة المشاركة
    بارك الله فيك واتمنى ان تشرح كيف بالبرمجه نستخدم الادوات الموجوده بالميتاتريدر
    أن شاء الله سيأتي دورها

  9. #9
    الصورة الرمزية Ahmed Shihab
    Ahmed Shihab غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2009
    المشاركات
    496

    افتراضي

    ماشاء الله عليك اخ رامى

    متابع معك اخى الكريم

    وان شاء الله تعالى بهذه الطريقه العمليه سوف نتمكن من هذه اللغه

    متابع معك اخى الكريم

    تقبل ودى

  10. #10
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    أنواع البيانات
    عندما نريد أن نعطي بيانات للأكسبرت فتوجد عدة أنواع للبيانات مثل:
    1-أعداد صحيحة.
    2-أعداد حقيقية.
    3-كتابة نصية.
    ويمكننا أن نخزن هذه البيانات ثم نستعملها بالبرنامج ونقوم بأعطاء أمر للأكسبرت بأن يخزنها علي رمز محدد نحن نختاره بشرط الا يكون محجوز مثل الكلمة المحجوزة Bid .

    حيث int أرقام صحيحة مثل 3 و 4 و 7 و555
    double أرقام حقيقية مثل 2.3 و 4.154 و 4.0 و 4 و 2.3256
    string كتابة مثل نصية "الأكسبرت" و "مؤشر"
    datetime التاريخ مثل '24.08.2011'D
    color الوان مثل 'Red' 'Green'

    كود:
     
    int segma=4; double G=2.3526; bool G=true; string W="الأكسبرت"; datetime R=D'20.10.2011'; color RR="Red";
    واذا أردنا أن نعدل علي هذه البيانات بالبداية قبل عمل الأكسبرت فنضع الرمز extern قبلها

    كود:
     
    extern int segma=4; extern double G=2.3526; extern bool G=true; extern string W="الأكسبرت"; extern datetime R=D'20.10.2011'; extern color RR="Red"; int init() { return(0); } int deinit() { //---- //---- return(0); } int start() { //---- //---- return(0); }
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 4.GIF‏   2.GIF‏  

  11. #11
    الصورة الرمزية Ahmed Shihab
    Ahmed Shihab غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2009
    المشاركات
    496

    افتراضي

    متابع اخى رامى

    وكل شىء مفهوم الى الان

  12. #12
    الصورة الرمزية fxcrazy
    fxcrazy غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Apr 2009
    الإقامة
    المملكة العربية السعودية
    المشاركات
    416

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة Ram22 مشاهدة المشاركة
    أنواع البيانات

    عندما نريد أن نعطي بيانات للأكسبرت فتوجد عدة أنواع للبيانات مثل:
    1-أعداد صحيحة.
    2-أعداد حقيقية.
    3-كتابة نصية.
    ويمكننا أن نخزن هذه البيانات ثم نستعملها بالبرنامج ونقوم بأعطاء أمر للأكسبرت بأن يخزنها علي رمز محدد نحن نختاره بشرط الا يكون محجوز مثل الكلمة المحجوزة Bid .

    حيث int أرقام صحيحة مثل 3 و 4 و 7 و555
    double أرقام حقيقية مثل 2.3 و 4.154 و 4.0 و 4 و 2.3256
    string كتابة مثل نصية "الأكسبرت" و "مؤشر"
    datetime التاريخ مثل '24.08.2011'D
    color الوان مثل 'Red' 'Green'

    كود:
     
    int segma=4;
    double G=2.3526; bool G=true; string W="الأكسبرت"; datetime R=D'20.10.2011'; color RR="Red";
    واذا أردنا أن نعدل علي هذه البيانات بالبداية قبل عمل الأكسبرت فنضع الرمز extern قبلها


    كود:
     
    extern int segma=4;
    extern double G=2.3526; extern bool G=true; extern string W="الأكسبرت"; extern datetime R=D'20.10.2011'; extern color RR="Red";
    int init() {
    return(0); }
    int deinit() { //----
    //---- return(0); }
    int start() { //----
    //---- return(0); }

    ممتاز .. ومتابعين معك والله يعطيك العافية

  13. #13
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    مثال: أعمل أكسبرت تقوم بالتحكم بأعداداته ويعطي صندوق وأنذار به جملة ببداية دخوله التشارت وعند نزعه من التشارت وتستطيع أن تكتب هذه الجملة من المتغيرات. وأن يقوم الأكسبرت بأظهار صندوق يظهر بأستمرار مكتوب به الوقت


    كود:
    extern string R1="وضع الأكسبرت علي التشارت"; extern string R2="نزع من التشارت"; int time1; int time2; int init() { //---- Alert(R1); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { Alert(R2); //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- time1=Hour(); time2=Minute(); Alert(time1+":"+time2+":"+"الوقت الأن هو"); return(0); } //+------------------------------------------------------------------+
    عند تشغيل الأكسبرت أول شئ سيقرأ R1 و R2 وسيكتب القيمة المسجلة بR1 ببداية دخوله للتشارت ثم يكتب R2 عند نزعه من التشارت ويخزن قيمة الساعة الأن بالرمز time1 ويخزن الدقائق بالرمز time2 ثم يظهرهم أثناء عمل الأكسبرت وقمنا بأستعمال الكلمة المحجوزة التي تعطيني الوقت الأن
    الوقت الأن (ساعة فقط)
    كود:
    Hour()
    الوقت الأن (دقائق فقط)
    كود:
    Minute()
    .
    الملفات المرفقة الملفات المرفقة
    آخر تعديل بواسطة Ram22 ، 07-11-2011 الساعة 03:11 PM

  14. #14
    الصورة الرمزية se2007
    se2007 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Oct 2009
    الإقامة
    الأردن
    المشاركات
    615

    افتراضي

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

  15. #15
    الصورة الرمزية Ram22
    Ram22 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    المشاركات
    354

    افتراضي

    الجملة الشرطية والعمليات الحسابية


    لو أردنا أن نعطي للأكسبرت رقم حقيقي ونجعله يسأل : هل هذا الرقم أكبر من 1.3 ؟
    فسنقول

    كود:
    double G=1.1; if(G>1.3) { Alert("نعم"); } else { Alert("لا"); }
    وسيقوم الكود السابق بتخزين الرقم 1.1 ويخصص له مساحة بالذاكرة يسميها G ، وبعد ذلك يقارن هل هو أكبر من 1.3 ولو كان أكبر سيظهر صندوق به الكلمة نعم ولو كان غير ذلك سيظهر صندوق به الكلمة لا.

    ولوأردنا أن نعطي للأكسبرت رقم حقيقي ونجعله يسأل : هل لو جمع هذا الرقم مع سعر الأغلاق للشمعة السابقة ثم قسم الناتج علي 1.1 سيكون أصغر من أو يساوي 1.7 ؟
    كود:
     
    double G=0.1204; double Sum; Sum=(G+Close[1])/1.1; if(Sum<=1.7) { Alert("نعم"); } else { Alert("لا"); }
    ولو أردنا أن نعطي للأكسبرت رقم حقيقي R1 ونجعله يسأل: هل لو قسمنا الرقم علي 4 ثم ضربناه ب 2 وطرحناه من 1 وخزنا الناتج ب p1 ثم جمعنا سعر الأفتتاح للشمعة الحالية مع سعر الأغلاق للشمعة قبل السابقة وقسمنا الناتج علي الهاي للشمعة قبل قبل السابقة وخزنا الناتج بp2 فهل p1 تساوي 1.5 وp2 لاتساوي 8.1؟
    وهل p1 تساوي 7 أو 4؟
    الحالة الأولي


    كود:
     
    double R1=0.1204; double p1,p2; p1=((R1/4)*2) - 1; p2=(Open[0]+Close[2])/High[3]; if(p1==1.5&&p2!=8.1) { Alert("نعم"); } else { Alert("لا");
    }
    الحالة الثانية

    كود:
     
    double R1=0.1204; double p1,p2; p1=((R1/4)*2) - 1; p2=(Open[0]+Close[2])/High[3]; if(p1==7||p2==4) { Alert("نعم"); } else { Alert("لا"); }

صفحة 1 من 13 123456711 ... الأخيرةالأخيرة

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