Symbol Spec Auditor
- Utilitários
-
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. - Versão: 1.0
O Symbol Spec Auditor reúne num único painel no gráfico a parte da especificação de contrato de um símbolo que determina o tamanho da posição e o custo de negociação: valor do ponto, custo do spread, margem, swap, regras de execução e sessões de negociação. Os valores brutos da especificação são convertidos em dinheiro por 1,00 lote na moeda da conta, e as configurações da corretora que quebram silenciosamente o código de cálculo de lote são listadas como avisos. Um botão exporta a mesma auditoria de todos os símbolos da Observação do Mercado para um arquivo CSV.
É uma ferramenta de verificação. Não envia ordens, não usa DLL nem WebRequest e não grava nenhum arquivo além da exportação CSV que você solicitar.
Por que existe: um código que funciona numa corretora muitas vezes se comporta mal na seguinte por causa de um detalhe da especificação que ninguém verificou. Ouro com contrato de 1 oz em vez de 100 oz, uma conta cent em que o saldo e o valor do tick estão em centavos, um nível de stops que rejeita um stop loss próximo, um tamanho do tick diferente do ponto, ordens pendentes excluídas no fim do dia. O terminal mostra tudo isso, espalhado por várias abas e em unidades brutas, então uma diferença entre duas corretoras ou dois tipos de conta passa facilmente despercebida. Uma fórmula de dimensionamento de posição que assume o tamanho de contrato habitual fica então errada por um fator de 10 ou 100, sem nenhum erro no diário.
O que o painel mostra para o símbolo do gráfico, atualizado uma vez por segundo e reconstruído quando você muda o símbolo ou o timeframe:
- Identificação: símbolo, descrição, caminho, modo de cálculo, moeda base, de lucro e de margem, moeda da conta, alavancagem da conta e modo de margem.
- Preço e contrato: dígitos, ponto, tamanho do tick, valor do tick para lucro e para prejuízo, tamanho do contrato e a data de vencimento dos contratos que vencem.
- Dinheiro por 1,00 lote: o valor de um ponto a partir do valor do tick, conferido com o tamanho do contrato vezes o ponto vezes a taxa de conversão; o valor de um movimento de 1,00 no preço; o spread em pontos e em dinheiro; o ATR(14) do timeframe 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 de venda, taxas de margem inicial, valor nocional e a alavancagem efetiva ao lado da alavancagem da conta.
- Swap para 1,00 lote: modo de swap, valores de compra e de venda, dinheiro por noite e o dia do swap triplo.
- Execução: modo de negociação, modo de execução, políticas de preenchimento, tipos de ordem permitidos, modos de expiração, modo GTC e os níveis de stops e de congelamento em pontos e em preço.
- Sessões: as sessões de negociação de hoje no horário do servidor.
Um valor que não pode ser determinado é exibido como n/a, em vez de um número plausível. As linhas do valor do tick, da verificação do valor do ponto, do spread, do ATR e da margem também informam o motivo, por exemplo um par de conversão ausente ou uma taxa de margem igual a 0.
O bloco Warnings lista as configurações que merecem uma segunda olhada, em ordem de gravidade, cada uma com a sua consequência para o código de negociação: tamanho de contrato incomum para a classe de ativo, valor do tick ou tamanho do tick igual a 0, valor do ponto obtido do valor do tick que não bate com o obtido do tamanho do contrato, moeda de conta cent, modo de negociação restrito, contrato com vencimento, ausência de cotações atuais, tamanho do tick diferente do ponto, nível de stops ou de congelamento acima de 0, modo GTC diário, volume mínimo ou passo de volume acima de 0,01 em símbolos de forex e CFD, spread acima de uma porcentagem escolhida do ATR(14) e um dia de swap triplo incomum para a classe de ativo. Quando nada disso se aplica, o painel informa que nenhuma armadilha foi detectada. Um aviso não é necessariamente um erro da corretora; ele marca um valor que o seu código precisa ler da especificação em vez de supor.
O botão Export CSV grava MQL5\Files\SymbolSpecAudit_<server>_<date_time>.csv, com uma linha por símbolo da Observação do Mercado e 55 colunas, incluindo uma coluna Warnings e uma coluna Notes que explica a ausência de valor do tick, de verificação do valor do ponto, de margem ou de ATR. Duas exportações, feitas em duas corretoras ou em dois tipos de conta, podem ser comparadas linha a linha antes de um Expert Advisor ser transferido de uma para a outra.
Uso do painel: qualquer canto do gráfico, uma ou duas colunas (automático por padrão), um modo compacto só com avisos e um botão de recolher que se mantém após trocas de símbolo e de timeframe. Por padrão, as cores acompanham o gráfico, painel claro em fundo claro e painel escuro em fundo escuro, e cada cor também pode ser definida manualmente. O layout é medido a partir das métricas reais da fonte, então continua alinhado em telas high-DPI e com outras fontes.
Parâmetros de entrada: canto do painel, deslocamento X e Y, layout, nome e tamanho da fonte, modo só com avisos, cinco cores, o limite do aviso de spread como porcentagem do ATR(14) e uma opção para exportar o CSV na inicialização. Cada parâmetro de entrada está documentado no terminal pelo seu próprio comentário.
Observações e limites. O MetaTrader 5 não permite que um indicador chame OrderCalcMargin ou OrderCalcProfit, por isso a margem e a verificação cruzada do valor do ponto usam as fórmulas documentadas de cada modo de cálculo. Nos símbolos de forex e CFD da corretora usada nos testes, os resultados coincidiram com OrderCalcMargin, chamado a partir de um Expert Advisor aos mesmos preços, com diferença dentro do arredondamento de centavos. A margem é exibida como n/a para símbolos de títulos (bonds) e de colateral, para futuros sem margem inicial e para CFDs de índices cujas moedas diferem da moeda da conta. A conversão de moeda usa símbolos da Observação do Mercado com cotações ao vivo, diretamente ou via USD; sem nenhum deles, os valores afetados mostram n/a e informam o par ausente. Contas cent são reconhecidas pelo código da moeda da conta, como USC ou EUC. O ATR é o ATR(14) da última barra fechada do timeframe do gráfico. O painel usa um timer de um segundo em vez de cada tick, e a intenção é usar uma instância por gráfico.
