النتائج 1 إلى 3 من 3
  1. #1
    الصورة الرمزية Pharm.D
    Pharm.D غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2009
    الإقامة
    السعودية
    المشاركات
    1,661

    افتراضي خبراء البرمجة : أين الخطأ في هذه الدالة .. عجزت عن تتبع الخطأ

    السلام عليكم و رحمة الله و بركاته ..
    خبراءنا الكرام : هذه دالة CreateTakeProfit() .. و هي دالة لإرسال اوامر جني الربح !

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

    و بذلك يسبب تعليق للمنصة بسبب إرسال تعديل الأمر كل ثانية تقريباً !!
    تعلمت برمجة MQL4 من أسبوعين فقط .. و لكني عجزت عن معرفة مكان الخطأ في الدالة


    هنا هي الدالة :
    كود:
    void createtakeprof(double TPB, double TPS){   RefreshRates();
       int total=OrdersTotal();
       if(total>0){
          for(int i=0;i<total;i++){
             OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
             if(OrderType()<=OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber){
                if(OrderType()==OP_BUY)
                {
                   if(OrderTakeProfit()!= NormalizeDouble(TPB,Digits) && UseTrendStops){
                      OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),(TPB),0,Blue);
                      //if(ObjectFind("BUYTP") != -1)ObjectDelete("BUYTP");
                      return(0);
                   }
                   if(OrderTakeProfit()== 0 && !UseTrendStops){
                      OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),(TPB),0,Blue);
                      //if(ObjectFind("BUYTP") != -1)ObjectDelete("BUYTP");
                      return(0);
                   }
                }
                else{
                   if(OrderTakeProfit()!= NormalizeDouble(TPS,Digits) && UseTrendStops){                 
                      OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),(TPS),0,Blue);
                     // if(ObjectFind("SELLTP") != -1)ObjectDelete("SELLTP");
                      return(0);
                   }
                  if(OrderTakeProfit()== 0 && !UseTrendStops){                 
                      OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),(TPS),0,Blue);
                      //if(ObjectFind("SELLTP") != -1)ObjectDelete("SELLTP");
                      return(0);
                   }
                }
             }
          }
       }
    }
    لو كان الملف كاملا سيساعد في حل المشكلة فسأرسله
    و جزاكم الله الفردوس الأعلى من الجنة
    توقيع العضو
    !!! أفضل و أشمل اكسبيرت لتداول الترندات المكسورة - من برمجتي !!!

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

    افتراضي

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

  3. #3
    الصورة الرمزية Pharm.D
    Pharm.D غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2009
    الإقامة
    السعودية
    المشاركات
    1,661

    افتراضي

    جزاك الله الفردوس الأعلى من الجنة

    فعلا وجدت الخطأ في أن القيم تتجدد للمتغيرات مع كل حركة للسعر

    تم حل المشكلة

    شكرا جزيلا أستاذنا القدير


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