النتائج 1 إلى 3 من 3
- 14-12-2013, 05:33 PM #1
خبراء البرمجة : أين الخطأ في هذه الدالة .. عجزت عن تتبع الخطأ
السلام عليكم و رحمة الله و بركاته ..
خبراءنا الكرام : هذه دالة 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); } } } } } }
و جزاكم الله الفردوس الأعلى من الجنة
- 16-12-2013, 01:07 AM #2
المشكله لديك في قيمة المتغير الخاص بالداله TPB و TPS فإذا كانت قيمتهم تتغير بشكل مستمر فطبيعي سوف تظل الداله تقوم بتعديل الهدف بناء على القيم الجديده التي يتم إرسالها
فيجب أن تراجع الفكره التي ستضع بناء عليها الهدف أما الداله فهي صحيحه ولا يوجد بها مشكله
- 16-12-2013, 04:47 AM #3
جزاك الله الفردوس الأعلى من الجنة
فعلا وجدت الخطأ في أن القيم تتجدد للمتغيرات مع كل حركة للسعر
تم حل المشكلة
شكرا جزيلا أستاذنا القدير