Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 519

 
Vasyl Nosal:

¿Puedo preguntar por qué se hace esto?

int total=Total de pedidos();

Debo añadir que si hay muchos pedidos, la función será llamada en cada iteración del bucle, y esto no es económico.
 
Sergey Gritsay:
Porque mientras se ejecuta el bucle, el valor deOrdersTotal(); puede cambiar y puede perderse un pedido o el cuerpo del bucle fallará

Alexey Kozitsyn:
Quiero añadir, que si hay muchos pedidos, en cada iteración del bucle,se llamará a lafunción, y no es económico.

¿Están bromeando o van en serio?

 
Vasyl Nosal:

Alexey Kozitsyn:
Añadiré que si hay muchos pedidos,la función será llamada en cada iteración del bucle, y esto no es económico.

¿Están bromeando o van en serio?

¿Tienes otro punto de vista?
 

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

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

int i=Total de pedidos()-1

Esta acción se ejecuta una vez antes de la primera iteración. No tiene sentido añadir nada más. Sólo se hace el código más grande.

 
Vasyl Nosal:

en este diseño es posible, pero en este diseño existe la posibilidad de un fallo

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

En este diseño es posible, pero en éste existe la posibilidad de un fallo

:)))))))

¿En qué se basa?

А.

Por lo tanto, siempre hay que repasar desde el final.

 
Vasyl Nosal:

En este caso, sí. Y en este caso:

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

}

hay una diferencia. No has especificado antes a qué te referías.

 
Vasyl Nosal:

:)))))))

¿En qué se basa?

А.

Por lo tanto, siempre hay que repasar desde el final.

Este método no siempre es adecuado. Por ejemplo, si quieres repasar desde el primer pedido.
 
kashi_ann:
Sí, es una cuestión de lógica. Me preocupaba más que aparte del orden de las acciones, también hay que tener en cuenta el tiempo de actualización de los datos en el servidor.

Por supuesto, se han utilizado los puntos de parada.

Supongo que tendré que reescribirlo todo, es una tontería.

Por fin me he dado cuenta de lo que se trata ))))))))

Como siempre, ridículamente sencillo))

Es sólo una aplicación errónea de las órdenes pendientes) el precio bajó y la orden limitada con el precio de compra fue mayor)) Simplemente no se podía colocar en esas condiciones)

Añadido el ajuste de la "orden de parada" y voila, todo es como debe ser))))

 
Alexey Kozitsyn:
Este método no siempre es adecuado. Por ejemplo, si necesita sobrepasar la orden más antigua.
¿Y cuándo puede ser necesario?