// Ðàçâåðíóòü âñå îðäåðà.mq4 // Ñêðèïò #property copyright "mandorr@gmail.com" #include <WinUser32.mqh> void start() { int i=0, count=0; int cmd[]; int ticket[]; double lots[]; string symbol[]; string type[]; for (i=0; i<OrdersTotal(); i++) { if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break; if (OrderType()==OP_BUY || OrderType()==OP_SELL) { ArrayResize(cmd,count+1); ArrayResize(ticket,count+1); ArrayResize(lots,count+1); ArrayResize(symbol,count+1); ArrayResize(type,count+1); cmd[count]=OrderType(); ticket[count]=OrderTicket(); lots[count]=OrderLots(); symbol[count]=OrderSymbol(); if (OrderType()==OP_BUY) type[count]="Buy"; else type[count]="Sell"; count++; } } string space=" "; string title="Êàðî÷å"; string msg="Ðàçâåðíóòü:"+"\n"; for (i=0; i<count; i++) msg=msg+"\n"+"Order "+ticket[i]+" "+type[i]+" "+DoubleToStr(lots[i],1)+" Lots "+symbol[i]+space; if (MessageBox(msg,title,MB_YESNO|MB_ICONQUESTION)!=IDYES) { title="Àõà"; string ends=""; if (count>1) ends="è"; msg="Íó è õðåí ñ íèì"+ends+" ... "; MessageBox(msg,title,MB_OK|MB_ICONEXCLAMATION); return; } for (i=0; i<count; i++) { if(!OrderSelect(ticket[i],SELECT_BY_TICKET)) continue; double ask=MarketInfo(symbol[i],MODE_ASK); double bid=MarketInfo(symbol[i],MODE_BID); int slippage=3; if (cmd[i]==OP_BUY ) { OrderClose(ticket[i],lots[i],bid,slippage); OrderSend(symbol[i],OP_SELL,lots[i],bid,slippage,0,0,NULL,0,0); } if (cmd[i]==OP_SELL) { OrderClose(ticket[i],lots[i],ask,slippage); OrderSend(symbol[i],OP_BUY ,lots[i],ask,slippage,0,0,NULL,0,0); } } } // End
Sample
Analysis
Market Information Used:
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Checks for the total of open orders
It Closes Orders by itself
It automatically opens orders when conditions are reached
Other Features:
It opens Message Boxes to the user