Mira cómo descargar robots gratis
¡Búscanos en Telegram!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Librerías

Logify - Library for log management - librería para MetaTrader 5

Visualizaciones:
39
Ranking:
(3)
Publicado:
\MQL5\Experts\Logify\ \MQL5\Include\Logify\
Logify.mqh (25.24 KB) ver
LogifyBuilder.mqh (29.16 KB) ver
LogifyLevel.mqh (0.95 KB) ver
LogifyModel.mqh (5.86 KB) ver
\MQL5\Include\Logify\Utils\ \MQL5\Include\Logify\Suppression\ \MQL5\Include\Logify\Handlers\ \MQL5\Include\Logify\Formatter\ \MQL5\Include\Logify\Error\Languages\ \MQL5\Include\Logify\Error\
Error.mqh (0.55 KB) ver
LogifyError.mqh (14.29 KB) ver
MQL5 Freelance ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Logify es una librería de registro para MQL diseñada para simplificar la depuración, seguimiento y monitorización de EAs e indicadores. Proporciona registros estructurados, personalizables y organizados directamente en el gráfico o en el terminal, con soporte para niveles de registro, formatos flexibles y múltiples gestores. Una solución ligera y elegante que es fácil de integrar en sus proyectos MQL.


📦 Características

  • Múltiples niveles de registro: DEBUG, INFO, ALERT, ERROR, FATAL
  • Visualización de logs directamente en gráfico, terminal, archivos o incluso base de datos
  • Formato y diseño de registro personalizables
  • Arquitectura modular con múltiples manejadores
  • Ligero y fácil de integrar y utilizar


Instalación

  1. Copie la carpeta /Logify a:
    MQL5/Include/
  2. Incluye Logify en tu EA, indicador o script:
    #include <Logify/Logify.mqh>
  3. Es posible instalar usando Git, sólo tienes que acceder al repositorio y seguir los pasos.



🔧 Ejemplo de inicio rápido

Ejemplo sencillo con configuración por defecto:

//+------------------------------------------------------------------+
//| Importar|
//+------------------------------------------------------------------+
#include <Logify/Logify.mqh>
CLogify Logify;
//+------------------------------------------------------------------+
//| Función de inicialización experta|
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Ejemplo de registros
   Logify.Debug("Initialization started");
   Logify.Info("Account balance is OK");
   Logify.Alert("Take profit reached");
   Logify.Error("Failed to send order", "Order", "Reason: No money");
   Logify.Fatal("Critical error: Invalid input parameters");

  //---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

Ejemplo avanzado, con configuración personalizada del manejador. En este ejemplo, guardamos el registro de logs en ficheros y en el comentario de la gráfica. Personalizando la configuración de cada uno de ellos.

//+------------------------------------------------------------------+
//| Importar|
//+------------------------------------------------------------------+
#include <Logify/Logify.mqh>
CLogify Logify;
//+------------------------------------------------------------------+
//| Función de inicialización experta|
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Configurar el gestor de comentarios
   MqlLogifyHandleCommentConfig config_comment;
   config_comment.size = 10;
   config_comment.frame_style = LOG_FRAME_STYLE_SINGLE;
   config_comment.direction = LOG_DIRECTION_UP;
   config_comment.title = "My Expert";

   //--- Crear y configurar el gestor de comentarios
   CLogifyHandlerComment *handler_comment = new CLogifyHandlerComment();
   handler_comment.SetConfig(config_comment);
   handler_comment.SetLevel(LOG_LEVEL_DEBUG);
   handler_comment.SetFormatter(new CLogifyFormatter("{date_time} [{levelname}]: {msg}","hh:mm:ss"));
   
   //--- Configurar manejador de archivos
   MqlLogifyHandleFileConfig file_config;
   file_config.CreateDateRotationConfig("my_expert","logs",LOG_FILE_EXTENSION_LOG,10,100,CP_UTF8);
   
   //--- Crear y configurar el manejador de archivos
   CLogifyHandlerFile *handler_file = new CLogifyHandlerFile();
   handler_file.SetConfig(file_config);
   handler_file.SetLevel(LOG_LEVEL_DEBUG);
   handler_file.SetFormatter(new CLogifyFormatter("{date_time} [{levelname}]: {msg} ({filename} | {origin} | {function})","hh:mm:ss"));
   
   //--- Attach handler
   Logify.AddHandler(handler_comment);
   Logify.AddHandler(handler_file);

   //--- Ejemplo de registros
   Logify.Debug("Initialization started");
   Logify.Info("Account balance is OK");
   Logify.Alert("Take profit reached");
   Logify.Error("Failed to send order", "Order", "Reason: No money");
   Logify.Fatal("Critical error: Invalid input parameters");
   
   //---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

Para entender cada una de las configuraciones, recomiendo leer los artículos a continuación, donde explico cada paso del desarrollo de la librería:


✔️ Niveles de Registro

Nivel
Descripción
DEBUG
Información detallada para depuración
INFO
Información general
ALERTA
Advertencias o eventos importantes
ERROR
Errores que requieren atención
FATAL
Errores críticos, detener la ejecución


🖥️ Manejadores incluidos

Cada manejador define dónde se mostrarán o almacenarán los registros.

Manejador
Descripción
Comentario
Muestra los registros directamente en el gráfico (Comentario)
Consola
Muestra los registros en el terminal de MetaTrader
Archivo
Guardar registros en archivos .txt o .log
Base de datos Almacena los registros en la base de datos local SQLite

Puede utilizar uno o combinar varios manejadores al mismo tiempo, como gráfico + archivo + consola, por ejemplo.


🛠️ Formato de registro

Ejemplo de patrón de formato:

"{date_time} [{levelname}]: {msg}"

Tokens disponibles:

  • {levelname}: Nombre del nivel (DEBUG, INFO, ERROR, etc.)
  • {msg}: Mensaje principal
  • {args}: Argumentos adicionales o detalles
  • {timestamp}: Timestamp en segundos (Hora Unix)
  • {date_time}: Fecha y hora formateadas (hh:mm:ss, etc.)
  • {level}: Código numérico para el nivel (0 = DEBUG, 1 = INFO...)
  • {origen}: Origen o contexto definido en la llamada al log
  • {filename}: Nombre del archivo de origen (si está disponible)
  • {función}: Nombre de la función desde la que se llamó
  • {línea}: Número de línea en el código donde se produjo el registro


⚖️ Licencia

Licencia MIT - Uso libre para proyectos personales y comerciales.


👨‍💻 Autor

Desarrollado por joaopedrodev, con un enfoque en hacer el desarrollo MQL más profesional, organizado y eficiente.

Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/59821

Rsi Ema Engulfing Bar V3 Rsi Ema Engulfing Bar V3

La barra envolvente se produce por debajo de la media móvil Ema que está subiendo - Operación de compra -

QuickTrend Scalper QuickTrend Scalper

Este Asesor Experto (EA) está diseñado para la negociación de alta frecuencia en el gráfico de 1 minuto (M1) en los mercados de divisas y criptomonedas. Utiliza el RSI y patrones de velas para identificar señales de compra y venta, ejecutando automáticamente operaciones con niveles dinámicos de stop loss, take profit y trailing stop basados en la volatilidad del mercado.

Rsi Engulfing Bar V2 Rsi Engulfing Bar V2

Indicador Rsi

Un script para un probador que amplía las funciones estándar de optimización de MetaTrader 5 Un script para un probador que amplía las funciones estándar de optimización de MetaTrader 5

Se trata de un script probador que amplía las capacidades estándar de optimización de MetaTrader 5, permitiéndole evaluar estrategias según criterios complejos definidos por el usuario (con separación en periodos dentro y fuera de la muestra, métricas avanzadas y pruebas estadísticas).