Quran 24/7 FXPrg.com الموضوع المخصص للأسئلة البرمجية mql4 - الصفحة 295




صفحة 295 من 297 الأولىالأولى ... 195245285293294295296297 الأخيرةالأخيرة
النتائج 2,941 إلى 2,950 من 2969

الموضوع: الموضوع المخصص للأسئلة البرمجية mql4

  1. #2941

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة 11abde مشاهدة المشاركة
    شكرا جزيلا ساجربه على الباك تست
    العفو اخي الكريم

  2. #2942
    عضو
    تاريخ التسجيل
    Apr 2017
    المشاركات
    290

    افتراضي

    السلام عليكم
    اريد دالة الغاء الهدف او الاستوب بعد عدد معين من الصفقات التي اغلقت او المفتوحة

  3. #2943

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة sabil مشاهدة المشاركة
    السلام عليكم
    اريد دالة الغاء الهدف او الاستوب بعد عدد معين من الصفقات التي اغلقت او المفتوحة
    وعليكم السلام
    مثال :
    كود:
    void OnTick()
    {
     OrdersModify();
    }
    
    
    void OrdersModify()
    {
     int cnt=0;bool s,m;
     for(int cnt=0;cnt<OrdersTotal();cnt++)
     {
      s=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
      string sy=OrderSymbol();
      double op=OrderOpenPrice(),
             sl=OrderStopLoss(),
             tp=OrderTakeProfit();
      int    tk=OrderTicket(),
             ty=OrderType(),
             mn=OrderMagicNumber() ;
             
      if(sy==Symbol()&&mn==MagicNo)
      {
       cnt++;
       if(cnt>=5)//عدد الصفقات 5 أو أكثر
       {
        if(ty==OP_BUY)
        {
         if(sl!=0||tp!=0)m=OrderModify(tk,op,0,0,0,Blue);
        }
        if(ty==OP_SELL)
        {
         if(sl!=0||tp!=0)m=OrderModify(tk,op,0,0,0,Red);
        }
       } 
      }
     }
    }

  4. #2944
    عضو جديد
    تاريخ التسجيل
    Apr 2017
    المشاركات
    84

    افتراضي

    السلام عليكم
    ممكن مساعده وتصحيح الكون اكون شاكر
    العيب الموجود هو
    اذا تحقق مجموعه الشروط الاول نرجع بقيمه
    Time_BUY_BIG
    العيب هو تغير القيمه طول ما استمر نجاح الشرط
    وانا اريد عند تحقق الشرط يخذ الوقت لمره واحده فقط
    ويخزن فى متغيرTime_BUY_BIG
    كاذلك بنسبه تيم فريم الصغير
    كود PHP:
       if(
          
    BIG_100_BUY== "BUY"
          
    && Forex_BIG_BUY== "BUY"
       
    && Time_BUY_BIG!="1970.01.01 00:00:00")  //شروط  تيم فريم الكبير 
         
    {
       
    Time_BUY_BIG==iTime(Symbol(),PERIOD_H4,0);//نتيجه تيم فريم الكبير   
         
    }
       if(
          
    SMALL_100_BUY== "BUY"
          
    && Forex_SMALL_BUY== "BUY"
          
    && BUY_SMALL_Super== "BUY")//شروط  تيم فريم الصغير
    {
         
    Time_BUY_SMALL=iTime(Symbol(),PERIOD_M15,0);//نتيجه الشوط يم فريم الصغير
         

    بعد ذلك المقارنه اى منهم الاسبق فى تحقيق النجاح فى الدخول يكون كما يالى
    كود PHP:
    if(Time_BUY_SMALL<Time_BUY_BIG)//الدخول بيع
     
    if(Time_BUY_SMALL>Time_BUY_BIG)//الدخول شراء 
    المطلوب هو كيف اخزن الوقت لمره وحده عند التحقق الشرط ممكن تعدل الكود اكون شاكر
    طلب اخر كيف اختصر الرقم 45.00000000000000009 الى 45.1
    كانت محاولاتى
    هى
    كود PHP:
    DoubleToStr(45.000000000000000091) ;
    NormalizeDouble(45.000000000000000091); 
    هل فى طريقه اخرى اكون شاكر
    التعديل الأخير تم بواسطة shivaa ; 30-06-2020 الساعة 09:17 PM

  5. #2945
    عضو جديد
    تاريخ التسجيل
    Apr 2019
    المشاركات
    10

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    وعليكم السلام
    ستقوم بعمل دالة حساب عدد الصفقات المغلقة التي فتحت في اليوم
    مثال:
    كود:
    int DailyOrders(int type=-1)
    {
     int cnt=0;
     for(int i=0;i<OrdersHistoryTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      {
       if(OrderSymbol()==Symbol()&&MagicNo==OrderMagicNumber()&&(OrderType()==type||type==-1))
       {
        if(OrderOpenTime()>=iTime(Symbol(),1440,0))cnt++;
       }
      }
     }
     return(cnt);
    }
    ثم يكون الشرط قبل دالة فتح الصفقة كالتالي :
    كود:
    if(DailyOrders()==0)//....
    اشكرك جزيلاً استاذي الفاضل على مجهودك واعتذر على الازعاج .. هل يمكن ان اضع في الشروط ان الصفقة لا تفتح الا من بداية اليوم؟ لأن دالة DailyOrders تعمل جيداً ولكن توجد مشكلة بسيطة وهي اذا كانت هناك صفقة مفتوحة من اليوم السابق او ما قبله مثلاً وتم اغلاقها اليوم فسيفتح صفقة جديدة لتوفر الشروط ولأن عدد الصفقات اليومية هو صفر كما تحسبه الدالة .. من فضلك القي نظرة على الصورة وهي من باكتست للاكسبرت بعد اضافة الدالة وكل الشروط كما ذكرت حضرتك .. اريده لا يفتح اي صفقة الا من بداية اليوم التالي مادام كانت هناك صفقة مفتوحة او مغلقة اليوم .. تحياتي.
    https://charts.mql5.com/25/266/gbpusd-h1-fxdd-2.png
    التعديل الأخير تم بواسطة most ; 30-06-2020 الساعة 11:13 PM

  6. #2946
    عضو
    تاريخ التسجيل
    Apr 2017
    المشاركات
    290

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    وعليكم السلام
    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    مثال :
    كود:
    void OnTick()
    {
     OrdersModify();
    }
    
    
    void OrdersModify()
    {
     int cnt=0;bool s,m;
     for(int cnt=0;cnt<OrdersTotal();cnt++)
     {
      s=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
      string sy=OrderSymbol();
      double op=OrderOpenPrice(),
             sl=OrderStopLoss(),
             tp=OrderTakeProfit();
      int    tk=OrderTicket(),
             ty=OrderType(),
             mn=OrderMagicNumber() ;
    
      if(sy==Symbol()&&mn==MagicNo)
      {
       cnt++;
       if(cnt>=5)//عدد الصفقات 5 أو أكثر
       {
        if(ty==OP_BUY)
        {
         if(sl!=0||tp!=0)m=OrderModify(tk,op,0,0,0,Blue);
        }
        if(ty==OP_SELL)
        {
         if(sl!=0||tp!=0)m=OrderModify(tk,op,0,0,0,Red);
        }
       } 
      }
     }
    }


    شكرا ياغالي
    جاري التجربة
    التعديل الأخير تم بواسطة sabil ; 30-06-2020 الساعة 11:40 PM

  7. #2947
    عضو جديد
    تاريخ التسجيل
    Apr 2017
    المشاركات
    84

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة shivaa مشاهدة المشاركة
    السلام عليكم
    ممكن مساعده وتصحيح الكون اكون شاكر
    العيب الموجود هو
    اذا تحقق مجموعه الشروط الاول نرجع بقيمه
    Time_BUY_BIG
    العيب هو تغير القيمه طول ما استمر نجاح الشرط
    وانا اريد عند تحقق الشرط يخذ الوقت لمره واحده فقط
    ويخزن فى متغيرTime_BUY_BIG
    كاذلك بنسبه تيم فريم الصغير
    كود PHP:
       if(
          
    BIG_100_BUY== "BUY"
          
    && Forex_BIG_BUY== "BUY"
       
    && Time_BUY_BIG!="1970.01.01 00:00:00")  //شروط  تيم فريم الكبير 
         
    {
       
    Time_BUY_BIG==iTime(Symbol(),PERIOD_H4,0);//نتيجه تيم فريم الكبير   
         
    }
       if(
          
    SMALL_100_BUY== "BUY"
          
    && Forex_SMALL_BUY== "BUY"
          
    && BUY_SMALL_Super== "BUY")//شروط  تيم فريم الصغير
    {
         
    Time_BUY_SMALL=iTime(Symbol(),PERIOD_M15,0);//نتيجه الشوط يم فريم الصغير
         

    بعد ذلك المقارنه اى منهم الاسبق فى تحقيق النجاح فى الدخول يكون كما يالى
    كود PHP:
    if(Time_BUY_SMALL<Time_BUY_BIG)//الدخول بيع
     
    if(Time_BUY_SMALL>Time_BUY_BIG)//الدخول شراء 
    المطلوب هو كيف اخزن الوقت لمره وحده عند التحقق الشرط ممكن تعدل الكود اكون شاكر
    طلب اخر كيف اختصر الرقم 45.00000000000000009 الى 45.1
    كانت محاولاتى
    هى
    كود PHP:
    DoubleToStr(45.000000000000000091) ;
    NormalizeDouble(45.000000000000000091); 
    هل فى طريقه اخرى اكون شاكر

    UP

  8. #2948

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة shivaa مشاهدة المشاركة
    السلام عليكم
    ممكن مساعده وتصحيح الكون اكون شاكر
    العيب الموجود هو
    اذا تحقق مجموعه الشروط الاول نرجع بقيمه
    Time_BUY_BIG
    العيب هو تغير القيمه طول ما استمر نجاح الشرط
    وانا اريد عند تحقق الشرط يخذ الوقت لمره واحده فقط
    ويخزن فى متغيرTime_BUY_BIG
    كاذلك بنسبه تيم فريم الصغير
    كود PHP:
       if(
          
    BIG_100_BUY== "BUY"
          
    && Forex_BIG_BUY== "BUY"
       
    && Time_BUY_BIG!="1970.01.01 00:00:00")  //شروط  تيم فريم الكبير 
         
    {
       
    Time_BUY_BIG==iTime(Symbol(),PERIOD_H4,0);//نتيجه تيم فريم الكبير   
         
    }
       if(
          
    SMALL_100_BUY== "BUY"
          
    && Forex_SMALL_BUY== "BUY"
          
    && BUY_SMALL_Super== "BUY")//شروط  تيم فريم الصغير
    {
         
    Time_BUY_SMALL=iTime(Symbol(),PERIOD_M15,0);//نتيجه الشوط يم فريم الصغير
         

    بعد ذلك المقارنه اى منهم الاسبق فى تحقيق النجاح فى الدخول يكون كما يالى
    كود PHP:
    if(Time_BUY_SMALL<Time_BUY_BIG)//الدخول بيع
     
    if(Time_BUY_SMALL>Time_BUY_BIG)//الدخول شراء 
    المطلوب هو كيف اخزن الوقت لمره وحده عند التحقق الشرط ممكن تعدل الكود اكون شاكر
    طلب اخر كيف اختصر الرقم 45.00000000000000009 الى 45.1
    كانت محاولاتى
    هى
    كود PHP:
    DoubleToStr(45.000000000000000091) ;
    NormalizeDouble(45.000000000000000091); 
    هل فى طريقه اخرى اكون شاكر
    وعليكم السلام
    - توقيت الشمعة الحالية لفريم ما يكون دائما اكبر او يساوي توقيت الشمعة الحالية للفريم الاكبر
    اذن حسب الكود الشرط الاول لن يتحقق ابدا

    - نعم يوجد ايضا ما يلي :

    الوظيفة MathCeil تقوم بحساب أكبر قيمة صحيحة للرقم المدخل ( 5.5 تصبح 6 و -5.5 تصبح -5 )

    الوظيفة MathRound تقرب الأرقام العشرية بمعنى إذا كانت الأرقام العشرية أكبر أو تساوي 0.5 فإنها تزيد الرقم واحدا.
    مثلا الرقم 2.6 تصبح 3 لأن الرقم العشري أكبر من 0.5 ولكن 2.4 تصبح 2 لأن الرقم العشري أصغر من 0.5

    الوظيفة MathFloor تزيل الرقم العشري ولا تقربه، وتحول الرقم إلى الرقم الأصغر مثلا 8.9 تصبح 8 و -4.2 تصبح -5 على اعتبار أن -5 هي الرقم الأصغر وليس -4

  9. #2949

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة most مشاهدة المشاركة
    اشكرك جزيلاً استاذي الفاضل على مجهودك واعتذر على الازعاج .. هل يمكن ان اضع في الشروط ان الصفقة لا تفتح الا من بداية اليوم؟ لأن دالة DailyOrders تعمل جيداً ولكن توجد مشكلة بسيطة وهي اذا كانت هناك صفقة مفتوحة من اليوم السابق او ما قبله مثلاً وتم اغلاقها اليوم فسيفتح صفقة جديدة لتوفر الشروط ولأن عدد الصفقات اليومية هو صفر كما تحسبه الدالة .. من فضلك القي نظرة على الصورة وهي من باكتست للاكسبرت بعد اضافة الدالة وكل الشروط كما ذكرت حضرتك .. اريده لا يفتح اي صفقة الا من بداية اليوم التالي مادام كانت هناك صفقة مفتوحة او مغلقة اليوم .. تحياتي.
    https://charts.mql5.com/25/266/gbpusd-h1-fxdd-2.png
    بداية اليوم تقصد عند افتتاح اليوم يمكنك استخدام الفوليوم
    مثال إذا كان فوليوم اليوم اصغر من 10 تكات ينفذ الصفقة :
    كود:
    if(iVolume(Symbol(),1440,0)<10)//...

  10. #2950

    افتراضي

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

    شكرا ياغالي
    جاري التجربة
    العفو اخي الكريم

صفحة 295 من 297 الأولىالأولى ... 195245285293294295296297 الأخيرةالأخيرة

العلامات المرجعية

العلامات المرجعية

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •