Visão geral
O PositionRelay TV Sync conecta alertas de estratégias do TradingView a contas seguidoras no MetaTrader 5. Sua estratégia Pine formata o JSON do webhook via a biblioteca StrategyWebhookJson; o PositionRelay ingere os alertas em uma conta fonte virtual; o TV Slave EA espelha abertura, fechamento e modificação em cada slave MT5.
Todos os três EAs (sem conflitos)
Você pode executar MT5 Copy e TV Sync na mesma conta PositionRelay. Use um terminal MT5 dedicado para cada EA — nunca anexe ambos os slave EA à mesma conta. O guia completo de implantação está no assistente de configuração do painel.
- Master Publisher (
MasterPublisher.mq5) — Apenas uma conta master MT5. POST /api/sync (publica posições do master). - Slave Subscriber (
SlaveSubscriber.mq5) — Cada conta slave de cópia MT5. GET /api/positions (espelha o master). - TV Slave (
TVEchoSlave.mq5) — Cada conta MT5 espelho de TV. GET /api/positions?source=tv (espelha TradingView).
Regras
- Use o mesmo PositionRelay User ID em cada EA.
- Execute o MasterPublisher em exatamente um terminal — sua conta master MT5.
- Use o SlaveSubscriber apenas em terminais que copiam o master (produto MT5 Copy).
- Use o TVEchoSlave apenas em terminais que espelham sinais do TradingView (produto TV Sync).
- Nunca anexe SlaveSubscriber e TVEchoSlave ao mesmo terminal MT5.
- Execute apenas uma instância de slave EA por terminal (um gráfico basta — não anexe o mesmo EA a vários gráficos).
- Defina um InpAccountLabel exclusivo em cada terminal slave (os rótulos são compartilhados entre slaves de cópia MT5 e slaves de TV).
- Ative Algo Trading em cada terminal (e em VPS / hospedagem virtual se usar).
- Permita WebRequest para https://ea-sync-production.up.railway.app no MT5 (Tools → Options → Expert Advisors).
- URL do webhook de alerta do TradingView: https://positionrelay.com/api/webhook (copie da configuração do painel).
Exemplo: os três EAs ao mesmo tempo: Terminal 1 — master → MasterPublisher ((rótulo opcional)); Terminal 2 — cópia prop → SlaveSubscriber (FTMO_01); Terminal 3 — espelho TV → TVEchoSlave (TV_FTMO_01). Os alertas do TradingView vão para https://positionrelay.com/api/webhook — não pelo MasterPublisher.
Requisitos
- Plano TradingView Plus ou superior (campo Webhook URL)
- 2FA ativada na sua conta TradingView
- Assinatura PositionRelay ativa com TV Sync (Pro/Ultimate ou add-on Starter)
Ativar TV Sync
- Cadastre-se e assine no PositionRelay, depois abra o assistente de configuração do painel.
- Selecione a aba TradingView Sync .
- Copie sua Webhook URL, o segredo do webhook e o snippet de import Pine.
Biblioteca Pine
- Abra a biblioteca StrategyWebhookJson publicada no TradingView (
lifestylemaniacsrt/StrategyWebhookJson). - Sua estratégia deve começar com
//@version=6na linha 1 (bibliotecas exigem Pine v6). - Use Copy to clipboard na página da biblioteca apenas para a linha import.
Estratégia de teste
Cole a estratégia inteira Webhook Alert Test abaixo em um novo Pine strategy (não um indicator). Substitua o segredo do webhook do assistente de configuração. Não cole apenas a linha import — isso causa erros «Pine version unspecified».
Webhook Alert Test (copie o script inteiro)
//@version=6
strategy("Webhook Alert Test", overlay=true)
import lifestylemaniacsrt/StrategyWebhookJson/1 as wh
var wh.Config cfg = wh.init("YOUR_WEBHOOK_SECRET", wh.Mode.CloudOnly)
float fastMa = ta.sma(close, 14)
float slowMa = ta.sma(close, 28)
if ta.crossover(fastMa, slowMa) and strategy.position_size == 0
strategy.entry("Long", strategy.long,
alert_message = wh.openMsg(cfg, "Long", "buy", 0.1, close * 0.99, close * 1.02))
if ta.crossunder(fastMa, slowMa) and strategy.position_size > 0
strategy.close("Long",
alert_message = wh.closeMsg(cfg, "Long"))Use echo.Mode.CloudOnly para testes só de webhook. Passe o objeto cfg de init() para openMsg e closeMsg.
Configuração de alerta
- Aplique sua estratégia a um gráfico.
- Criar alerta → Condition: sua estratégia → Order fills only.
- Campo Message:
{{strategy.order.alert_message}} - Ative Webhook URL e cole a URL do webhook do painel (
https://positionrelay.com/api/webhook). - Trigger: Once per bar close (recomendado).
MT5 Escravo de TV EA
- Instale PositionRelay TV Slave Subscriber do MQL5 Market.
- Anexe o EA a um gráfico em cada conta seguidora MT5.
- Defina
InpUserIdcom seu PositionRelay User ID e umInpAccountLabelúnico por slave. - Ative Algo Trading e permita WebRequest para
https://ea-sync-production.up.railway.app(Tools → Options → Expert Advisors).
O EA usa endpoints embutidos em https://ea-sync-production.up.railway.app: /api/positions?source=tv e /api/sync. Alertas do TradingView usam https://positionrelay.com/api/webhook.
Limites de taxa
O TradingView pode limitar alertas (~15 a cada 3 minutos). O PositionRelay deduplica novas tentativas por signalId.
Segurança
- Nunca coloque credenciais da corretora na mensagem do alerta.
- Rotacione o segredo do webhook no painel se for exposto.
Solução de problemas
- Pine version unspecified ou erros
import: adicione//@version=6como linha 1 e cole a estratégia completa Webhook Alert Test, não só a linha import. - Execute apenas uma fonte por slave EA — não espelhe master MT5 e sinais TV no mesmo slave ao mesmo tempo.
- Confirme que o TV Sync está habilitado no seu plano antes de usar a aba de configuração.

