Ajuda ForecastCity

Escrever a mensagem do alerta e usar webhooks

9 min de leitura

Compartilhe e ganhe

Recomende este artigo aos seus amigos ou seguidores nas redes sociais. Basta copiar o link abaixo e compartilhar. Quando alguém clica no seu link e faz uma assinatura, vocês dois recebem uma recompensa.

Preparando seu link…

Detalhes do programa de indicações
ForecastCity · Guia de Alertas

Cada alerta envia uma mensagem para todos os destinos marcados por você. Por padrão, a mensagem informa o que aconteceu, o preço naquele instante e se o alerta continua ativo. Adicione uma nota sobre o seu plano de operação para ver o que você planejou antes mesmo de abrir o gráfico. Configurar o seu alerta e a mensagem dele é simples, rápido e preciso. Digite no editor ou peça ao AI Trading Assistant por voz ou por escrito.

Se você usa o seu próprio software, Discord ou Slack, um webhook envia cada alerta para lá também, sem precisar copiar nada manualmente. Este guia explica ambos os recursos.

O exemplo: um alerta no EURUSD que dispara quando o preço cruza acima de 1.09 no gráfico de 5m.

O que diz a mensagem automática

Quando o campo Message está vazio, o alerta gera a própria mensagem ao disparar. No exemplo, a mensagem mostra:

EURUSD crossed above 1.09
Price 1.0901.
This alert is now off. It was set to fire once.

A primeira linha diz o que aconteceu, com as palavras do editor de alertas. A linha seguinte informa os números daquele instante. A última linha indica se o alerta continua ativo. O exemplo usa a opção Once only, então o alerta agora está desativado. Com as outras opções de Trigger, a última linha mostra “This alert stays on.”

Outros alertas seguem a mesma ordem. Veja algumas primeiras linhas, cada uma acompanhada da linha de números abaixo dela:

  • Uma linha: “GBPJPY touched 1h Resistance R1” e “Price 210.16, line at 210.20.”

  • Um rompimento de linha: “GBPJPY broke above 1h Resistance R1” e “The 1h candle closed at 210.32, above the line at 210.20.”

  • Um indicador: “BTCUSD: 1h RSI(14) crossed above 70” e “RSI(14) was 71.4 when the 1h candle closed at 105240.50.”

  • Uma mudança de previsão: “GBPJPY: 1h forecast turned bearish” e “Before: bullish above 209.80. Now: bearish below 209.40.”

Um alerta com várias condições informa quantas foram atendidas. Depois, traz uma linha para cada condição atendida:

BTCUSD: both conditions met
• Price crossed above 105000: the 1h candle closed at 105240.50
• 1h RSI(14) is above 55 (now 58.2)
This alert stays on.

Com mais condições, a primeira linha mostra, por exemplo, “all 3 conditions met” ou “2 of 3 conditions met”. Quando apenas uma condição é atendida, por exemplo com o conector or, a primeira linha informa essa condição, seguida pelos números dela.

Escrever a mensagem

  1. Abra o editor de alertas e vá à aba Options.

  2. Clique na linha Message. Ela mostra Auto enquanto está vazia. Um campo de texto se abre abaixo dela.

  3. Digite a sua mensagem. O campo aceita até 400 caracteres.

  4. Para incluir um valor dinâmico, abra Available variables abaixo do campo. Copie a variável exatamente como aparece, com as chaves duplas.

A linha Message aberta na aba Options, com um campo vazio, a frase abaixo dele e Available variables.
O campo Message, aberto e ainda vazio, para que o alerta envie a mensagem automática.
  1. Automatic message: o campo vazio. Digite o seu próprio texto aqui ou deixe em branco.

  2. A frase abaixo do campo: “Leave it blank and the alert says what happened and at what price. A message of your own is sent first, with that under it.” (se você deixar em branco, o alerta informa o que aconteceu e a que preço; se escrever uma mensagem, ela é enviada primeiro, com esses dados abaixo).

  3. Available variables: os valores dinâmicos que você pode adicionar à sua mensagem.

O seu texto passa a ser a primeira linha, e o texto automático vem logo abaixo. No exemplo, esta mensagem:

{{symbol}} on {{timeframe}}: check the 1h trend before entering.

chega assim:

EURUSD on 5m: check the 1h trend before entering.
EURUSD crossed above 1.09. Price 1.0901.
This alert is now off. It was set to fire once.

O preço e a condição já aparecem nas linhas abaixo do seu texto. Use a sua mensagem para o que essas linhas não dizem, como o seu plano de operação.

A mensagem que você digita também serve como nome do alerta na lista do painel Alerts. Sem uma mensagem, a lista mostra um nome gerado a partir da condição. Para um nível de preço, o nome é curto, como “EURUSD crossing up 1.09”. Uma linha ou várias condições aparecem como o editor as descreve, por exemplo “GBPJPY: 1h Price touches 1h Resistance R1”. Quando você altera a condição, esse nome muda junto com ela. Quando você abre o alerta novamente, o campo Message continua vazio. Alertas salvos anteriormente sem mensagem também mostram o nome nesse formato.

O que cada destino mostra

Cada destino recebe a mesma mensagem, formatada para aquele canal:

Destino O que mostra
O aviso no aplicativo A primeira linha em negrito, com os números abaixo dela.
Notify my devices A primeira linha como título, com as outras linhas abaixo dela.
Send to MetaTrader A primeira linha como título, com as outras linhas abaixo dela. O MetaTrader mostra o próprio horário ao lado da mensagem.
Telegram A mensagem, o horário no seu fuso horário e um link para o gráfico.
Send email A mensagem, com a data e o horário no seu fuso horário.
Webhook URL O Discord e o Slack recebem a mensagem com o horário em UTC. Com a opção Raw JSON, o seu software recebe as variáveis abaixo.

O Telegram escreve o horário assim: “24 Sep, 11:02 London time”. Se o fuso horário estiver incorreto, escolha o seu em Timezone na página Your profile. Quando a ForecastCity não sabe o seu fuso horário, o horário é exibido em UTC.

O link em uma mensagem do Telegram, em um e-mail, em uma notificação no celular ou em uma janela pop-up do MetaTrader abre o gráfico daquele símbolo com o painel Alerts. Na maioria dos alertas do 4CM-AI, ele abre o gráfico com a seção Alert observation daquele disparo.

Adicionar valores dinâmicos com variáveis

Uma variável é substituída pelo seu valor quando o alerta dispara. Estas são as variáveis em Available variables:

Variável O que ela escreve Exemplo
{{symbol}} O símbolo EURUSD
{{price}} e {{close}} O preço no momento em que o alerta disparou 1.0901
{{condition_text}} O que aconteceu, sem o símbolo Price crossed above 1.09
{{condition}} A condição como um código curto CROSSING_UP 1.09
{{timeframe}} O tempo gráfico do alerta 5m
{{time_iso}} A data e o horário, em UTC 2026-09-24 10:02 UTC
{{time}} O mesmo horário em segundos, para software 1790244120
{{time_now}} O instante em que a mensagem foi enviada, como um número 1790244121
{{exchange}} A origem das cotações TwelveData
{{status}} Se o alerta continua ativo This alert stays on.
{{alert_url}} Um link para o gráfico desse símbolo, com os seus alertas um endereço web
{{name}} A sua mensagem com cada variável substituída pelo valor, ou o nome exibido na lista do painel Alerts EURUSD crossing up 1.09

Para uma linha, {{condition_text}} mostra algo como “Price touched 1h Resistance R1”. Com várias condições, ela une as condições atendidas com a palavra and. Depois que um alerta com Once only dispara, {{status}} mostra “This alert is now off. It was set to fire once.” Para um alerta com várias condições, uma linha ou um indicador, {{condition}} mostra TREE. Essa variável é um código para software.

Para alertas do 4CM-AI, {{forecast_summary}} resume o que a previsão fez e {{forecast_symbol}} informa o símbolo da previsão. {{forecast_cycle}} é um contador que aumenta toda vez que o alerta volta a acompanhar o mercado. Uma mensagem que contém {{forecast_summary}} não recebe linhas automáticas abaixo dela, porque o resumo já explica o que aconteceu.

As variáveis {{price}} e {{close}} ficam vazias na maioria dos alertas do 4CM-AI, pois eles não têm um único preço. A variável {{time_iso}} usa UTC, portanto pode diferir do relógio da sua tela. Uma variável inexistente permanece exatamente como foi digitada: {{prices}} escrito com erro chega como {{prices}}.

Enviar alertas para um webhook

Um webhook envia cada alerta para um endereço web (endpoint), onde o seu próprio software, um canal do Discord ou um canal do Slack o recebe. O seu plano de assinatura precisa incluir webhooks.

  1. Na aba Options, em Notifications, marque Webhook URL. Aparecem um campo de endereço, a opção Format e um campo para o corpo.

  2. Cole o endereço em que o seu receptor escuta. Ele deve começar com http:// ou https://.

  3. Defina Format como Raw JSON e deixe o campo do corpo vazio.

  4. Clique em Create, ou em Save se estiver editando um alerta.

A opção Webhook URL marcada, com um endereço, o seletor de formato em Raw JSON e o campo do corpo vazio.
Webhook URL marcada, com um endereço e Format definido como Raw JSON. O campo do corpo vazio envia os dados padrão.
  1. O endereço em que o seu receptor escuta. Use as portas padrão, 80 ou 443.

  2. Format: Raw JSON para o seu próprio software, ou Discord ou Slack para esses serviços.

Com o campo do corpo vazio, o seu receptor recebe um objeto JSON (payload) com todas as variáveis da tabela, além de alertId e triggerId. Esses dois campos identificam o alerta e esse disparo específico. Analise um envio real antes de desenvolver qualquer automação que dependa desses campos.

Abaixo do campo, o editor mostra o endereço do servidor de onde partem as nossas requisições. Adicione-o à sua lista de permissões se o seu receptor aceitar apenas endereços conhecidos.

O que o endereço precisa ter

  • Um endereço público em uma porta padrão: 80 para http, 443 para https. Mensagens para outras portas, para localhost ou para endereços de rede privada não são enviadas.

  • Nenhum nome de usuário ou senha dentro do endereço.

  • Uma resposta em até 3 segundos, vinda do próprio endereço. Um redirecionamento para outro endereço conta como falha.

O editor verifica apenas se o endereço começa com http:// ou https://. Os demais requisitos são verificados quando uma mensagem é enviada, portanto teste o seu endereço com um alerta real. Para alertas de preço e alertas técnicos, se o seu receptor apresentar um erro temporário, o envio é tentado mais duas vezes. A mensagem de um alerta do 4CM-AI não é reenviada após um tempo esgotado (timeout) ou erro de servidor, porque o seu receptor já pode ter agido com base nela.

Escrever o seu próprio corpo de webhook

O campo do corpo aceita um modelo com as mesmas variáveis da mensagem. Ele comporta até 2000 caracteres. O campo permite digitar mais, mas um corpo maior é recusado ao salvar.

Com a opção Raw JSON, um receptor que espera um objeto simples pode receber este corpo:

{"symbol":"{{symbol}}","condition":"{{condition_text}}","time":"{{time_iso}}","source":"ForecastCity"}

As variáveis são preenchidas como texto simples. Um valor que contenha aspas ou quebra de linha pode invalidar o seu JSON. Um corpo que não seja um JSON válido é enviado como texto simples.

Para um canal do Discord, defina Format como Discord e use o endereço de webhook do canal. Depois, escreva uma linha curta no campo do corpo, por exemplo:

{{symbol}}: {{condition_text}}. Open your alerts: {{alert_url}}

Para o Slack, escolha Slack e escreva da mesma forma. A ForecastCity formata o seu texto na estrutura que cada serviço espera. Com o campo vazio, ambos recebem a mensagem do alerta, como mostrado acima, com o horário em UTC na última linha.

Verificar o resultado

  1. Aguarde o disparo do alerta e abra a aba Log do painel Alerts.

  2. Compare o que o seu receptor recebeu com o registro na aba Log: o que aconteceu, o símbolo e o horário.

A aba Log mostra que o alerta disparou, mas não informa se o seu receptor aceitou a mensagem; por isso, verifique também o registro do próprio receptor. Se aparecerem chaves como {{prices}}, o nome de uma variável foi digitado incorretamente. Se o seu receptor rejeitar o corpo, confira o JSON.

Bom saber

  • A mensagem é enviada para todos os destinos marcados por você. O corpo do webhook vai apenas para o webhook.

  • O Discord exibe até 1900 caracteres e o Slack até 3000. Textos mais longos são cortados.

Este artigo foi útil?

Última atualização: 28/10/2026