Tollgate Spread Atlas
- Utilitários
-
Syarief Azman Bin Rosli
Olá e seja bem-vindo ao meu perfil oficial no MQL5!
Sou Syarief Azman Bin Rosli, desenvolvedor de sistemas de trading algorítmico e engenheiro de software quantitativo com mais de uma década de experiência especializada na criação de Expert Advisors para MetaTrader 5 e MetaTrader 4. - Versão: 1.0
- Ativações: 10
O Tollgate Spread Atlas mostra quanto custa realmente negociar com a sua corretora. Lê o histórico real de ticks do símbolo do gráfico e de até 8 símbolos da lista, monta um mapa de spread por hora da semana (segunda a sexta, 24 horas do servidor), compara o spread ao vivo com o spread típico da hora atual e converte spread, comissão e swap em custo de ida e volta e em custo como percentagem do ATR em seis períodos. É apenas de leitura: nunca abre, modifica ou fecha operações.
Início rápido
- Anexe o utilitário a qualquer gráfico (por exemplo XAUUSD ou EURUSD). Não precisa de permissão de Algo Trading porque nunca negocia.
- O painel mostra SCANNING TICK HISTORY com uma percentagem SCAN enquanto lê o histórico (Lookback Window, 28 dias por padrão). A primeira leitura pode demorar um minuto enquanto o terminal descarrega os ticks.
- No fim, o cartão ao vivo mostra LIVE SPREAD, TYPICAL, RATIO e um estado: CHEAP, NORMAL, WIDE ou SPIKE.
- Defina Cost Calculator Lot Size para o seu lote habitual e escolha Commission Source.
- Para verificar, passe o rato sobre uma célula do mapa (tooltip) ou carregue em CSV para gravar o atlas.
Como o atlas é construído
- O spread de cada cotação (ask menos bid, em pontos inteiros) conta durante os segundos até à cotação seguinte, com o limite Max Seconds Credited Per Quote, por isso falhas e mercados fechados não somam nada. A ponderação é por tempo, não por número de ticks.
- Cada célula (dia x hora do servidor) guarda uma distribuição de spreads. Dela saem MEDIAN, P90 (percentil 90) e MEAN (média ponderada pelo tempo). Os valores são exatos até 31 pontos e depois seguem em 16 passos por duplicação (mostra-se o limite inferior).
- Spread típico = mediana da célula atual. Se a célula tiver menos de Minimum Coverage For A Cell, usa-se a mesma hora em todos os dias e depois a semana inteira. A origem aparece como [CELL], [HOUR] ou [WEEK].
- Com Add Live Quotes To The Atlas ligado, o spread atual de cada símbolo é somado uma vez por segundo enquanto a cotação for recente.
- O atlas é reconstruído a partir do histórico uma vez por dia do servidor na Daily Rebuild Hour (para deslocar a janela) e ao carregar em RESCAN.
Regras de estado
RATIO = spread ao vivo / max(típico, 1 ponto). Excesso = ao vivo menos típico.
- SPIKE: RATIO igual ou acima de SPIKE From e excesso igual ou acima de Minimum Excess For WIDE / SPIKE.
- WIDE: RATIO igual ou acima de WIDE From com a mesma regra de excesso.
- CHEAP: RATIO abaixo de CHEAP Below.
- NORMAL: todo o resto.
- NO DATA: ainda sem cotação ou sem spread típico.
A regra de excesso impede que contas raw ou ECN (típico 0-2 pontos) assinalem variações mínimas.
Painel
Cabeçalho
- LED: verde ou turquesa (NORMAL, CHEAP), âmbar (WIDE ou leitura), vermelho (SPIKE), cinzento (NO DATA).
- TOLLGATE SPREAD ATLAS, o símbolo em foco e SERVER TIME (todas as horas são hora do servidor da corretora).
- [-] minimiza o painel para uma pílula com TSA, o símbolo, o rácio e o estado; [+] restaura.
Cartão ao vivo
- LIVE SPREAD em pontos (e pips em símbolos de 3/5 dígitos).
- TYPICAL com a origem [CELL], [HOUR] ou [WEEK]; RATIO; o selo de estado.
- Medidor de 0 a 3 vezes o spread típico (METER 0-3x) com marcas brancas em CHEAP Below, WIDE From e SPIKE From.
- TODAY MAX: maior spread desde a meia-noite do servidor; número de cotações lidas; dias de histórico.
Cartão de custo (ROUND-TRIP COST, moeda da conta)
- SPREAD: custo do spread para o lote com o spread ao vivo e com o típico (pontos x valor do tick x ponto / tamanho do tick x lotes).
- COMMISSION por lote e por lado com a origem: [HISTORY] (das suas operações), [FIXED] ou [NONE].
- TOTAL: ida e volta ao vivo e típica (spread + 2 x comissão x lotes) e o total ao vivo em pontos.
- SWAP / NIGHT comprado (L) e vendido (S) para o lote e o dia do swap triplo (3x WED). Swaps em pontos ou na moeda do depósito são convertidos; os outros modos mostram o valor bruto com a unidade (moeda/LOT, %/YEAR ou RAW). SWAP OFF quando o swap está desativado.
- COST / ATR: custo de ida e volta ao vivo em preço a dividir pelo ATR da última barra fechada, x 100, para M1, M5, M15, H1, H4 e D1. Verde abaixo de 5%, âmbar 5-15%, coral 15% ou mais; a barra enche aos 30%. Um valor alto significa que o custo consome grande parte de uma barra típica nesse período.
Barra de botões
- METRIC: MEDIAN / METRIC: P90 / METRIC: MEAN alterna a métrica do mapa.
- RESCAN recarrega a comissão e reconstrói todos os atlas a partir do histórico.
- CSV grava o atlas em foco (após a leitura) em MQL5\Files\Tollgate_<SYMBOL>.csv.
- ALERTS ON / ALERTS OFF liga ou desliga os alertas de SPIKE nesta sessão.
- click cell = pin: lembrete de que as células podem ser fixadas.
As alterações feitas com os botões voltam aos valores dos parâmetros quando o utilitário é reiniciado (mudança de período, novo anexo, reinício).
Mapa (HOUR-OF-WEEK ... SPREAD)
- Linhas MON a FRI, colunas 00-23 horas do servidor. Cor = valor da célula / a mesma métrica na semana inteira (WEEK MEDIAN, WEEK P90 ou WEEK MEAN): turquesa 0.6x ou menos, verde 1.0x, dourado 1.6x, coral 2.6x ou mais. Células escuras = sem dados (cobertura abaixo do mínimo).
- Borda dourada = hora atual (now). Borda branca = célula fixada.
- Tooltip: mediana, P90, média e cobertura da célula. Clique numa célula para a fixar; novo clique liberta-a.
- Linha de detalhe: NOW (célula atual) ou PINNED com MEDIAN, P90, MEAN e COVERAGE.
- CHEAPEST HOURS e DEAREST HOURS: as três horas do servidor com o spread médio ponderado mais baixo e mais alto em todos os dias.
- As cotações do fim de semana contam nos valores HOUR e WEEK mas não são desenhadas. O mapa atualiza a cada 30 segundos.
Lista de acompanhamento
Colunas WATCHLIST, LIVE, TYPICAL, RATIO, STATUS e COST/ATR H1 (ida e volta ao vivo face ao ATR de H1). Clique numa linha para pôr esse símbolo em foco em todo o painel (linha destacada). NOT FOUND = a corretora não tem esse símbolo; SCANNING = o histórico ainda está a carregar; no watchlist symbols quando a lista está vazia.
Alertas
Quando um símbolo (do gráfico ou da lista) fica em SPIKE durante SPIKE Must Last segundos, é enviado um alerta por símbolo e por Alert Cooldown, por exemplo: [Tollgate Atlas] XAUUSD spread SPIKE 51 pts = 5.1x typical 10 pts (THU 23:00 server) É escrito no registo Experts e enviado por Terminal Pop-Up Alerts, Audible Alerts (alert.wav, só com as janelas desligadas porque estas têm som próprio) e Push Notifications To Mobile (MetaQuotes ID em Ferramentas, Opções, Notificações).
Sinais para outros EA (variáveis globais do terminal)
Com Publish Terminal Global Variables ligado, a cada segundo após a leitura e para cada símbolo:
- TSA_<SYMBOL>_RATIO: ao vivo / típico.
- TSA_<SYMBOL>_TYPICAL: spread típico em pontos (-1 = sem dados).
- TSA_<SYMBOL>_OK: 1 = CHEAP ou NORMAL, 0 = WIDE ou SPIKE, -1 = NO DATA.
São apagadas quando o utilitário é removido.
if(GlobalVariableCheck("TSA_EURUSD_OK") && GlobalVariableGet("TSA_EURUSD_OK") == 0)
return; // spread is WIDE or SPIKE: skip new entries Efeitos secundários
- Adiciona os símbolos da lista à Observação do Mercado. Cria objetos de gráfico com o Object Name Prefix (removidos com o utilitário). Usa um temporizador de 250 ms.
- Só grava um ficheiro ao carregar em CSV: 168 linhas com day, hour, median_pts, p90_pts, mean_pts, coverage_min (-1 = sem dados).
Parâmetros
- Lookback Window (28, 3-90 dias corridos): histórico lido por símbolo.
- Max Seconds Credited Per Quote (60, 5-600): limite por cotação.
- Minimum Coverage For A Cell (15 minutos): abaixo disso a célula fica sem dados e o típico recorre à alternativa.
- Heatmap Metric (Median Spread): Median Spread, 90th Percentile Spread ou Time-Weighted Mean Spread no arranque.
- Add Live Quotes To The Atlas (true): aprendizagem ao vivo.
- Daily Rebuild Hour (3, hora do servidor, -1 = nunca): reconstrução diária após o rollover.
- CHEAP Below (0.85), WIDE From (1.5), SPIKE From (2.5): limites de rácio.
- Minimum Excess For WIDE / SPIKE (5 pontos).
- Cost Calculator Lot Size (1.0).
- Commission Source (From Account History): From Account History, Fixed Per Lot Per Side ou No Commission.
- Fixed Commission (3.5 por lote e lado): também é o valor de recurso se o histórico não tiver operações.
- Commission History Window (90 dias).
- ATR Period For Cost Burden (14).
- Watchlist Symbols ("EURUSD,GBPUSD,USDJPY,XAUUSD", máximo 8, nomes exatos da corretora com sufixos).
- Alert On SPIKE (true), SPIKE Must Last (5 s), Alert Cooldown (15 minutos).
- Terminal Pop-Up Alerts (true), Push Notifications To Mobile (false), Audible Alerts (true).
- Publish Terminal Global Variables (true).
- Object Name Prefix ("TSA_"): altere-o para usar duas cópias no mesmo gráfico.
- HUD Chart Corner (Top Left; Top Right, Bottom Left, Bottom Right), HUD X Offset (16), HUD Y Offset (24) em píxeis.
- Panel Scale (1.0, 0.5-2.5): multiplicador de tamanho além da escala do Windows.
- Start Minimized (false).
Configurações típicas
- Scalper em M1: Heatmap Metric 90th Percentile Spread, WIDE From 1.3, SPIKE From 2.0, Minimum Excess For WIDE / SPIKE 2; negocie nas CHEAPEST HOURS e veja COST / ATR em M1.
- Ouro: Lookback Window 42, SPIKE From 3.0, Minimum Excess For WIDE / SPIKE 15, Alert Cooldown 30, Push Notifications To Mobile true.
- Conta raw ou ECN: Heatmap Metric Time-Weighted Mean Spread, Commission Source From Account History, Minimum Excess For WIDE / SPIKE 5.
- Filtro para EA: Alert On SPIKE false, Publish Terminal Global Variables true e o excerto acima no seu EA.
Notas e limitações
- A profundidade do histórico depende da corretora; algumas guardam só algumas semanas de ticks.
- No Testador de Estratégia o atlas vem dos ticks do testador: use "Every tick based on real ticks" para ver spreads reais.
- Os spreads variam entre corretoras e tipos de conta, e os spreads passados não garantem os futuros. O utilitário mede custos; não prevê preços nem resultados. Negociar envolve risco de perda.
