Seu indicador no TradingView já mostra os sinais — mas você não vai ficar 24h olhando o gráfico. É aí que entram alertcondition e os webhooks: o Pine dispara o alerta, e o TradingView envia uma mensagem (JSON) para um endereço seu, que pode acionar um bot. Este guia mostra a sintaxe correta no Pine Script v5, como montar o payload do webhook e os cuidados reais de quem automatiza. Importante: trading é de altíssimo risco e webhooks não garantem lucro — teste todo o fluxo em conta demo.

Tem o sinal, mas falta a execução? Veja como um bot em Python recebe o webhook e opera com gestão de risco — testando em conta demo.

Ver bot em Python →

alertcondition x alert(): qual usar?

No Pine v5 existem dois caminhos. alertcondition() cria uma “condição” que você seleciona manualmente ao criar o alerta no TradingView. Já a função alert() dispara dinamicamente durante a execução e permite montar a mensagem em tempo real. Para webhooks com payload dinâmico (preço, ativo), alert() costuma ser mais flexível; alertcondition() é ótimo para sinais fixos e simples.

Sintaxe do alertcondition

alertcondition(condition, title, message)

condition — a expressão booleana (ex.: um cruzamento).
title — o nome que aparece na lista de alertas.
message — o texto enviado (pode ser o JSON do webhook).

Exemplo: sinal de cruzamento

//@version=5 indicator(“Alertas EMA – IA Trader Pro”, overlay=true) emaFast = ta.ema(close, 9) emaSlow = ta.ema(close, 21) buy = ta.crossover(emaFast, emaSlow) sell = ta.crossunder(emaFast, emaSlow) plot(emaFast, color=color.green) plot(emaSlow, color=color.red) alertcondition(buy, “Compra”, ‘{“acao”:”BUY”,”ativo”:”{{ticker}}”}’) alertcondition(sell, “Venda”, ‘{“acao”:”SELL”,”ativo”:”{{ticker}}”}’)
Placeholders do TradingView: dentro da mensagem você pode usar variáveis como {{ticker}}, {{close}}, {{time}} e {{interval}} — o TradingView as substitui pelos valores reais no momento do disparo.

Mensagem dinâmica com alert()

Se você quer construir o JSON em tempo real (ex.: incluir o preço calculado), use alert() dentro da condição:

if buy msg = ‘{“acao”:”BUY”,”preco”:’ + str.tostring(close) + ‘}’ alert(msg, alert.freq_once_per_bar_close)

O segundo argumento controla a frequência: alert.freq_once_per_bar_close dispara só no fechamento da barra — recomendado para evitar sinais que “repintam” durante a vela.

Configurando o webhook

No TradingView, ao criar o alerta: marque a opção Webhook URL e cole o endereço do seu servidor (ex.: um endpoint que recebe POST). A mensagem do alerta vira o corpo (body) da requisição. Seu servidor lê o JSON, valida e então executa a ordem via API da corretora.

Cuidados de segurança: qualquer um que descobrir sua URL pode enviar requisições. Inclua um token secreto no JSON e valide no servidor; use HTTPS; e nunca exponha chaves da corretora no Pine. O webhook só deve carregar a intenção (BUY/SELL), nunca credenciais.

Limitações honestas

Webhook é poderoso, mas tem armadilhas: o recurso depende do seu plano TradingView; alertas podem atrasar segundos (ruim para scalping muito rápido); nem toda corretora de binárias aceita execução externa; e “automatizar” não conserta uma estratégia ruim — só executa mais rápido o que já era perdedor. Webhook bom + estratégia sem vantagem = perder dinheiro mais rápido.

FAQ

Preciso pagar para usar webhook?
Sim, o envio de alertas por webhook depende de planos pagos do TradingView. Confirme no seu plano atual.

alertcondition ou alert()?
Use alertcondition para sinais fixos simples; use alert() quando precisar montar a mensagem dinamicamente.

Como evitar sinais repintados?
Dispare no fechamento da barra (alert.freq_once_per_bar_close) e evite condições que mudam durante a vela.

O TradingView executa a ordem sozinho?
Não. Ele só envia a mensagem. Quem executa é o seu servidor/bot que recebe o webhook.

Aviso: trading é atividade de alto risco e a maioria dos traders de varejo perde dinheiro. Este conteúdo é educacional e técnico, não constitui recomendação de investimento, oferta ou aconselhamento financeiro. Automação não preveem o futuro nem garante resultados; resultados passados não garantem resultados futuros. Teste sempre em conta demo antes de arriscar capital real e nunca invista mais do que você pode perder.