⬡ API · AUTOMATIZACIÓN · LECTURA 13 MIN

Webhook de TradingView → bróker: automatización de punta a punta.

Cómo transformar una alerta de Pine Script en una orden real en el bróker. La arquitectura completa, el código del servidor receptor y los riesgos honestos de este enfoque.

Por el equipo RoboTraderIA· actualizado may/2026· nivel avanzado

Diseñaste una estrategia en Pine Script y quieres que opere sola. Pero TradingView no ejecuta órdenes en tu bróker directamente (salvo integraciones nativas). El puente es el webhook: la alerta se dispara, envía un mensaje a un servidor tuyo, y ese servidor ejecuta la orden vía API del bróker. Esta guía monta ese pipeline entero — y es honesta sobre dónde puede fallar.

01La arquitectura de punta a punta

Son cuatro eslabones. Entender el flujo es esencial antes de escribir una línea:

TradingView alerta Pine HTTP POST Tu servidor Flask/FastAPI valida API del bróker orden Mercado ejecución
La alerta de TradingView se convierte en un HTTP POST → tu servidor valida → llama a la API del bróker → orden ejecutada.

Requisito previo: la función de webhook en las alertas exige un plan de pago de TradingView. Los planes gratuitos no envían webhook. Y necesitas un servidor con URL pública (una VPS, o servicios tipo Render/Railway) para recibir el POST.

02Paso 1: la alerta en TradingView

En tu Pine Script usas alert() con un mensaje en JSON (para que el servidor lo interprete). Después, al crear la alerta en la interfaz, pegas la URL de tu webhook en el campo "URL del Webhook".

// en Pine Script — mensaje estructurado en JSON
if ta.crossover(ma_rapida, ma_lenta)
    alert('{"segredo":"MEU_SEGREDO","acao":"COMPRA","ativo":"BTCUSDT","qtd":0.01}',
          alert.freq_once_per_bar_close)

El segredo es vital — es lo que impide que cualquiera que descubra tu URL dispare órdenes falsas. Veremos la validación en el servidor.

03Paso 2: el servidor receptor

Un servidor simple en Python con FastAPI que recibe el webhook, valida el secreto y procesa:

# servidor.py
from fastapi import FastAPI, Request, HTTPException
import os

app = FastAPI()
SEGREDO = os.getenv("WEBHOOK_SECRET")   # nunca hardcodear

@app.post("/webhook")
async def webhook(request: Request):
    dados = await request.json()

    # 1. valida el secreto — bloquea peticiones falsas
    if dados.get("segredo") != SEGREDO:
        raise HTTPException(status_code=403, detail="Não autorizado")

    # 2. interpreta la señal
    acao  = dados.get("acao")
    ativo = dados.get("ativo")
    qtd   = dados.get("qtd")

    # 3. ejecuta en el bróker (función de su módulo de ejecución)
    if acao == "COMPRA":
        executar_compra(ativo, qtd)
    elif acao == "VENDA":
        executar_venda(ativo, qtd)

    return {"status": "ok", "acao": acao}

La función executar_compra usa la API del bróker — exactamente el código que mostramos en el tutorial de Binance o en la API de MT5. El webhook solo sustituye la parte que "decide" — ahora quien decide es el Pine Script.

La seguridad es obligatoria, no opcional: tu URL de webhook es pública. Sin validación por secreto, cualquiera que descubra la URL puede disparar órdenes en tu cuenta. Usa siempre: (1) un secreto en el mensaje, (2) HTTPS, (3) idealmente valida también la IP de origen de TradingView. Trátalo como tratarías la contraseña del banco.

04Paso 3: dónde alojar el servidor

El servidor necesita URL pública y estar siempre en línea. Opciones:

  • VPS (la misma del bot) — control total, IP fija para que puedas filtrar. Mira nuestra guía de VPS.
  • Plataformas de deploy (Render, Railway, Fly.io) — levantan el servidor rápido, tienen plan gratuito limitado. Bueno para probar.
  • Túnel local (ngrok) — solo para pruebas, expone tu PC local temporalmente. Nunca para producción.

¿Necesitas una VPS para alojarlo?

Mira cómo elegir y configurar la VPS que va a correr tu servidor de webhook 24/7.

Ver guía de VPS →

05Webhook vs. integración nativa

Antes de montar todo este pipeline, considera la alternativa: algunos brókeres tienen integración nativa con TradingView — envías la orden directo desde el gráfico, sin servidor intermediario. Pepperstone es un ejemplo. Compara:

  • Webhook + servidor: flexible (funciona con cualquier bróker que tenga API), pero añade puntos de fallo (servidor, latencia, seguridad) y exige mantenimiento.
  • Integración nativa: más simple y confiable (sin un servidor tuyo en medio), pero limitada a los brókeres que la ofrecen y a lo que la integración permite.

Recomendación: si tu bróker tiene integración nativa y le sirve a tu estrategia, prefiérela — menos cosas que se puedan romper. El webhook brilla cuando necesitas lógica personalizada en medio (ej.: gestión de riesgo propia, múltiples brókeres) o cuando el bróker solo ofrece API, no integración con TradingView.

06Los riesgos honestos de la automatización por webhook

Lo que puede salir mal (y va a salir, tarde o temprano): el servidor puede caerse y pierdes la señal. La petición puede perderse en la red. Hay latencia entre la alerta y la ejecución (los segundos pueden importar). Una alerta puede dispararse dos veces (orden duplicada). Necesitas logs, idempotencia (no ejecutar la misma orden dos veces) y monitoreo. La automatización por webhook es poderosa, pero no es "configúralo y olvídate".

Prácticas que reducen el riesgo: registrar cada petición recibida y cada orden enviada; implementar idempotencia (cada alerta tiene un ID, ignora los repetidos); tener un "kill switch" (una forma de apagar todo rápido); y — siempre — probar el pipeline entero en cuenta demo durante semanas antes de pasar a real.

07Preguntas frecuentes

¿Qué es un webhook de TradingView?

Es una petición HTTP que TradingView envía automáticamente a una URL tuya cuando se dispara una alerta. Esa petición puede activar un servidor que ejecuta órdenes en el bróker, automatizando estrategias hechas en Pine Script.

¿Necesito un plan de pago de TradingView?

Sí. La función de webhook en las alertas exige un plan de pago. Los gratuitos no permiten enviar webhook. Además, necesitas un servidor con URL pública para recibirlo.

¿Es seguro automatizar por webhook?

Tiene riesgos: la URL es pública (necesita validación por secreto), el servidor puede caerse, hay latencia y las alertas pueden duplicarse. Para estrategias sensibles al tiempo, la integración nativa es más confiable. Prueba siempre en demo y usa logs, idempotencia y kill switch.

¿Cuál es la diferencia con la integración nativa?

La integración nativa (ej.: Pepperstone) ejecuta directo desde el gráfico, sin un servidor tuyo — más simple y confiable. El webhook es más flexible (cualquier bróker con API, lógica personalizada en medio) pero añade puntos de fallo. Prefiere la nativa cuando te sirva.

¿Puedo usar webhook para la B3 brasileña?

Sí, siempre que tu bróker tenga una API accesible. El servidor receptor llamaría a la API del bróker (o al puente MT5-Python) para ejecutar en la B3. El flujo es el mismo; solo cambia la función de ejecución al final.

Lee también

🎁 Recibe el bot de trading gratis (con API de Quotex, Deriv e IQ Option)

Bot open source + código de la API listo. Lo editas conversando con ChatGPT/Claude — sin programar. Gratis, sin spam.

👉 ¿Ya quieres el bot listo? Entra en botbinaryoptions.com →