Productos / TradingView → MT5 / Configuración

TradingView → MT5

Configuración TradingView

Conectar alertas de script Pine a esclavos PositionRelay y MT5.

Resumen

PositionRelay TV Sync conecta las alertas de estrategias de TradingView con cuentas seguidoras de MetaTrader 5. Tu estrategia Pine formatea el JSON del webhook mediante la biblioteca StrategyWebhookJson; PositionRelay ingiere las alertas en una cuenta fuente virtual; el TV Slave EA refleja las acciones de apertura, cierre y modificación en cada slave de MT5.

Los tres EAs (sin conflictos)

Puedes ejecutar MT5 Copy y TV Sync en la misma cuenta de PositionRelay. Usa un terminal MT5 dedicado para cada EA — nunca adjuntes ambos slave EA a la misma cuenta. La guía completa de implementación está en el asistente de configuración del panel.

  • Master Publisher (MasterPublisher.mq5) — Solo una cuenta maestra MT5. POST /api/sync (publica posiciones del master).
  • Slave Subscriber (SlaveSubscriber.mq5) — Cada cuenta slave de copia MT5. GET /api/positions (refleja el master).
  • TV Slave (TVEchoSlave.mq5) — Cada cuenta MT5 espejo de TV. GET /api/positions?source=tv (refleja TradingView).

Reglas

  • Use el mismo PositionRelay User ID en cada EA.
  • Ejecute MasterPublisher en exactamente un terminal — su cuenta maestra MT5.
  • Use SlaveSubscriber solo en terminales que copian el master (producto MT5 Copy).
  • Use TVEchoSlave solo en terminales que reflejan señales de TradingView (producto TV Sync).
  • Nunca adjunte SlaveSubscriber y TVEchoSlave al mismo terminal MT5.
  • Ejecute solo una instancia de slave EA por terminal (un gráfico es suficiente — no adjunte el mismo EA a varios gráficos).
  • Configure un InpAccountLabel único en cada terminal slave (las etiquetas se comparten entre slaves de copia MT5 y slaves de TV).
  • Active Algo Trading en cada terminal (y en VPS / hosting virtual si lo usa).
  • Permita WebRequest para https://ea-sync-production.up.railway.app en MT5 (Tools → Options → Expert Advisors).
  • URL de webhook de alerta de TradingView: https://positionrelay.com/api/webhook (copie desde la configuración del panel).

Ejemplo: los tres EAs a la vez: Terminal 1 — master → MasterPublisher ((etiqueta opcional)); Terminal 2 — copia prop → SlaveSubscriber (FTMO_01); Terminal 3 — espejo TV → TVEchoSlave (TV_FTMO_01). Las alertas de TradingView van a https://positionrelay.com/api/webhook — no a través de MasterPublisher.

Requisitos

  • Plan TradingView Plus o superior (campo Webhook URL)
  • 2FA activada en tu cuenta de TradingView
  • Suscripción activa de PositionRelay con TV Sync (Pro/Ultimate o complemento Starter)

Habilitar TV Sync

  1. Regístrate y suscríbete en PositionRelay, luego abre el asistente de configuración del panel.
  2. Selecciona la pestaña TradingView Sync .
  3. Copia tu Webhook URL, el secreto del webhook y el fragmento de importación de Pine.

Biblioteca Pine

  1. Abre la biblioteca StrategyWebhookJson publicada en TradingView (lifestylemaniacsrt/StrategyWebhookJson).
  2. Tu estrategia debe empezar con //@version=6 en la línea 1 (las bibliotecas requieren Pine v6).
  3. Usa Copy to clipboard en la página de la biblioteca solo para la línea import.

Estrategia de prueba

Pega toda la estrategia Webhook Alert Test de abajo en un nuevo Pine strategy (no un indicator). Sustituye el secreto del webhook del asistente de configuración. No pegues solo la línea import — eso provoca errores «Pine version unspecified».

Webhook Alert Test (copia todo el script)

//@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"))

Usa echo.Mode.CloudOnly para pruebas solo de webhook. Pasa el objeto cfg desde init() a openMsg y closeMsg.

Configuración de alertas

  1. Aplica tu estrategia a un gráfico.
  2. Crear alerta → Condition: tu estrategia → Order fills only.
  3. Campo Message: {{strategy.order.alert_message}}
  4. Activa Webhook URL y pega la URL del webhook del panel (https://positionrelay.com/api/webhook).
  5. Trigger: Once per bar close (recomendado).

Esclavo TV MT5 EA

  1. Instala PositionRelay TV Slave Subscriber desde MQL5 Market.
  2. Adjunta el EA a un gráfico en cada cuenta seguidora de MT5.
  3. Establece InpUserId con tu PositionRelay User ID y un InpAccountLabel único por slave.
  4. Activa Algo Trading y permite WebRequest para https://ea-sync-production.up.railway.app (Tools → Options → Expert Advisors).

El EA usa endpoints integrados en https://ea-sync-production.up.railway.app: /api/positions?source=tv y /api/sync. Las alertas de TradingView usan https://positionrelay.com/api/webhook.

Límites de tarifa

TradingView puede limitar las alertas (~15 cada 3 minutos). PositionRelay deduplica los reintentos por signalId.

Seguridad

  • Nunca pongas credenciales del bróker en el mensaje de la alerta.
  • Rota el secreto del webhook desde el panel si queda expuesto.

Solución de problemas

  • Pine version unspecified o errores import : añade //@version=6 como línea 1 y pega la estrategia completa Webhook Alert Test, no solo la línea import.
  • Ejecuta solo una fuente por slave EA — no reflejes a la vez el master MT5 y señales TV en el mismo slave.
  • Confirma que TV Sync está habilitado en tu plan antes de usar la pestaña de configuración.

← Página del producto TradingView