Tradovate API

API de Tradovate: isAutomated debe ser true para los bots

Si deja isAutomated en su valor predeterminado false, cada orden algorítmica que envíe quedará silenciosamente mal etiquetada ante CME como un clic humano. Esto es lo que hace el indicador, por qué existe y cómo configurarlo correctamente.

Revisado por el equipo de Sistemas de Trading de PickMyTrade Última actualización
· Lectura de 7 minutos
Cuerpo de la solicitud JSON de placeOrder de Tradovate en el API Explorer con el campo isAutomated omitido, que queda en false de forma predeterminada

Si envía órdenes a Tradovate desde un bot, un puente de webhook o un script, un pequeño campo decide si el mercado trata su ejecución como una orden automatizada limpia o como una infracción del registro de auditoría: isAutomated. Si lo deja en su valor predeterminado false, cada orden algorítmica que envíe queda silenciosamente mal etiquetada ante CME como un clic humano. Si lo envía con el tipo de dato incorrecto, su solicitud puede rechazarse antes de llegar siquiera al motor de emparejamiento. En 2026, con el indicador Manual/Automatizado de CME exigido en cada orden, acertar con este único valor booleano ya no es opcional, y es una de las causas más comunes de que los desarrolladores vean sus órdenes automatizadas comportarse de forma extraña o quedar marcadas. A continuación se explica exactamente qué hace el indicador, por qué existe y cómo configurarlo para que su bot opere sin rechazos.

Lista de verificación rápida para el indicador isAutomated

  • ¿Un bot, script o webhook envía la orden? Establezca isAutomated: true en cada llamada a /order/placeOrder.
  • ¿Un humano hace clic en un botón de su propia interfaz? isAutomated permanece en false (el valor predeterminado).
  • ¿Envía el valor con el tipo correcto? El esquema lo define como booleano true, no como la cadena "true", compruebe lo que su cliente HTTP realmente serializa.
  • ¿Utiliza una estrategia bracket/OSO? Aplique el indicador también a la orden principal en placeOSO/placeOrderStrategy, no solo a las órdenes individuales.
  • ¿Ve rechazos extraños o “acceso denegado”? Confirme el indicador y su tipo antes de culpar a la autenticación, el símbolo o la configuración de riesgo.
  • ¿No está seguro de quién “posee” la orden? Si ningún humano la activó físicamente en tiempo real, es automatizada. Márquela como tal.

Qué significa realmente el indicador isAutomated

isAutomated es un campo booleano en el cuerpo de la solicitud placeOrder de Tradovate. Indica a Tradovate, y a través de Tradovate al motor de emparejamiento de CME Globex, si una persona real inició físicamente la orden o si fue generada por software. Si omite el campo, Tradovate lo trata como false, lo cual solo es correcto para una orden que un humano colocó haciendo clic en una interfaz.

En el momento en que un algoritmo, un bot de trading, un webhook de TradingView o cualquier proceso impersonal genera la orden, ese valor predeterminado es incorrecto. El indicador debe establecerse para las órdenes colocadas por un algoritmo automatizado, a diferencia de las iniciadas manualmente mediante un clic. Establecer isAutomated: true es lo que hace que su solicitud se asigne a la designación correcta del mercado.

Esto no es una preferencia de Tradovate, sino una norma del mercado. Desde el 5 de junio de 2011, CME Group exige que toda orden introducida en Globex identifique si se introdujo por medios manuales o automatizados, indicado en el Tag 1028 (Manual Order Indicator) de FIX. El 8 de octubre de 2012, ese requisito se codificó en la Rule 536.B de cada mercado. Los valores permitidos son estrictos: las órdenes manuales envían Y, las órdenes automatizadas envían N, y no se permite ningún otro valor. Su isAutomated: true es lo que hace que Tradovate marque su orden como automatizada (N) en la transmisión. El envío inexacto de ese indicador es una infracción del registro de auditoría que puede dar lugar a medidas disciplinarias conforme a la CME Rule 512.

Causas principales de un indicador isAutomated ausente o incorrecto

1. El campo simplemente se omite

La causa más común es omitir por completo isAutomated del payload. Tradovate lo establece por defecto en false, por lo que la solicitud sigue teniendo éxito, y precisamente por eso es peligroso. Las órdenes de su bot se enrutan al mercado etiquetadas como manuales (Y), aunque las haya generado un software. No se produce ningún error, pero cada ejecución automatizada queda ahora mal etiquetada en el registro de auditoría de CME.

2. El valor se envía con el tipo incorrecto

El esquema de órdenes de Tradovate documenta isAutomated como booleano. Algunos clientes HTTP, solicitudes con codificación de formulario o wrappers de terceros lo serializan como la cadena "true" en lugar del booleano JSON true. Según cómo su stack construya el cuerpo de la solicitud, un valor que la API no pueda interpretar como booleano puede ser ignorado (volviendo a false) o provocar que la solicitud falle. Envíe el tipo que su librería realmente serializa a JSON, un booleano real, salvo que su puente documente lo contrario.

3. El indicador falta en las órdenes bracket/estrategia

Los desarrolladores suelen añadir isAutomated en llamadas individuales a placeOrder, pero lo olvidan en las solicitudes placeOSO y placeOrderStrategy (bracket OSO/OCO). La orden principal de una estrategia sigue siendo una orden automatizada y necesita el indicador. Una entrada bracket enviada sin él supone la misma infracción que una orden individual sin marcar.

4. Una confusión entre humano y bot en el flujo de código

Si el mismo flujo de código gestiona tanto acciones manuales de la interfaz como señales automatizadas, es fácil codificar un único valor fijo para ambos casos. El indicador debe reflejar el verdadero origen de cada orden en el momento del envío: true cuando una señal o un algoritmo la disparó, false solo cuando una persona hizo clic.

Cuerpo JSON de placeOrder de Tradovate corregido con isAutomated establecido en el booleano true, resaltado en verde, para una orden de bot

Cómo corregir el indicador isAutomated: paso a paso

1

Corregir el indicador ausente

Abra el código que construye el cuerpo de su solicitud /order/placeOrder. Añada isAutomated junto a los demás campos obligatorios, accountSpec, accountId, action, symbol, orderQty y orderType. Establezca el valor en true para cualquier orden que genere su bot, script o webhook. Déjelo en false únicamente en las órdenes que un humano activa directamente. Reenvíe una orden de prueba en el entorno demo y confirme que la respuesta es un id de orden válido y no un error. Un cuerpo placeOrder automatizado mínimo se ve así: { "accountSpec": "YourUserName", "accountId": 0, "action": "Buy", "symbol": "MESU6", "orderQty": 1, "orderType": "Market", "isAutomated": true }

2

Corregir el tipo de dato incorrecto

Inspeccione el JSON en bruto que envía su cliente (registre el cuerpo de la solicitud o use la salida de depuración de su librería). Confirme que isAutomated aparece como un booleano simple, "isAutomated": true, y no como una cadena entre comillas "isAutomated": "true". Si su framework entrecomilla automáticamente los booleanos, convierta el valor explícitamente a un booleano real antes de serializar, o use el tipo que documenta su wrapper de API. Vuelva a probar y verifique que la orden se acepta. Si utiliza un puente o un tercero, consulte su documentación para conocer el tipo exacto esperado; algunas integraciones con codificación de formulario esperan una forma de cadena, así que confírmelo con su herramienta específica antes de asumirlo.

3

Corregir órdenes bracket y de estrategia

Localice su generador de solicitudes placeOSO o placeOrderStrategy. Añada isAutomated: true a la orden de entrada/principal de la estrategia, exactamente igual que haría con una orden individual. Los tramos de stop y target adjuntos heredan el contexto de la estrategia, pero el indicador corresponde a la orden que envía. Envíe un bracket de prueba en demo y confirme que todos los tramos aparecen en el informe de órdenes tal como se espera.

4

Confirmar que la orden fue aceptada y etiquetada correctamente

Después de enviar, compruebe en la respuesta de placeOrder un orderId numérico (éxito) en lugar de un failureReason. Abra el módulo de órdenes o consulte /order/list y confirme que la orden aparece como aceptada/en curso, no rechazada. En cuentas reales, vigile de cerca las primeras órdenes automatizadas para asegurarse de que se enrutan correctamente ahora que el indicador está configurado.

Referencia del esquema del API Explorer de Tradovate para el modelo placeOrder, mostrando isAutomated tipado como campo booleanoInforme de órdenes de la plataforma web de Tradovate mostrando una orden automatizada aceptada y en curso después de establecer isAutomated en true

Tabla de solución de problemas

Síntoma Qué significa Solución
isAutomated omitido del payloadPor defecto es false; las órdenes del bot se etiquetan como manuales (Tag 1028 = Y)Añada isAutomated: true a cada placeOrder automatizada
"isAutomated": "true" (cadena)El valor puede no interpretarse como booleano; puede ser ignorado o rechazadoEnvíe el booleano JSON true, no una cadena entre comillas
Falta el indicador en el padre OSO/OCOLa entrada bracket se enruta como una orden automatizada sin marcarEstablezca isAutomated: true en la orden principal de la estrategia
Mismo flujo de código para UI y botSe reporta un origen incorrecto por ordenEstablezca el indicador por orden según el origen real en el momento del envío
Orden marcada / preocupación de auditoríaLa designación CME Tag 1028 es inexactaAsegúrese de que las órdenes automatizadas siempre se reporten como automatizadas (N)
"Acceso denegado" intermitente en placeOrderNormalmente autenticación/cuenta/símbolo, no el indicador en síCorrija la autenticación y use el id numérico de la cuenta; mantenga también el indicador correcto

Dónde encaja PickMyTrade

Si mantener el contrato de API en bruto a mano le resulta frágil, PickMyTrade conecta las alertas de TradingView directamente con su cuenta de Tradovate y se encarga de la gestión de las órdenes por usted:

  • Etiquetado de automatización correcto, las órdenes generadas a partir de sus alertas se envían a través de la vía automatizada adecuada, de modo que la designación del mercado se gestiona sin codificar manualmente el indicador.
  • Validación del payload, los campos de símbolo, cantidad y tipo de orden se validan antes de enviar la orden, detectando los errores que se sitúan justo al lado de isAutomated en el cuerpo.
  • Enrutamiento seguro frente a límites de tasa, el flujo de órdenes se espacia para que las ráfagas no activen los límites de solicitud de Tradovate.
  • Sincronización multicuenta, la misma orden validada se replica en todas sus cuentas conectadas en lugar de que usted tenga que reimplementar el payload para cada una.

Opere sin rechazos

Comience su prueba gratuita de 5 días, conecte sus alertas hoy mismo y opere sin rechazos.

Comience su prueba gratuita de 5 días

Preguntas frecuentes

Es un booleano en el cuerpo de la solicitud placeOrder que indica si un humano o un software generó la orden. Se corresponde con el FIX Tag 1028 Manual Order Indicator de CME, de modo que el mercado sabe que la orden fue automatizada.

El campo se establece por defecto en false, por lo que su orden automatizada se marca ante CME como introducida manualmente. Es una designación de registro de auditoría inexacta, que según la CME Rule 536.B y la Rule 512 puede dar lugar a medidas disciplinarias.

Use true para cualquier orden generada por un bot, algoritmo, script o webhook. Use false solo para las órdenes que una persona activa físicamente en tiempo real.

El esquema de órdenes de Tradovate lo define como booleano, así que envíe true (no "true"). Si utiliza un puente de terceros o un cliente con codificación de formulario, confirme el tipo exacto que espera, ya que la serialización puede diferir entre herramientas.

Sí. Establezca el indicador en la orden principal/de entrada de su solicitud placeOSO o placeOrderStrategy, igual que lo haría para una orden individual.

No siempre. Como su valor predeterminado es false, muchas solicitudes se completan con éxito pero quedan mal etiquetadas. El riesgo mayor es una infracción de cumplimiento y de registro de auditoría. Sin embargo, enviar el valor con un tipo que la API no pueda interpretar sí puede hacer que la solicitud falle.

Desde 2011, CME exige que cada orden de Globex identifique la entrada manual (Y) frente a la automatizada (N) con fines de vigilancia y registro de auditoría. Se codificó en la Rule 536.B en 2012, y solo son válidos los valores Y o N.

Ese error suele deberse a la autenticación, el id de cuenta o el símbolo, y no a isAutomated. Mantenga el indicador correcto, pero solucione los problemas de autenticación y acceso a la cuenta por separado.

Esta guía tiene fines exclusivamente educativos e informativos y no constituye asesoramiento financiero, de inversión ni de trading. Operar con futuros y otros productos apalancados conlleva un riesgo sustancial de pérdida y no es adecuado para todos los inversores. PickMyTrade es una plataforma de automatización independiente de terceros y no está afiliada, respaldada ni patrocinada por Tradovate, Inc. Todos los nombres, logotipos y marcas relacionados son propiedad de sus respectivos titulares. Las funciones y los pasos de la plataforma cambian con el tiempo, por lo que siempre debe confirmar el proceso actual en la plataforma y la documentación oficiales de Tradovate antes de actuar.