Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 201
- Ranking:
- Publicado:
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Cada programador tiene su propio logger. Yo escribí el mío propio para MQL5, inspirado en el módulo de logging de Python.
Esta clase es la más simple. Sin jerarquías, rotadores o formateadores. Es simple y conveniente para cualquier proyecto.
Instalación
- Copia CDKLogger.mqh a la carpeta MQLInclude\DKStdLib\Logger.
- Importa la clase CDKLogger.
#include <DKStdLib\Logger\CDKLogger.mqh Uso
CDKLogger logger; // PASO 1. Init Logger con nombre "MyLoggerName" y nivel INFO logger.Init("MyLoggerName", INFO); // Puedes cambiar el formato por defecto del logger "%name%:[%level%] %message%" por el tuyo propio // Utilizar cualquier combinación de patrones logger.Format = "%YYYY%-%MM%-%DD% %hh%:%mm%-%ss% - %name%:[%level%] %message%"; // PASO 2. Si desea filtrar el mensaje sólo con sustantivos, // rellenar la FilterInList // 2.1. Añadir una substancia a FilterIntList logger.FilterInList.Add("Including-Substring-#1"); logger.FilterInList.Add("Including-Substring-#2"); // 2.2. Dividir la cadena por el separador ";" para añadir todas las subcadenas a FilterInList en una sola línea. logger.FilterInFromStringWithSep("Including-Substring-#3;Including-Substring-#4", ";"); // PASO 3. Si desea filtrar el mensaje OUT con subcadenas, pero dejar todas las demás, // rellenar la FilterOutList // 3.1. Añadir una subcadena a FilterOutList logger.FilterOutList.Add("Excluding-Substring-#1"); logger.FilterOutList.Add("Excluding-Substring-#2"); // 3.2. Dividir la cadena por el separador ";" para añadir todas las subcadenas a FilterOutList en una sola línea. logger.FilterOutFromStringWithSep("Excluding-Substring-#3;Excluding-Substring-#4", ";"); // use Filter In ponga su filtro str sep por ; aquí // PASO 4. Registro logger.Debug("Debug: Including-Substring-#1", false); // Depurar sin Alerta logger.Info("Info: Including-Substring-#1", true); // Información con diálogo de alerta logger.Warn("Warn: Including-Substring-#1"); logger.Error("Error: Including-Substring-#1: Excluding-Substring-#1"); // Omitido por FilterOutList logger.Critical("Critical: Including-Substring-#1"); logger.Assert(true, "Log msg if true", INFO, // si ok "Log msg if false", ERROR, // si falla true); // Mostrar alerta también logger.Assert(true, "Same msg for true & false", INFO, // Nivel de registro si ok ERROR, // Nivel de registro si falla false); // No hay alerta
Los siguientes mensajes se mostrarán en el log como resultado de la ejecución:
Problemas abiertos
A menudo utilizo la clase de esta manera:
logger.Debug(StringFormat("%s/%d: My message: PARAM1=%f", __FUNCTION__, __LINE__, my_param));
Pero aquí tenemos un problema. La función StringFormat parsea la cadena cada vez, incluso si el nivel de registro no requiere que el mensaje sea emitido.
Si necesitas enviar muchos mensajes de depuración, tendrás que envolver la salida en una condición:
if(DEBUG >= logger.Level) logger.Debug(StringFormat("%s/%d: My message: PARAM1=%f", __FUNCTION__, __LINE__, my_param));
La mejor manera de hacer esto sería utilizar StringFormat perezosamente, pero por desgracia MQL5 no admite pasar un número dinámico de parámetros de función a la Depuración, Información, Error, y así sucesivamente funciones.
Si tienes alguna idea de cómo se podría hacer esto, me encantaría escucharla.
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/52741
Ascending Sort A Struct Array By A Field Example
Este es un ejemplo de ordenación ascendente de una lista de estructura por un campo. Usted puede averiguar y personalizar el algoritmo anterior en función de la finalidad de uso, este es el ejemplo más básico es también una dirección para resolver la ordenación en una matriz de estructura. El algoritmo utilizado en este ejemplo es Quick Sort y Merge Sort.
Bollinger Bands Crossover Signals
Descripción del Indicador - Bollinger Bands Crossover Signals Nombre: Bollinger Bands Crossover Signals Versión: 1.1 Autor: BENALI Enlace: https://www.mql5.com/en/users/dahmi_benali
TimeServerDaylightSavings
Funciones relacionadas con la hora para la detección empírica de la zona horaria del servidor y el modo de ahorro de luz diurna (DST) a partir del historial de cotizaciones
Custom crosshair cursor with synchronization
Indicador sincronizado de retícula personalizado que muestra el precio y la hora (servidor/local).
