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

Any Indicator Alert - alerts, push notifications and multi-timeframe for any custom indicator, no source code needed - indicador para MetaTrader 5

Ayaz
Ayaz
  • MQL5 Developer / Algorithmic Trading em  Freelance
  • Paquistão
  • 841
5 (2)
MQL5 developer working on automated trading systems — Expert Advisors, custom indicators, and TradingView-to-MT5 conversions.
| Portuguese English Русский 中文 Español Deutsch 日本語 한국어 Français Italiano Türkçe
Visualizações:
24
Avaliação:
(1)
Publicado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Dois dos maiores tópicos deste fórum são “Indicadores com alertas/sinais” e “Indicadores para múltiplos intervalos de tempo”. Eles continuam abertos há anos porque a resposta sempre foi a mesma: obtenha o código-fonte, edite-o e recompile. Isso não ajuda se você tiver um arquivo .ex5 e não tiver o código-fonte, e não é viável se você usar vários indicadores.

Isso resolve o problema externamente. O iCustom pode carregar qualquer indicador pelo nome e ler seus buffers sem o código-fonte, de modo que uma única ferramenta pode atender a todos eles.

Comece no modo EXPLORE

O motivo pelo qual as pessoas evitam o iCustom é que ele exige um número de buffer, e nada indica qual número contém o que você vê no gráfico. Portanto, o modo padrão responde a essa dúvida primeiro. Ele verifica os buffers, conta o que há em cada um e exibe esses valores ao lado das últimas barras.

Um buffer com um valor em quase todas as barras é uma linha; portanto, use uma cruz de nível ou uma cruz em relação a um segundo buffer. Um buffer que está vazio, exceto onde o indicador desenhou algo, é o sinal; portanto, use “aparece um valor”. Leia o número na tabela, mude para o modo OBSERVAR e escolha um gatilho.

Exemplo do que o EXPLORE exibe

Esta é uma execução real em um gráfico XAUUSDm H1 ao vivo, observando o RSI padrão. Cada buffer do indicador é listado com quantas das barras amostradas contêm um valor real, quantas são exatamente zero e quantas estão em branco, seguido pelos próprios valores, barra por barra.

Buffers found: 3   (checked up to 16, on XAUUSDm PERIOD_H1)
------------------------------------------------------------------
  buffer  values  zeros  blank  what it looks like                     range of the values
       0      12      0      0  a line - a value on almost every bar   31.47608 .. 55.28984
       1      12      0      0  a line - a value on almost every bar   4.11585 .. 6.11288
       2      12      0      0  a line - a value on almost every bar   3.86003 .. 8.96028
------------------------------------------------------------------
  bar  time               buf0         buf1         buf2
    0  2026.09.04 20:00     45.61107     5.40493     6.44511
    1  2026.09.04 19:00     46.88624     5.82069     6.59381
    2  2026.09.04 18:00     43.33095     5.42967     7.10102
    3  2026.09.04 17:00     40.80179     5.27080     7.64725
------------------------------------------------------------------
Read it like this: the buffer that is empty on most bars and carries a value
only where the indicator drew its signal is the one to watch. Put its number
in 'Buffer to watch', set Mode to WATCH, and pick a trigger.
A buffer that has a value on every bar is a line - use a level or buffer cross.
Modo EXPLORE na aba “Especialistas”: todos os buffers de Examples\RSI no XAUUSDm H1 e o que cada um deles contém

Aqui, todos os três buffers são linhas, que é o que o RSI representa. Em um indicador de seta ou de sinal, a tabela tem uma aparência diferente, e essa diferença é o ponto principal:

  buffer  values  zeros  blank  what it looks like                     range of the values
       0       0      0      8  nothing here on these bars             -
      11       8      0      0  a line - a value on almost every bar   16.08798 .. 16.25192
      14       7      1      0  sparse - looks like a signal           4166.06000 .. 4166.06000

O buffer 14 é o que deve ser observado nesse caso. Ele fica vazio na maioria das barras e contém um preço apenas onde o indicador marcou algo; portanto, “o aparecimento de um valor” é o gatilho para ele. O buffer 11 é uma linha interna e o buffer 0 não contém absolutamente nada nessas barras.

Valores atrasados e repinturas não são a mesma coisa, portanto são contabilizados separadamente

O valor de cada barra fechada é mantido e lido novamente em cada nova barra. Quando uma barra fechada sofre alteração, há duas razões bem diferentes para isso.

Um valor atrasado. A barra estava em branco e agora contém um valor. O indicador precisava das barras posteriores antes de poder marcar essa. Os fractais funcionam assim por padrão, assim como a maioria dos marcadores de oscilação e estrutura. Não se trata de engano, mas significa que o sinal nunca esteve visível na barra para a qual aponta, e isso é importante se você avaliar uma estratégia a olho nu.

Uma repintura. Um valor que estava lá se deslocou ou desapareceu. Algo sobre o qual você poderia ter agido já não existe mais.

Ambos são relatados com o tempo da barra, o valor antigo e o novo, e o comentário do gráfico mantém uma contagem acumulada de cada um. Nada é inferido a partir da barra em formação, pois é normal que ela mude.

Essa distinção foi testada, e não simplesmente afirmada. No XAUUSD H1, 299 barras, de 1 a 20 de agosto de 2026, observando o buffer 0 de cada indicador:

Indicador observado Valores atrasados Repinturas
Exemplos\Fractais: marca uma barra duas barras após seu fechamento 40 0
Exemplos\ZigZag, redesenha seu último trecho conforme o design 0 83, cada um com um valor que desapareceu
Exemplos\RSI, calculado assim que uma barra fecha 0 0

Portanto, diz-se “atrasado” sobre um indicador que apresenta defasagem, “repintado” sobre um que se repinta, e nada sobre um que não apresenta nenhuma dessas características. Na mesma execução, o gatilho de nível foi acionado duas vezes quando o RSI cruzou abaixo de 30, em 28,38 e 29,21; a linha principal do MACD cruzou acima de sua linha de sinal nove vezes e abaixo dela nove vezes; e a leitura do RSI do H4 em um gráfico H1 produziu um alerta por barra H4, 77 no total, cada um marcado como PERIOD_H4. A execução também foi comparada a um indicador de terceiros da Smart Money Concepts, de 157 KB, onde foram encontrados 16 buffers e três linhas internas foram separadas de dois buffers de sinal esparsos.

Gatilhos

Um valor aparece em uma barra, seja na barra que acabou de fechar ou, no caso de um indicador defasado, em uma barra anterior que só agora foi marcada; um cruzamento acima ou abaixo de um nível; um buffer cruzando outro em qualquer direção; ou simplesmente a mudança do valor. Os alertas são exibidos em uma janela pop-up, por meio de um som, uma notificação push ou e-mail, um por barra. Por padrão, apenas as barras fechadas são avaliadas. Desative essa opção e a barra em formação será avaliada a cada tick, o que gera alertas mais cedo e pode reverter, mas ainda assim há um alerta por barra, independentemente da situação.

Um intervalo de tempo superior

Defina “Ler neste intervalo de tempo” e o indicador monitorado será carregado nesse intervalo, em vez do do gráfico. As barras, os gatilhos e a verificação de repintura seguirão esse intervalo.

Dois exemplos práticos

Exemplo 1 — avise-me quando o RSI ultrapassar 70. Você já conhece esse indicador, então a opção “EXPLORAR” serve apenas para verificação.

Entrada Valor
Arquivo do indicador Exemplos\RSI
Suas entradas 14
Leia neste período Intervalo de tempo atual
Modo ASSISTIR
Buffer a ser observado 0
Gatilho O buffer ultrapassa o nível
Nível 70
Alerta pop-up verdadeiro

Nos dados de teste que geraram quatro alertas, em 75,04, 76,31, 70,38 e 74,83. Para obter o mesmo resultado no gráfico de quatro horas enquanto você analisa o de uma hora, defina “Ler neste intervalo de tempo” como H4 e não altere nada mais.

Exemplo 2 — um indicador de seta que você baixou e não tem a fonte. Aqui, o EXPLORE está fazendo o trabalho de verdade.

  1. Anexe com o Modo definido como EXPLORE e “Arquivo do indicador” definido com o nome desse indicador. Deixe “Suas entradas” em branco para usar os padrões do próprio indicador.
  2. Abra a Caixa de Ferramentas, a aba Especialistas e encontre o buffer que está esparso — vazio na maioria das barras, com um valor em que você consiga ver uma seta no gráfico. Digamos que seja o buffer 2.
  3. Anexe-o novamente com o Modo em WATCH, o Buffer a ser monitorado como 2, o Gatilho definido como “um valor aparece” e a notificação push ativada.
  4. Se o EXPLORE exibiu uma nota informando que um buffer contém, em sua maioria, zeros exatos, ative a opção “Este indicador grava 0 quando não significa nada” e leia a tabela novamente antes de escolher.

O que cada entrada faz

Entrada O que faz
Arquivo do indicador Caminho na pasta MQL5\Indicators, sem a extensão. Uma barra invertida, por exemplo: Examples\RSI ou MyFolder\MyArrows. Ele começa vazio propositalmente — não existe um indicador que todo terminal tenha necessariamente — e nada acontece até que você o preencha.
Suas entradas As próprias entradas do indicador monitorado, separadas por vírgulas, na ordem em que são declaradas. Um campo em branco significa usar os valores padrão. Números inteiros são passados como int, números com ponto decimal como double, true e false como bool, e tudo o mais como texto. O log exibe o que foi decidido para que você possa verificar.
Leia neste período de tempo Carregue o indicador monitorado neste intervalo de tempo, em vez do do gráfico. O intervalo de tempo atual refere-se ao próprio do gráfico.
Este indicador insere 0 onde significa “nada” Trate um 0 exato como vazio. Necessário para indicadores como o ZigZag. O EXPLORE informa quando vale a pena ativá-lo.
Modo O EXPLORE lista os buffers e não emite alertas. O WATCH emite alertas sobre o buffer que você escolheu.
Quantos buffers devem ser verificados O EXPLORE para por aqui. Aumente esse valor se a nota indicar que atingiu o limite.
Quantas barras recentes exibir Quantos compassos o EXPLORE exibe e conta.
Buffer a ser monitorado O número do buffer que você leu na tabela do EXPLORE.
Segundo buffer Usado apenas pelos dois gatilhos de cruzamento de buffers.
Gatilho Aparece um valor, um cruzamento acima ou abaixo do Nível, o buffer A cruzando o buffer B em qualquer direção, ou simplesmente a alteração do valor.
Nível Utilizado apenas pelos dois gatilhos de cruzamento de nível.
Avaliar apenas barras fechadas Ativado por padrão: uma avaliação quando uma barra se fecha, e ela não pode reverter. Desativado significa que a barra em formação é avaliada a cada tick, o que alerta mais cedo, mas pode se anular.
Pop-up, som, notificação push, e-mail Como você será notificado. Qualquer combinação. A notificação por push requer que seu ID da MetaQuotes esteja configurado em Ferramentas, Opções, Notificações.
Reler barras fechadas e relatar alterações Ativa o relatório de valores atrasados e de repintura.
Quantos barras fechadas devem continuar sendo monitoradas Até que ponto a verificação retrocede no tempo. Uma alteração ocorrida antes desse ponto não será detectada.
Ignorar alterações menores que este valor Deixe em 0 para detectar todas as alterações. Aumente o valor se um indicador apresentar oscilações na última casa decimal.

Três coisas que confundem as pessoas e são tratadas

Alguns indicadores escrevem um 0 simples quando querem dizer “não há nada aqui”, em vez de EMPTY_VALUE. O ZigZag é um deles. Lido de forma superficial, esse buffer parece uma linha contínua de zeros. Existe uma opção de configuração para isso, e o EXPLORE exibe uma nota quando um buffer contém principalmente zeros exatos com alguns valores reais, para que você possa decidir. Isso não é adivinhado deliberadamente: um oscilador que realmente fica em zero parece idêntico quando visto de fora.

Uma barra que o indicador ainda não registrou é interpretada como exatamente 0,0. É isso que o terminal insere em um buffer recém-criado, e um indicador com atraso mantém suas barras mais recentes assim propositalmente até que tenha as barras posteriores de que precisa. O Fractals nunca altera suas últimas três. Se interpretado de forma ingênua, cada uma dessas barras posteriormente “muda”, e a primeira versão desta ferramenta relatava trezentas repinturas em um indicador que não apresenta nenhuma. Uma barra que passa desse 0,0 para em branco agora é tratada como inicialização, e de 0,0 para um valor, como uma chegada tardia.

O grupo de entradas ocupa um espaço de parâmetro posicional. Se você chamar esse indicador a partir de seu próprio código com iCustom ou IndicatorCreate, os seis rótulos de grupo precisam ser contados junto com as entradas reais, como strings, ou o identificador falhará com o erro 4002. Isso foi medido, não presumido. O buffer 0 contém o valor do buffer monitorado, de modo que seu EA pode lê-lo em vez de repetir a estrutura de conexão; isso foi verificado em relação ao RSI monitorado em 299 de 299 barras.

Se o indicador que você nomeou não puder ser carregado — seja por um erro de digitação ou por um arquivo que ainda não foi compilado —, ele não se desanexará automaticamente. Isso é indicado no gráfico e no log de Experts, e o sistema continua tentando a cada poucos segundos; portanto, basta corrigir o nome.

O que ele não faz

Ele lê os buffers dos indicadores. Um indicador que desenha apenas com objetos do gráfico não expõe buffers, e não há nada aqui para essa ferramenta ler. Nada fora do indicador pode alterar isso.

“Nenhuma repintura observada em mais de 200 barras” é uma observação sobre essas barras, não uma garantia sobre todas as barras que virão a se formar. É uma evidência, e melhor do que a afirmação que acompanha a maioria dos indicadores, mas não é uma prova. A verificação abrange o número de barras fechadas que você definir em “Quantas barras fechadas continuar observando”; uma alteração anterior a esse período não é detectada.

Ela não pode dizer o que significa um buffer. Ela mostrará que o buffer 3 mantém 1,0 em quatorze barras; cabe a você decidir se isso é um sinal de compra.

Um indicador que sinaliza com um valor exatamente igual a 0,0 não acionará “um valor aparece”, pois essa é a leitura de uma barra ainda não formada. Os buffers de sinal contêm um preço ou um sinalizador, nunca 0,0; portanto, na prática, isso não tem custo, mas é uma regra e você deve conhecê-la.

O buffer 0 reflete o buffer observado somente quando o período observado é o próprio do gráfico. Mapeá-lo para um período superior em cada barra do gráfico é uma tarefa diferente e não é realizada.

Os próprios canais de alerta — pop-up, som, notificação push e e-mail — correspondem a uma chamada cada e não foram executados no Testador de Estratégias, que não os disponibiliza. Tudo o que a ferramenta decide antes dessa chamada foi executado.

Como instalar

  1. Copie o arquivo AnyIndicatorAlert.mq5 para a pasta MQL5\Indicators na pasta de dados do seu terminal. No MetaTrader, selecione “Arquivo” e, em seguida, “Abrir pasta de dados” para acessá-la.
  2. Abra o arquivo no MetaEditor e pressione F7. Ele deve apresentar 0 erros e 0 avisos.
  3. De volta ao terminal, pressione Ctrl+N para acessar o Navegador, abra “Indicadores” e arraste o AnyIndicatorAlert para um gráfico. Se ele não estiver listado, clique com o botão direito do mouse no Navegador e selecione “Atualizar”.
  4. Preencha o campo “Arquivo do indicador” — ele estará vazio inicialmente —, deixe o Modo em EXPLORE e pressione OK. O Examples\RSI é o primeiro que você deve testar.
  5. Pressione Ctrl+T para abrir a Caixa de Ferramentas e abra a aba Especialistas. A tabela de buffer está lá.

Escrito e verificado no MetaTrader 5, versão 6140. Ele não abre ordens nem altera nada.

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

SuperTrend TV EA SuperTrend TV EA

Um Expert Advisor que opera com o indicador SuperTrend TV por meio do iCustom apenas em barras fechadas, acompanhado de um relatório de auditoria que comprova que todas as operações correspondem a um sinal e que nenhum sinal foi perdido

GridCapitalCalculator GridCapitalCalculator

Todo mundo que opera com uma estratégia de grid se pergunta: minha conta tem saldo suficiente? A resposta comum — a perda no último nível da estratégia — é o número errado. O que leva à quebra da conta é o nível de margem atingir o stop-out da corretora, enquanto a cadeia ainda está aberta e parece recuperável. Este EA calcula o valor real e, em seguida, conta quantas vezes um movimento dessa magnitude já ocorreu no próprio histórico M1 do símbolo. Três erros que ele corrige, todos na direção de dar uma falsa sensação de segurança: uma cadeia de N etapas flutua na etapa x N(N-1)/2, e não na etapa x N (com 10 etapas, são 45 etapas de perda, e não 10); posições abertas também bloqueiam margem enquanto estão flutuando; e o stop-out é uma porcentagem, não zero — a 50%, perder metade do patrimônio já é suficiente. “Você precisa de 86 dólares de margem” é uma abstração. ““Um movimento desse tamanho ocorreu 71 vezes em 100 dias, um a cada 1,4” é uma decisão. Defina o InpEquity para um valor que você ainda não possui para ver o que a configuração realmente precisaria. Estritamente somente leitura: nunca abre, fecha ou modifica uma posição.

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.