Discusión sobre el artículo "Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XXVII): Trabajando con las solicitudes comerciales - Colocación de órdenes pendientes"
Casi 4 megabytes de código, y el esquema de la biblioteca y los métodos personalizados no se proporcionan... ¿Estás escribiendo para ti mismo?
Mira a través de los ojos de tus usuarios. Cómo es para ellos entender todo esto sin puntos de referencia.

- www.mql5.com
Otra pregunta: ¿hasta qué punto es "razonable" fijar una orden pendiente tras un corte de internet, sin volver a entrevistar al usuario? Si el usuario tarda una hora en volver a conectarse a Internet y la situación cambia radicalmente, ¿merece la pena fijar la orden automáticamente? ¿No es mejor dejar un mensaje diciendo que la orden no se ha establecido debido a la falta de conexión a Internet y que el usuario decida si debe establecerse de nuevo o no?
¿No describe el artículo el principio y por qué exactamente?
Concretamente en este artículo no se dice por qué se decide enviar una orden pendiente inmediatamente después de la conexión a Internet, sin sondeo repetido del usuario.
Hay una advertencia de que las órdenes pendientes presentadas en el artículo no se pueden utilizar en el comercio real. Es decir, todo son pruebas de concepto y nada más.
No hay ninguna explicación para establecer una orden después de volver a conectarse a Internet sin sondear al usuario.
¿Y realmente se necesitan varios artículos para probar un mecanismo sencillo de una solicitud de operación pendiente? Además, es más fácil y correcto sondear de nuevo al usuario y ya está.
Concretamente en este artículo no se dice por qué se decide enviar una orden pendiente inmediatamente después de la conexión a Internet, sin volver a preguntar al usuario.
Hay una advertencia de que las órdenes pendientes presentadas en el artículo no se pueden utilizar en el comercio real. Es decir, todo son pruebas de concepto y nada más.
No hay ninguna explicación para establecer una orden después de volver a conectarse a Internet sin preguntar al usuario.
¿Y realmente se necesitan varios artículos para probar un mecanismo sencillo de una solicitud de operación pendiente? Además, es más fácil y correcto sondear de nuevo al usuario y ya está.
No olvides que esto es sólo un artículo escrito para aquellos que quieren entender algo. Es sólo una pequeña lección de programación, no un Asesor Experto ya hecho. El artículo describe y muestra en el código cómo y qué hacer para lograr el resultado deseado. Si usted necesita hacer una encuesta de usuarios en su Asesor Experto, nadie le prohíbe hacerlo.
Concretamente en este artículo no se dice por qué se decide enviar una orden pendiente inmediatamente después de la conexión a Internet, sin volver a preguntar al usuario.
Hay una advertencia de que las órdenes pendientes presentadas en el artículo no se pueden utilizar en el comercio real. Es decir, todo son pruebas de concepto y nada más.
No hay ninguna explicación para establecer una orden después de volver a conectarse a Internet sin preguntar al usuario.
¿Y realmente se necesitan varios artículos para probar un mecanismo sencillo de una solicitud de operación pendiente? Además, es más fácil y correcto sondear de nuevo al usuario y ya está.
No olvide que esto es sólo un artículo escrito para aquellos que quieren entender algo. Es sólo una pequeña lección de programación, no un Asesor Experto ya hecho. El artículo describe y muestra en el código cómo y qué hacer para lograr el resultado deseado. Si usted necesita hacer una encuesta de usuarios en su Asesor Experto, nadie le prohíbe hacerlo.
1. Teniendo en cuenta a los que quieren entender, sería bueno hacer un esquema de biblioteca para facilitar la orientación sobre el material.
2. Cada modificación realizada por el autor en las funciones comerciales no es motivo para imprimirlas en cada artículo. El material está hinchado. Las mismas funciones comerciales se intercambian de un artículo a otro con pequeños cambios. ¿Ahora habrá códigos de solicitudes pendientes? Esto no aclara, sino que confunde al lector.
3. Pronto habrá 30 artículos y el autor advierte que no se debe utilizar la biblioteca. ¿Para qué sirve entonces? ¿Para enseñar a escribir una biblioteca cuyo uso es indeseable?
1. Atendiendo a los que quieren entender, estaría bien hacer un diagrama de biblioteca para facilitar la navegación por el material.
2. Cada modificación hecha por el autor en las funciones comerciales no es una razón para imprimirlas en cada artículo. 3. El material está hinchado. Las mismas funciones comerciales se intercambian de un artículo a otro con pequeños cambios. ¿Ahora habrá códigos de solicitudes pendientes? Esto no aclara, sino que confunde al lector.
3. Pronto habrá 30 artículos y el autor advierte que no se debe utilizar la biblioteca. ¿Para qué sirve entonces? ¿Para enseñar a escribir una biblioteca cuyo uso es indeseable?
¿Come carne picada cruda? Aquí, para que no lo coma, y se da una advertencia - en este y el último artículo es preparar el material y depurar el concepto.
Creo que los artículos deberían tener soluciones completas. ¿Y qué hay que depurar?
Si la comunicación con el servidor se interrumpió, registrar los datos de la orden, establecer la bandera de volver a comprobar la comunicación con el servidor. Volvemos a comprobar en un bucle hasta que se establezca la conexión. Una vez restablecida la comunicación, preguntamos al usuario si desea establecer la orden fallida. En caso afirmativo, la devolvemos, eliminamos la bandera y borramos los datos de la orden de la lista de órdenes fallidas. En general, todo el concepto.

- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XXVII): Trabajando con las solicitudes comerciales - Colocación de órdenes pendientes:
En el presente artículo, continuaremos trabajando con las solicitudes comerciales e implementaremos la colocación de órdenes pendientes. Asimismo, corregiremos algunos errores localizados en el funcionamiento de la clase comercial.
En el artículo anterior, comenzamos a implementar solicitudes comerciales pendientes y creamos la primera solicitud pendiente para abrir una posición en el caso de que obtuviésemos un error en la clase comercial después de enviar una solicitud al servidor. Hoy, continuaremos el desarrollo de la clase comercial, centrándonos en el trabajo con las solicitudes pendientes, y también implementaremos la creación de una solicitud pendiente cuando se dé un error al colocar órdenes pendientes.
Durante la simulación de la clase comercial, hemos detectado algunos errores cometidos en su diseño. En particular, a los objetos comerciales de los símbolos, al inicializarlos en el constructor de la clase, se les asignaban valores por defecto rigurosamente establecidos, que podían no tener soporte en las especificaciones del símbolo. Esto provocaba errores obtenidos desde el servidor al intentar colocar órdenes pendientes: el servidor generaba el error de tipo soportado de expiración de la orden, y este error no se corregía en ninguna parte, lo que finalmente provocaba que no fuese posible colocar la orden. Al enviar una solicitud comercial con los valores por defecto, a la solicitud comercial también se le enviaban ciertos datos que carecían de soporte, y que posteriormente no eran corregidos en ninguna parte. Para encontrar una salida a esta situación, debíamos indicar directamente en la solicitud comercial los datos correctos, que se correspondiesen con las especificaciones del símbolo en el que se tendría que realizar la operación comercial.
Y esto resulta muy incómodo, dado que requiere conocimientos obligatorios sobre las especificaciones del símbolo y la introducción de los valores exactos manualmente, en lugar de permitir al usuario confiar la corrección automática de los valores a la propia biblioteca. Por eso, vamos a introducir ciertas correcciones en la lógica del trabajo con la clase comercial, de forma que todos los objetos comerciales de los símbolos se inicialicen seleccionando automáticamente los valores correctos en el asesor, en el manejador OnInit(). A los métodos comerciales de la clase comercial se les transmitirán por defecto valores -1 para los tipos de rellenado y expiración de órdenes, lo que será una señal para utilizar los valores por defecto establecidos correctamente con anterioridad. Si se transmite otro valor desde el programa al método comercial, se utilizará este; si el valor resulta erróneo, será corregido al procesar los errores en la clase comercial.Autor: Artyom Trishkin