Rejoignez notre page de fans
- Vues:
- 112
- Note:
- Publié:
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
Logify est une bibliothèque de journalisation pour MQL conçue pour simplifier le débogage, le suivi et la surveillance des EA et des indicateurs. Elle fournit des journaux structurés, personnalisables et organisés directement sur le graphique ou dans le terminal, avec la prise en charge des niveaux de journaux, des formats flexibles et des gestionnaires multiples. Une solution légère et élégante, facile à intégrer dans vos projets MQL.
📦 Caractéristiques
- Plusieurs niveaux de journalisation : DEBUG, INFO, ALERT, ERROR, FATAL
- Affichage des logs directement sur le graphique, le terminal, les fichiers ou même la base de données
- Format et mise en page des journaux personnalisables
- Architecture modulaire avec plusieurs gestionnaires
- Léger et facile à intégrer et à utiliser
Installation
- Copiez le dossier /Logify dans :
MQL5/Include/
- Incluez Logify dans votre EA, indicateur ou script :
#include <Logify/Logify.mqh> - Il est possible d'installer en utilisant Git, il suffit d'accéder au dépôt et de suivre les étapes.
🔧 Exemple de démarrage rapide
Exemple simple avec les paramètres par défaut :
//+------------------------------------------------------------------+ //| Importation| //+------------------------------------------------------------------+ #include <Logify/Logify.mqh> CLogify Logify; //+------------------------------------------------------------------+ //| Fonction d'initialisation de l'expert| //+------------------------------------------------------------------+ int OnInit() { //--- Exemple de journaux 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); } //+------------------------------------------------------------------+
Exemple avancé, avec des paramètres de handler personnalisés. Dans cet exemple, nous sauvegardons l'enregistrement du journal dans des fichiers et dans le commentaire du graphique. Personnalisation des paramètres pour chacun d'entre eux.
//+------------------------------------------------------------------+ //| Importation| //+------------------------------------------------------------------+ #include <Logify/Logify.mqh> CLogify Logify; //+------------------------------------------------------------------+ //| Fonction d'initialisation de l'expert| //+------------------------------------------------------------------+ int OnInit() { //--- Configurer le gestionnaire de commentaires 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"; //--- Créer et configurer le gestionnaire de commentaires 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")); //--- Configurer le gestionnaire de fichiers MqlLogifyHandleFileConfig file_config; file_config.CreateDateRotationConfig("my_expert","logs",LOG_FILE_EXTENSION_LOG,10,100,CP_UTF8); //--- Créer et configurer le gestionnaire de fichiers 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")); //--- Attacher le gestionnaire Logify.AddHandler(handler_comment); Logify.AddHandler(handler_file); //--- Exemple de journaux 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); } //+------------------------------------------------------------------+
Pour comprendre chacun des paramètres, je vous recommande de lire les articles ci-dessous, dans lesquels j'explique chaque étape du développement de la bibliothèque :
- Maîtriser les enregistrements de journaux (Partie 1) : Concepts fondamentaux et premiers pas dans MQL5
- Maîtriser les enregistrements de journaux (Partie 2) : Formatage des journaux
- Maîtriser les enregistrements de logs (Partie 3) : Explorer les gestionnaires pour sauvegarder les journaux
- Maîtriser les enregistrements de logs (Partie 4) : Sauvegarde des journaux dans des fichiers
- Maîtriser les enregistrements de logs (Partie 5) : Optimiser le gestionnaire avec le cache et la rotation
- Maîtriser les enregistrements de journaux (Partie 6) : Sauvegarde des logs dans la base de données
- Maîtriser les enregistrements de journaux (Partie 7) : Comment afficher les journaux sur un graphique
- Maîtriser les enregistrements de journaux (Partie 8) : Les enregistrements d'erreurs qui se traduisent eux-mêmes
- Maîtriser les enregistrements de logs (Partie 9) : Implémenter le modèle de construction et ajouter des configurations par défaut
- Maîtriser les enregistrements de logs (Partie 10) : Éviter la relecture des journaux en implémentant une suppression
✔️ Niveaux de journaux
| Niveau | Description des niveaux de journalisation |
|---|---|
| DEBUG | Informations détaillées pour le débogage |
| INFO | Informations générales |
| ALERT | Avertissements ou événements importants |
| ERROR | Erreurs nécessitant une attention particulière |
| FATAL | Erreurs critiques, arrêt de l'exécution |
🖥️ Manipulateurs inclus
Chaque gestionnaire définit l'endroit où les journaux seront affichés ou stockés.
| Gestionnaire | Description |
|---|---|
| Commentaire | Affiche les journaux directement sur le graphique (Commentaire) |
| Console | Affiche les journaux dans le terminal MetaTrader |
| Fichier | Sauvegarder les journaux dans des fichiers .txt ou .log |
| Base de données | Stocke les journaux dans une base de données SQLite locale |
Vous pouvez utiliser un ou plusieurs gestionnaires en même temps, comme graphique + fichier + console, par exemple.
🛠️ Format du journal
Exemple de modèle de formatage :
"{date_time} [{levelname}]: {msg}" Jetons disponibles :
- {levelname} : Nom du niveau (DEBUG, INFO, ERROR, etc.)
- {msg} : Message principal
- {args}: Arguments supplémentaires ou détails
- {timestamp}: Horodatage en secondes (heure Unix)
- {date_time}: Date et heure formatées (hh:mm:ss, etc.)
- {level}: Code numérique pour le niveau (0 = DEBUG, 1 = INFO...)
- {origin}: Origine ou contexte défini dans l'appel au journal
- {filename}: Nom du fichier source (si disponible)
- {function}: Nom de la fonction à partir de laquelle l'appel a été effectué
- {line}: Numéro de ligne dans le code où le log s'est produit
⚖️ Licence
Licence MIT - Utilisation libre pour des projets personnels et commerciaux.
👨💻 Auteur
Développé par joaopedrodev, avec pour objectif de rendre le développement MQL plus professionnel, organisé et efficace.
Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/59821
Indice de volume positif
L'indice de volume positif (PVI) établit un lien entre une augmentation du volume et une variation du prix d'un titre.
Chargeur d'histoire
Module fonctionnel de l'Expert Advisor multidevise pour organiser l'accès à toute donnée historique avec traitement du résultat de la requête.
Rsi Engulfing Bar V2
Indicateur Rsi
Bibliothèque pour les opérations matricielles
Bibliothèque pour travailler avec des matrices : création de matrices et opérations de base avec celles-ci : addition, soustraction, multiplication, inversion.