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
Experts

Broker Clock Auditor - expert para MetaTrader 5

Quoc Dat Quach
Quoc Dat Quach
Software engineer with 8 years in fintech and mobile, writing MQL4/MQL5 since 2017. I build Expert Advisors, indicators, trade and risk-management panels and utilities for MT4/MT5, and I trade forex and gold on MT5 myself.
| Portuguese English Русский 中文 Español Deutsch 日本語 한국어 Français Italiano Türkçe
Visualizações:
12
Avaliação:
(1)
Publicado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Cada filtro de sessão em um Expert Advisor é programado com base na hora do servidor, e a hora do servidor é aquela definida pela corretora. Alguns servidores operam no fuso horário UTC, outros no UTC+2 no inverno e no UTC+3 no verão, e aqueles que mudam de fuso horário nem sempre fazem isso no mesmo fim de semana. Essa ferramenta lê o relógio a partir do próprio histórico de preços do símbolo, em vez de uma postagem em fórum: a semana do mercado cambial e da CME encerra às 17h, horário de Nova York; assim, a hora do servidor de cada fechamento semanal, comparada com esse instante em UTC, fornece o deslocamento do servidor para aquela semana. Nas últimas 60 semanas, isso representa cerca de 60 medições, uma por fechamento, e, a partir de sua sequência, a ferramenta determina se o relógio mudou, quando e de acordo com qual calendário — horário de verão dos EUA ou da Europa. Em seguida, ela exibe a hora do servidor em que Londres, Nova York, Tóquio e Sydney abrem em cada uma das próximas semanas.

bca-painel

Servidor de demonstração da Exness, cinco símbolos do Market Watch, 60 semanas de barras H1 cada, uma execução em 12,3 ms. Agora, o deslocamento do último fechamento regular; o Calendário indica se é fixo, dos EUA ou da UE, e se uma data de mudança do horário de verão dos EUA e da UE se encontra dentro da janela (testado); A contagem de fechamentos irregulares inclui aqueles que divergem dos fechamentos ao redor; aqui, os quatro fechamentos antecipados do ouro devido a feriados nos EUA; a contagem de dias de domingo inclui os domingos do servidor com pelo menos uma barra. O BTCUSD é negociado 24 horas por dia e não possui um fechamento para ser medido. Captura de tela com tamanho de fonte do painel 4 para caber na página; o padrão é 8.

O problema

Um filtro de sessão como “negociação das 10h às 13h” é uma referência a Londres ou Nova York, definida pelo relógio do servidor. Ele só permanece correto enquanto a diferença entre os dois relógios permanecer a mesma, e duas vezes por ano isso não acontece. A Europa e os Estados Unidos alteram seus relógios em fins de semana diferentes — em 2026, os EUA adiantaram o relógio em 8 de março e a Europa em 29 de março; no outono, a Europa atrasa o relógio em 25 de outubro e os EUA em 1º de novembro. Durante três semanas na primavera e uma semana no outono, Londres fica quatro horas à frente de Nova York, em vez de cinco, e um servidor que segue um dos dois calendários fica desfasado em relação à outra cidade.

Qual dessas semanas afeta um determinado EA depende da regra do próprio servidor, e essa regra raramente está escrita em algum lugar que um programa possa ler. TimeTradeServer() − TimeGMT() fornece o deslocamento de hoje, mas ele é calculado a partir do relógio e do fuso horário do PC, e não diz nada sobre março passado, quando o backtest foi realizado, nem sobre o próximo mês.

O que ele mede

A âncora. A semana do mercado cambial interbancário e a semana da CME para metais e futuros de índices dos EUA terminam às 17h (America/New_York). Para cada pausa no histórico H1 do símbolo com duração de pelo menos InpMinGapHours horas (padrão 20), a ferramenta considera o tempo de fechamento = abertura da última barra H1 antes da pausa + 1 hora, e U = o instante das 17h00 de Nova York mais próximo disso, convertido para UTC com as regras de horário de verão dos EUA. close − U é o deslocamento do servidor naquele fechamento. Pausas por feriados (véspera de Natal, véspera de Ano Novo) terminam às mesmas 17h00 e também contam como âncoras.

  • Fechamentos irregulares. Um fechamento cujo deslocamento difira tanto do último fechamento regular anterior quanto do fechamento posterior é sinalizado e excluído de tudo a seguir (o primeiro e o último fechamentos nunca são sinalizados): um feed que atrasou uma hora em uma sexta-feira, ou uma lacuna no histórico longa o suficiente para parecer uma pausa, seria interpretado, de outra forma, como duas mudanças de horário.
  • Mudanças de horário. Dois fechamentos regulares consecutivos com desvios diferentes delimitam uma mudança de horário. A ferramenta data o intervalo entre os dois fechamentos e verifica esse intervalo, em UTC, em relação às mudanças nos horários dos EUA (segundo domingo de março, primeiro domingo de novembro) e da Europa (último domingo de março, último domingo de outubro), verificando a direção: uma mudança na primavera deve aumentar o deslocamento, enquanto uma mudança no outono deve diminuí-lo. Cada mudança é rotulada como EUA, UE, EUA+UE (o intervalo contém ambas, dados muito escassos) ou outra.
  • Regime. Sem mudança = deslocamento fixo; todas as mudanças nos EUA = calendário dos EUA; todas na UE = calendário europeu; qualquer outra situação = misto. Um veredicto de “fixo” só é considerado *testado* quando a janela contém pelo menos uma data de mudança nos EUA e uma na Europa — quatro semanas de histórico em julho não permitem distinguir um horário fixo de um variável, e a ferramenta indica isso.
  • Barras de domingo. O número de domingos (e sábados) do servidor com pelo menos uma barra H1. Um servidor no fuso horário UTC inicia a semana do mercado cambial no domingo à noite, o que confere a cada indicador baseado em D1 uma sexta e pequena vela diária.
  • Verificação cruzada em tempo real. Em um gráfico ao vivo, TimeTradeServer() − TimeGMT() é exibido ao lado do deslocamento fornecido pelo histórico. Uma diferença aponta para o relógio ou fuso horário do PC, não para o servidor.
  • Projeção. A partir do deslocamento mais recente e do calendário detectado, a hora do servidor nas aberturas de Londres, Nova York, Tóquio e Sydney (os horários locais são inseridos) para cada dia útil das próximas InpProjectWeeks semanas. Apenas os dias em que uma dessas horas muda são listados.

Com vários símbolos, o deslocamento e o calendário mais comuns são considerados definitivos, e os símbolos que divergem são indicados no diário — um CFD de ações que fecha às 16h em Nova York apresenta um deslocamento de uma hora para baixo, enquanto um símbolo de criptomoeda 24/7 não tem horário de fechamento.

Três servidores de demonstração, três relógios

Anexado a um gráfico H1 do EURUSD em 7 de outubro de 2026; 60 semanas de barras H1 até a barra mais recente (13/08/2025 a 07/10/2026); todas as configurações padrão, exceto a lista de símbolos (* na Exness; os símbolos indicados nos outros dois).

servidor símbolos fechamentos deslocamento atual calendário mudanças observadas (primeiro fechamento após) fechamentos irregulares Domingos com barras
Exness-MT5Trial17 EURUSD, GBPUSD, USDJPY, XAUUSD 62 cada UTC+0 nenhuma, testado — XAUUSD 4, demais 0 60
ICMarketsSC-Demo EURUSD, GBPUSD, USDJPY 62 cada UTC+3 EUA 08/11/2025 −1 h, 14/03/2026 +1 h 0 0
MetaQuotes-Demo EURUSD, GBPUSD, USDJPY, XAUUSD 62 / 40 / 40 / 62 UTC+3 UE em todos os 4; deslocamento: 3 de 4 concordam 31/10/2025 −1 h, 04/04/2026 +1 h EURUSD 1, XAUUSD 4 0

bca-três-servidores

Deslocamento implícito em cada fechamento do EURUSD às 17h em Nova York em três servidores de demonstração, barras H1 de 01/08/2025 a 07/10/2026, 64 fechamentos por servidor, um ponto por fechamento; as linhas tracejadas representam as mudanças nos EUA, e as linhas pontilhadas, as da Europa. Traçado a partir dos horários das barras H1 lidos com o pacote Python do MetaTrader 5 e a interface MCP do terminal, e não a partir da saída da própria ferramenta.

Exness: UTC durante todo o ano. Cada um dos 62 fechamentos apresenta +0:00, incluindo as pausas da véspera de Natal e da véspera de Ano Novo. O que varia é o próprio fechamento: a última barra H1 da semana termina às 21h, horário do servidor, enquanto Nova York está no horário de verão (meados de março até o início de novembro) e às 22h no restante do ano. Todos os domingos têm barras a partir das 21h ou 22h, de modo que os gráficos diários apresentam uma sexta vela curta. O ouro apresenta o mesmo deslocamento e acrescenta quatro fechamentos irregulares, todos decorrentes de fechamentos antecipados em feriados nos EUA: Black Friday, 28/11/2025 (−2 h), véspera de Natal (−3 h), Juneteenth, 19/06/2026, e sexta-feira, 03/07/2026 (−4 h cada).

IC Markets: UTC+2 no inverno, UTC+3 no verão, de acordo com o calendário dos EUA. O deslocamento muda entre os fechamentos de 1º e 8 de novembro de 2025 e de 7 e 14 de março de 2026, os fins de semana em que os EUA alteraram seus relógios. A semana do mercado cambial vai de segunda-feira às 00:00 até sexta-feira às 24:00, horário do servidor, durante todo o ano, sem barras de domingo.

MetaQuotes-Demo: UTC+2 / UTC+3 de acordo com o calendário europeu. As mudanças ocorrem entre os fechamentos de 25 e 31 de outubro de 2025 e de 27 de março e 4 de abril de 2026. Um fechamento do EURUSD é irregular: na sexta-feira, 13 de março de 2026, entre a mudança nos horários dos EUA e da Europa, a última barra terminou às 00:00, horário do servidor, uma hora após as 17:00 de Nova York, enquanto os fechamentos anteriores e posteriores ocorreram no horário normal. O GBPUSD e o USDJPY possuem histórico em H1 apenas a partir de janeiro de 2026 neste terminal, portanto, mostram apenas a transição da primavera. O ouro difere dos três pares e é mencionado no diário: desde a mudança horária europeia da primavera de 2026, seu fechamento semanal permanece às 23h, horário do servidor, uma hora antes das 17h em Nova York; portanto, por si só, ele agora está no fuso horário UTC+2:00.

O que isso significa para as próximas semanas. As três projeções a partir de 7 de outubro de 2026: na Exness, Londres abre às 07h00, horário do servidor, até 23 de outubro e às 08h00 a partir de 26 de outubro; Nova York, às 12h00 até 30 de outubro e às 13h00 a partir de 2 de novembro. Na IC Markets, Londres abre às 10h, exceto na semana de 26 de outubro, quando abre às 11h. Na MetaQuotes-Demo, Nova York abre às 15h, exceto na mesma semana, quando abre às 14h. Um filtro definido como “Londres 10h” ou “Nova York 15h” está correto nos servidores UTC+2/+3 para 48 das 52 semanas de 2026 e incorreto nas outras quatro — três na primavera e uma no outono, cada filtro em um servidor diferente; em 2027 e 2028, a diferença na primavera é de duas semanas.

Em todas as três conexões ativas, a verificação cruzada confirmou o histórico: TimeTradeServer() − TimeGMT() resultou em +3:00 na IC Markets e na MetaQuotes-Demo, e +0:00 na Exness. Durante a preparação desta página, um terminal foi iniciado sem login; offline, a mesma diferença indicava +0:00 no servidor +3:00. A ferramenta, portanto, ignora a verificação, registrando apenas uma linha no diário, quando o terminal não está conectado.

Verificando o relatório de forma independente

O relatório pode ser recontado fora do MetaTrader. O script usado para esta página lê apenas a janela do arquivo de resumo, extrai os mesmos horários das barras H1 — por meio da interface MCP do terminal na Exness e por meio do pacote Python do MetaTrader 5 nos outros dois servidores — e recalcula tudo o que foi descrito acima usando o banco de dados de fusos horários do Python, em vez das regras de horário de verão da própria ferramenta: cada linha de âncora, cada linha de alternância e seu calendário, cada contador de resumo, o deslocamento e o calendário do veredicto e cada linha de projeção. Nas três execuções mostradas aqui, os resultados coincidem em 328, 250 e 284 valores, sem uma única diferença. Suas próprias definições foram verificadas primeiro em dez casos analisados manualmente — oito séries de barras sintéticas (fixas, dos EUA, europeias, com mudanças invertidas, pausas por feriados, uma lacuna nos dados, dois fechamentos antecipados com uma semana de diferença) e duas projeções — e os dez erros inseridos propositalmente foram todos detectados.

Como usá-lo

Anexe o Expert Advisor a qualquer gráfico. Com o campo InpSymbols vazio, ele audita o símbolo do gráfico; * audita todos os símbolos no Market Watch; uma lista separada por vírgulas audita esses símbolos. Escolha símbolos que encerram no fim de semana — moedas principais, ouro, futuros de índices; um símbolo de criptomoeda não tem fechamento para ser medido. A auditoria é executada uma vez (ou a cada InpRefreshMinutes), imprime uma linha por símbolo, seus fechamentos irregulares, as mudanças, o veredicto e a projeção no diário do Expert Advisor, desenha a tabela no gráfico e grava os arquivos CSV. Ele lê apenas o histórico: não há função de negociação no código, nem DLL, nem acesso à rede. Com *, ela lê apenas símbolos que já estão no Market Watch. A ferramenta nunca seleciona um símbolo, mas quando um símbolo listado não está no Market Watch e seu histórico precisa ser baixado primeiro, o terminal o adiciona lá por conta própria (verificado: EURCHF e AUDNZD foram adicionados na primeira leitura, enquanto o AUDUSD, lido pela segunda vez, não foi); o diário lista esses símbolos antes da primeira leitura.

Leia primeiro o diário. Na IC Markets, a linha do EURUSD é

EURUSD 62 âncoras (60 de fim de semana, 2 de feriado) | agora UTC+3:00 | visto +2:00 +3:00 | 2 mudanças: 08/11/2025 EUA -60, 14/03/2026 EUA +60 | regime EUA, dst_tested 1 | irregular 0 | barras de domingo 0 dias

Isso significa que o EURUSD fechou 62 vezes nessa janela; o servidor está três horas à frente do UTC agora e já esteve duas horas à frente; o relógio mudou duas vezes: atrasou uma hora na semana anterior a 8 de novembro de 2025 e avançou na semana anterior a 14 de março de 2026, ambas em datas dos EUA. As linhas de projeção a seguir listam a hora do servidor de cada abertura nos dias em que ela muda; por exemplo

projeção 26/10/2026 Seg deslocamento +3:00 Londres 11:00 Nova York 15:00 Tóquio 03:00 Sydney Dom 23:00 (Londres)

Utilize vários símbolos que param no fim de semana: o veredicto é a maioria deles, e um símbolo que discorde é identificado.

Entradas

entrada padrão significado
InpSymbols "" Símbolos: vazio = símbolo do gráfico, * = Market Watch, caso contrário, lista CSV
InpWeeks 60 Semanas de histórico do H1 a serem lidas (60 abrangem ambas as temporadas de horário de verão)
InpMinGapHours 20 Uma pausa nas cotações dessa duração indica o fechamento do mercado (fim de semana/feriado)
InpProjectWeeks 8 Semanas de abertura de sessão para o projeto, no horário do servidor
InpLondonOpen 08:00 Abertura do mercado de Londres, horário local de Londres
InpNewYorkOpen 08:00 Abertura de Nova York, horário local de Nova York
InpTokyoOpen 09:00 Abertura do mercado de Tóquio, horário local de Tóquio
InpSydneyOpen 07h Abertura de Sydney, horário local de Sydney
InpMaxExamples 5 Diário: âncoras irregulares impressas por símbolo
InpWriteCsv true Gravar arquivos CSV de âncoras, alternâncias, resumo, projeção e veredicto
InpShowPanel true Desenhar a tabela de resultados no gráfico
InpPanelCorner CORNER_LEFT_UPPER Canto do painel
InpPanelFontSize 8 Tamanho da fonte do painel
InpPanelX 10 Deslocamento X do painel, px
InpPanelY 18 Deslocamento do painel Y, px
InpRefreshMinutes 0 Reauditar a cada N minutos (0 = auditar uma vez)

Valores fora do intervalo (semanas fora do intervalo de 2 a 520, uma pausa fora do intervalo de 6 a 60 horas, uma projeção fora do intervalo de 1 a 52 semanas, um horário de abertura que não seja HH:MM) são limitados ou redefinidos para o padrão com uma linha de registro cada; o Expert Advisor nunca se recusa a iniciar.

Arquivos de saída

Todos os arquivos são salvos em MQL5\Files\BrokerClockAuditor\, separados por ponto-e-vírgula com uma linha de cabeçalho, nomeados <símbolos>_<semanas>w_<ID do gráfico>_… para que dois gráficos nunca se sobrescrevam.

  • …_<símbolo>_anchors.csv — uma linha por fechamento: hora do servidor, o instante das 17h de Nova York em UTC, deslocamento em minutos, fim de semana ou feriado, duração da pausa, hora de reabertura, regular ou irregular.
  • …_<símbolo>_switches.csv — uma linha por mudança de horário: os dois fechamentos em torno dela, desvios antes e depois, calendário.
  • …_summary.csv — uma linha por símbolo com todos os contadores acima.
  • …_projection.csv — as aberturas projetadas da sessão, uma linha por dia em que uma delas muda.
  • …_verdict.csv — o deslocamento geral e o calendário, quantos símbolos estão de acordo e o deslocamento em tempo real.

Limites, explicados de forma clara

  • A âncora é o fechamento de Nova York às 17h. Um símbolo que fecha em outro horário (CFDs de ações às 16h, alguns índices) é lido com um deslocamento igual à diferença; se misturado com os principais símbolos, o sistema o identifica como discordante.
  • A resolução é a barra H1: os desvios são expressos em horas inteiras. Um servidor com desvio de meia hora seria lido arredondado para a hora de suas barras.
  • Uma corretora que altera seu relógio em uma data não relacionada ao horário de verão dos EUA ou da Europa obtém dados diferentes, e sua projeção pressupõe que o deslocamento mais recente permaneça como está.
  • A projeção estende o calendário que o histórico mostra. Ela não pode saber que uma corretora mudará seus servidores para outro fuso horário no mês que vem.
  • Na primeira leitura de um símbolo cujo histórico o terminal ainda não possui, podem estar disponíveis apenas algumas semanas (medido: o EURCHF veio com 2,8 semanas). O diário indica “janela reduzida” e o calendário mostra “não testado”; execute-o novamente assim que o histórico estiver disponível.
  • Semanas sem fechamento regular em qualquer um dos lados de uma mudança ampliam o intervalo; quando o intervalo abrange tanto uma data dos EUA quanto uma da Europa, a mudança é identificada como EUA+UE, em vez de ser estimada.
  • Os números acima descrevem três servidores de demonstração nas datas mostradas. Eles não dizem nada sobre os servidores com dinheiro real das mesmas corretoras, que podem operar com outros horários.

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

Advanced Prop-firm Trade Panel based on S-R Advanced Prop-firm Trade Panel based on S-R

Um painel de negociação manual com um sistema integrado de proteção contra riscos para corretoras de capital próprio e um localizador oculto de níveis de suporte e resistência para o MetaTrader 5.

CajasTF – Painel lateral integrado com vários intervalos de tempo para o MT5 CajasTF – Painel lateral integrado com vários intervalos de tempo para o MT5

Mini-gráfico no painel lateral em tempo real com vários intervalos de tempo, com combinação inteligente de cores, escala de preços independente e cronômetro de contagem regressiva das velas.

Prop Daily Loss Meter Prop Daily Loss Meter

Mostra qual a parcela do limite diário de perdas de uma conta de corretora de prop que já foi utilizada e qual a parcela restante. Indicador somente para leitura.

Accelerator Oscillator (AC) 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.