Errores, fallos, preguntas - página 1432

 
Alexey Kozitsyn:

La función OrderGetTicket() devolverá el ticket del pedido cuyo índice se le ha pasado.

Para la segunda pregunta, OrderGetTicket() devuelve el ticket y selecciona el pedido para trabajar con él.

Gracias, Capitán O. ¿Y cómo se define el orden de los índices en la lista de todos los pedidos?

OrderGetTicket devuelve el ticket de la orden con el número pasado en la lista, no el número de la orden actualmente seleccionada por la que preguntaba.

 
Ilya Malev:

Gracias, Capitán O. ¿Y cómo se determina el orden de los índices en la lista de todos los pedidos?

OrderGetTicket devuelve el ticket de la orden con el número pasado en la lista, no el número de la orden actualmente seleccionada por la que preguntaba.

Que yo recuerde el más antiguo (primero) = 0, etc. Compruébalo, es un trabajo de 5 minutos.

Este es el orden que ha seleccionado. ¿Cómo se ha seleccionado? ¿Por número o por billete?

En resumen, hay dos formas: por número y por billete. Hasta ahora, en mi práctica, no ha habido ninguna situación en la que esto no sea suficiente.

 
Alexey Kozitsyn:

Compruébalo, sólo te llevará cinco minutos.

Por supuesto que puedo comprobarlo yo mismo. Necesita una confirmación de los desarrolladores, porque el resultado de la comprobación puede ser situacional o cambiar arbitrariamente en el futuro.

>>Su pedido ha sido seleccionado. ¿Cómo se ha seleccionado? ¿Por número o por billete?

Es una pregunta adicional en MT4, no me importaba como se seleccionaba pero necesitaba saber su entrada para hacer algo con ella fuera de la función que la seleccionaba. En MT5 parece que habrá que resolverlo programáticamente, al igual que otras muchas cosas.

Alexey Kozitsyn:

Hasta ahora no ha habido ninguna situación en mi consulta en la que no haya sido suficiente.

Hay muchas situaciones de este tipo en mi consulta. Ocurre siempre que se quiere ahorrar en el tamaño del código en cuanto a los parámetros pasados al llamar a funciones que se ocupan de las órdenes.
 

No sólo eso, por cierto: imagine una situación en la que está trabajando con una orden que acaba de seleccionar, pero necesita llamar a una función para obtener información de otras órdenes.

Después de llamar a esta función, tendrá que seleccionar el pedido de nuevo, porque esta función modifica la selección actual obteniendo alguna información de otros pedidos.

Sería lógico que todas estas funciones recordaran la selección de orden actual antes de ejecutarlas y la volvieran a seleccionar antes de regresar, de modo que la selección de orden actual no cambie cuando se llamen dichas funciones, lo que puede ayudar a evitar algunos errores lógicos difíciles de encontrar en el código. Pero en MT5 esto simplemente no es posible ya que no hay un análogo de la función OrderTicket y tenemos que inventar una envoltura del programa en forma de una clase especial para la selección de la orden y obtener su ticket.

 
Ilya Malev:

No sólo eso, por cierto: imagine una situación en la que está trabajando con una orden que acaba de seleccionar, pero necesita llamar a una función para obtener información de otras órdenes.

Cuando se llame a esta función, tendrá que seleccionar el pedido de nuevo, porque esta función modifica la selección actual obteniendo alguna información de otros pedidos.

Sería lógico que todas estas funciones recordaran la selección de orden actual antes de ejecutarlas y la volvieran a seleccionar antes de regresar, de modo que la selección de orden actual no cambie cuando se llamen dichas funciones, lo que puede ayudar a evitar algunos errores lógicos difíciles de encontrar en el código. Pero en MT5 esto simplemente no es posible ya que no hay un análogo de la función OrderTicket y tenemos que inventar una envoltura del programa en forma de una clase especial para la selección de la orden y obtener su ticket.

No veo ningún problema. Hemos seleccionado la orden. Nos hemos acordado de su billete. Necesitamos otra orden - encontramos otra orden. Lo procesamos. Para volver a la orden anterior, utilizamos OrderSelect(). Eso es todo.
 
Alexey Kozitsyn:
No veo el problema. Recogí un pedido. Recordó su billete. Necesito otro pedido - encontré otro pedido. Lo procesamos. Para volver a la orden anterior, utilizamos OrderSelect(). Eso es todo.
Si el problema es algo que no se puede obviar y hacer de otra manera, entonces no hay problema. Pero tampoco hay un análogo de la función OrderTicket de MQL4 que sea útil.
 
Ilya Malev:
Si el problema es algo que no se puede obviar y hacer de otra manera, entonces no hay problema. Pero tampoco existe un análogo de la útil función OrderTicket de MQL4.
Si realmente lo necesitas, ya sabes dónde pedirlo. Sin embargo, es poco probable que seas feliz allí.
 
MT4, build 910. No hay compatibilidad con la versión anterior. Le doy un archivo de indicador compilado a una persona en la build 910 y no puede lanzarlo en la build 902 con un error:

tiene una versión más reciente no soportada, por favor actualice su terminal cliente


¿Es así como será ahora?

 
Artyom Trishkin:
MT4, build 910. No hay compatibilidad con la versión anterior. Le doy un archivo de indicador compilado a una persona en la build 910 y no puede lanzarlo en la build 902 con un error:

tiene una versión más reciente no soportada, por favor actualice su terminal cliente


¿Es así como será ahora?

Lo mismo ocurrió en MT5 cuando introdujeron los ticks.
 
Artyom Trishkin:
MT4, build 910. No hay compatibilidad con la versión anterior. Le doy un archivo de indicador compilado a una persona en la build 910 y no puede lanzarlo en la build 902 con un error:

tiene una versión más reciente no soportada, por favor actualice su terminal cliente


¿Es así como será ahora?

Sí, así es como se supone que funciona. Hubo cambios en el compilador en la compilación 910, respectivamente, el ex4 generado por el compilador actualizado no puede ejecutarse en las versiones anteriores de la terminal.

Razón de la queja: