Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 519

 
Vasyl Nosal:

Posso perguntar porque se faz isto?

int total=OrdensTotal();

Devo acrescentar que se houver muitas ordens, a função será chamada em cada iteração do laço, e isto não é económico.
 
Sergey Gritsay:
Porque enquanto o laço está a correr, o valor deOrderTotal(); pode mudar e pode falhar uma ordem ou o corpo do laço irá falhar

Alexey Kozitsyn:
Quero acrescentar, se houver muitas ordens, a cada iteração do laço, afunção será chamada, e não é económica.

Estão ambos a brincar ou a brincar a sério?

 
Vasyl Nosal:

Alexey Kozitsyn:
Acrescentarei, se houver muitas ordens,a função será chamada em cada iteração do laço, e isto não é económico.

Estão ambos a brincar ou a brincar a sério?

Tem outro ponto de vista?
 

Alexey Kozitsyn:
У Вас другая точка зрения?

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

int i=OrdensTotal()-1

Esta acção é executada uma vez antes da primeira iteração. Não vale a pena acrescentar mais nada. Basta tornar o código maior.

 
Vasyl Nosal:

neste desenho é possível, mas neste desenho há a possibilidade de uma falha

for(int i=0; i<total; i++)
 
Sergey Gritsay:

Neste desenho é possível, mas neste há a possibilidade de uma falha

:)))))))

Com que fundamentos?

А.

Por isso, passar sempre do fim para o fim.

 
Vasyl Nosal:

Neste caso, sim. E, neste caso:

for(int i=0; i<OrdersTotal(); i++)
{

}

há uma diferença. Não especificou anteriormente o que queria dizer.

 
Vasyl Nosal:

:)))))))

Com que fundamentos?

А.

Por isso, passar sempre do fim para o fim.

Este método nem sempre é apropriado. Por exemplo, se quiser rever desde a encomenda mais antiga.
 
kashi_ann:
Sim, por isso é apenas uma questão de lógica. Estava mais preocupado com o facto de, para além da ordem das acções, também ter de ter em conta o tempo de actualização dos dados no servidor.

Os pontos de paragem foram, evidentemente, utilizados.

Acho que vou ter de reescrever tudo, é apenas um disparate.

Finalmente descobri do que se tratava))))))))

Como de costume, ridiculamente simples))

É apenas uma aplicação errada de ordens pendentes) o preço foi mais baixo e a ordem limite com o preço de compra foi mais alta))))) Não podia ser colocado sob essas condições)

Adicionada a definição de "ordem de paragem" e voilá, tudo é como deve ser))))

 
Alexey Kozitsyn:
Este método nem sempre é adequado. Por exemplo, se precisar de ultrapassar a ordem mais antiga.
E quando poderá isto ser necessário?