En esta página
Configuración de Webhooks
Guía completa para crear webhooks y conectarlos con tus alertas de TradingView.
¿Qué es un Webhook?
Un webhook es equivalente a una alerta configurada en TradingView. Cada webhook que creas recibirá las señales de una única alerta de TradingView. Es importante entender que un webhook = una alerta.
Una vez creado el webhook, puedes conectarlo a múltiples cuentas MT5 mediante el Editor de Conexiones, permitiéndote distribuir las señales de esa alerta a diferentes brokers o cuentas.
Crear un Webhook
En la página del webhook encontrarás un botón para copiar la URL. Este es el destino donde TradingView debe enviar la señal. Debes copiarla y pegarla en el campo "URL de Webhook" de la sección "Notificaciones" de la alerta que estas creando en TradingView.
En la página del webhook encontrarás un botón para copiar el JSON. Este es el mensaje que TradingView debe enviar. Debes copiarlo y pegarlo pisando todo el contenido en el campo "Mensaje" de la sección "Mensaje" de la alerta que estas creando en TradingView.
No modifiques este JSON. Si quieres take profit o stop loss opcionales, tu estrategia debe ponerlos en el comentario de la orden (más abajo), no aquí.
Configurar en TradingView
Take profit y stop loss opcionales (desde tu estrategia)
En la mayoría de casos no hace falta tocar el código de tu estrategia ni el JSON del webhook para que el take profit y el stop loss funcionen. Tu estrategia ya define cuándo abrir y cuándo cerrar. Cuando el precio cumple el TP o SL según la lógica de la estrategia, TradingView envía la alerta de cierre; la recibimos y la cuenta ejecuta el cierre. Por eso lo habitual es no ver líneas de TP/SL en la operación de MetaTrader: el cierre entra cuando llega esa alerta, no porque esos niveles estén guardados en la orden del bróker. Es lo normal y lo esperado, no un error.
Por eso lo que viene después es opcional. Úsalo solo si quieres que el TP y el SL se vean en la orden del MT5 (por ejemplo normas de prop firm, revisiones o preferencia tuya). La idea de ejecución es la misma: solo cambia que los niveles queden visibles en la operación.
- ¿TP/SL en el JSON? No: deja el mensaje de la alerta tal como te lo damos.
- Si llega un cierre y la posición ya está cerrada, no hacemos nada: sin problema.
Si sí quieres TP/SL de bróker en la orden de MetaTrader, puedes enviar niveles con cada señal sin tocar el JSON del webhook. Tu estrategia debe añadir un bloque de texto fijo en el comentario de la orden al abrir (o gestionar) la operación. TradingView reenvía ese comentario solo. Los detalles están abajo.
- Por defecto: sin tocar código—el cierre por TP/SL llega con las alertas de TradingView.
- Deja el Mensaje de la alerta (el JSON) exactamente como te lo damos.
- Solo si quieres TP/SL en la orden del MT5: añade el bloque de abajo en el comentario de la orden de tu estrategia.
Este bloque va dentro del comentario de la orden (puedes añadir texto tuyo delante o detrás; respeta llaves y escritura exacta):
{TradingPineLab:tp=X,sl=X,applyOptionsToAllOrders=false}- tp (opcional) — valor TP a indicar en la orden.
- sl (opcional) — valor SL a indicar en la orden.
- applyOptionsToAllOrders (opcional, por defecto
false) — Si esfalse, solo se usará el SL/TP para la orden que se ejecute en ese momento. Si estrue, todas las órdenes abiertas de la misma estrategia se actualizarán con el mismo SL/TP.
Para una operación individual puedes enviar en el comentario, por ejemplo:
{TradingPineLab:tp=123.45,sl=122.10}Si editas tu estrategia en el editor de TradingView (Pine Script), lo habitual es calcular precios y pasarlos en comment=. Separa con comas tp, sl y applyOptionsToAllOrders:
tempTP = close + (close * 0.01)
tempSL = close - (close * 0.01)
strategy.entry('Bull #1', strategy.long, qty = baseOrderSize, comment = 'Compra TEST {TradingPineLab:tp=' + str.tostring(tempTP) + ',sl=' + str.tostring(tempSL) + ',applyOptionsToAllOrders=true}')
Ejemplos válidos:
{TradingPineLab:tp=1.2345,sl=1.2300,applyOptionsToAllOrders=true}
{TradingPineLab:tp=1.2345,applyOptionsToAllOrders=false}
{TradingPineLab:sl=1.2300,applyOptionsToAllOrders=true}
{TradingPineLab:tp=123.45,sl=122.10}Alertas de indicadores (texto plano)
Si tu señal viene de un indicador (no de una estrategia), TradingView no envía las variables de estrategia. En ese caso el mensaje de la alerta debe ser una sola línea de texto plano, no JSON. La URL del webhook es la misma de siempre (cópiala desde tu webhook en TPL Cloud).
En TradingView: crea una alerta sobre tu indicador, activa URL de Webhook, pega la URL de TPL Cloud y en Mensaje escribe solo la línea de abajo (puedes usar marcadores de Pine como {{close}} dentro de los valores si tu script lo permite).
Formato del mensaje
action,symbol,qty=X,sl=Y,tp=Z- action — Obligatorio.
buy= abrir compra a mercado;sell= abrir venta a mercado;close= cerrar posición(es) de ese símbolo. - symbol — Obligatorio. El ticker del gráfico (p. ej.
EURUSD). El Editor de Conexiones puede mapearlo al símbolo de tu bróker. - qty — Obligatorio en
buyysell(volumen en lotes). Enclose: omítelo para cierre total; indica cantidad para cierre parcial (si es mayor o igual al volumen abierto, se cierra todo). - sl / tp — Opcionales. Solo en
buyysell. Formatos admitidos:20p— distancia en pips desde el precio de entrada1.5%— porcentaje del precio actual@1.08250— precio fijo
Ejemplos
buy,EURUSD,qty=0.10,sl=20p,tp=40p
sell,BTCUSD,qty=0.01,sl=1%,tp=2%
buy,XAUUSD,qty=0.05,sl=@3210.5,tp=@3260.0
close,EURUSD
close,EURUSD,qty=0.05Conectar Webhook con Cuentas
Una vez creado el webhook, necesitas conectarlo con tus cuentas MT5. Esto se hace en el Editor de Conexiones:
- Ve al Editor de Conexiones
- Arrastra el webhook desde la lista izquierda al canvas
- Arrastra una cuenta MT5 al canvas
- Conéctalos para crear un Mapeo entre ambos
- Configura el símbolo en el mapeo. Este símbolo será el que se usará la cuenta conectada
- Guarda la conexión
Troubleshooting
- Verifica que la URL del webhook sea correcta
- Revisa que la alerta esté activa en TradingView
- Verifica que el webhook esté conectado a una cuenta en el Editor de Conexiones
- Asegúrate de usar el JSON de ejemplo exacto que proporcionamos
- No modifiques las variables de Pine Script ({{strategy.order.action}}, etc.)
- Verifica que todas las comillas estén correctamente cerradas