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.
A mensagem do alerta
{
"action": "buy",
"symbol": "EURUSD",
"volume": 0.10,
"sl": 1.0820,
"tp": 1.0910
}
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.
{"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.
actionO comando: comprar, vender, fechar, cancelar, modificarbuysymbolO instrumento, tal como o TradingView o designaEURUSDriskRisco da ordem, lido segundo a fonte de risco da conta1volumeUm número fixo de lotes, que tem prioridade sobre o risco0.10slStop-loss, no modo de preço da conta20tpTake-profit, no modo de preço da conta40pricePreço de entrada de uma ordem pendente1.0850tagNome 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.
buy / sellAbre uma posição a mercado, de compra ou de vendabuy,EURUSD,risk=1,sl=20buylimit / selllimitOrdem pendente abaixo do preço (compra) ou acima (venda)buylimit,EURUSD,price=1.0850,volume=0.1buystop / sellstopOrdem pendente acima do preço (compra) ou abaixo (venda)sellstop,GBPJPY,price=198.250,risk=1,sl=198.800closelong / closeshortFecha a posição de compra ou de venda do símbolocloselong,EURUSDcloselongshortFecha os dois sentidos no símbolocloselongshort,EURUSDcancellong / cancelshortCancela as ordens pendentes de compra ou de vendacancelshort,GBPJPYnewsltplong / 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.
{"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.
{"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.
{"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.
{"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.
{"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.