Milord
Местный знаток
спасибо за быстрый ответ, жаль нет логики работы,впрочем будем посмотреть))PHP://////////////////////////////////////////////////////////////////////////////// void Close_all() { for(int i=OrdersTotal()-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS)) { if(OrderMagicNumber()==magic) { if(OrderSymbol()==Symbol()) { bool ticket_ex=false; for (int j_ex = 0;j_ex < MaxAttempts; j_ex++) { while(IsTradeContextBusy()) Sleep(pause_if_busy*1000); RefreshRates(); if(OrderType()==OP_BUY ) ticket_ex=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Yellow); if(OrderType()==OP_SELL) ticket_ex=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Yellow); if(OrderType()==OP_SELLSTOP || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYLIMIT) ticket_ex=OrderDelete(OrderTicket(),CLR_NONE); if(ticket_ex==true)break; } } } } } }
думаю можно код упростить, вопрос будет ли он работать, например отложек у меня нет,магик не важен,символ валюты текущий по счету....вот что получилось...гляньте плиз свежим взглядом будет ли так работать? и куда "пихать" этот кусок кода,я пока что начинающий "ас" MQL4)))
надеюсь дочитать ваши уроки программирования...)
PHP:
void Close_all()
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
bool ticket_ex=false;
for (int j_ex = 0;j_ex < MaxOrders; j_ex++)
{
while(IsTradeContextBusy()) Sleep(pause_if_busy*1000);
RefreshRates();
if(OrderType()==OP_BUY ) ticket_ex=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Yellow);
if(OrderType()==OP_SELL) ticket_ex=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Yellow);
ticket_ex=OrderDelete(OrderTicket(),CLR_NONE);
if(ticket_ex==true)break;
}
}
}
}
}
}
Последнее редактирование: