Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
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

Symbol Spec Auditor - 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:
16
Avaliação:
(1)
Publicado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

O Symbol Spec Auditor mostra, em um painel no gráfico, as partes da especificação do contrato de um símbolo que determinam o tamanho da posição e o custo da negociação: valor do ponto, custo do spread, margem, swap, regras de execução e sessões. Os valores são convertidos em dinheiro por 1,00 lote na moeda da conta, e as configurações da corretora que violam silenciosamente o código de tamanho de lote são listadas como avisos. Com um clique, é possível exportar a mesma auditoria para todos os símbolos do Market Watch para um arquivo CSV.

symbol-spec-auditor-xauusd

XAUUSD H1: o painel completo de duas colunas para um símbolo sem armadilhas

O problema

Um código que funciona em uma corretora frequentemente apresenta comportamento indesejado na seguinte devido a um detalhe da especificação que ninguém verificou. A janela de especificações do símbolo mostra tudo isso, mas espalhado por várias abas e em unidades brutas, de modo que é fácil deixar passar uma diferença entre duas corretoras ou dois tipos de conta. Um Expert Advisor que dimensiona posições com base em um valor presumido de contrato ou ponto corre o risco de operar com o montante errado, sem que haja qualquer erro registrado no diário. Casos típicos:

  • Ouro com um contrato de 1 onça em vez de 100 onças, ou um símbolo “mini” de câmbio com 10.000 unidades. Uma fórmula de lote que pressupõe o contrato usual está errada em 100 ou 10 vezes.
  • Uma conta em centavos, na qual o saldo, o valor do tick e a margem são todos expressos em centavos.
  • Um nível de stop ou nível de congelamento que rejeita SL/TP ou modificações próximas ao preço.
  • Ordens diárias: a corretora exclui ordens pendentes e, às vezes, SL/TP, ao final do dia de negociação.
  • Um tamanho de tick que difere do ponto, de modo que preços fora da grade de ticks são rejeitados.
  • Um volume mínimo ou passo de volume que força o arredondamento, um símbolo no modo “somente fechamento” ou um dia incomum de swap triplo.

Este indicador reúne esses valores em um único local, converte-os em valor monetário por 1,00 lote e lista o que merece uma análise mais detalhada, com cada aviso acompanhado de uma descrição de uma linha. Trata-se apenas de uma ferramenta de verificação: ela não coloca ordens, não utiliza DLLs e não grava arquivos, exceto a exportação em CSV solicitada por você. O painel e o CSV utilizam os mesmos cálculos; portanto, o que você vê em um gráfico pode ser comparado com todo o Market Watch.

O que o painel mostra

O painel descreve o símbolo do gráfico. Ele é atualizado uma vez por segundo e reconstruído quando você altera o símbolo ou o período, de modo que mudar o símbolo do gráfico verifica um símbolo após o outro. Um valor que não pode ser determinado é exibido como n/a junto com o motivo, e uma linha cujo valor aciona um aviso é destacada na cor de alerta. As linhas são agrupadas em seções:

  • Identidade: símbolo, descrição, caminho, modo de cálculo, base, moeda de lucro e margem, moeda da conta, alavancagem da conta e modo de margem.
  • Preço e contrato: dígitos, ponto, tamanho do tick, valor do tick (lucro e prejuízo), tamanho do contrato e data de vencimento para símbolos com vencimento, como futuros.
  • Valor monetário por 1,00 lote: o valor de 1 ponto calculado a partir do valor do tick, verificado em relação ao tamanho do contrato × ponto × taxa de conversão; o valor de uma variação de preço de 1,00; o spread atual em pontos e em valor monetário; ATR(14) do período do gráfico e o spread como porcentagem dele.
  • Volume: mínimo, passo, máximo e limite.
  • Margem para 1,00 lote: margem de compra e venda, taxas de margem inicial, valor nocional e a alavancagem efetiva (valor nocional dividido pela margem) ao lado da alavancagem da conta. Quando um valor não pode ser calculado, o painel indica o motivo, por exemplo, “sem cotações”, “taxa de margem é 0”, “alavancagem da conta é 0” ou falta de taxa de conversão.
  • Swap para 1,00 lote: modo de swap, valores de posição longa e curta, valor por noite na moeda da conta (modos de pontos, moeda e juros) e o dia de swap triplo. Um número de dia fora do intervalo de domingo a sábado é exibido como “não definido”.
  • Execução: modo de negociação, modo de execução, políticas de preenchimento (FOK, IOC, BOC, Return), tipos de ordens permitidos, modos de expiração, modo GTC (por quanto tempo as ordens pendentes e SL/TP permanecem ativas) e níveis de stop e congelamento em pontos e em preço.
  • Sessões: sessões de negociação de hoje no horário do servidor.

Avisos

O bloco “Avisos”, na parte inferior do painel, lista as configurações que requerem atenção, começando pelas mais graves. Cada aviso indica o valor e sua consequência para o código de negociação. Se nenhum se aplicar, o painel exibe “Nenhuma falha detectada”. As verificações comparam com valores de referência comuns; portanto, um aviso nem sempre indica um erro da corretora: ele sinaliza uma configuração que seu código deve ler na especificação, em vez de simplesmente presumir.

  • Tamanho do contrato incomum para a classe de ativos: forex 100.000, ouro 100, prata 5.000.
  • O valor do tick ou o tamanho do tick é 0, ou o valor do ponto derivado do valor do tick e o valor do ponto derivado do tamanho do contrato diferem em mais de 1%.
  • Moeda da conta em centavos (USC, EUC e similares).
  • Modo de negociação diferente de “completo”: desativado, apenas comprado, apenas vendido ou apenas fechamento.
  • Contrato em vencimento, com sua data de vencimento.
  • Sem cotação de compra/venda atual.
  • Tamanho do tick diferente do ponto.
  • Nível de stop ou nível de congelamento acima de 0.
  • Ordens diárias (modo GTC). “Diário” exclui SL/TP e ordens pendentes ao final do dia de negociação; “diário, exceto stops” exclui ordens pendentes e mantém SL/TP.
  • Volume mínimo acima de 0,01 ou incremento de volume acima de 0,01, apenas em símbolos de Forex e CFDs. Instrumentos de bolsa costumam ser negociados em lotes inteiros, portanto não são sinalizados.
  • Spread acima da porcentagem escolhida do ATR(14) no período do gráfico.
  • Swap triplo em um dia que não seja quarta-feira, apenas para Forex e metais. Quinta-feira é aceita para o USD em relação ao CAD, TRY, RUB e PHP, que são liquidados um dia antes. Índices, criptomoedas e outros CFDs costumam rolar na sexta-feira; portanto, para eles, o dia é exibido, mas não sinalizado.

avisos-do-auditor-de-especificações-de-símbolos

US500 M1 (CFD): volume mínimo de 0,14 lotes e um spread de 28 pontos, o que corresponde a 17,6% do ATR M1

Exportação para CSV

O botão “Exportar CSV”, ou a opção de inicialização, grava o arquivo MQL5\Files\SymbolSpecAudit_<servidor>_<aaaaammdd_hhmm>.csv com uma linha por símbolo do Market Watch. Suas 55 colunas contêm todos os valores acima, incluindo o modo GTC e o vencimento do contrato, além de uma coluna “Avisos” (separada por “|”) e uma coluna “Notas” que explica por que um valor está faltando. É possível comparar linha por linha duas exportações de duas corretoras ou tipos de conta.

O arquivo está no formato UTF-8 com BOM, separado por vírgulas, com citação padrão dos campos que contêm vírgulas ou aspas. Os números usam um ponto como separador decimal e não possuem separadores de milhares. Em configurações regionais onde o separador de lista é um ponto-e-vírgula, abra o arquivo por meio da caixa de diálogo de importação da planilha. O caminho completo do arquivo é exibido na guia “Experts”.

Manipulação de painéis

  • Qualquer canto do gráfico, uma ou duas colunas (padrão automático) e um modo compacto apenas para avisos.
  • Um botão de recolhimento que permanece recolhido mesmo com mudanças de símbolo e período de tempo.
  • As cores acompanham o gráfico por padrão: um painel claro em um fundo claro do gráfico e um painel escuro em um fundo escuro. Cada cor também pode ser definida manualmente.
  • O layout é calculado com base nas métricas reais da fonte, de modo que permanece alinhado com outras fontes e em telas de alta resolução (DPI). Avisos longos são quebrados na largura do painel.
  • Apenas os rótulos cujo texto ou posição foram alterados são atualizados, de modo que o painel não pisca.
  • Ao iniciar, os objetos do painel deixados no gráfico por uma instância anterior (por exemplo, de um modelo salvo) são removidos.

symbol-spec-auditor-apenas-avisos

EURUSD M1, modo somente avisos: o spread de 6 pontos corresponde a 35,9% do ATR do M1

Entradas

Entrada Padrão Descrição
Canto do painel Canto superior esquerdo Canto do gráfico ao qual o painel está ancorado.
Deslocamento X (pixels com escala de tela de 100%) 10 Distância horizontal a partir do canto. Dimensionado automaticamente em telas com alta resolução (DPI).
Deslocamento Y (pixels com escala de tela de 100%) 30 Distância vertical do canto. Dimensionado automaticamente em telas com alta resolução (DPI).
Layout Automático A opção “Automático” usa uma coluna quando o painel se ajusta à altura do gráfico; caso contrário, usa duas colunas. As opções “Uma coluna” e “Duas colunas” definem o layout.
Nome da fonte Consolas Uma fonte monoespaçada mantém as colunas organizadas; qualquer fonte instalada funciona.
Tamanho da fonte 9 De 4 a 24; outros valores são limitados a esse intervalo.
Mostrar apenas avisos false Painel compacto com o título, os avisos e o botão “Exportar CSV”.
Texto (Nenhum = automático) Nenhum Cor do texto. A opção “Nenhuma” seleciona a cor com base no fundo do gráfico.
Títulos (Nenhum = automático) Nenhum Cor dos títulos das seções.
Avisos (Nenhum = automático) Nenhuma Cor dos avisos e das linhas atrás deles.
OK / sem armadilhas (Nenhuma = automático) Nenhum Cor da linha “Nenhuma armadilha detectada”.
Fundo (Nenhuma = automático) Nenhuma Fundo do painel. Os rótulos das teclas, as bordas e os botões são criados a partir da combinação das cores do texto e do fundo.
Avisar se o spread exceder % do ATR(14) (0 = desativado) 15,0 Limite para o aviso de spread. 0 desativa o recurso.
Exportar todos os símbolos do Market Watch para CSV ao iniciar false Gera o arquivo CSV uma única vez ao iniciar o indicador, e não novamente ao alterar um símbolo ou período.

Como usar

  1. Anexe o indicador a qualquer gráfico. Ele não traça linhas e pode ser executado em conjunto com um Expert Advisor.
  2. Leia primeiro o bloco de Avisos; as linhas acima dele contêm os números por trás de cada aviso.
  3. Altere o símbolo do gráfico para auditar outros símbolos ou pressione “Exportar CSV” para auditar todos os símbolos do Market Watch de uma só vez.
  4. Use o botão “-” para recolher o painel até a barra de título.

Um uso comum é executar a exportação em uma nova corretora ou tipo de conta antes de transferir um Expert Advisor para lá, e comparar tamanhos de contrato, valores de tick, incrementos de volume, níveis de stop, modos GTC e dias de swap com a conta na qual o Expert Advisor foi desenvolvido. As diferenças nessas colunas são as que, com mais frequência, alteram o risco por operação ou o custo de uma estratégia sem que haja nenhum erro visível.

Notas e limitações

  • A margem e a verificação cruzada do valor por ponto utilizam fórmulas. O MetaTrader 5 não permite que indicadores chamem OrderCalcMargin ou OrderCalcProfit (eles falham com o erro 4014), portanto, o indicador aplica as fórmulas fornecidas pela documentação do MQL5 para cada modo de cálculo: uma margem inicial fixa quando a corretora define uma, a taxa de margem inicial obtida por meio de SymbolInfoMarginRate e a conversão para a moeda da conta com base no preço de venda (ask) para compras e no preço de compra (bid) para vendas. Nos símbolos de Forex, Forex sem alavancagem, CFD e CFD com alavancagem, os resultados corresponderam aos do OrderCalcMargin, chamado por um Expert Advisor com os mesmos preços, com uma diferença de arredondamento de um centavo.
  • A margem é exibida como n/a para símbolos de títulos e garantias, para futuros sem margem inicial e para símbolos de índices de CFDs cujas moedas diferem da moeda da conta. Os níveis de margem dependentes do volume e as regras aplicadas apenas no servidor de negociação não são refletidos.
  • Para futuros e títulos, o valor do tick da corretora é a especificação, portanto, a verificação cruzada do valor do ponto é exibida como “n/a” nesses casos.
  • O valor do swap para os modos de juros utiliza o valor nocional e um ano de 360 dias. Para os modos de reabertura, não existe um valor fixo; portanto, é exibido como n/a.
  • A conversão de moeda utiliza apenas símbolos do Market Watch com cotações em tempo real, diretamente ou por meio do dólar americano (USD). Na ausência de um símbolo, os valores monetários afetados exibem “n/a” ou o valor nocional é mostrado sem conversão. Adicione o par de conversão ao Market Watch para preenchê-los.
  • O MetaTrader 5 adiciona um símbolo de conversão ao Market Watch quando o valor do tick de um símbolo com moeda de lucro estrangeira é lido. O indicador, portanto, lê o valor do tick somente quando um símbolo cotado no Market Watch já vincula a moeda de lucro à moeda da conta, e nunca enumera símbolos fora do Market Watch; caso contrário, o valor do tick exibe “n/a” com o par ausente, por exemplo, “nenhum símbolo KRW/USD cotado no Market Watch”. Em testes, ele nunca adicionou um símbolo. O terminal escolhe seu próprio símbolo de conversão, porém; assim, em uma corretora cujo símbolo de conversão tenha um nome diferente do que consta no Market Watch, um símbolo ainda pode ser adicionado.
  • Contas em centavos são reconhecidas pelo código da moeda da conta (USC, EUC, GBC e similares) e convertidas como 1/100 da moeda principal, portanto, 1 USD = 100 USC. Esse caminho foi verificado com uma moeda de conta simulada, não em uma conta real em centavos. Uma conta em centavos que declare sua moeda como USD não é detectada por essa verificação.
  • Os tamanhos habituais de contrato e os dias de rollover triplo são valores de referência. Uma corretora pode usar legitimamente outros tamanhos (símbolos micro ou em centavos) ou outro dia de rollover; o aviso existe para que seu código leia a especificação em vez de presumir o valor.
  • O ATR é o ATR(14) da última barra fechada do período do gráfico. Para os outros símbolos no CSV, ele é calculado a partir do histórico de barras; logo após a inicialização, esse histórico ainda pode estar sendo carregado; nesse caso, a coluna “Notas” indica isso e uma segunda exportação preenche os dados.
  • O painel é atualizado por um temporizador de 1 segundo, não a cada tick. O estado recolhido é mantido em uma variável global temporária do terminal chamada SymbolSpecAuditor_<chart id>, que é excluída quando o indicador é removido ou o gráfico é fechado. Use uma instância por gráfico.
  • As capturas de tela foram feitas em uma conta de demonstração e em uma tela de 192 DPI com tamanho de fonte 4 (6 no modo somente avisos), de modo que o painel se encaixe em uma imagem de 750 pixels. O tamanho padrão 9 resulta em um painel maior.

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

Spread Profile by Hour Spread Profile by Hour

Mostra o spread real para cada hora de servidor, medido a partir do próprio histórico de ticks da sua corretora: mediana e 90º percentil por hora, custo opcional como porcentagem do seu stop e por lote, além de exportação para CSV.

iFVG Indicator With Signals iFVG Indicator With Signals

Indicador iFVG com sinais

Accumulation/Distribution 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) 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.