Tradovate API

Error de la API de Tradovate “NoServicePlan” en el gráfico de ticks

Ha pagado el módulo de la API y se ha suscrito a los datos de mercado, y su bot todavía no puede obtener un gráfico de ticks. Los datos de la plataforma y los datos en tiempo real de la API son dos autorizaciones independientes, y NoServicePlan significa que el servidor no reconoce la segunda.

Revisado por el equipo de Sistemas de Trading de PickMyTrade Última actualización
· Lectura de 8 minutos
Respuesta del WebSocket de la API de Tradovate que muestra el error NoServicePlan y el mensaje de que se requieren datos de mercado en tiempo real para los gráficos de ticks

Ha pagado el módulo de la API, se ha suscrito a los datos de mercado dentro de Tradovate, y su bot sigue sin poder obtener un gráfico de ticks. En lugar de un flujo de datos, recibe un rechazo tajante: A real-time market data subscription is required for tick-base charts, código de error NoServicePlan. Resulta exasperante precisamente porque ha comprado algo. La trampa es que Tradovate trata los datos de mercado de la plataforma y los datos de mercado en tiempo real de la API como dos autorizaciones independientes, y NoServicePlan es el servidor indicándole que el plan que ve en su sesión de la API no cubre lo que necesita un gráfico de ticks. Esto rara vez se soluciona cambiando su código, se soluciona conciliando lo que realmente posee con lo que el servidor reconoce. Aquí tiene el desglose completo.

Lista de verificación rápida para “NoServicePlan”

  • Datos de la plataforma ≠ datos de la API, la suscripción que acepta en el trader de Tradovate no es la misma autorización que habilita el streaming en tiempo real a través del WebSocket de la API.
  • Los gráficos de ticks exigen un feed en vivo, un gráfico basado en ticks se construye a partir de operaciones individuales, por lo que no puede funcionar con datos retrasados. Por eso el bloqueo es específico de los ticks.
  • Los datos de la API en tiempo real dependen de la CME, transmitir datos en vivo de la bolsa a través de la API requiere un acuerdo de subproveedor con la CME y una lista blanca del lado del servidor en su cuenta.
  • Las cuentas prop/de evaluación se controlan aguas arriba, no puede conciliar el plan usted mismo; la empresa debe habilitar los datos.
  • Las autorizaciones se desincronizan, un plan que funcionaba puede desincronizarse tras la facturación, una renovación o una modificación del soporte. Vuelva a autenticarse y luego contacte con el soporte para conciliarlo.
  • Existe una solución alternativa, solicite un gráfico basado en tiempo en lugar de ticks, o ejecute una automatización de solo órdenes y prescinda por completo del feed de la API en tiempo real.

Qué significa “NoServicePlan”

Si se lee el mensaje literalmente, tiene sentido: a real-time market data subscription is required for tick-base charts. El código NoServicePlan es la versión automática de “el plan de servicio de esta sesión no incluye lo que está solicitando.” Su solicitud de WebSocket estaba bien formada y llegó al servidor, no hay nada mal en su JSON ni en su token. El servidor simplemente comprobó la autorización de datos de mercado vinculada a su inicio de sesión de la API, no encontró un plan en tiempo real que cubra los datos de ticks, y rechazó la solicitud.

El motivo por el que esto resulta tan confuso es que realmente han pagado. Compraron el complemento API Access. Aceptaron un acuerdo de datos de mercado en el frontend de Tradovate y pueden ver cotizaciones en vivo en la plataforma web. Así que cuando la API rechaza un gráfico de ticks, parece un error. No lo es. Esas dos cosas van por caminos distintos, y NoServicePlan pertenece al camino que probablemente todavía no ha configurado.

Por qué los gráficos de ticks reciben un trato especial

Un gráfico de ticks no se mide en tiempo, se mide en operaciones. Cada barra se cierra tras registrarse un número determinado de ticks (transacciones individuales), por lo que el gráfico necesita consumir el flujo de operaciones en vivo para mostrar algo actual. Los datos retrasados o instantáneos no pueden alimentar un gráfico de ticks en vivo. Por eso NoServicePlan menciona explícitamente los gráficos basados en ticks: un gráfico de minutos puede tolerar datos retrasados en algunos contextos, pero un gráfico de ticks en tiempo real no tiene alternativa. Sin feed en vivo, no hay gráfico de ticks.

Principales causas de “NoServicePlan”

1. Confundir los datos de mercado de la plataforma con los datos de mercado de la API

Esta es la causa número uno. La suscripción a datos de mercado que acepta dentro del trader de Tradovate autoriza a la plataforma, las aplicaciones web y de escritorio, a mostrarle cotizaciones en vivo. No autoriza automáticamente el feed WebSocket de la API. Ambos se facturan y se licencian por separado. Si lo único que ha hecho es suscribirse a datos dentro de la interfaz del trader, su sesión de la API sigue sin tener ningún plan en tiempo real asociado, y cada solicitud de ticks devuelve NoServicePlan.

2. Sin registro de subproveedor de la CME ni lista blanca

La transmisión de datos de bolsa en tiempo real a través de la API está condicionada a un acuerdo con la CME. Tradovate registra a los usuarios de la API como subproveedores bajo la licencia de la bolsa, y hasta que eso no esté en marcha, y su cuenta esté en la lista blanca del lado de Tradovate, el servidor no tiene ningún plan de API en tiempo real que asignarle. Esto conlleva una tarifa mensual de la bolsa que se paga a la CME, no a Tradovate. Cualquier cifra concreta que encuentre en una publicación antigua probablemente esté desactualizada; el importe depende de la bolsa y de su tipo de licencia (no profesional frente a profesional / non-display) y cambia, así que confirme la tarifa vigente directamente con la CME y con Tradovate.

Panel de configuración de la aplicación Tradovate con la suscripción a datos de mercado, separando los datos de la plataforma de la autorización de la API en tiempo real

3. Una cuenta prop o de evaluación que usted no controla

Si su inicio de sesión está vinculado a una empresa prop o a un servicio de evaluación, las autorizaciones de datos pertenecen a ese proveedor, no a usted. No puede aceptar un acuerdo de datos ni conciliar un plan en su cuenta desde dentro de Tradovate, los controles se gestionan aguas arriba. Una sesión de la API en una cuenta de evaluación seguirá devolviendo NoServicePlan en las solicitudes de ticks hasta que la empresa active los datos en tiempo real para esa cuenta. Debe contactar con el soporte de la empresa, no con el de Tradovate.

4. Una autorización desincronizada o caducada

A veces el plan se configuró correctamente y luego se desincronizó. Un ciclo de facturación se renueva, se aplica un cambio de plan, un acuerdo caduca, o una modificación de la cuenta por parte del soporte no se propaga correctamente, y de repente una sesión que ayer transmitía datos de ticks hoy devuelve NoServicePlan. Esta es exactamente la situación de “discrepancia que la API no reconoce”: sus registros dicen que tiene autorización, los del servidor no. Volver a autenticarse resuelve la versión sencilla (una sesión caducada); la versión persistente requiere que el soporte concilie la cuenta.

5. Solicitar ticks sin querer

Vale la pena una comprobación rápida: confirme que su solicitud de gráfico realmente pide un elemento basado en ticks y que realmente lo necesita. Algunas bibliotecas y wrappers configuran por defecto una solicitud de gráfico en una unidad de ticks. Si su estrategia funciona con barras de minutos o segundos, puede estar activando sin darse cuenta el requisito de autorización más estricto; cambiar la solicitud a un intervalo de tiempo puede hacer que el error desaparezca discretamente.

Cómo solucionar “NoServicePlan”: paso a paso

1

Confirme qué autorización tiene realmente

Inicie sesión en la plataforma web o de escritorio de Tradovate con la misma cuenta con la que se autentica su clave de la API. Abra Application Settings y vaya a la sección de datos de mercado / suscripciones. Anote qué está activo. Ver cotizaciones en vivo en el trader le indica que la autorización de la plataforma está activa, pero no confirma un plan de la API en tiempo real. Hágase la pregunta clave: ¿ha completado un registro de subproveedor de la CME y ha sido incluido en la lista blanca para datos de mercado de la API? Si no es así, ahí está su brecha, y ningún cambio de código la cerrará.

2

Configure los datos de la API en tiempo real (si realmente necesita ticks)

Póngase en contacto con la CME para registrarse como subproveedor bajo su acuerdo de licencia para datos de futuros en tiempo real. Presupueste la tarifa mensual de la bolsa, se paga a la CME, y el importe actual varía según la bolsa y el tipo de licencia, así que verifíquelo antes de comprometerse. Notifique al soporte de Tradovate que se ha registrado y pídales que incluyan su cuenta en la lista blanca para datos de mercado de la API. Una vez que confirmen la lista blanca, vuelva a autenticarse y reenvíe su solicitud de gráfico de ticks / md/subscribeQuote. El plan debería resolverse ahora.

3

Concilie una autorización desincronizada con el soporte

Primero descarte una sesión caducada: elimine su token de acceso en caché, vuelva a ejecutar el proceso de autenticación, reconecte el WebSocket de datos de mercado y vuelva a intentarlo. Si las solicitudes de ticks siguen devolviendo NoServicePlan en todos los símbolos, el propio plan está desincronizado. Esto no es algo que pueda forzar desde el cliente. Abra un ticket con el soporte de Tradovate. Indique claramente qué ha adquirido (API Access, cualquier suscripción de datos, registro de subproveedor) y pegue el error exacto, incluido el código NoServicePlan y el mensaje de ticks. Pídales que verifiquen que el plan de datos de mercado en tiempo real está activo y correctamente vinculado a su cuenta de la API, y que vuelvan a aplicar la lista blanca si caducó. En una cuenta prop/de evaluación, envíe esta solicitud a la empresa en su lugar.

4

O evítelo por completo

Si no necesita ticks, cambie su solicitud de gráfico de una unidad de ticks a un intervalo de tiempo (minuto/segundo). Esto suele eliminar directamente el bloqueo específico de ticks. Si no necesita en absoluto el feed en tiempo real de Tradovate, ejecute una automatización de solo órdenes: coloque órdenes, gestione posiciones y consulte la cuenta sin un plan de datos en tiempo real. Obtenga sus datos en vivo de un proveedor de datos de mercado externo o utilice datos retrasados gratuitos para las señales, y mantenga la ejecución en Tradovate.

Pantalla del estado de autorización de datos de mercado de la cuenta de Tradovate utilizada para confirmar el plan de datos en tiempo real de la APISelector de intervalo del gráfico de Tradovate que muestra unidades basadas en ticks frente a unidades basadas en tiempo

Tabla de solución de problemas

Síntoma Causa probable Qué hacer
NoServicePlan en un gráfico de ticks, pero las cotizaciones en vivo aparecen en la interfaz del traderDatos de la plataforma activos, sin autorización de datos en tiempo real de la APIConfigure el registro de subproveedor de la CME y pida a Tradovate que incluya la cuenta en la lista blanca
NoServicePlan en todos los símbolos a través de la APINingún plan de API en tiempo real asociado a la sesiónComplete la autorización de datos de mercado de la API y vuelva a autenticarse
Solo ocurre en una cuenta prop/de evaluaciónDatos controlados por el proveedor de la cuentaPida a la empresa prop que habilite los datos de mercado para esa cuenta
Funcionaba ayer, falla hoyAutorización desincronizada o caducada tras facturación/renovaciónVuelva a autenticarse; si persiste, pida al soporte que concilie el plan
Falla solo con unidades de ticks, los gráficos de minutos carganLos gráficos de ticks requieren un feed en vivo que los datos retrasados no pueden ofrecerCambie a un intervalo de tiempo o active los datos en tiempo real
En realidad no necesita datos de la API en tiempo realEstá pagando por un plan que no va a utilizarEjecute una automatización de solo órdenes o utilice una fuente de datos externa

Dónde encaja PickMyTrade

La mayoría de las personas que se topan con NoServicePlan en realidad no quieren gestionar un flujo de datos de mercado sin procesar a través de la API de Tradovate, quieren que su estrategia se ejecute en Tradovate. PickMyTrade le permite hacer exactamente eso sin tocar en absoluto el feed de subproveedor de la CME:

  • Señales en TradingView, ejecución en Tradovate, sus gráficos y su lógica de ticks residen en TradingView, por lo que nunca tiene que obtener datos en tiempo real a través de la API de Tradovate para operar.
  • Enrutamiento solo de órdenes, PickMyTrade envía órdenes y gestiona posiciones, evitando por completo la autorización de datos de mercado de la API en tiempo real que desencadena NoServicePlan.
  • Autenticación gestionada, los tokens y las sesiones se mantienen actualizados, de modo que un inicio de sesión caducado nunca se hace pasar por un problema de autorización.
  • Sincronización multicuenta, replique la misma alerta en cada cuenta conectada en una sola pasada, sin necesidad de un plan de datos por cuenta.

No necesita el feed de datos de la CME

Comience su prueba gratuita de 5 días y automatice Tradovate a partir de sus alertas de TradingView, sin necesidad del feed de datos de la CME.

Comience su prueba gratuita de 5 días

Preguntas frecuentes

Significa que el plan de datos de mercado asociado a su sesión de la API no incluye el feed en tiempo real que necesita un gráfico basado en ticks. El mensaje completo es: 'A real-time market data subscription is required for tick-base charts.' El servidor no detecta ninguna autorización que reconozca como cobertura de datos de la API en tiempo real, por lo que rechaza la solicitud.

Porque los datos de mercado de la plataforma y los datos de mercado en tiempo real de la API son dos autorizaciones distintas. La suscripción que acepta dentro del trader de Tradovate le permite ver cotizaciones en vivo en el frontend. La transmisión de datos en tiempo real a través del WebSocket de la API se rige por separado, mediante un acuerdo de subproveedor con la CME y una lista blanca del lado del servidor. Comprar una no otorga automáticamente la otra.

Sí. Un gráfico de ticks representa cada operación (o un número fijo de operaciones por barra), por lo que necesita consumir el flujo de operaciones en vivo. Los datos retrasados no pueden construir un gráfico de ticks en vivo, por lo que NoServicePlan se dirige específicamente a los gráficos basados en ticks, mientras que un gráfico basado en tiempo con datos retrasados puede cargar sin el mismo bloqueo.

Regístrese en la CME como subproveedor bajo su acuerdo de licencia y luego notifique a Tradovate para que incluyan su cuenta en la lista blanca para datos de mercado de la API. Existe una tarifa mensual de la bolsa, que se paga a la CME y no a Tradovate. El importe exacto varía según la bolsa y el tipo de licencia y cambia con el tiempo, así que confirme la cifra actual con la CME y con Tradovate antes de comprometerse.

Su empresa prop o de evaluación. En esas cuentas, las autorizaciones de datos las controla el proveedor aguas arriba, no usted, por lo que no puede conciliar el plan dentro de Tradovate por su cuenta. Contacte con el soporte de la empresa y pídales que habiliten los datos de mercado (y el acceso a la API, si lo permiten) para su cuenta específica.

A menudo, sí. Si no necesita estrictamente el feed de la API en tiempo real de Tradovate, puede ejecutar una automatización de solo órdenes, colocar órdenes, consultar la cuenta y enrutar alertas de TradingView, sin registrarse como subproveedor. También puede obtener datos de un proveedor externo o utilizar datos retrasados gratuitos, manteniendo su ejecución en Tradovate.

Puede hacerlo, si su flujo de trabajo no depende de los ticks. Los gráficos basados en tiempo (minuto, hora, día) pueden construirse con datos retrasados o estándar en más contextos, por lo que solicitar un intervalo de tiempo en lugar de un intervalo de ticks puede evitar el bloqueo específico de ticks. Es una solución alternativa, no una corrección de la brecha de autorización subyacente.

Las autorizaciones pueden desincronizarse en el servidor tras un ciclo de facturación, un cambio de plan, un acuerdo caducado o una modificación de la cuenta por parte del soporte. Vuelva a autenticarse primero para descartar una sesión caducada. Si las solicitudes de ticks siguen devolviendo NoServicePlan en todos los símbolos, es necesario conciliar el propio plan, contacte con el soporte.

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 a Tradovate, Inc., ni cuenta con su respaldo o patrocinio. 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, así que confirme siempre el proceso actual en la plataforma y la documentación oficiales de Tradovate antes de actuar.