Órdenes duplicadas en el trading automático: por qué pasan y cómo evitarlas.
Una alerta de TradingView, dos tickets en MT5. El doble de riesgo en una operación que planeaste una vez, y en una cuenta de prop firm eso puede ser la diferencia entre pasar y saltarte el límite diario. Estas son las cinco causas que vemos de verdad, ordenadas por lo a menudo que aparecen, y un diagnóstico de 5 minutos para saber cuál es la tuya.
La respuesta corta
Una orden duplicada siempre viene de uno de dos sitios. O TradingView mandó la alerta dos veces, o una sola alerta se ejecutó dos veces. Lo primero es un problema del lado de TradingView: dos alertas para el mismo evento, una frecuencia de alerta que salta más de una vez, una alerta de estrategia que salta en cada ejecución de orden o un reenvío tras un error del servidor. Lo segundo es un problema del lado del terminal: la misma cuenta MT5 con el EA en dos terminales, o un EA escuchando en varios gráficos.
Distinguirlos cuesta un vistazo al registro de señales de tu puente: dos filas significan que llegaron dos webhooks; una fila con dos tickets significa dos ejecuciones. La sección de diagnóstico de más abajo te guía paso a paso. Primero, las causas.
1. La misma cuenta MT5 en dos terminales
Es la que hemos visto en producción, y la menos evidente porque no se ve nada raro. Un cliente pasó a un terminal alojado en SFCloud y siguió con MetaTrader 5 abierto en su PC, con la misma cuenta y el EA todavía en el gráfico. Llegó un webhook, los dos terminales tenían el EA conectado a esa cuenta y la cuenta acabó con dos tickets para una sola señal.
MT5 te deja iniciar sesión en la misma cuenta desde varios terminales a la vez, y cada terminal ejecuta su propia copia del EA. El bróker ve dos clientes independientes mandando dos órdenes. Pasa lo mismo con un PC y un VPS, con un VPS y otro VPS “de respaldo” o con dos instalaciones de MT5 en la misma máquina apuntando al mismo login.
Por nuestra parte, cuando la misma cuenta se conecta dos veces, el servidor cierra la conexión push más antigua. Eso reduce el riesgo, pero no evitó el caso de arriba, así que no lo tomes como red de seguridad. La regla es sencilla: una cuenta MT5 = un solo terminal con el EA.
- ¿Te pasas a un VPS o a SFCloud? Quita el EA del gráfico en tu PC, o cierra la sesión de esa cuenta en ese terminal, antes de que el nuevo empiece a operar.
- ¿Quieres un terminal de respaldo? Déjalo sin el EA (o con la sesión cerrada) y cámbiate a él solo cuando el principal se caiga.
- ¿Varias cuentas? Un terminal por cuenta es el patrón correcto; lo tienes en varias cuentas MT5 alojadas.
2. Dos alertas para el mismo evento
La segunda causa más habitual es, sencillamente, que existen dos alertas. Formas típicas de que ocurra:
- Dos alertas en el mismo gráfico apuntando al mismo webhook, a menudo una creada durante las pruebas que nunca se borró.
- Una alerta de estrategia y otra de indicador para la misma condición, las dos mandando un buy.
- La misma alerta en dos temporalidades, por ejemplo en M5 y en M15, saltando con el mismo movimiento.
- Una estrategia editada con una alerta nueva encima de la vieja. TradingView ejecuta una copia de la estrategia en sus servidores al crear la alerta, y los cambios en la estrategia del gráfico no llegan a esa copia: tienes que borrar la alerta anterior y crear una nueva (centro de ayuda de TradingView, verificado el 4 de octubre de 2026). Si solo creas la nueva, saltan las dos.
En nuestros registros estas parejas llegan con entre 50 y 500 ms de diferencia. Con la piramidación por defecto de SignalForge, 1 operación por dirección y símbolo, la segunda entrada idéntica se filtra y aparece como FILTERED en el dashboard: el ajuste por defecto la absorbe. Si subiste la piramidación para escalar posiciones, se ejecutarán las dos. El arreglo de verdad está en TradingView: abre el panel de alertas y borra todas las que no necesites.
3. Frecuencia de la alerta, repintado y ejecuciones de la estrategia
Aquí la alerta existe una sola vez, pero salta más de una. Lo que dice la propia documentación de TradingView (verificado el 4 de octubre de 2026):
- Once per bar salta cada vez que se cumple la condición, pero no más de una vez por vela. Once per bar close es igual, salvo que la vela tiene que cerrar antes. Once per minute comprueba la condición cada minuto y salta siempre que se cumple, así que puede disparar varias veces en una misma vela. Estas cuatro opciones son para alertas de indicadores y dibujos; las alertas simples de precio ofrecen “Only once” y “Every time”.
- Repintado. En una vela en curso, el máximo, el mínimo y el cierre van cambiando, y una condición como un cruce puede aparecer a mitad de vela y desaparecer antes del cierre. Con Once per bar la alerta salta con esa señal intravela; si la condición vuelve a aparecer en la vela siguiente, salta otra vez, y te quedas con dos entradas para lo que en el gráfico cerrado parece una sola señal. La documentación de Pine Script señala el disparo al cierre de vela como la forma más sencilla de evitar este tipo de repintado.
- alert() en Pine Script.
alert.freq_once_per_barenvía solo la primera llamada de cada vela en tiempo real,alert.freq_once_per_bar_closesolo al cierre de la vela yalert.freq_allenvía todas las llamadas de la vela. Si tu script usafreq_all, cuenta con varios mensajes por vela. - Las alertas de estrategia saltan en cada orden ejecutada. TradingView manda una notificación cada vez que se ejecuta una orden de la estrategia, y puede mandar más de una en la misma vela. Una estrategia que cierra y reabre, o que añade a una posición, manda un mensaje por cada ejecución. Una alerta de script que incluye a la vez los eventos de ejecución de órdenes y las llamadas a
alert()salta con las dos cosas, y duplica cada señal.
Para entradas automáticas, Once per bar close es la opción más segura por defecto. Si tu estrategia manda un mensaje por ejecución, asegúrate de que cada mensaje lleva la acción correcta (un cierre no es un buy nuevo); nuestros ejemplos JSON de webhook muestran los campos.
4. Reenvíos tras un error del servidor
La página oficial de TradingView sobre el reenvío de webhooks dice: si la aplicación receptora devuelve un código HTTP entre 500 y 599, salvo el 504, la notificación se vuelve a enviar a los 5 segundos, con un máximo de 3 reenvíos, así que como mucho son 4 envíos por disparo (verificado el 4 de octubre de 2026). No reenvía ante códigos 4xx ni ante un 504.
Aquí es donde un puente lento o saturado puede crear duplicados: si acepta y procesa la alerta pero aun así responde con un 5xx, TradingView la manda otra vez y el puente puede tratar el reenvío como una alerta nueva. La huella es una separación de unos 5 segundos entre las dos señales.
SignalForge responde 200 con el estado queued en cuanto acepta la alerta, y todo lo que pasa después (filtros, entrega, ejecución) no cambia esa respuesta. Una alerta aceptada no le da a TradingView ningún motivo para reenviarla. Los despliegues del servidor se hacen con comprobación de salud, 30 segundos de solapamiento y 30 de drenaje, así que un despliegue no corta la recepción.
5. Un EA en varios gráficos
Muchos EAs de puente escuchan señales en cada gráfico donde están puestos. Pon el mismo EA en EURUSD y en XAUUSD “para cubrir los dos” y, según el puente, cada instancia puede ejecutar la misma señal entrante. En SignalForge el EA reclama cada señal entre gráficos, así que dos gráficos del mismo terminal no pueden ejecutar los dos una misma señal. Aun así, basta con un gráfico por terminal: el EA opera el símbolo de la alerta y solo usa el del gráfico si la alerta no lleva símbolo.
Una señal sin el campo "account" va a todas las cuentas MT5 vivas conectadas con tu token. Si tienes conectadas la cuenta demo y la real, cada una abre la operación: eso es reparto, no duplicación. Añade "account": "12345678" para mandarla solo a ese login.
Diagnóstico en 5 minutos
- Paso 1: compara los dos tickets en la pestaña Historial de MT5. ¿Misma cuenta o cuentas distintas? ¿Con cuánta diferencia se abrieron?
- Paso 2: abre el registro de señales en el dashboard de SignalForge y busca esa operación. Cada webhook aceptado es una fila con su estado y su motivo.
- Paso 3: mira la pestaña Expertos de cada terminal. Una línea
[PROC]es una señal recibida y una[SEND]es la orden enviada. Las líneas[DEDUP]son el control de duplicados del EA trabajando: una señal que ya había gestionado no se volvió a ejecutar. - Paso 4: abre la pestaña Registro del panel de alertas de TradingView. Ahí aparece cada disparo, y puedes exportarlo a CSV.
Los tiempos son los que vemos en nuestros propios registros y te ayudan a acotar; no son una regla. Si tu caso no encaja en ninguna fila, mándanos la hora de la señal y los dos números de ticket a [email protected].
Cómo te protege SignalForge, y dónde no
- La misma señal, nunca dos veces. El EA guarda en disco el resultado de cada id de señal, así que una señal que ya gestionó no se vuelve a ejecutar. Si una ejecución se interrumpe a medias, queda como resultado desconocido y no se reintenta: preferimos una operación que falta y que puedes ver a una posición doble escondida.
- Una ejecución por terminal. Dos gráficos del mismo terminal no pueden ejecutar los dos una misma señal.
- Una conexión push por cuenta. Cuando la misma cuenta se conecta dos veces, el servidor cierra la conexión más antigua. Ayuda, pero no es una garantía frente a dos terminales (mira la causa 1).
- Piramidación por defecto de 1 por dirección. Una segunda entrada idéntica en el mismo símbolo se filtra, lo que absorbe la mayoría de las alertas duplicadas seguidas. Puedes subirla en el dashboard si escalas posiciones a propósito.
- Lo que no hacemos: el servidor no deduplica alertas. Cada POST de TradingView es una señal nueva, así que dos alertas distintas son dos señales. Es a propósito: dos alertas que se parecen pueden ser dos operaciones que quieres de verdad, y solo tú sabes cuál es el caso.
La configuración, los campos de la alerta y el registro de señales están en la documentación. Para comprobar qué manda de verdad tu alerta, pégala en el tester de webhooks.
Preguntas frecuentes
¿Por qué mi EA abre dos operaciones con una sola alerta de TradingView?
Lo más habitual es que la misma cuenta MT5 esté abierta en dos terminales con el EA, por ejemplo tu PC y un VPS o SFCloud. La alerta llega a los dos y cada uno abre su propio ticket. Deja un solo terminal con el EA por cada cuenta MT5.
¿TradingView envía el mismo webhook dos veces?
Solo en casos concretos. TradingView reenvía un webhook cuando el receptor responde con un código entre 500 y 599, salvo el 504: hasta 3 reenvíos, separados 5 segundos, así que como máximo 4 envíos por disparo (centro de ayuda de TradingView, verificado el 4 de octubre de 2026). Es más frecuente que el duplicado venga de dos alertas, de la frecuencia de la alerta o de una alerta de estrategia que salta en cada ejecución de orden.
¿SignalForge elimina las alertas duplicadas?
En el servidor no: cada POST de TradingView es una señal nueva, así que dos alertas son dos señales. El EA nunca ejecuta dos veces la misma señal, dos gráficos del mismo terminal no pueden ejecutar los dos una misma señal y la piramidación por defecto, 1 operación por dirección y símbolo, filtra una segunda entrada idéntica.
¿Cómo sé si TradingView mandó la alerta dos veces?
Abre el registro de señales de SignalForge. Dos filas para la misma operación significan que llegaron dos webhooks, así que la causa está en TradingView. Una fila con dos tickets en MT5 significa que la señal la ejecutaron dos terminales. La pestaña Registro del panel de alertas de TradingView también muestra cada disparo.
¿Uso Once per bar u Once per bar close?
Para entradas automáticas, Once per bar close es la opción más segura por defecto. Once per bar salta la primera vez que se cumple la condición dentro de la vela, y en una vela en curso la condición puede desaparecer antes del cierre. La documentación de Pine Script recomienda disparar al cierre de la vela como la forma más sencilla de evitar ese repintado.
¿Puedo tener el EA en mi PC y en un VPS a la vez como respaldo?
No con la misma cuenta MT5. Dos terminales con la misma cuenta y el EA pueden ejecutar la misma señal dos veces. Si quieres un respaldo, deja el segundo terminal sin el EA, o con la sesión cerrada, y cámbiate solo cuando el principal se caiga.
Fuentes, verificadas el 4 de octubre de 2026 (en inglés): centro de ayuda de TradingView, Webhook resubmission, Differences between alert frequencies, Strategy alerts y Manage alerts; documentación de Pine Script, Alerts y Repainting.
Más soluciones
Una alerta. Una orden.
Un puente que nunca ejecuta dos veces la misma señal y te enseña cada señal con su estado. Prueba gratis 14 días, sin tarjeta.
SignalForge AI es una herramienta de ejecución de órdenes. No damos asesoramiento de inversión. Operar conlleva riesgo de pérdida. El comportamiento de TradingView que se describe aquí sale de su documentación oficial en la fecha indicada y puede cambiar.