النتائج 1 إلى 8 من 8
الموضوع: طلب كود بسيط
- 23-05-2012, 11:04 PM #1
طلب كود بسيط
ممكن كود للاوامر المعلقة كالتالى
نفرض وصعنا امرين معلقين buystop and sellstop
على بعد عدد من النقاط
الكود المطلوب هو ادا تفعل الامر اى من الامرين المعلقين و وصل الى الهدف يحذف الامر المعلق الاخر
شكرا
- 24-05-2012, 12:24 AM #2
هو الكود صعب الى هده الدرجة!!!!!!!!
- 24-05-2012, 12:39 AM #3
الطريقة الأول عمل دالة لمعرفة عدد الصفقات المفتوحه
كود PHP:int orderscnt(int type){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol()&&OrderType()==type && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
}
return(cnt);
}
كود PHP:if(orderscnt(OP_BUY)==0&&orderscnt(OP_BUYSTOP)==1)//Delete Order
كود PHP:bool LastOrderProfit(){
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(OrderClosePrice()==OrderTakeProfit())return(true);
else return(false);
}
}
return(true);
}
كود PHP:if(orderscnt(OP_BUY)==0&&orderscnt(OP_BUYSTOP)==1&&LastOrderProfit())//Delete Order
- 24-05-2012, 12:41 AM #4
رد:طلب كود بسيط
تفضل
كود PHP:void deinit() {
Comment("");
}
int orderscnt(int type){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==type||type==-1){
cnt++;
}
}
}
return(cnt);
}
كود PHP:if(orderscnt(OP_BUY)+orderscnt(OP_SELL)==0&&orderscnt(OP_BUYSTOP)+orderscnt(OP_SELLSTOP)<2)DeletePendingOrders();
كود PHP:void DeletePendingOrders(){
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()>OP_SELL)
OrderDelete(OrderTicket());
}
}
- 24-05-2012, 12:43 AM #5
سوري مستر دولار ما انتبهت على ردك الا بعد الرد
- 24-05-2012, 12:47 AM #6
شكرا اخى على سرعة الرد
الكود الاول جربته من قبل لكنه لا يتوافق مع المطلوب لانه ممكن يكون اكثر من اورد مفتوح في الاتجاهين
الكود الثاني سيتم تجريبه
شكرا
- 24-05-2012, 01:03 AM #7
في هذه الحاله إجعل كل أمرين معلقين لهم مثلا كومنت متشابه ومختلف عن باقي الأوامر ثم قم بعمل داله للبحث عن الصفقات برقم الكومنت
وإذا كان هناك صفقة واحده فقط بنفس رقم الكومنت يتم حذفها لأن الصفقة الأخرى تفعلت
كود PHP:for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
string comment=OrderComment();int ticket=OrderTicket();
}
bool ordernotclosed;
for(int j=0;j<OrdersTotal();j++){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderComment()==comment&&OrderTicket()!=ticket){
ordernotclosed=true;break;
}
}
if(!ordernotclose)OrderDelete(ticket);
}
- 24-05-2012, 01:19 AM #8
بارك الله فيك اخى
فكرة الكومونت اظن راح تفي بالغرض
شكرا جزيلا
المشكل ليس في الاوامر المعلقة بل في المجال الضيق للتحكم فيها
راح نجرب الكومنت مختلف او مجك لكل صفقةآخر تعديل بواسطة المبرمج ، 24-05-2012 الساعة 01:28 AM