Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Bibliotheken

Logify - Library for log management - Bibliothek für den MetaTrader 5

Ansichten:
27
Rating:
(3)
Veröffentlicht:
\MQL5\Experts\Logify\ \MQL5\Include\Logify\
Logify.mqh (25.24 KB) ansehen
\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) ansehen
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Logify ist eine Logging-Bibliothek für MQL, die das Debugging, Tracking und die Überwachung von EAs und Indikatoren vereinfacht. Sie bietet strukturierte, anpassbare und organisierte Logs direkt auf dem Chart oder im Terminal, mit Unterstützung für Log-Levels, flexible Formate und mehrere Handler. Eine leichtgewichtige, elegante Lösung, die sich leicht in Ihre MQL-Projekte integrieren lässt.


📦 Eigenschaften

  • Mehrere Log-Ebenen: DEBUG, INFO, ALERT, ERROR, FATAL
  • Anzeige der Logs direkt im Diagramm, Terminal, in Dateien oder sogar in der Datenbank
  • Anpassbares Log-Format und -Layout
  • Modulare Architektur mit mehreren Handlern
  • Leichtgewichtig und einfach zu integrieren und zu verwenden


🚀 Installation

  1. Kopieren Sie den Ordner /Logify nach:
    MQL5/Include/
  2. Binden Sie Logify in Ihren EA, Indikator oder Ihr Skript ein:
    #include <Logify/Logify.mqh>
  3. Es ist möglich, die Installation mit Git durchzuführen, greifen Sie einfach auf das Repository zu und folgen Sie den Schritten.



🔧 Schnellstart Beispiel

Einfaches Beispiel mit Standardeinstellungen:

//+------------------------------------------------------------------+
//| Import|
//+------------------------------------------------------------------+
#include <Logify/Logify.mqh>
CLogify Logify;
//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion|
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Beispielprotokolle
   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);
  }
//+------------------------------------------------------------------+

Fortgeschrittenes Beispiel mit benutzerdefinierten Handler-Einstellungen. In diesem Beispiel wird der Log-Eintrag in Dateien und im Graph-Kommentar gespeichert. Anpassen der Einstellungen für jede dieser Dateien.

//+------------------------------------------------------------------+
//| Import|
//+------------------------------------------------------------------+
#include <Logify/Logify.mqh>
CLogify Logify;
//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion|
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Kommentarhandler konfigurieren
   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";

   //--- Kommentarhandler erstellen und konfigurieren
   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"));
   
   //--- Dateihandler konfigurieren
   MqlLogifyHandleFileConfig file_config;
   file_config.CreateDateRotationConfig("my_expert","logs",LOG_FILE_EXTENSION_LOG,10,100,CP_UTF8);
   
   //--- Dateihandler erstellen und konfigurieren
   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"));
   
   //--- Handler anhängen
   Logify.AddHandler(handler_comment);
   Logify.AddHandler(handler_file);

   //--- Beispielprotokolle
   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);
  }
//+------------------------------------------------------------------+

Um die einzelnen Einstellungen zu verstehen, empfehle ich, die folgenden Artikel zu lesen, in denen ich jeden Schritt der Bibliotheksentwicklung erkläre:


✔️ Log-Stufen

Ebene
Beschreibung
DEBUG
Ausführliche Informationen zur Fehlersuche
INFO
Allgemeine Informationen
ALERT
Warnungen oder wichtige Ereignisse
ERROR
Fehler, die Aufmerksamkeit erfordern
FATAL
Kritische Fehler, Ausführung stoppen


🖥️ Enthaltene Handler

Jeder Handler definiert, wo die Protokolle angezeigt oder gespeichert werden sollen.

Handler
Beschreibung
Kommentar
Protokolle direkt im Diagramm anzeigen (Kommentar)
Konsole
Protokolle im MetaTrader-Terminal anzeigen
Datei
Speichern von Protokollen in .txt oder .log Dateien
Datenbank Speichert die Protokolle in einer lokalen SQLite-Datenbank

Sie können einen oder mehrere Handler gleichzeitig verwenden, wie z.B. Grafik + Datei + Konsole.


🛠️ Log-Format

Beispiel für ein Formatierungsmuster:

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

Verfügbare Token:

  • {Levelname}: Level-Name (DEBUG, INFO, ERROR, etc.)
  • {msg}: Hauptmeldung
  • {args}: Zusätzliche Argumente oder Details
  • {timestamp}: Zeitstempel in Sekunden (Unix-Zeit)
  • {date_time}: Formatiertes Datum und Uhrzeit (hh:mm:ss, etc.)
  • {level}: Numerischer Code für den Level (0 = DEBUG, 1 = INFO...)
  • {Ursprung}: Im Protokollaufruf definierter Ursprung oder Kontext
  • {Dateiname}: Name der Quelldatei (falls vorhanden)
  • {function}: Name der Funktion, von der aus sie aufgerufen wurde
  • {line}: Zeilennummer im Code, in dem das Protokoll aufgetreten ist


⚖️ Lizenz

MIT-Lizenz - Frei zur Verwendung für persönliche und kommerzielle Projekte.


👨‍💻 Autor

Entwickelt von joaopedrodev, mit dem Ziel, die MQL-Entwicklung professioneller, organisierter und effizienter zu machen.

Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/59821

Rsi Ema Engulfing Bar V3 Rsi Ema Engulfing Bar V3

Engulfing Bar erscheint unter Ema gleitenden Durchschnitt, der steigt - Buy Trade -

QuickTrend Scalper QuickTrend Scalper

Dieser Expert Advisor (EA) ist für den Hochfrequenzhandel auf dem 1-Minuten-Chart (M1) in den Devisen- und Kryptomärkten konzipiert. Er verwendet RSI- und Candlestick-Muster, um Kauf- und Verkaufssignale zu identifizieren und führt automatisch Trades mit dynamischen Stop-Loss-, Take-Profit- und Trailing-Stop-Levels auf Basis der Marktvolatilität aus.

Rsi Engulfing Bar V2 Rsi Engulfing Bar V2

Rsi-Indikator

Ein Skript für einen Tester, das die Standard-Optimierungsfunktionen des MetaTrader 5 erweitert Ein Skript für einen Tester, das die Standard-Optimierungsfunktionen des MetaTrader 5 erweitert

Es handelt sich um ein Tester-Skript, das die Standard-Optimierungsfunktionen von MetaTrader 5 erweitert und es Ihnen ermöglicht, Strategien nach komplexen benutzerdefinierten Kriterien zu bewerten (mit Trennung in In-Sample- und Out-of-Sample-Perioden, erweiterten Metriken und statistischen Tests).