Mensagem de alerta

Mensagem de alerta do TradingView: o formato, exemplo a exemplo

A mensagem é o único texto que o seu alerta envia. Para se tornar uma ordem em MT4, MT5 ou cTrader, segue um formato simples: um objeto JSON ou uma única linha de texto. Eis cada campo, cada comando e exemplos prontos a copiar, todos verificados no testador de webhook.

JSON ou uma linha de texto Dois campos obrigatórios, seis opcionais Exemplos verificados no testador Variáveis do TradingView incluídas

A mensagem do alerta

alert-payload.json
{
  "action":  "buy",
  "symbol":  "EURUSD",
  "volume":  0.10,
  "sl":      1.0820,
  "tp":      1.0910
}
Cole o URL webhook da sua conta no alerta TradingView e envie esta mensagem JSON. Cada etapa (Received, Route, ACK, Delivered) fica visível no dashboard.
Ações disponíveis
buy sell — ordem a mercado (alias long / short)
buylimit buystop selllimit sellstop — ordem pendente — adicione um campo price
closelong closeshort closelongshort — fecha a(s) posição(ões) desse símbolo
cancellong cancelshort — cancela uma ordem pendente
newsltplong newsltpshort — atualiza SL/TP (alias breakeven…)

Lista completa e aliases: referência de sintaxe de comandos.

Para onde vai a mensagem

Na janela de alerta do TradingView, o campo Message contém o texto enviado a cada disparo, e o campo Webhook URL, o endereço para onde é enviado. Esse endereço é o da sua conta TheConnector: já inclui a chave de acesso, por isso a mensagem só descreve a ordem.

  • Um alerta envia uma mensagem, portanto um comando
  • A chave de acesso fica no endereço do webhook, nunca na mensagem
  • O TradingView substitui as variáveis como {{ticker}} antes do envio

A mensagem mínima

Dois campos bastam para uma mensagem válida: o comando e o símbolo. A ordem obtém então o seu tamanho a partir das definições de risco da conta, e um cálculo pelo risco precisa de um stop: na prática, adicione pelo menos um stop-loss, ou um número fixo de lotes.

message.txt
{"action":"buy","symbol":"EURUSD"}

buy,EURUSD
  • action: o que fazer, aqui comprar
  • symbol: o ticker do TradingView, associado ao símbolo da sua corretora
  • A forma de texto numa linha contém exatamente a mesma informação

Os campos da mensagem

Oito campos cobrem quase todas as necessidades. Os nomes escrevem-se em minúsculas e os valores são números, exceto o comando, o símbolo e a tag. Um campo que o TheConnector não conhece é ignorado sem qualquer aviso: um nome mal escrito passa despercebido, daí a utilidade do testador antes de negociar em real.

Campo Função Exemplo
actionO comando: comprar, vender, fechar, cancelar, modificarbuy
symbolO instrumento, tal como o TradingView o designaEURUSD
riskRisco da ordem, lido segundo a fonte de risco da conta1
volumeUm número fixo de lotes, que tem prioridade sobre o risco0.10
slStop-loss, no modo de preço da conta20
tpTake-profit, no modo de preço da conta40
pricePreço de entrada de uma ordem pendente1.0850
tagNome da estratégia, para distinguir várias num mesmo símbolotrend
  • Aliases aceites: lot ou lots para volume, stoploss para sl, takeprofit para tp
  • Sem campo account: o endereço do webhook já designa a conta
  • Outros comandos e definições por alerta estão na referência de sintaxe

Os comandos

O campo action leva um dos comandos abaixo. Cada um aceita também uma forma com underscore, como close_long, e são aceites long e short em vez de buy e sell.

Comando Efeito Exemplo
buy / sellAbre uma posição a mercado, de compra ou de vendabuy,EURUSD,risk=1,sl=20
buylimit / selllimitOrdem pendente abaixo do preço (compra) ou acima (venda)buylimit,EURUSD,price=1.0850,volume=0.1
buystop / sellstopOrdem pendente acima do preço (compra) ou abaixo (venda)sellstop,GBPJPY,price=198.250,risk=1,sl=198.800
closelong / closeshortFecha a posição de compra ou de venda do símbolocloselong,EURUSD
closelongshortFecha os dois sentidos no símbolocloselongshort,EURUSD
cancellong / cancelshortCancela as ordens pendentes de compra ou de vendacancelshort,GBPJPY
newsltplong / newsltpshortMove o stop-loss e o take-profit da posição abertanewsltplong,EURUSD,sl=15,tp=60
  • Uma ordem pendente precisa do seu preço de entrada
  • Um fecho ou uma modificação indica o símbolo, tal como uma entrada
  • breakevenlong e breakevenshort são aliases de newsltplong e newsltpshort

Comprar ou vender a mercado, com stop e objetivo

A mensagem mais comum: uma entrada a mercado dimensionada pelo risco, com o seu stop-loss e o seu take-profit. Com a fonte de risco em Porcentagem do TradingView e o modo de preço em pips, este exemplo arrisca 1 % do saldo, com um stop a 20 pips e um objetivo a 40 pips.

message.json
{"action":"buy","symbol":"EURUSD","risk":1,"sl":20,"tp":40}
  • Para uma venda, substitua buy por sell
  • O risco é a perda se o stop for atingido, não o tamanho da posição
  • Para impor um tamanho, envie volume em vez de risk

Colocar uma ordem pendente

Uma compra limite espera que o preço desça até à sua entrada; uma compra stop, que suba até ela. Este exemplo pressupõe o modo de preço da conta em preço absoluto: a entrada, o stop e o objetivo são preços de mercado.

message.json
{"action":"buylimit","symbol":"EURUSD","price":1.0850,"volume":0.10,"sl":1.0820,"tp":1.0910}
  • Aqui o tamanho é fixo: 0,10 lotes
  • Em modo pips ou percentagem, os mesmos campos leem-se como distâncias
  • cancellong retira as ordens pendentes de compra se o cenário deixar de ser válido

Fechar uma posição ou mover o seu stop

Três mensagens, uma por alerta: fechar a posição de compra, fechar os dois sentidos e, depois, mover o stop-loss e o objetivo da posição de compra aberta. Tal como uma entrada, cada uma indica o seu símbolo.

messages.txt
{"action":"closelong","symbol":"EURUSD"}
{"action":"closelongshort","symbol":"EURUSD"}
{"action":"newsltplong","symbol":"EURUSD","sl":15,"tp":60}
  • Um fecho sem tag pega na primeira posição no sentido pedido
  • Com várias estratégias no mesmo símbolo, nomeie-as com tag
  • Copie uma linha por alerta, nunca o bloco inteiro

Duas estratégias no mesmo símbolo

Sem nome, um fecho pega na primeira posição que encontra, talvez a da outra estratégia. O campo tag dá nome à estratégia: na entrada, o robô escreve esse nome no comentário da posição na corretora, e um fecho com nome só afeta as posições que o levam.

messages.txt
{"action":"buy","symbol":"USDJPY","risk":1,"sl":20,"tag":"trend"}
{"action":"closelong","symbol":"USDJPY","tag":"trend"}
  • A mesma tag em todos os alertas da estratégia, tanto entradas como saídas
  • As tags passam a minúsculas e são cortadas a 12 caracteres: mantenha-as curtas e distintas
  • Apenas letras, dígitos, - e _

Colocar variáveis do TradingView na mensagem

Uma única mensagem pode servir em todos os gráficos: com {{ticker}}, o símbolo acompanha o gráfico em que o alerta é criado. O TradingView substitui a variável antes do envio, por isso o TheConnector recebe o símbolo real.

message.json
{"action":"buy","symbol":"{{ticker}}","risk":1,"sl":20,"tp":40}
  • As variáveis de texto vão entre aspas ("{{ticker}}"), os números como {{close}} não
  • Alertas de estratégia: {{strategy.order.action}} diz «sell» para sair de uma compra; prefira alert_message
  • A lista completa das variáveis está no guia de alertas do TradingView

As unidades do stop, do objetivo e do preço

Os números de sl, tp e price leem-se segundo o modo de preço escolhido nas definições da conta. Preço absoluto: um preço de mercado, como 1.0750. Pips: uma distância a partir da entrada, como 20. Percentagem: uma distância em percentagem do preço de entrada, como 0.5.

  • O modo de preço deve corresponder ao que os seus alertas enviam
  • Os pips adequam-se ao forex; em índices e metais, prefira o preço ou a percentagem
  • Escreva as casas decimais com ponto: na forma de uma linha, a vírgula separa os campos
  • Variante: sl_pips, sl_price ou sl_pct (e tp_pips, tp_price, tp_pct) fixam a unidade no próprio alerta

Os erros que levam à recusa de uma mensagem

A maioria das recusas vem de um punhado de causas, e o histórico de alertas indica cada uma delas. A primeira surpreende: um campo account copiado de um exemplo antigo faz com que todo o alerta seja recusado, mesmo com uma chave válida.

  • Um campo account que não corresponde exatamente à conta: recusa como chave de acesso rejeitada
  • JSON mal formado: uma aspa esquecida ou uma vírgula a mais
  • Um comando desconhecido ou ausente, ou um símbolo em falta
  • Um número acompanhado de texto ou de uma unidade, como 20pips ou 1%

Verificar uma mensagem antes de a enviar

O testador de webhook gratuito lê a sua mensagem com o mesmo analisador que a gateway de produção e mostra o que entende: comando, símbolo, tamanho, stop, objetivo, tag. Nada é enviado para nenhuma conta. O gerador de alerta da página inicial compõe a mensagem por si.

  • Cole a mensagem exatamente como ficará no TradingView
  • Substitua as variáveis por valores reais antes do teste
  • Depois, envie um primeiro alerta para uma conta demo

Guias relacionados

FAQ

É preciso colocar a chave de acesso na mensagem?

Não. Faz parte do endereço do webhook copiado a partir do seu painel, que identifica a conta. A mensagem só descreve a ordem.

JSON ou uma linha de texto: qual escolher?

Os dois são aceites e contêm os mesmos campos. O JSON dá nome a cada valor, o que o torna mais fácil de reler; a forma numa linha, como buy,EURUSD,risk=1,sl=20,tp=40, é mais curta de escrever.

Como fechar uma posição a partir de um alerta?

Envie closelong para fechar a posição de compra ou closeshort para a de venda, com o símbolo: {"action":"closelong","symbol":"EURUSD"}. Com várias estratégias no símbolo, adicione a mesma tag que na entrada.

Porque é que o meu alerta é recusado apesar de a chave ser válida?

Na maioria das vezes, por causa de um campo account copiado de um exemplo antigo: se estiver presente, tem de corresponder exatamente à conta; caso contrário, o alerta é recusado como se a chave estivesse errada. Retire-o: o endereço do webhook basta.

É possível enviar o preço de fecho da vela?

Sim, com a variável {{close}}, sem aspas. Serve de preço de entrada a uma ordem pendente, quando o modo de preço da conta está em preço absoluto.

O que acontece se a mensagem contiver um campo que o TheConnector não conhece?

É ignorado, sem erro. A ordem segue sem ele: por isso, um nome mal escrito altera a ordem sem aviso. Verifique a mensagem no testador de webhook.