Quickstart TradingView
O seu primeiro alerta TradingView em 10 minutos
Copie o URL webhook da sua conta TheConnector, cole-o no TradingView, envie um sinal de teste e verifique o estado no dashboard.
Detalhes técnicos
Estados e expiração ficam explícitos.
Webhook ingress, ACK, Delivered, BrokerRejected, Expired, ttl_ms, no replay, symbol mapping e routing são úteis quando o primeiro teste já está claro.
A chave está na URL. Account/platform apenas para roteamento partilhado.
Não use ttl_ms: WebhookIngress não lê isso hoje. Se perder a janela, expira.
Comando rejeitado/expirado/offline aparece em Transactions.
Gerador
Mensagem aceite pelo WebhookIngress
Mensagem de alerta
Cole este JSON no Message. Webhook URL recebe a URL da conta.
Validador dry-run
Validar sintaxe sem webhook
Contrato atual
Campos lidos hoje pelo WebhookIngress
action
Obrigatório. Também aceita side, command, type, msgtype.
symbol
Obrigatório para comandos trading. Também aceita pair, ticker, instrument, market, asset.
risk
Risco numérico enviado ao robô. Use volume/lot/lots/fixedVolume para lotes exatos.
sl / tp
Os nomes atuais sao sl e tp, com aliases stoploss/stop_loss e takeprofit/take_profit.
price
Obrigatorio apenas para pendentes: buystop, buylimit, sellstop, selllimit.
source
Rótulo opcional, útil para identificar TradingView ou Pine Script no diagnóstico.
id / streamId
Opcional, mas recomendado para diagnóstico. O servidor gera um se faltar.
account / platform
Opcional usando URL webhook da conta copiada do dashboard.
Não misture chave e conta.
Use once per bar close e veja Transactions.
Pine Script
Exemplos do parser atual
MT4 / MT5
//@version=5
indicator("TC first alert", overlay=true)
longSignal = ta.crossover(ta.sma(close, 9), ta.sma(close, 21))
if longSignal
message = "{\"action\":\"buy\",\"symbol\":\"" + syminfo.ticker + "\",\"risk\":1,\"sl\":20,\"tp\":40,\"source\":\"TradingView\",\"id\":\"" + syminfo.ticker + "-" + str.tostring(time) + "\"}"
alert(message, alert.freq_once_per_bar_close)
Lotes exatos
//@version=5
indicator("TC fixed lots", overlay=true)
shortSignal = ta.crossunder(ta.ema(close, 12), ta.ema(close, 26))
if shortSignal
message = "{\"action\":\"sell\",\"symbol\":\"" + syminfo.ticker + "\",\"volume\":\"0.10\",\"sl\":25,\"tp\":50,\"source\":\"TradingView\",\"id\":\"fixed-" + str.tostring(time) + "\"}"
alert(message, alert.freq_once_per_bar_close)
Ordem pendente cTrader
//@version=5
indicator("TC pending", overlay=true)
breakout = close > ta.highest(high, 20)[1]
if breakout
message = "{\"action\":\"buystop\",\"symbol\":\"" + syminfo.ticker + "\",\"price\":" + str.tostring(high, format.mintick) + ",\"risk\":1,\"sl\":20,\"tp\":45,\"source\":\"TradingView\",\"id\":\"pending-" + str.tostring(time) + "\"}"
alert(message, alert.freq_once_per_bar_close)