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
CExecutionSafety - Ping + Execution Latency Guard for MQL5 EAs - biblioteca para MetaTrader 5
- Visualizações:
- 32
- Avaliação:
- Publicado:
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Visão geral
CExecutionSafety é uma classe leve de inclusão MQL5 projetada para proteger os Expert Advisors da execução de negociações em condições ruins de rede ou execução.
Ela mede dois componentes de latência, o ping do terminal ao vivo e o atraso real na execução do relógio de parede, e bloqueia as tentativas de negociação quando o valor combinado excede um limite configurável.
O problema que ele resolve
A maioria dos EAs executa cegamente, independentemente das condições da rede. Um pico de ping ou atraso de execução do lado do corretor durante uma ordem crítica pode resultar em slippage, recotações ou falhas de preenchimento.
O CExecutionSafety introduz uma porta de segurança pré-negociação que impede a execução quando as condições são degradadas.
Como funciona
A classe usa duas fontes de dados:
- TERMINAL_PING_LAST: lê o ping mais recente registrado pelo MetaTerminal (em milissegundos)
- RecordExecDelay(): aceita uma medida de relógio de parede que você envolve em qualquer operação CTrade
Esses dois valores são somados e comparados com seu limite configurado. Se a latência combinada exceder o limite, CheckExecutionSafety() retornará falso e imprimirá uma entrada de registro de diagnóstico.

Proteção contra desconexão
Quando o terminal não tem contato com o servidor, TERMINAL_PING_LAST retorna -1. A classe detecta isso e automaticamente retorna falso, impedindo tentativas de negociação em um terminal desconectado.
Exemplo de integração
Inclua o arquivo e instancie a classe em seu EA:
#include <DeeFX/CExecutionSafety.mqh> CExecutionSafety safety; int OnInit() { safety.Init(150); // Limite combinado de 150 ms retorna INIT_SUCCEEDED; } void OnTick() { if(!safety.CheckExecutionSafety()) return; ulong t0 = GetTickCount64(); trade.PositionClose(ticket); safety.RecordExecDelay(GetTickCount64() - t0); }
Acessores
Os seguintes acessores somente leitura estão disponíveis para exibição no painel ou lógica externa:
- GetPingMs(): ping atual do terminal em ms
- GetExecDelayMs(): último atraso de execução registrado em ms
- GetCombinedMs(): ping + atraso de execução combinados (retorna 9999 se estiver desconectado)
- HasExecSample(): verdadeiro quando pelo menos uma medição tiver sido registrada
- GetThresholdMs(): limite de segurança configurado
Registro de alterações
- v1.0 - Versão inicial
- v1.1 - Macro Guard renomeada. Especificadores de formato %I64u substituídos por conversões (string)
- v1.2 - O tipo de retorno de Init() foi alterado para void → bool. Estado redefinido na reinicialização para evitar amostras obsoletas
Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/70033
Combine Multi Timeframe Trends into one trend using MA.
Combine tendências de vários períodos de tempo em uma única tendência usando MA.
Modern Time Panel - Candle Time
Modern Time Panel for MT5 O Modern Time Panel é um indicador personalizado elegante e minimalista para o MetaTrader 5 que o ajuda a controlar o tempo com precisão. Bem fixado no canto superior direito do gráfico, ele exibe a hora atual do corretor, a hora local e uma contagem regressiva ao vivo para o próximo candlestick (nova barra). Criada com um cronômetro independente de 1 segundo, a contagem regressiva é executada continuamente, mesmo quando o mercado está lento ou não há ticks recebidos. Totalmente personalizável e compatível com o modo escuro, é a ferramenta perfeita e não intrusiva para garantir que você nunca perca o fechamento de uma vela.
Accumulation/Distribution
O Indicador Accumulation/Distribution (Acumulação/Distribuição ou A/D) é determinado pelas mudanças de preço e volume.
Accelerator Oscillator (AC)
O Indicador Acceleration/Deceleration (Aceleração/Desaceleração ou AC) mede a aceleração e a desaceleração da força motriz atual do mercado.