Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 708

 
Rustam Bikbulatov:
Hola chicos. ¿Pueden decirme por qué tengo un par de docenas de pedidos que se cierran en un orden escalonado o diferente? ¿Cómo debo arreglarlo? ¿Existe un método para cerrar de una vez?

al cerrar - cambiar el orden de los pedidos

es decir, el bucle debe ser

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

al menos :-)

P.D. Siempre que se haya pisado "el tema", a veces puede ser útil cerrar las órdenes en un orden "escalonado".
 
Maxim Kuznetsov:

al cerrar - cambiar el orden de los pedidos

es decir, debe haber un ciclo

al menos :-)

P.D. Ya que lo has pisado de todos modos,a veces puede ser útil cerrar las órdenes en un orden "escalonado" .

Si es un cierre controlado ;)

En general (aunque tu comentario es correcto) la pregunta se refería al "método de cierre de una vez", que no se puede hacer en un bucle.

Aquí hay que abrir la posición contraria con un lote igual a la suma de los lotes de todas las posiciones abiertas para el bloqueo, y luego cerrar tranquilamente con una posición contraria.

 
Artyom Trishkin:

Si es un cierre controlado ;)

Y en general (aunque tu comentario es correcto) la pregunta era sobre el "método de cierre de una vez", que no se puede hacer en un bucle.

Hay que abrir la posición contraria con un lote igual a la suma de lotes de todas las posiciones abiertas para el bloqueo, y luego cerrar tranquilamente la contraria.

¿Y qué le impide cerrar las órdenes en orden?

 
Rustam Bikbulatov:

¿y qué impide que los pedidos se cierren en orden?

Desplazamiento de los índices de las órdenes en la lista de mercado cuando se eliminan en un bucle directo de cero a OrdersTotal()-1.

 
Rustam Bikbulatov:

¿qué impide que los pedidos se cierren en orden?

O bien se cierran todas las posiciones abiertas en el ciclo inverso de OrdersTotal()-1 a >=0 en orden de su orden en la lista, o se abre una posición opuesta para el bloqueo, y luego se cierran tranquilamente las posiciones requeridas con una opuesta.

 
¡Gracias Artem!
 
Artyom Trishkin:

Si es un cierre controlado ;)

En general (aunque tu punto es correcto) la pregunta era sobre el "método de cierre de una vez", que no puede hacerse en un bucle.

Aquí hay que abrir la posición contraria con un lote igual a la suma de los lotes de todas las posiciones abiertas para el bloqueo, y luego ya tranquilamente cerrar con el contador

El método de cierre más adecuado es llamar a su agente: "John, cierra la posición en General Electric, hemos acordado todo".

:-)

No siempre es posible cubrir con el volumen contrario. Y se desliza con más fuerza: el volumen es grande.

 
Artyom Trishkin:

Desplazamiento de los índices de las órdenes en la lista de mercado al borrarlas en secuencia directa de cero a OrdersTotal()-1.

He visto el código para cerrar órdenes en una secuencia directa y funcionó sin fallos.

Allí sólo se incrementaba el contador del bucle en uno cuando se cerraba una orden con éxito. )))) ¿O se redujo? No lo recuerdo exactamente y no puedo estrujar mi cerebro.

 
Maxim Kuznetsov:

El método más correcto de cierre es llamar a su agente: "John, cierra la posición en General Electric, hemos acordado todo".

:-)

No siempre es posible cubrir con el volumen del contador. Y se desliza con más fuerza: el volumen es alto.

Pero todo a la vez :) Y en bucle, de uno en uno.

 
Alexey Viktorov:

He visto el código para cerrar las órdenes en una secuencia directa y ha funcionado sin problemas.

Simplemente incrementaba el contador del bucle en uno cuando la orden se cerraba con éxito. )))) ¿O disminuyó? No lo recuerdo exactamente, y no puedo forzar mi cerebro.

Para no forzar tu cerebro, puedes reunir todas las posiciones que has preparado para borrar en una lista en el orden que quieras (en el orden que quieras), y borrarlas "nombre por nombre" mirando la lista. De este modo, se mantendrá el orden correcto de borrado.