помощь с закрытием ордеров

 


  

 Добрый день, не могу понять почему не закрываются сделки. В чем ошибка? 

 
Roman Usenkov:


  

 Добрый день, не могу понять почему не закрываются сделки. В чем ошибка? 

Нажмите SRС, вставьте текстом - исправлю, картинками вставлять не надо.
 
Alexey Volchanskiy:
Нажмите SRС, вставьте текстом - исправлю, картинками вставлять не надо.
for(int i=0;i<OrdersTotal();i++)
           {
            if(OrderSelect(i,SELECT_BY_POS)==true)
              {
               if(OrderProfit()<0)
                 {
                  if(OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3);
                  if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3);
                 }
              }
           }
 
Roman Usenkov:
for(int i=0;i<OrdersTotal();i++)
           {
            if(OrderSelect(i,SELECT_BY_POS)==true)
              {
               if(OrderProfit()<0)
                 {
                  if(OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3);
                  if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3);
                 }
              }
           }

Написал же - нажмите в редакторе сообщения кнопку SRC и вставьте текст

Блин, опять сайт глючит, вырезал часть моего сообщения!!! Ненавижу этот движок...

 

for(int i=OrdersTotal()-1;i>=0;i--)
           {
            if(OrderSelect(i,SELECT_BY_POS)==true)
              {
               if(OrderProfit()<0)
                 {
                  if(OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),30, clrNone);
                  if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),30, clrNone);
                 }
              }
           }
 
Alexey Volchanskiy:

Написал же - нажмите в редакторе сообщения кнопку SRC и вставьте текст

for(int i=0;i<OrdersTotal();i++)
           {
            if(OrderSelect(i,SELECT_BY_POS)==true)
              {
               if(OrderProfit()<0)
                 {
                  if(OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3);
                  if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3);
                 }
              }
           }
 

замените цикл

for(int i=OrdersTotal()-1;i>=0;i--)
 
Alexander Bereznyak:

замените цикл

Нет, не работает
 

выполнение условия

if(OrderProfit()<0)
 
Alexander Bereznyak:

выполнение условия

что с ним? Даже если его убрать, все равно закрытие не происходит. Тут проблема в самих командах закрытия ордеров
 
ордера должны иметь отрицательный профит
 
Alexander Bereznyak:
ордера должны иметь отрицательный профит
верно, если они отрицательные, то должны закрываться
Причина обращения: