Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 38
- Avaliação:
- Publicado:
-
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
- Copie a pasta /Logify para:
MQL5/Include/
- Inclua o Logify em seu EA, indicador ou script:
#include <Logify/Logify.mqh>
- É 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:
- Dominando registros de log (Parte 1): Conceitos fundamentais e primeiros passos em MQL5
- Dominando registros de log (Parte 2): Formatação de registros
- Dominando registros de log (Parte 3): Explorando manipuladores para salvar registros
- Dominando registros de log (parte 4): Salvamento de registros em arquivos
- Dominando registros de log (parte 5): Otimização do manipulador com cache e rotação
- Dominando registros de log (Parte 6): Salvando logs no banco de dados
- Dominando registros de log (parte 7): Como mostrar os registros no gráfico
- Dominando registros de log (parte 8): Registros de erro que se traduzem por si mesmos
- Dominando registros de log (parte 9): Implementação do padrão builder e adição de configurações padrão
- Dominando os registros de log (parte 10): Evitando a repetição de registros por meio da implementação de uma supressão
✔️ 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

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

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.

Indicador Rsi

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