Discusión sobre el artículo "Transacciones comerciales. Estructuras de solicitud y respuesta, descripción y registro."
Artículo publicado Transacciones comerciales. Estructuras de solicitud y respuesta, descripción y salida de registro:
Autor: Artyom Trishkin
Gracias, Artyom, por concentrar toda la información necesaria en un solo artículo. Lo he añadido a mis favoritos.
Saludos, Vladimir.
Gracias por el interesante artículo. Pero es una lástima que se preste muy poca atención a la función OrderCheck()
Espero un artículo aparte dedicado a esta útil función...
Gracias por el interesante artículo. Pero es una lástima que se preste muy poca atención a la función OrderCheck()
Espero un artículo aparte dedicado a esta útil función...
En algunas versiones antiguas de MT5 me encontré con que OrderCheck() a veces rechazaba peticiones que en realidad se ejecutaban con bastante éxito. Me di por vencido y no quiero volver a probar estos errores en robots de combate, a pesar de que pueden haber sido corregidos.
Gracias por el interesante artículo. Pero es una lástima que se preste muy poca atención a la función OrderCheck()
Espero un artículo aparte dedicado a esta útil función...
Estaba escribiendo una "ayuda extendida" - mucha información de referencia. Y todo sobre OrderCheck es lacónico y despejado. Y no hay excesos en sí mismo. He descrito qué, qué y cómo se rellenan los campos. No se rellenan en todos los casos. La respuesta de la función con el código es casi siempre "OK", porque estoy acostumbrado a rellenar correctamente la solicitud de operación. Si se toma la situación acerca de "casi", es a propósito introducido datos incorrectos para comprobar el trabajo. Es decir, no tengo ni idea de qué describir allí, e incluso para un artículo.
Estaba escribiendo algo de "ayuda ampliada": mucha información de fondo. Pero todo sobre OrderCheck parece conciso y despejado. Y no hay excesos en sí mismo. He descrito qué, qué y cómo se rellenan los campos. No se rellenan en todos los casos. La respuesta de la función con el código es casi siempre "OK", porque estoy acostumbrado a rellenar la solicitud de comercio correctamente. Si se toma la situación acerca de "casi", es a propósito introducido datos incorrectos para comprobar el trabajo. Es decir, no tengo ni idea de qué describir allí, e incluso para un artículo.
Por lo menos pocas personas han leído cuidadosamente la estructura de MqlTradeCheckResult
struct MqlTradeCheckResult { uint retcode; // Código de respuesta double balance; // Saldo después de la transacción double equity; // Patrimonio neto después de la transacción double profit; // Beneficio Flotante double margin; // Requisitos de margen double margin_free; // Margen libre double margin_level; // Nivel de margen string comment; // Comentario al código de respuesta (descripción del error) };
Y más a menudo dicen que esta función está destinada exclusivamente, como está escrito en la documentación
La función OrderCheck() comprueba la suficiencia de fondos para la operación comercial requerida.
Pero vale la pena prestar atención a los campos de la estructura "Saldo después de ..." y "Capital después de ...". No me refiero en absoluto a los "Requisitos de margen". Estos parámetros son muy útiles. Por ejemplo, si después de realizar una operación quedan "cuarenta kopeks" de capital en la cuenta... ¿Es necesario realizar dicha operación, aunque haya fondos suficientes y los demás parámetros de la orden estén en orden? Por supuesto, es posible obtener este valor por otro método, pero en mi opinión es mucho más favorable obtener varios parámetros útiles por una sola función.
Y de acuerdo con mi experiencia de uso, el código de respuesta corrige los precios SL y/o TP incorrectos en caso de una comprobación exitosa. Y no sólo ellos. Sobre esto me gustaría conseguir un artículo. Sobre que otros códigos funcionan...
Desafortunadamente OrderCheck() no reporta un error.
10018 | TRADE_RETCODE_MARKET_CLOSED | El mercado está cerrado. |
Así que tal vez los desarrolladores finalmente presten atención a este problema...
Al menos pocas personas leen atentamente la estructura de MqlTradeCheckResult
Y lo más frecuente es que digan que esta función está pensada exclusivamente, como está escrito en la documentación
Pero vale la pena prestar atención a los campos de la estructura "Saldo después de ..." y "Capital después de ...". No me refiero en absoluto a "Requisitos de margen". Estos parámetros son muy útiles. Por ejemplo, si quedan "cuarenta kopeks" de capital en la cuenta después de realizar una operación... ¿Es necesario realizar dicha operación, aunque haya fondos suficientes y los demás parámetros de la orden estén en orden? Por supuesto es posible obtener este valor por otro método, pero en mi opinión es mucho más favorable obtener varios parámetros útiles por una sola función.
Y de acuerdo a mi experiencia de uso, el código de respuesta corrige los precios SL y/o TP incorrectos en caso de una comprobación exitosa. Y no solo ellos. Sobre esto me gustaría conseguir un artículo. Sobre que otros códigos funcionan...
Desafortunadamente OrderCheck() no reporta un error
10018 | TRADE_RETCODE_MARKET_CLOSED | Mercado cerrado |
Así que tal vez los desarrolladores finalmente prestar atención a este problema....
No entiendo de qué SL y TP estás hablando? No están en los campos de la estructura ...
Y sobre la equidad, el saldo después de la transacción ... Bueno ..., ya sabes, yo estaba pensando en decir que es útil saber que, y que estos datos deben ser analizados antes de enviar una orden al servidor. ¿Pero no he dicho eso? O debería haber dejado claro que no hay que abrir una posición si luego no tienes para un bollo ) ... . Pero ya ves, lo he pensado y creo que está claro. Por eso acabo de escribir que se pueden analizar los campos rellenos de esta estructura. Y sobre que no se devuelve "Mercado cerrado" no escribí (aunque quería) simplemente porque se me olvidó ). Y pensé que estos son los códigos de retorno del servidor de comercio. Son para todos los casos de la vida. Al parecer, este código no es para este caso. Devuelve normalmente en OrderSend. Aunque sí, para comprobar si el mercado está cerrado, es necesario enviar una orden - una solución débil. Pero lo que hay.
No entiendo de qué SL y TP estás hablando? No están en los campos de estructura...
Me refiero a los códigos
10014 | TRADE_RETCODE_INVALID_VOLUME | Volumen incorrecto en la consulta |
10015 | TRADE_RETCODE_INVALID_PRICE | Precio incorrecto en la consulta |
10016 | TRADE_RETCODE_INVALID_STOPS | Paradas incorrectas en la solicitud |
Estos códigos son devueltos a la estructura MqlTradeCheckResult y son perfectamente analizados.
En otras palabras, si usted no quiere escribir, o Rashid no da la bienvenida, no insisto.
Me refiero a los códigos
10014 | TRADE_RETCODE_INVALID_VOLUME | Volumen incorrecto en la solicitud |
10015 | TRADE_RETCODE_INVALID_PRICE | Precio incorrecto en la solicitud |
10016 | TRADE_RETCODE_INVALID_STOPS | Paradas incorrectas en la solicitud |
Estos códigos son devueltos a la estructura MqlTradeCheckResult y son perfectamente analizados.
En otras palabras, si no quieres escribir, o Rashid no lo ve con buenos ojos, no insisto.
Bueno, ¿qué se puede escribir aquí, excepto "Usted puede analizar los códigos de respuesta"? Bueno, una persona recibió un código de este tipo - está claro que las paradas están mal. Así que hay que procesarlo programáticamente para que no haya paradas incorrectas. El análisis de los códigos de respuesta es también el análisis. Así como los campos de estructura. Es decir, todo lo dicho, analizar y sacar conclusiones. ¿O usted piensa que usted necesita para describir cada respuesta del servidor y qué acciones se deben hacer en este caso? Bueno, esto se implementa en la biblioteca, que aún no he terminado de escribir, pero el comercio se ha hecho allí durante mucho tiempo. Con un análisis completo y haciendo ajustes. ¿Por qué repetirse?
Bueno, ¿qué se puede escribir aquí, excepto "Usted puede analizar los códigos de respuesta".... Bueno, una persona recibió un código de este tipo - está claro que las paradas no son correctas. Así que debe ser procesado mediante programación para que no haya paradas incorrectas. El análisis de los códigos de respuesta es también el análisis. Así como los campos de estructura. Es decir, todo lo dicho, analizar y sacar conclusiones. ¿O usted piensa que usted necesita para describir cada respuesta del servidor y qué acciones se deben hacer en este caso? Bueno, esto se implementa en la biblioteca, que aún no he terminado de escribir, pero el comercio se ha hecho allí durante mucho tiempo. Con un análisis completo y haciendo ajustes. ¿Por qué repetirse?
Con el fin de obtener y analizar el código de retorno, usted debe por lo menos entender lo que esta función es y entender su utilidad. Esto es exactamente lo que estoy hablando. El artículo dará una comprensión ampliada de la función, no sólo una descripción de la documentación.
Foro sobre trading, sistemas de trading automatizados y prueba de estrategias de trading
Alexey Viktorov, 2023.08.03 13:40
Al menos pocas personas leen cuidadosamente la estructura de MqlTradeCheckResult
struct MqlTradeCheckResult { uint retcode; // Código de respuesta double balance; // Saldo después de la transacción double equity; // Patrimonio neto después de la transacción double profit; // Beneficio Flotante double margin; // Requisitos de margen double margin_free; // Margen libre double margin_level; // Nivel de margen string comment; // Comentario al código de respuesta (descripción del error) };
Y la mayoría de las veces dicen que esta función está destinada exclusivamente, como está escrito en la documentación
La función OrderCheck() comprueba la suficiencia de fondos para laoperación comercialrequerida.
Foro sobre trading, sistemas automatizados de trading y prueba de estrategias de trading
Alexey Viktorov, 2023.08.03 19:55
Si no quieres escribir, o a Rashid no le parece bien, no insisto.
Aunque sí, para comprobar si el mercado está cerrado, es necesario enviar una orden - una solución débil. Pero es así.
¿Sigue siendo una tarea tan imposible para los creadores del lenguaje de programación MQL5 - la función MarketClosed sin bailar la pandereta?
Saludos, Vladimir.

- 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 Transacciones comerciales. Estructuras de solicitud y respuesta, descripción y registro.:
En el presente artículo veremos cómo trabajar con las estructuras de las solicitudes comerciales: la creación de una solicitud, su verificación preliminar antes de enviarla al servidor, la respuesta del servidor a una solicitud comercial y la estructura de las transacciones comerciales. Asimismo, crearemos funciones simples y cómodas para enviar órdenes comerciales al servidor y, basándonos en todo lo discutido, y también crearemos un asesor-informante sobre las transacciones comerciales.
Autor: Artyom Trishkin