Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 519

 
Vasyl Nosal:

Posso chiedere perché si fa questo?

int total=OrdersTotal();

Devo aggiungere che se ci sono molti ordini, la funzione sarà chiamata ad ogni iterazione del ciclo, e questo non è economico.
 
Sergey Gritsay:
Perché mentre il ciclo è in esecuzione, il valore diOrdersTotal(); può cambiare e si può perdere un ordine o il corpo del ciclo si blocca

Alexey Kozitsyn:
Voglio aggiungere che se ci sono molti ordini, ad ogni iterazione del ciclo, lafunzione sarà chiamata, e non è economica.

State scherzando o fate sul serio?

 
Vasyl Nosal:

Alexey Kozitsyn:
Aggiungo che se ci sono molti ordini,la funzione sarà chiamata ad ogni iterazione del ciclo, e questo non è economico.

State scherzando o fate sul serio?

Ha un altro punto di vista?
 

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

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

int i=OrdiniTotali()-1

Questa azione viene eseguita una volta prima della prima iterazione. Non ha senso aggiungere altro. Basta rendere il codice più grande.

 
Vasyl Nosal:

in questo disegno è possibile, ma in questo disegno c'è la possibilità di un glitch

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

In questo disegno è possibile, ma in questo c'è la possibilità di un glitch

:)))))))

Su quali basi?

А.

Quindi ripassate sempre dalla fine.

 
Vasyl Nosal:

In questo caso, sì. E in questo caso:

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

}

c'è una differenza. Prima non hai specificato cosa intendevi.

 
Vasyl Nosal:

:)))))))

Su quali basi?

А.

Quindi ripassate sempre dalla fine.

Questo metodo non è sempre appropriato. Per esempio, se si vuole andare oltre dal primo ordine.
 
kashi_ann:
Sì, quindi è solo una questione di logica. Mi preoccupava di più il fatto che, oltre all'ordine delle azioni, bisogna anche tener conto del tempo di aggiornamento dei dati sul server.

I punti di arresto sono stati ovviamente utilizzati.

Credo che dovrò riscrivere tutto, è solo una sciocchezza.

Finalmente ho capito di cosa si trattava))))))))

Come al solito, ridicolmente semplice))

È solo un'applicazione sbagliata degli ordini pendenti) il prezzo è sceso e l'ordine limite con il prezzo d'acquisto era più alto))) Semplicemente non poteva essere collocato in quelle condizioni)

Aggiunta l'impostazione "stop order" e voilà, tutto è come dovrebbe essere))))

 
Alexey Kozitsyn:
Questo metodo non è sempre adatto. Per esempio, se avete bisogno di sforare a partire dal primo ordine.
E quando potrebbe essere necessario?
Motivazione: