Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Скачай документацию одним файлом. Это просто!
Zaur
157
Zaur 2012.07.05 10:38 
Помогите составить рациональную функцию по закрытию всех ордеров(и buy и sell), просто не знаю как сделать так, чтобы советник после закрытия одного не возвращался в начало.
Victor Nikolaev
Модератор
14028
Victor Nikolaev 2012.07.05 10:51  
Red.Cloud:
Помогите составить рациональную функцию по закрытию всех ордеров(и buy и sell), просто не знаю как сделать так, чтобы советник после закрытия одного не возвращался в начало.


Скрипт

int start()
{  
   int total=OrdersTotal()-1;
   for (int i=total;i>=0;i--)
     {
        if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
        if (OrderType()<2) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),15,CLR_NONE);
        else OrderDelete(OrderTicket());
     }
}

Писал на коленке, могут быть ошибки

Zaur
157
Zaur 2012.07.05 11:09  
Vinin:


Скрипт

Писал на коленке, могут быть ошибки


void close()
{
int total=OrdersTotal()-1;
for (int i=total;i>=0;i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderType()<2) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),15,CLR_NONE);
else OrderDelete(OrderTicket());
}
}
а если вот так, но что нужно добавить, чтобы советник не выходил из этой функции пока не закроет все ордера?
PapaYozh
3768
PapaYozh 2012.07.05 11:11  
Vinin:


Скрипт

Писал на коленке, могут быть ошибки


У незакрытого ордера нет цены закрытия.
Victor Nikolaev
Модератор
14028
Victor Nikolaev 2012.07.05 11:25  
PapaYozh:

У незакрытого ордера нет цены закрытия.

Проверь прежде чем говорить
Victor Nikolaev
Модератор
14028
Victor Nikolaev 2012.07.05 11:27  
Red.Cloud:

void close()
{
int total=OrdersTotal()-1;
for (int i=total;i>=0;i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderType()<2) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),15,CLR_NONE);
else OrderDelete(OrderTicket());
}
}
а если вот так, но что нужно добавить, чтобы советник не выходил из этой функции пока не закроет все ордера?

Он и должен закрыть все ордера, свои, чужие - все закрыть. Хотя нужна обработка ошибок еще. Вдруг по каким-то причинам какой-то ордер будет не закрыт
PapaYozh
3768
PapaYozh 2012.07.05 11:28  
Vinin:

Проверь прежде чем говорить

т.е. имеем дело с недокументированной возможностью?
Victor Nikolaev
Модератор
14028
Victor Nikolaev 2012.07.05 12:07  
PapaYozh:

т.е. имеем дело с недокументированной возможностью?

Ну да, которой конечно лучше не пользоваться
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий