und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
- Ansichten:
- 27
- Rating:
- Veröffentlicht:
-
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
- Kopieren Sie den Ordner /Logify nach:
MQL5/Include/
- Binden Sie Logify in Ihren EA, Indikator oder Ihr Skript ein:
#include <Logify/Logify.mqh>
- 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:
- Beherrschung der Protokollsätze (Teil 1): Grundlegende Konzepte und erste Schritte in MQL5
- Beherrschen von Logsätzen (Teil 2): Formatierung von Logs
- Beherrschung von Logsätzen (Teil 3): Handler zum Speichern von Logs erforschen
- Beherrschen von Logsätzen (Teil 4): Speichern von Protokollen in Dateien
- Beherrschen von Log-Aufzeichnungen (Teil 5): Optimieren des Handlers mit Cache und Rotation
- Beherrschen von Protokollaufzeichnungen (Teil 6): Speichern von Protokollen in der Datenbank
- Protokollaufzeichnungen beherrschen (Teil 7): Protokolle im Diagramm anzeigen
- Protokollsätze beherrschen (Teil 8): Fehlerprotokolle, die sich selbst übersetzen
- Protokolldatensätze beherrschen (Teil 9): Implementieren des Builder-Musters und Hinzufügen von Standardkonfigurationen
- Beherrschung von Log-Aufzeichnungen (Teil 10): Vermeiden von Log Replay durch Implementierung einer Unterdrückung
✔️ 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

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

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-Indikator

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).