Discusión sobre el artículo "Dominando los registros (Parte 8): Registros de errores con traducción automática"

 

Artículo publicado Dominando los registros (Parte 8): Registros de errores con traducción automática:

En esta octava entrega de la serie «Dominando los registros», exploramos la implementación de mensajes de error multilingües en Logify, una potente biblioteca de registro de eventos para MQL5. Aprenderás a estructurar los errores con contexto, traducir mensajes a varios idiomas y formatear registros dinámicamente según su nivel de gravedad. Todo ello con un diseño limpio, extensible y listo para la producción.

Llegados a este punto del proceso, no sorprende que el registro de datos no se trate solo de registrar eventos. Se trata de captar con precisión lo que tu EA intenta decirte en medio del torbellino de ticks, decisiones e incertidumbres que definen el trading algorítmico cotidiano.

Durante mi uso diario de Logify, noté algo que me molestaba: el manejo de errores seguía siendo superficial. Incluso con una estructura de formato robusta, los registros seguían mostrando únicamente el código de error sin procesar, sin ninguna indicación de lo que realmente significaba. Algo como:

logify.Error("Failed to send sell order", "Order Management", "Code: "+IntegerToString(GetLastError()));
// Console:
// 2025.06.06 10:30:00 [ERROR]: (Order Management) Failed to send sell order | Code: 10016

¿El resultado? Un mensaje vago. Sabemos dónde se produjo el error, pero no por qué. ¿Y quién ha tenido que investigar alguna vez docenas de códigos MQL5 en la documentación? Yo mismo solía hacerlo con bastante frecuencia: en cuanto obtenía el código de error, tenía que buscar en la documentación para averiguar qué había pasado realmente. Fue precisamente de esa fricción real de donde surgió la idea: ¿Y si Logify pudiera interpretar el error por mí? ¿Y si, en lugar de limitarse a darme el código, también me explicara su significado de forma clara y contextualizada, listo para registrarse en el log?


Autor: joaopedrodev

 
Las dos bibliotecas que has creado son excelentes; gracias por el código.
 
Gracias, me alegro de haberte ayudado. Si tienes alguna sugerencia para mejorar, ¡ponte en contacto conmigo!
 
joaopedrodev #:
Gracias, me alegro de poder ayudarte. Si tienes alguna sugerencia para mejorar, ¡ponte en contacto conmigo!
¿Qué debo hacer si el registro es muy frecuente pero quiero evitar que se repitan las entradas? Por ejemplo, cuando se detecta una señal de apertura de operación, pero el spread es demasiado amplio y persiste durante decenas de segundos; si se utiliza el registro, se mostraría al menos decenas o incluso cientos de veces. ¿Cómo se puede resolver esta situación? Sé que una solución es utilizar una variable para garantizar que el registro solo se muestre una vez, pero sería mejor que la propia biblioteca de registro pudiera gestionar esto. ¿Podrías darme algunas sugerencias?
 

He compilado la biblioteca de registro Logify y, a partir de la versión 5100 de MT5, aparecen varios errores de compilación relacionados con los tipos en `CLogifyHandlerDatabase ::Query`. Creo que ya deberías haber resuelto este problema.
 
Gracias por las sugerencias; las trataré en próximos artículos.
 
joaopedrodev #:
Gracias por las sugerencias; las tendré en cuenta en futuros artículos.

Una pequeña idea sobre los idiomas.

Quizá se podrían organizar las noticias originales en inglés de tal forma que se puedan copiar y pegar fácilmente en un traductor (deepl.com o translate.google.com) y volver a pegar el resultado en el programa. Así, cada uno podría configurar el programa en su idioma con toda facilidad.

Deeple reconoce 36 idiomas, y Google, incluso unos 130.