Buenas tardes
¿Por qué no consideró la pregunta "Procesamiento de los códigos de retorno del servidor de comercio"?
Esto es mucho más IMPORTANTE que todo en su artículo.
Buenas tardes
¿Por qué no consideró la pregunta "Procesamiento de los códigos de retorno del servidor de comercio"?
Esto es mucho más IMPORTANTE que todo en su artículo.
En primer lugar, lea todo el artículo. Si no lo entiendes, léelo una y otra vez hasta que lo entiendas del todo. Sólo entonces te darás cuenta de que tu mensaje no tiene nada que ver con el tema del artículo.
El artículo debería haberse llamado no"Tratamiento de errores y registro en MT5",
¡sino "Procesamiento de errores PROPIOS y registro en MT5"!
Buenas tardes
¿Por qué no consideró la pregunta "Procesamiento de los códigos de retorno del servidor de comercio"?
Es mucho más IMPORTANTE que todo en su artículo.
Mikhail, ¿por qué no escribes un artículo así? ¡Es un tema ya hecho! :)
No pensé que este tema es más importante que todo en el artículo. Si lo crees, hazlo, ¿por qué me regañas por no hacerlo?
De hecho, no traté de considerar este punto en detalle, porque quería tocar temas más generales. Así que podemos entrar en una consideración detallada de los códigos de error devueltos por las funciones estándar del lenguaje. Por ejemplo, como otro tema del articulo - "Manejo de errores que ocurren al trabajar con objetos graficos en MQL5".
Mi objetivo no era el mismo. Pero sí, un mes después de escribir el artículo, veo que resultó "más o menos". Bueno, voy a tratar de ser mejor en el futuro.
¿Por qué no escribes un artículo como éste? ¡Es un tema ya hecho! :)
De hecho, no quería tratar este punto en detalle, porque quería tocar temas más generales. Así que podemos entrar en una consideración detallada de los códigos de error devueltos por las funciones estándar del lenguaje. Por ejemplo, como otro tema del articulo - "Manejo de errores que ocurren al trabajar con objetos graficos en MQL5".
Mi objetivo no era el mismo. Pero sí, un mes después de escribir el artículo, veo que resultó "más o menos". Bueno, voy a tratar de ser mejor en el futuro.
¡Sergei!
Está bien, pero yo llamaría al artículo
"Métodos avanzados de depuración de Asesores Expertos en MT5 con logging".
Porque cuando se depura el Asesor Experto, ya no hay errores,
pero los códigos de retorno del servidor de comercio puede estar lleno de errores,
que necesitan ser procesados sólo en el modo normal del Asesor Experto.
¡Sergei!
Todo está bien, pero yo llamaría al artículo
"Métodos avanzados de depuración de Asesores Expertos en MT5 con logging".
Pero el tratamiento de errores no es depuración :)
¿O quieres decir que, por ejemplo, procesar el error "fondos insuficientes" (que se menciona en el artículo como ejemplo) es depuración?
Pero el tratamiento de errores no es depuración :)
¿O quieres decir que, por ejemplo, tratar el error "fondos insuficientes" (que es el ejemplo mencionado en el artículo) es depuración?
"Fondos insuficientes" no es un error, sino un mensaje para usted (para el experto sobre el estado de su cuenta) y
esta es una situación que se maneja ESTÁNDARMENTE. Y un desarrollador normal DEBE, antes de hacer una transacción o realizar un pedido.
verificar la disponibilidad de fondos.
//+------------------------------------------------------------------+ //| Función Expert Check money| //+------------------------------------------------------------------+ bool CheckMoney( const long volume ) { double a_go = SymbolInfoDouble( _Symbol, SYMBOL_MARGIN_INITIAL ) * double(volume); double free_margin = ( AccountInfoDouble( ACCOUNT_FREEMARGIN ) / 100 ) * 90; //--- if ( a_go <= free_margin ) { return( true ); } Print( "Cheque de dinero: ¡No hay fondos suficientes!" ); return( false ); }
"Fondos insuficientes" no es un error, sino un mensaje para usted (para el Asesor Experto sobre el estado de su cuenta) y
se trata de una situación de procesamiento ESTÁNDAR.
Pero tampoco es un momento de depuración. Llámalo como quieras, pero debe ser procesado (y según yo lo veo, en esto estamos de acuerdo). A mi entender, es una situación errónea en relación con el curso normal de las cosas. Al fin y al cabo, el experto puede suponer que los medios son suficientes. Y si no se comprueba y procesa de alguna manera, resultará que no es nada.
Al igual que, por ejemplo, el error de abrir un archivo debido a su ausencia - por un lado es una situación estándar que necesita ser tratada, pero por otro lado es un error de asumir que el archivo está ahí y podemos trabajar con él.
Y una vez más: en este artículo he intentado considerar cuestiones de gestión de errores en el proceso de funcionamiento del programa más que cuestiones de depuración de software. Este es otro tema completamente distinto y se correlaciona con el artículo sólo dentro del marco del registro (y eso sólo parcialmente).
Y no era mi objetivo considerar errores específicos (ya sean códigos de retorno del servidor de comercio o, como dije antes, por ejemplo, posibles errores al trabajar con objetos gráficos). Sólo métodos generales que son aplicables a errores (o situaciones estándar, si lo prefiere) que son devueltos por el servidor de comercio también.
Lo siento si mi mensaje quedó poco claro. Espero que ahora todo encaje.
esta es una situación que se maneja de forma ESTÁNDAR. Y un desarrollador normal DEBE, antes de hacer una transacción o hacer un pedido.
o hacer un pedido, verificar la disponibilidad de fondos.
Ay, tengo que preguntar: ¿leíste el artículo o sólo lo leíste y juzgaste? Yo hablé de las comprobaciones previas en el artículo (me arrepiento, no hablé específicamente de comprobar los fondos, pero creí que quedaba claro). Y no es mala idea manejar un posible error "fondos insuficientes" incluso después de intentar abrir una operación, aunque hayamos hecho esta comprobación antes. Cualquier cosa puede pasar en el tiempo que transcurre entre la comprobación "antes" y el intento inmediato de apertura.
Ay, tengo que preguntar: ¿leíste el artículo, o sólo lo leíste y juzgaste? Hablé de comprobaciones preliminares en el artículo (me arrepiento, no hablé específicamente de comprobar fondos, pero creí que quedaba claro). Y manejar un posible error "fondos insuficientes" incluso después de intentar abrir una operación no es la peor idea, aunque hayamos hecho esta comprobación antes. Cualquier cosa puede pasar en el tiempo entre la comprobación "antes" y el intento inmediato de abrir.
Sergey.
Así son los códigos de retorno del servidor de operaciones para estas situaciones.
Ejemplo: Usted ha comprobado la disponibilidad de fondos libres y ha recibido un resultado afirmativo.
Usted envía una orden, pero no fue aceptada (como usted dijo: "Lo que puede suceder"),
por lo que el servidor de negociación le dará el error "Fondos insuficientes" en el código de retorno.
Y resulta que "da igual" cuántas veces compruebe el error.
¡entre su cheque (CheckMoney) y el código de retorno del servidor de comercio!

- 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 Gestión de errores y logging en MQL5:
Este artículo se centra en aspectos generales sobre el manejo de los errores de software. Explicaremos qué significa el término logging mediante algunos ejemplos implementados con herramientas de MQL5.
Durante la ejecución de los programas pueden suceder errores de vez en cuando. Gestionarlos bien contribuye a mejorar la calidad del programa, y también hace que se pueda mantener más fácilmente. Este artículo explica varios métodos de gestión de errores, proporciona algunas recomendaciones, y enseña a utilizar la herramienta de logging de MQL5.
El tema de la gestión de los errores es relativamente complicado y controvertido. Hay muchas formas de arreglar los errores, cada una de las cuales tiene sus ventajas y sus inconvenientes. Algunos de estos métodos pueden utilizarse juntos; no hay ninguna fórmula universal, cada tarea requiere una aproximación adecuada.
Logging con herramientas MQL5
Los programas suelen crear archivos de log que facilitan la vida a los programadores. Estos archivos contienen los errores generados para que los programadores puedan buscarlos y sean capaces de evaluar las condiciones del sistema en un momento determinado. Además de todo esto, el logging también sirve para analizar el rendimiento del software (profiling).
Niveles de logging
Los mensajes generados en los archivos de log contienen mucha información y por tanto exigen diferentes niveles de atención. Los niveles de logging se aplican a los mensajes por separado para clasificarlos por niveles críticos; se puede personalizar el nivel de importancia de los mensajes. Normalmente se implementan varios niveles de logging:
Autor: Sergey Eremin