خبراء البرمجة : أين الخطأ في هذه الدالة .. عجزت عن تتبع الخطأ
السلام عليكم و رحمة الله و بركاته ..
خبراءنا الكرام : هذه دالة 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);
}
}
}
}
}
}
لو كان الملف كاملا سيساعد في حل المشكلة فسأرسله
و جزاكم الله الفردوس الأعلى من الجنة