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
Indicadores

Spread Profile by Hour - indicador 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:
17
Avaliação:
(2)
Publicado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

O “Perfil do Spread por Hora” calcula a distribuição real do spread para cada hora do servidor a partir do histórico de ticks da sua corretora e exibe a mediana e o 90º percentil por meio de 24 barras. Insira o tamanho típico do seu stop, e cada barra indicará quanto de 1R o spread consome naquela hora, permitindo que as horas mais caras do dia sejam identificadas rapidamente.

perfil-de-spread-eurusd

EURUSD, contagem de ticks, stop de 50 pontos: 6 pontos (12% do stop) na maior parte do dia, 34 pontos (68%) no rollover das 21h

O problema

Para sistemas intradiários e de scalping, o spread — e não o sinal de entrada — muitas vezes decide se uma vantagem é mantida. O terminal mostra o spread atual, mas não como ele se comporta ao longo do dia. Uma estratégia testada em horários de baixa atividade pode falhar com as mesmas regras na rolagem, na abertura do pregão ou em torno de notícias, simplesmente porque o spread nessas ocasiões é várias vezes maior.

O histórico de barras armazena apenas um valor de spread por barra, o que oculta a distribuição. Este indicador lê os próprios ticks: cada cotação de compra/venda dos últimos N dias, agrupados por hora do dia no horário do servidor. O resultado é uma mediana por hora e o 90º percentil, que você pode comparar diretamente com seu stop e seu movimento esperado.

Recursos

  • Mediana por hora, percentil 90, média e spread máximo em pontos, calculados a partir do CopyTicksRange nos últimos N dias corridos. O dia de hoje é excluído, para que o panorama não se altere durante a sessão.
  • Dois modos de amostragem:
    • Contagem de ticks: cada cotação conta uma vez.
    • Ponderada pelo tempo: cada cotação conta pelo tempo em que permaneceu válida (até a próxima cotação, no máximo 60 segundos). A contagem de ticks superrepresenta mercados rápidos, e mercados rápidos costumam apresentar os spreads mais amplos. A ponderação pelo tempo responde à pergunta “qual spread eu teria pago em um momento aleatório desta hora”.
  • Filtro de dias da semana: todos os dias ou de segunda a sexta-feira individualmente.
  • Visualização de custo: insira o tamanho do seu stop em pontos e cada barra será identificada com o spread mediano como porcentagem desse stop. O cabeçalho mostra a mediana e o 90º percentil da hora atual como parcela do stop.
  • Custo do spread mediano na moeda da conta por 1,00 lote para a hora atual, calculado a partir do valor do tick e do tamanho do tick do símbolo.
  • Horas mais baratas e mais caras por mediana, até três de cada. Horas com a mesma mediana são listadas juntas ou resumidas, por exemplo, “Mais baratas: 23 horas a 6 pt”, de modo que valores iguais nunca são apresentados como uma classificação. Se todas as horas tiverem a mesma mediana, o cabeçalho indica isso.
  • A hora atual do servidor é destacada, e o spread em tempo real é representado por uma linha tracejada. Quando a janela é estreita demais para exibir um rótulo acima de cada barra, a barra mais alta mantém seu rótulo.
  • Exportação opcional em CSV das estatísticas por hora para MQL5\Files (UTF-8, abre diretamente no Excel).
  • Carrega um dia de ticks por etapa do temporizador e libera a memória imediatamente, de modo que o gráfico permanece responsivo mesmo com ouro ou criptomoedas (100.000 ou mais ticks por dia). Os dias em que o terminal ainda está fazendo o download são tentados novamente por alguns segundos, e um dia cujos ticks não cobrem suas barras M1 é tentado novamente antes de ser utilizado. Para dias mais antigos do que o histórico M1 do terminal (número máximo de barras no gráfico), a integridade não pode ser verificada em relação às barras; enquanto o terminal estiver baixando, esse dia só será utilizado quando a contagem de ticks parar de mudar.
  • Lê os dias mais recentes primeiro. Quando três dias de negociação consecutivos não apresentam ticks (ou três dias consecutivos do dia da semana escolhido), ou dez dias consecutivos não apresentam nem ticks nem barras M1 (período mais longo do que qualquer feriado do mercado), esses dias são lidos uma segunda vez após uma breve pausa; se ainda assim não houver ticks, o carregamento é interrompido; uma lacuna no armazenamento de ticks da corretora tem o mesmo efeito. Um símbolo sem histórico de ticks exibe uma mensagem clara em cerca de 20 segundos, e um histórico de ticks mais curto do que a profundidade escolhida é utilizado até seu início. Na primeira execução em uma profundidade longa, o terminal ainda pode estar fazendo o download; se o carregamento parar antes do tempo, reconecte-o assim que o download terminar (a segunda execução lê do disco). O diário do Expert recebe uma linha de resumo por cálculo.
  • Segue-se o gráfico: o plano de fundo é, por padrão, da cor do gráfico; as cores do texto e da grade se adaptam a planos de fundo escuros ou claros; e o layout se ajusta de acordo com o DPI da tela. Várias cópias podem ser executadas em um único gráfico.
  • Não são necessárias funções de negociação, DLLs nem arquivos externos.

Entradas

Entrada Padrão Descrição
Profundidade do histórico, em dias do calendário (excluindo o dia de hoje) 20 Número de dias corridos anteriores à data de hoje a serem lidos (de 1 a 365). Os finais de semana contam como dias, portanto, 20 dias corridos correspondem a 14 a 17 dias úteis.
Amostragem Contagem de ticks Contagem de ticks ou ponderada pelo tempo (consulte Recursos).
Filtro de dias úteis Todos os dias Restringe o perfil a um único dia da semana. Aumente também a profundidade do histórico, já que 20 dias do calendário contêm apenas 2 ou 3 de um determinado dia da semana.
Intervalo do histograma, pontos (variações maiores = transbordamento) 5.000 Intervalos maiores do que esse vão para um compartimento de transbordamento. As estatísticas que caem nesse compartimento são exibidas como “>5.000”.
Número mínimo de ticks por hora a serem exibidos 100 As horas com menos ticks são exibidas como “-”, por exemplo, o intervalo diário.
Tamanho do stop, pontos (0 = desativado) 0 Seu stop padrão. O valor 0 desativa as legendas percentuais e exibe a mediana em pontos.
Altura da janela com escala de 100%, px (0 = redimensionável) 240 Altura fixa da janela do indicador, redimensionada de acordo com o DPI da tela. O valor 0 permite redimensionar a janela livremente.
Fundo (Nenhum = fundo do gráfico) Nenhum “Nenhum” usa o fundo do gráfico.
Barra mediana Azul Cor da barra mediana.
Limite do 90º percentil (Nenhum = cor mais clara da barra) Nenhuma A opção “Nenhuma” utiliza uma versão mais clara da cor da barra.
Hora atual Laranja Cor de destaque da hora atual do servidor.
Linha de spread em tempo real Vermelho Cor da linha de spread em tempo real.
Texto (Nenhum = automático) Nenhuma A opção “Nenhuma” seleciona uma cor legível para um fundo escuro ou claro.
Grade (Nenhuma = automática) Nenhuma A opção “Nenhuma” seleciona uma cor de grade que combine com o fundo.
Tamanho da fonte, pt 9 Tamanho básico da fonte.
Salvar estatísticas por hora em MQL5\Files (CSV) false Grava o arquivo MQL5\Files\SpreadProfile_<símbolo>_<aaaaammdd>.csv após cada cálculo.

Como interpretar

Cada barra representa uma hora do dia no horário do servidor. A parte preenchida é o spread mediano: metade das cotações, ou metade do tempo no modo ponderado pelo tempo, apresentou um spread igual ou inferior a esse valor. A parte mais clara atinge o 90º percentil: uma em cada dez cotações apresentou um spread maior do que esse. A linha tracejada representa o spread em tempo real, e a coluna destacada indica a hora atual do servidor. Os exemplos abaixo foram extraídos de capturas de tela, feitas em uma conta demo ao longo de 20 dias corridos (17 deles com ticks).

  • EURUSD, contagem de ticks, stop de 50 pontos: a mediana é de 6 pontos em 23 das 24 horas. Às 21h, horário do servidor, no rollover diário, o spread é de 34 pontos, com um 90º percentil de 58. O spread mediano ocupa 12% de 1R durante a maior parte do dia e 68% nessa hora.
  • GBPUSD, ponderado pelo tempo: 7 pontos em 23 horas, mediana de 46 e percentil 90 de 94 às 21h. No modo de contagem de ticks, a mesma hora apresenta 54 e 100, pois os momentos de maior movimento nas cotações em torno da renovação também apresentam os spreads mais amplos.
  • XAUUSD, contagem de ticks, stop de 1.500 pontos: a mediana é de 182 pontos (12% do stop, 18,20 USD por lote) em todas as horas com dados, por isso o cabeçalho indica isso em vez de classificar valores iguais. A interrupção diária às 21h não apresenta ticks e é exibida como “-”.

perfil-de-spread-gbpusd-ponderado-pelo-tempo

GBPUSD, ponderado pelo tempo, sem stop definido: 7 pontos em 23 horas, mediana de 46 e percentil 90 de 94 às 21h

perfil-de-spread-xauusd

XAUUSD, contagem de ticks, stop de 1.500 pontos: 182 pontos a cada hora com dados, sem ticks na pausa diária às 21h

Uma interpretação prática: se o seu sistema opera em uma hora em que o spread mediano representa uma parcela significativa do seu stop, ignore essa hora, amplie o stop ou certifique-se de que o movimento esperado compense isso. O 90º percentil indica como seria uma execução ruim, mas não rara.

Notas e limitações

  • A profundidade do histórico de ticks depende da sua corretora e do que o terminal já baixou. A primeira execução em um longo período pode demorar um pouco, pois o terminal baixa os ticks do servidor. Se o histórico de ticks terminar antes da profundidade escolhida, o cabeçalho exibe “nenhum tick anterior” com a data do dia mais antigo utilizado. No servidor de teste, por exemplo, o histórico de ticks começou em 1º de janeiro de 2026, enquanto as barras M1 remontam a anos atrás.
  • Todas as horas são horas do servidor. Dependendo do fuso horário do servidor da corretora e das regras de horário de verão, um evento como a rolagem diária pode variar em uma hora do servidor entre o verão e o inverno. Uma janela de histórico que abrange essa mudança mostra o evento dividido entre duas horas vizinhas.
  • Contas de demonstração e reais, bem como diferentes tipos de conta (padrão, raw, zero), podem apresentar spreads muito diferentes para o mesmo símbolo. Faça a análise na conta em que você opera.
  • O histórico de spreads não garante os spreads futuros. Notícias, feriados e períodos de baixa liquidez podem gerar spreads bem acima do 90º percentil mostrado aqui.
  • O custo por lote utiliza o valor atual do tick, que, para pares cruzados, varia de acordo com a taxa de câmbio.
  • O perfil é recalculado uma vez a cada novo dia do servidor e sempre que as entradas, o símbolo ou o intervalo de tempo forem alterados.
  • Na máquina de teste, 20 dias de XAUUSD (4,3 milhões de ticks) foram carregados em cerca de 1 a 3 segundos, 90 dias (19 milhões de ticks) em cerca de 8 segundos e 365 dias de EURUSD (9,4 milhões de ticks em 232 dias com ticks) em cerca de 30 segundos, incluindo a segunda leitura dos dias anteriores ao início do histórico de ticks, uma vez que os ticks já estavam no disco. Seus tempos dependem da densidade de ticks da sua corretora e se os ticks já estão no disco.

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

iFVG Indicator With Signals iFVG Indicator With Signals

Indicador iFVG com sinais

EMA Cross Demo EA with ATR Stops EMA Cross Demo EA with ATR Stops

Um pequeno Expert Advisor de demonstração: entradas por cruzamento de EMAs rápida e lenta (avaliadas apenas em barras fechadas, sem repintura), stop-loss e take-profit baseados em ATR, filtro de spread e gerenciamento de posições que funciona tanto em contas de hedge quanto em contas de compensação. Inclui uma implementação de referência em Python para testes de paridade. Este é um exemplo prático, não uma recomendação de negociação — a curva de patrimônio anexada é proveniente de dados sintéticos e ilustra o método, não uma vantagem competitiva.

Symbol Spec Auditor Symbol Spec Auditor

Um painel gráfico que exibe os detalhes das especificações do contrato que determinam o tamanho da posição e os custos de negociação (valor do ponto, custo do spread, margem, swap, regras de execução) na moeda da conta, alerta sobre configurações da corretora que violam silenciosamente as regras de tamanho do lote e exporta a auditoria de cada símbolo do Market Watch para um arquivo CSV.

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.