Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Telegram!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Bibliotecas

Logify - Library for log management - biblioteca para MetaTrader 5

Visualizações:
38
Avaliação:
(3)
Publicado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Logify é uma biblioteca de registro para MQL projetada para simplificar a depuração, o rastreamento e o monitoramento de EAs e indicadores. Ela fornece registros estruturados, personalizáveis e organizados diretamente no gráfico ou no terminal, com suporte para níveis de registro, formatos flexíveis e vários manipuladores. Uma solução leve e elegante que é fácil de integrar em seus projetos MQL.


Recursos

  • Vários níveis de registro: DEPURAÇÃO, INFORMAÇÃO, ALERTA, ERRO, FATAL
  • Exiba os registros diretamente no gráfico, no terminal, em arquivos ou até mesmo no banco de dados
  • Formato e layout de registro personalizáveis
  • Arquitetura modular com vários manipuladores
  • Leve e fácil de integrar e usar


Instalação

  1. Copie a pasta /Logify para:
    MQL5/Include/
  2. Inclua o Logify em seu EA, indicador ou script:
    #include <Logify/Logify.mqh>
  3. É possível instalar usando o Git, basta acessar o repositório e seguir as etapas.



Exemplo de início rápido

Exemplo simples com configurações padrão:

//+------------------------------------------------------------------+
//| Importação|
//+------------------------------------------------------------------+
#include <Logify/Logify.mqh>
CLogify Logify;
//+------------------------------------------------------------------+
//| Função de inicialização especializada|
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Exemplo de registros
   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);
  }
//+------------------------------------------------------------------+

Exemplo avançado, com configurações de manipulador personalizadas. Neste exemplo, salvamos o registro de log em arquivos e no comentário do gráfico. Personalizando as configurações de cada um deles.

//+------------------------------------------------------------------+
//| Importação|
//+------------------------------------------------------------------+
#include <Logify/Logify.mqh>
CLogify Logify;
//+------------------------------------------------------------------+
//| Função de inicialização especializada|
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Configurar o manipulador de comentários
   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";

   //--- Criar e configurar o manipulador de comentários
   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"));
   
   //--- Configurar o manipulador de arquivos
   MqlLogifyHandleFileConfig file_config;
   file_config.CreateDateRotationConfig("my_expert","logs",LOG_FILE_EXTENSION_LOG,10,100,CP_UTF8);
   
   //--- Criar e configurar o manipulador de arquivos
   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"));
   
   //--- Anexar manipulador
   Logify.AddHandler(handler_comment);
   Logify.AddHandler(handler_file);

   //--- Exemplo de registros
   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);
  }
//+------------------------------------------------------------------+

Para entender cada uma das configurações, recomendo a leitura dos artigos abaixo, onde explico cada etapa do desenvolvimento da biblioteca:


✔️ Níveis de registro

Nível de registro
Descrição
DEBUG
Informações detalhadas para depuração
INFO
Informações gerais
ALERTA
Avisos ou eventos importantes
ERROR
Erros que exigem atenção
FATAL
Erros críticos, interromper a execução


🖥️ Manipuladores incluídos

Cada manipulador define onde os logs serão exibidos ou armazenados.

Manipulador
Descrição
Comentário
Exibir os registros diretamente no gráfico (Comentário)
Console
Mostra os registros no terminal MetaTrader
Arquivo
Salvar os registros em arquivos .txt ou .log
Banco de dados Armazena os registros no banco de dados SQLite local

Você pode usar um ou combinar vários manipuladores ao mesmo tempo, como gráfico + arquivo + console, por exemplo.


🛠️ Formato de registro

Exemplo de padrão de formatação:

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

Tokens disponíveis:

  • {levelname}: Nome do nível (DEBUG, INFO, ERROR, etc.)
  • {msg}: Mensagem principal
  • {args}: Argumentos ou detalhes adicionais
  • {timestamp}: Registro de data e hora em segundos (Unix Time)
  • {date_time}: Data e hora formatadas (hh:mm:ss, etc.)
  • {level}: Código numérico para o nível (0 = DEBUG, 1 = INFO...)
  • {origin}: Origem ou contexto definido na chamada de registro
  • {filename}: Nome do arquivo de origem (se disponível)
  • {function}: Nome da função a partir da qual foi chamada
  • {line}: Número da linha no código em que ocorreu o registro


⚖️ Licença

Licença MIT - Livre para uso em projetos pessoais e comerciais.


👨‍💻 Autor

Desenvolvido por joaopedrodev, com foco em tornar o desenvolvimento de MQL mais profissional, organizado e eficiente.

Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/59821

Rsi Ema Engulfing Bar V3 Rsi Ema Engulfing Bar V3

A barra de engolfo ocorre abaixo da média móvel Ema que está subindo - Compra - Negociação

QuickTrend Scalper QuickTrend Scalper

Esse Expert Advisor (EA) foi projetado para negociações de alta frequência no gráfico de 1 minuto (M1) nos mercados forex e de criptografia. Ele usa RSI e padrões de velas para identificar sinais de compra e venda, executando automaticamente negociações com níveis dinâmicos de stop loss, take profit e trailing stop com base na volatilidade do mercado.

Rsi Engulfing Bar V2 Rsi Engulfing Bar V2

Indicador Rsi

Um script para um testador que amplia os recursos de otimização padrão do MetaTrader 5 Um script para um testador que amplia os recursos de otimização padrão do MetaTrader 5

Esse é um script de teste que amplia os recursos de otimização padrão do MetaTrader 5, permitindo avaliar estratégias de acordo com critérios complexos definidos pelo usuário (com separação em períodos dentro e fora da amostra, métricas avançadas e testes estatísticos).