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:
- 258
- Avaliação:
- Publicado:
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Todo programador tem seu próprio registrador. Escrevi o meu próprio para a MQL5, inspirado no módulo de registro do Python.
Essa classe é a mais simples. Sem hierarquia, rotadores ou formatadores. É simples e conveniente para qualquer projeto.
Instalação
- Copie CDKLogger.mqh para a pasta MQL\Include\DKStdLib\Logger.
- Importe a classe CDKLogger.
#include <DKStdLib\Logger\CDKLogger.mqh Uso
CDKLogger logger; // Etapa 1: inicializar o registrador com o nome "MyLoggerName" e o nível INFO logger.Init("MyLoggerName", INFO); // Você pode alterar o formato padrão do registrador "%name%:[%level%] %message%" para o seu próprio formato // Use qualquer combinação de padrões logger.Format = "%YYYY%-%MM%-%DD% %hh%:%mm%-%ss% - %name%:[%level%] %message%"; // Se você quiser filtrar a mensagem apenas com substituições, // preencher a FilterInList // 2.1. Adicionar um substrato ao FilterIntList logger.FilterInList.Add("Including-Substring-#1"); logger.FilterInList.Add("Including-Substring-#2"); // 2.2. Divida a string pelo separador ";" para adicionar todas as substrings ao FilterInList em uma linha logger.FilterInFromStringWithSep("Including-Substring-#3;Including-Substring-#4", ";"); // STEP 3. Se você quiser filtrar a mensagem OUT com substrings, mas deixar todas as outras, // preencher a FilterOutList // 3.1. Adicionar um substrings ao FilterOutList logger.FilterOutList.Add("Excluding-Substring-#1"); logger.FilterOutList.Add("Excluding-Substring-#2"); // 3.2. Divida a string pelo separador ";" para adicionar todas as substrings à FilterOutList em uma linha logger.FilterOutFromStringWithSep("Excluding-Substring-#3;Excluding-Substring-#4", ";"); // use Filter In coloque sua string de filtro separada por ; aqui // ETAPA 4: Registro em log logger.Debug("Debug: Including-Substring-#1", false); // Depurar sem alerta logger.Info("Info: Including-Substring-#1", true); // Informações com a caixa de diálogo Alerta logger.Warn("Warn: Including-Substring-#1"); logger.Error("Error: Including-Substring-#1: Excluding-Substring-#1"); // Ignorado por causa da FilterOutList logger.Critical("Critical: Including-Substring-#1"); logger.Assert(true, "Log msg if true", INFO, // se ok "Log msg if false", ERROR, // se falhar true); // Mostrar também o alerta logger.Assert(true, "Same msg for true & false", INFO, // Nível de registro se estiver ok ERROR, // Nível de registro em caso de falha false); // Sem alerta
As seguintes mensagens serão enviadas para o registro como resultado da execução:
Open issues
Costumo usar a classe dessa forma:
logger.Debug(StringFormat("%s/%d: My message: PARAM1=%f", __FUNCTION__, __LINE__, my_param));
Mas aqui temos um problema. A função StringFormat analisa a string todas as vezes, mesmo que o nível de registro não exija a saída da mensagem.
Se você precisar emitir mensagens de depuração com frequência, terá de envolver a saída em uma condição:
if(DEBUG >= logger.Level) logger.Debug(StringFormat("%s/%d: My message: PARAM1=%f", __FUNCTION__, __LINE__, my_param));
A melhor maneira de fazer isso seria usar o StringFormat de forma preguiçosa, mas, infelizmente, a MQL5 não suporta a passagem de um número dinâmico de parâmetros de função para as funções Debug, Info, Error e assim por diante.
Se você tiver alguma ideia de como isso poderia ser feito, eu gostaria de ouvi-la.
Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/52741
Ascending Sort A Struct Array By A Field Example
Este é um exemplo de classificação ascendente de uma lista de estruturas por um campo. Você pode descobrir e personalizar o algoritmo acima, dependendo da finalidade de uso. Este é o exemplo mais básico e também uma direção para resolver o arranjo em uma matriz de estrutura. O algoritmo usado neste exemplo é o Quick Sort e o Merge Sort.
Bollinger Bands Crossover Signals
Descrição do indicador - Bollinger Bands Crossover Signals Nome: Bollinger Bands Crossover Signals Versão: 1.1 Autor: BENALI Link: https://www.mql5.com/en/users/dahmi_benali
TimeServerDaylightSavings
Funções relacionadas ao tempo para detecção empírica do fuso horário do servidor e do modo de economia de luz do dia (DST) a partir do histórico de cotações
Custom crosshair cursor with synchronization
Indicador de mira personalizado sincronizado que mostra o preço e a hora (servidor/local).
