Unisciti alla nostra fan page
- Visualizzazioni:
- 52
- Valutazioni:
- Pubblicato:
-
Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance
Logify è una libreria di log per MQL progettata per semplificare il debug, il tracciamento e il monitoraggio di EA e indicatori. Fornisce log strutturati, personalizzabili e organizzati direttamente sul grafico o nel terminale, con supporto per livelli di log, formati flessibili e gestori multipli. Una soluzione leggera ed elegante, facile da integrare nei vostri progetti MQL.
Caratteristiche
- Livelli di log multipli: DEBUG, INFO, ALERT, ERROR, FATAL
- Visualizzazione dei log direttamente su grafico, terminale, file o persino database
- Formato e layout dei log personalizzabili
- Architettura modulare con più gestori
- Leggero e facile da integrare e utilizzare
🚀 Installazione
- Copiare la cartella /Logify in:
MQL5/Include/
- Includere Logify nel proprio EA, indicatore o script:
#include <Logify/Logify.mqh> - È possibile effettuare l'installazione utilizzando Git, basta accedere al repository e seguire i passaggi.
🔧 Esempio di avvio rapido
Esempio semplice con impostazioni predefinite:
//+------------------------------------------------------------------+ //| Importazione| //+------------------------------------------------------------------+ #include <Logify/Logify.mqh> CLogify Logify; //+------------------------------------------------------------------+ //| Funzione di inizializzazione dell'esperto| //+------------------------------------------------------------------+ int OnInit() { //--- Esempi di log 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); } //+------------------------------------------------------------------+
Esempio avanzato, con impostazioni personalizzate del gestore. In questo esempio, salviamo i record di log su file e nel commento del grafico. Personalizzazione delle impostazioni per ciascuno di essi.
//+------------------------------------------------------------------+ //| Importazione| //+------------------------------------------------------------------+ #include <Logify/Logify.mqh> CLogify Logify; //+------------------------------------------------------------------+ //| Funzione di inizializzazione dell'esperto| //+------------------------------------------------------------------+ int OnInit() { //--- Configurare il gestore dei commenti 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"; //--- Creare e configurare il gestore dei commenti 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")); //--- Configurare il gestore di file MqlLogifyHandleFileConfig file_config; file_config.CreateDateRotationConfig("my_expert","logs",LOG_FILE_EXTENSION_LOG,10,100,CP_UTF8); //--- Creare e configurare il gestore di file 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")); //--- Collegare il gestore Logify.AddHandler(handler_comment); Logify.AddHandler(handler_file); //--- Esempi di log 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); } //+------------------------------------------------------------------+
Per comprendere ogni impostazione, si consiglia di leggere gli articoli seguenti, in cui si spiega ogni fase dello sviluppo della libreria:
- Padroneggiare i record di registro (Parte 1): Concetti fondamentali e primi passi in MQL5
- Padroneggiare i record di log (parte 2): Formattazione dei registri
- Padroneggiare i record di log (Parte 3): Esplorare i gestori per salvare i registri
- Padroneggiare i record di log (parte 4): Salvare i registri nei file
- Padroneggiare i record di log (Parte 5): Ottimizzare l'handler con la cache e la rotazione
- Padroneggiare i record di log (Parte 6): Salvare i registri nel database
- Padroneggiare i record di log (parte 7): Come mostrare i registri sul grafico
- Padroneggiare i record di log (Parte 8): Record di errore che si traducono da soli
- Padroneggiare i record di log (Parte 9): Implementare il modello del costruttore e aggiungere configurazioni predefinite
- Padroneggiare i record di log (Parte 10): Evitare la riproduzione dei registri implementando una soppressione
✔️ Livelli dei registri
| Livello | Descrizione |
|---|---|
| DEBUG | Informazioni dettagliate per il debug |
| INFO | Informazioni generali |
| ALLERTA | Avvertenze o eventi importanti |
| ERRORE | Errori che richiedono attenzione |
| FATALE | Errori critici, interrompere l'esecuzione |
🖥️ Gestori inclusi
Ogni gestore definisce dove verranno visualizzati o memorizzati i log.
| Gestore | Descrizione |
|---|---|
| Commento | Visualizza i log direttamente sul grafico (Commento) |
| Console | Mostra i log nel terminale MetaTrader |
| File | Salvare i log in file .txt o .log |
| Database | Memorizza i log nel database SQLite locale |
È possibile utilizzare uno o più gestori contemporaneamente, ad esempio grafico + file + console.
🛠️ Formato del log
Esempio di modello di formattazione:
"{date_time} [{levelname}]: {msg}" Token disponibili:
- {levelname}: Nome del livello (DEBUG, INFO, ERROR, ecc.)
- {msg}: Messaggio principale
- {args}: Argomenti o dettagli aggiuntivi
- {timestamp}: Timestamp in secondi (ora Unix)
- {date_time}: Data e ora formattate (hh:mm:ss, ecc.)
- {level}: Codice numerico per il livello (0 = DEBUG, 1 = INFO...)
- {origine}: Origine o contesto definito nella chiamata di log
- {filename}: Nome del file sorgente (se disponibile)
- {function}: Nome della funzione da cui è stata chiamata
- {linea}: Numero di riga nel codice in cui si è verificato il log
⚖️ Licenza
Licenza MIT - Libero di utilizzare per progetti personali e commerciali.
👨💻 Autore
Sviluppato da joaopedrodev, con l'obiettivo di rendere lo sviluppo di MQL più professionale, organizzato ed efficiente.
Tradotto dall’inglese da MetaQuotes Ltd.
Codice originale https://www.mql5.com/en/code/59821
Indice di volume positivo
Il Positive Volume Index (PVI) mette in relazione un aumento del volume con una variazione del prezzo di un titolo.
Caricatore di storia
Modulo funzionale Multicurrency Expert Advisor per organizzare l'accesso a qualsiasi dato storico con l'elaborazione del risultato dell'interrogazione.
Rsi Engulfing Bar V2
Indicatore Rsi
Libreria per le operazioni sulle matrici
Libreria per lavorare con le matrici: creazione di matrici e operazioni di base con esse: addizione, sottrazione, moltiplicazione, inversione.