النتائج 1 إلى 5 من 5
  1. #1
    الصورة الرمزية walidabou
    walidabou غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2015
    الإقامة
    المغرب
    المشاركات
    4

    افتراضي تحقق شرط بناء على شرط سابق في برمجة اكسبرت mq4

    السلام عليكم ورحمة الله وبركاته

    إخواني أنا جديد في مجال برمجة mql وأحاول أن أصنع اكسبرت على أساس مؤشر الايشيموكو ،، ولكني اواجه مشكلة وهي أني عندما أضع بعض الشروط (if ... else if)

    مثلا الدخول الشراء عند Close[2]<Kijunsen و Close[1]>Kijunsen ولكن أنا لا أريد دخول الصفقة إلا عندما يتحقق شرط ثاني وهو أن الشيكوسبان يخترق الأسعار باتجاه الأعلى

    وأعتقد أن الرمز (&&) لن ينفع في هذه الحالة لأنه يعني لن يتم دخول الصفقة إلا إذا تحقق الشرطين في نفس الوقت ،، وهذا ما لا أريده

    بل ما أريده هو أن يقوم الاكسبرت بعمل check للشرط الأول فإن كان صحيحا يقوم بحفظه أو بتخزينه في ذاكرته ،، إن صح القول ،، وينتظر تحقق الشرط الثاني بدون الرجوع إلى الشرط الأول ،، حينئذ تنفذ الصفقة .

    إذن كيف عمل الكود في هذه الحالة ؟؟

    جزاكم الله خيرا

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

    افتراضي

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

    إخواني أنا جديد في مجال برمجة mql وأحاول أن أصنع اكسبرت على أساس مؤشر الايشيموكو ،، ولكني اواجه مشكلة وهي أني عندما أضع بعض الشروط (if ... else if)

    مثلا الدخول الشراء عند Close[2]<Kijunsen و Close[1]>Kijunsen ولكن أنا لا أريد دخول الصفقة إلا عندما يتحقق شرط ثاني وهو أن الشيكوسبان يخترق الأسعار باتجاه الأعلى

    وأعتقد أن الرمز (&&) لن ينفع في هذه الحالة لأنه يعني لن يتم دخول الصفقة إلا إذا تحقق الشرطين في نفس الوقت ،، وهذا ما لا أريده

    بل ما أريده هو أن يقوم الاكسبرت بعمل check للشرط الأول فإن كان صحيحا يقوم بحفظه أو بتخزينه في ذاكرته ،، إن صح القول ،، وينتظر تحقق الشرط الثاني بدون الرجوع إلى الشرط الأول ،، حينئذ تنفذ الصفقة .

    إذن كيف عمل الكود في هذه الحالة ؟؟

    جزاكم الله خيرا
    وعليكم السلام ورحمة الله وبركاته
    قم بتعريف متغير من نوع static وعندما يتحقق الشرط الأول سوف تجعله قيمته 1 مثلا ثم تنتظر تحقق الشرط الثاني
    مثال
    كود PHP:
    static int FirstSignal=0;
     
     if( 
    Close[1]>Kijunsen&&Close[2]<Kijunsen )
     {
      
    FirstSignal=1;
     }
     if(
    FirstSignal==1&&Senkou>Close[1])
     {
      
    // open order 
      
    FirstSignal=0;
     }
     
     if( 
    Close[1]<Kijunsen&&Close[2]>Kijunsen )
     {
      
    FirstSignal=-1;
     }
     if(
    FirstSignal==-1&&Senkou<Close[1])
     {
      
    // open order 
      
    FirstSignal=0;
     } 

  3. #3
    الصورة الرمزية walidabou
    walidabou غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2015
    الإقامة
    المغرب
    المشاركات
    4

    افتراضي

    بارك الله فيك أخي الكريم ،، لو ممكن تفضل تشرح لي الكود أكثر جزاك الله خيرا

  4. #4
    الصورة الرمزية walidabou
    walidabou غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2015
    الإقامة
    المغرب
    المشاركات
    4

    افتراضي

    لقد قمت بعمل باك تست بالكود الذي وضعته ولكن يفتح صفقة واحدة فقط ومن بعد ذلك لا يفتح أي صفقات أخرى

  5. #5
    الصورة الرمزية elassari
    elassari غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Feb 2016
    الإقامة
    المغرب
    العمر
    34
    المشاركات
    143

    افتراضي

    كود PHP:
    static int FirstSignal=0;
     
     if( 
    Close[1]>Kijunsen&&Close[2]<Kijunsen )
     {
      
    FirstSignal=1;
     }
        if(
    FirstSignal==1&&Senkou>Close[1]&&Senkou<Close[2])
        {
        
    FirstSignal=2;
        }
           if(
    FirstSignal==2)
           {
            
    // open order 
           
    }
              if(
    Senkou<Close[1])
              {
              
    FirstSignal=1;
              }
                 if(
    Close[1]<Kijunsen)
                 {
                 
    FirstSignal=0;
                 }
     
        if( 
    Close[1]<Kijunsen&&Close[2]>Kijunsen )
        {
         
    FirstSignal=-1;
        }
           if(
    FirstSignal==-1&&Senkou<Close[1]&&Senkou>Close[2])
           {
           
    FirstSignal=-2;
           }
              if(
    FirstSignal==-2)
              {
               
    // open order 
              
    }
                 if(
    Senkou>Close[1])
                 {
                 
    FirstSignal=-1;
                 }
                    if(
    Close[1]>Kijunsen)
                    {
                    
    FirstSignal=0;
                    } 
    جرب هدا الكود
    آخر تعديل بواسطة elassari ، 22-09-2016 الساعة 06:55 PM


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