Qual é o projeto correto?

 

Assim

void Close_All()
{
  int Total = OrdersTotal();
  for (int i=0; i < Total; i++)   //требует уточнения эта строка                                                     
  {                                                                                          
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
    {
      switch(OrderType())
      {
        case OP_BUY : OrderClose(OrderTicket(),OrderLots(),Bid,5); break;
        case OP_SELL: OrderClose(OrderTicket(),OrderLots(),Ask,5); break;
        default     : break;
      }        
    }
  }  
} 

ou como este...

void Close_All()
{
  int Total = OrdersTotal();
  for (int i=1; i <= Total; i++)                                                        
  {                                                                                          
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
    {
      switch(OrderType())
      {
        case OP_BUY : OrderClose(OrderTicket(),OrderLots(),Bid,5); break;
        case OP_SELL: OrderClose(OrderTicket(),OrderLots(),Ask,5); break;
        default     : break;
      }        
    }
  }  
}

e esta função fechará todas as encomendas?

Tenho apenas um pedido fechado por alguma razão, não consigo descobrir a razão.

 
Ambos são uma perda de tempo.
 
TheXpert:
Ambos são uma perda de tempo.


Por quê?
 
valenok2003:


Por quê?


Porque é melhor assim:

int Total = OrdersTotal();
  for (int i=Total; i>=1; i--)
   if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)
...
 
valenok2003:


CAMINHO Por quê?
PATAMU que nenhuma de suas opções fechará TODAS as ordens se houver mais de 1.
 

mesmo uma única encomenda... não pode fechar...

 

OrdensTotal() - Retorna o número total de ordens em aberto e pendentes

Para OrderSelect() - A numeração começa com um ou zero?

 
valenok2003:

OrdensTotal() - Retorna o número total de ordens em aberto e pendentes

Para OrderSelect() - a numeração começa com um ou zero?

Pense no que acontece com a numeração depois que pelo menos um pedido é fechado.

A numeração começa de zero.

 
O primeiro é basicamente correto, fechará todas as encomendas, mas temos que normalizar os preços de fechamento. A segunda falha, nem todas as ordens serão fechadas (o ciclo não está correto)
 

Sim, entendi, muitas férias são ruins para o cérebro. ))))

Obrigado!

 
Techno:
O primeiro é basicamente correto, fechará todas as encomendas, mas temos que normalizar os preços de fechamento. A segunda falha, nem todas as ordens serão fechadas (o laço não está correto)


Não será assim.

Se você não acredita em mim, faça uma experiência em uma demonstração.