Webhooks (TradingView → bot)¶
Os webhooks permitem enviar os alertas do TradingView para serviços externos, bots ou API próprias, para automatizar tarefas. Este guia explica como se configuram e como se usam com os indicadores do Signal Pilot.
Com fins educativos
Este guia descreve a ligação de webhooks com fins formativos e de automatização. O trading automatizado acarreta riscos consideráveis. Isto não é aconselhamento financeiro.
📡 O que é um webhook?¶
Um webhook é um pedido HTTP POST que o TradingView envia por sua conta para o endereço que tu indicares, assim que um alerta dispara. Serve sobretudo para:
- Avisar: mandar os alertas para o Discord, o Telegram ou o Slack
- Registar: guardar os alertas numa base de dados ou numa folha de cálculo
- Automatizar: disparar ações através de API tuas
- Verificar: ver com que frequência e em que condições os alertas disparam
✅ O que precisas antes¶
Antes de configurares um webhook costumas precisar disto:
- Um plano TradingView pago (Essential, Plus ou Premium): as contas gratuitas não têm acesso a webhooks
- O endereço do destinatário: um serviço que aceite pedidos HTTP POST, por exemplo um webhook do Discord, um servidor teu ou uma plataforma de automatização
- Um indicador do Signal Pilot: configurado e posto no teu gráfico
- Algumas noções de JSON: dá jeito se quiseres montar tu próprio a mensagem, mas não é obrigatório
🔧 Passo a passo¶
Passo 1: arranja o endereço do webhook¶
O endereço depende de onde queres que cheguem os alertas:
Webhook do Discord
- No Discord, vai a Definições do servidor → Integrações → Webhooks
- Carrega em «New Webhook»
- Dá-lhe um nome e escolhe o canal
- Copia o endereço do webhook (tem esta forma:
https://discord.com/api/webhooks/...)
Bot do Telegram
- Procura «@BotFather» no Telegram
- Envia
/newbote segue o que ele for pedindo - Guarda o token do bot
- Usa um serviço de ponte ou um servidor teu para reencaminhar para o Telegram os webhooks do TradingView
Servidor ou API próprios
Podes montar o teu destinatário com plataformas como estas:
- Webhook.site: para experimentar; recebe o conteúdo do webhook e mostra-o
- Make.com (antes Integromat): para ligar vários serviços entre si
- Zapier: para automatizar sequências de tarefas
- Um servidor teu: Python com Flask, Node.js com Express e afins
Passo 2: configura o alerta no TradingView¶
- No gráfico onde tens o indicador do Signal Pilot, carrega no ícone Alerta (o relógio com o sinal +)
- Na janela do alerta:
- Condição: escolhe o teu indicador do Signal Pilot e a condição que queres vigiar
- Opções: marca «Once Per Bar Close» para não haver repinturas dentro da vela
- Vencimento: põe-na conforme precisares; o normal é «Open-ended»
- Desce até ao separador «Notifications».
- Marca a caixa «Webhook URL».
- Cola aí o endereço do teu destinatário
Passo 3: monta a mensagem (opcional)¶
No campo «Message» decides que dados são enviados. O TradingView aceita estes marcadores:
{
"indicator": "{{ticker}}",
"price": "{{close}}",
"time": "{{time}}",
"signal": "Pentarch: IGN event",
"timeframe": "{{interval}}"
}Marcadores mais usados do TradingView:
{{ticker}}: o nome do símbolo, por exemplo «BTCUSDT»{{close}}: o preço de fecho do momento{{time}}: a hora a que o alerta disparou{{interval}}: o período, por exemplo «15» ou «1D»{{exchange}}: o nome da bolsa
Passo 4: experimenta o webhook¶
- Depois de criares o alerta, carrega no botão «Test» das definições do alerta.
- Vai ver ao destino: o canal do Discord, o webhook.site ou o que tiveres posto
- Confirma que a mensagem chega com a formatação certa
- Se não chegar nada, revê isto:
- Se o endereço do webhook está certo
- A conta TradingView tem acesso a webhooks (Essential, Plus ou Premium)
- Se o destinatário está acessível e nenhuma firewall o bloqueia
💬 Exemplos de formato¶
Mensagem no formato do Discord
{
"content": "🔔 **Signal Pilot Alert**",
"embeds": [{
"title": "Pentarch: IGN event",
"description": "IGN event printed on {{ticker}}",
"color": 65280,
"fields": [
{"name": "Price", "value": "{{close}}", "inline": true},
{"name": "Timeframe", "value": "{{interval}}", "inline": true},
{"name": "Time", "value": "{{time}}", "inline": false}
]
}]
}Mensagem de texto simples
Signal Pilot: {{ticker}} - mudança de regime do Harmonic Oscillator em {{close}} no período {{interval}}JSON estruturado para uma API própria
{
"alert_type": "signal_pilot",
"indicator": "janus_atlas",
"symbol": "{{ticker}}",
"exchange": "{{exchange}}",
"timeframe": "{{interval}}",
"price": "{{close}}",
"timestamp": "{{time}}",
"condition": "Level Break Alert"
}🌐 Plataformas mais usadas¶
| Plataforma | Caso de uso | Dificuldade de configuração |
|---|---|---|
| Discord | Avisar a equipa e deixar registo | Muito fácil |
| Telegram | Avisos no telemóvel | Média; é preciso um bot e uma ponte |
| Make.com | Ligar vários serviços | Fácil, com esquema visual |
| Zapier | Ligação a mais de 5000 aplicações | Fácil, com esquema visual |
| Webhook.site | Experiências e afinação | Muito fácil |
| Servidor próprio | Controlo total e lógica à medida | Alta; é preciso programar |
🔍 Quando alguma coisa falha¶
- O endereço está mesmo no alerta? → Se não, põe-no lá
- O alerta chega a disparar? → Se não, arranja primeiro o alerta
- Já o experimentaste no webhook.site? → Se não, experimenta lá primeiro. Se falhar, gera um endereço novo
- O formato está certo? → Revê o formato próprio do Discord ou do Telegram
- O JSON é válido? → Passa-o por um validador de JSON para conferir a sintaxe
- Tens um plano TradingView pago? → As contas gratuitas não podem usar webhooks
Teste rápido: Faz sempre a primeira prova no webhook.site. Se aí chega e no Discord ou no Telegram não, o problema está na configuração do destino.
O webhook não chega
- Confirma o teu plano do TradingView: as contas gratuitas não podem usar webhooks
- Revê o endereço: sem espaços a mais e com o protocolo https://
- Experimenta o destinatário: usa o webhook.site para confirmar que o TradingView chega ao teu endereço
- O alerta disparou?: vê o registo de alertas do TradingView para confirmar que disparou mesmo
A mensagem traz dados errados
- Escrita dos marcadores: tens de escrever
{{ticker}}não{ticker} - Formato do JSON: se usares o formato estruturado, valida-o em jsonlint.com
- Aspas com barra: usa
\"se precisares de aspas dentro de uma cadeia JSON
Chegam webhooks a mais
- Frequência do alerta: muda de «Once Per Bar» para «Once Per Bar Close»
- Precisão da condição: aperta a condição para disparar menos vezes
- Tempo de espera: há serviços de webhooks que limitam quantos pedidos aceitam
🔒 Segurança¶
Pontos de segurança a reter
- O endereço de um webhook é informação sensível: trata-o como uma palavra-passe e não o publiques em lado nenhum
- Troca-o de tempos a tempos: sobretudo se dele dependerem processos críticos
- Confere o que te chega: se usares um servidor teu, confirma que os pedidos vêm mesmo do TradingView
- Usa HTTPS sempre que puderes: um destinatário que só aceite HTTP sem cifra é um risco
📋 Uma montagem de exemplo¶
Cenário: Receber os alertas IGN do Pentarch num canal do Discord
- Criado: um webhook do Discord no canal #trading-alerts
- Configurado: Pentarch v1.0 no gráfico de BTCUSDT a 15 minutos
- Alerta posto: na condição «Pentarch: IGN event»
- Frequência: «Once Per Bar Close»
- Colado: o endereço do webhook do Discord nas definições do alerta
- Mensagem à medida: com o formato incorporado do Discord que se vê acima
- Experimentado: o alerta; a mensagem apareceu no Discord
- Alerta ativo: - o canal recebe uma mensagem sempre que um acontecimento IGN é impresso
(Exemplo de montagem real, apenas com fins formativos. Não é aconselhamento financeiro. Os resultados variam de pessoa para pessoa.)