Erreur API Tradovate « NoServicePlan » sur le graphique en ticks
Vous avez payé le module API et souscrit aux données de marché, et votre bot n'arrive toujours pas à récupérer un graphique en ticks. Les données de la plateforme et les données API en temps réel sont deux droits d'accès distincts, et NoServicePlan signifie que le serveur ne reconnaît pas le second.
Vous avez payé le module API, vous vous êtes abonné aux données de marché dans Tradovate, et votre bot n'arrive toujours pas à récupérer un graphique en ticks. Au lieu d'un flux de données, vous obtenez un refus catégorique : A real-time market data subscription is required for tick-base charts, code d'erreur NoServicePlan. C'est d'autant plus exaspérant que vous avez bel et bien acheté quelque chose. Le piège, c'est que Tradovate considère les données de marché de la plateforme et les données de marché en temps réel de l'API comme deux droits d'accès distincts, et NoServicePlan signifie que le serveur constate que le plan associé à votre session API ne couvre pas ce dont un graphique en ticks a besoin. Ce problème se résout rarement en modifiant votre code, mais en faisant correspondre ce que vous possédez réellement avec ce que le serveur reconnaît. Voici le détail complet.
Liste de contrôle rapide pour « NoServicePlan »
- Données de la plateforme ≠ données de l'API, l'abonnement que vous acceptez dans le trader Tradovate n'est pas le même droit d'accès que celui qui autorise le streaming en temps réel via le WebSocket de l'API.
- Les graphiques en ticks exigent un flux en direct, un graphique basé sur les ticks est construit à partir de transactions individuelles et ne peut donc pas fonctionner avec des données différées. C'est pourquoi le blocage est spécifique aux ticks.
- Les données API en temps réel sont soumises à la CME, la diffusion de données de marché en direct via l'API nécessite un accord de sous-fournisseur avec la CME et une liste blanche côté serveur sur votre compte.
- Les comptes prop/d'évaluation sont contrôlés en amont, vous ne pouvez pas réconcilier le plan vous-même ; c'est à la société de l'activer.
- Les droits d'accès se désynchronisent, un plan qui fonctionnait peut se désynchroniser après une facturation, un renouvellement ou une modification par le support. Réauthentifiez-vous, puis contactez le support pour réconcilier la situation.
- Une solution de contournement existe, demandez un graphique basé sur le temps plutôt que sur les ticks, ou exécutez une automatisation limitée aux ordres et passez-vous entièrement du flux API en temps réel.
Ce que signifie « NoServicePlan »
En lisant le message au pied de la lettre, il prend tout son sens : a real-time market data subscription is required for tick-base charts. Le code NoServicePlan est la version machine de « le plan de service de cette session ne comprend pas ce que vous demandez ». Votre requête WebSocket était correctement formée et a bien atteint le serveur, rien ne cloche dans votre JSON ni dans votre jeton. Le serveur a simplement vérifié le droit d'accès aux données de marché associé à votre connexion API, n'a trouvé aucun plan en temps réel couvrant les données de ticks, et a rejeté la requête.
Ce qui rend cela si déroutant, c'est que les utilisateurs ont réellement payé. Ils ont acheté le module complémentaire API Access. Ils ont accepté un accord de données de marché dans l'interface Tradovate et voient des cotations en direct sur la plateforme web. Alors quand l'API refuse un graphique en ticks, cela ressemble à un bug. Ce n'en est pas un. Ces deux éléments suivent des voies différentes, et NoServicePlan se trouve dans la voie que vous n'avez probablement pas encore configurée.
Pourquoi les graphiques en ticks sont particulièrement visés
Un graphique en ticks ne se mesure pas en temps, mais en transactions. Chaque barre se ferme après un nombre défini de ticks (transactions individuelles), le graphique doit donc consommer le flux de transactions en direct pour afficher quoi que ce soit d'actuel. Des données différées ou instantanées ne peuvent pas alimenter un graphique en ticks en direct. C'est pourquoi NoServicePlan cible nommément les graphiques en ticks : un graphique en minutes peut tolérer des données différées dans certains contextes, mais un graphique en ticks en temps réel n'a aucune solution de repli. Pas de flux en direct, pas de graphique en ticks.
Principales causes de « NoServicePlan »
1. Confusion entre les données de marché de la plateforme et celles de l'API
C'est la cause numéro un. L'abonnement aux données de marché que vous acceptez dans le trader Tradovate donne droit à la plateforme, les applications web et de bureau, d'afficher des cotations en direct. Il ne donne pas automatiquement droit au flux WebSocket de l'API. Ces deux éléments sont facturés et sous licence séparément. Si vous vous êtes contenté de vous abonner aux données dans l'interface du trader, votre session API n'a toujours aucun plan en temps réel associé, et chaque requête de ticks renvoie NoServicePlan.
2. Absence d'enregistrement en tant que sous-fournisseur CME / liste blanche
La diffusion de données de marché en temps réel via l'API est conditionnée à un accord avec la CME. Tradovate enregistre les utilisateurs de l'API en tant que sous-fournisseurs sous la licence de la bourse, et tant que cela n'est pas en place, et que votre compte n'est pas inscrit sur liste blanche côté Tradovate, le serveur n'a aucun plan API en temps réel à vous attribuer. Cela implique des frais de bourse mensuels versés à la CME, et non à Tradovate. Tout montant précis trouvé dans un ancien message est probablement obsolète ; le montant dépend de la bourse et de votre type de licence (non professionnel ou professionnel / non-display) et il évolue, confirmez donc le tarif actuel directement auprès de la CME et de Tradovate.

3. Un compte prop ou d'évaluation que vous ne contrôlez pas
Si votre connexion est liée à une société prop ou à un service d'évaluation, les droits d'accès aux données appartiennent à ce fournisseur, pas à vous. Vous ne pouvez pas accepter un accord de données ni réconcilier un plan sur leur compte depuis Tradovate, les contrôles sont gérés en amont. Une session API sur un compte d'évaluation continuera de renvoyer NoServicePlan sur les requêtes de ticks tant que la société n'active pas les données en temps réel pour ce compte. C'est le support de la société qu'il faut contacter, pas celui de Tradovate.
4. Un droit d'accès désynchronisé ou expiré
Il arrive que le plan ait été correctement configuré, puis désynchronisé par la suite. Un cycle de facturation se renouvelle, un changement de plan est appliqué, un accord expire, ou une modification de compte côté support ne se propage pas correctement, et soudain une session qui diffusait des données de ticks hier renvoie NoServicePlan aujourd'hui. C'est exactement la situation où « l'API ne reconnaît pas la correspondance » : vos informations indiquent que vous avez le droit, celles du serveur non. Une réauthentification règle la version simple (une session périmée) ; la version tenace nécessite l'intervention du support pour réconcilier le compte.
5. Demander des ticks sans le vouloir
Une vérification rapide s'impose : confirmez que votre requête de graphique demande réellement un élément basé sur les ticks et que vous en avez besoin. Certaines bibliothèques et wrappers configurent par défaut une requête de graphique sur une unité de ticks. Si votre stratégie fonctionne sur des barres en minutes ou en secondes, vous déclenchez peut-être sans le savoir l'exigence de droit d'accès la plus stricte ; passer la requête à un intervalle de temps peut discrètement faire disparaître l'erreur.
Comment résoudre « NoServicePlan » : étape par étape
Vérifiez le droit d'accès dont vous disposez réellement
Connectez-vous à la plateforme web ou de bureau Tradovate avec le même compte que celui utilisé par votre clé API pour s'authentifier. Ouvrez Application Settings et rendez-vous dans la section données de marché / abonnements. Notez ce qui est actif. Voir des cotations en direct dans le trader indique que le droit d'accès à la plateforme est actif, cela ne confirme pas un plan API en temps réel. Posez-vous la question clé : avez-vous terminé un enregistrement en tant que sous-fournisseur CME et été inscrit sur liste blanche pour les données de marché de l'API ? Si ce n'est pas le cas, c'est là votre manque, et aucune modification de code ne le comblera.
Configurez les données API en temps réel (si vous avez vraiment besoin des ticks)
Contactez la CME pour vous enregistrer en tant que sous-fournisseur dans le cadre de leur accord de licence pour les données futures en temps réel. Prévoyez les frais de bourse mensuels, versés à la CME, dont le montant actuel varie selon la bourse et le type de licence, vérifiez-le donc avant de vous engager. Informez le support Tradovate que vous vous êtes enregistré, et demandez-lui d'inscrire votre compte sur liste blanche pour les données de marché de l'API. Une fois la liste blanche confirmée, réauthentifiez-vous et renvoyez votre requête de graphique en ticks / md/subscribeQuote. Le plan devrait alors se résoudre.
Réconciliez un droit d'accès désynchronisé avec le support
Écartez d'abord l'hypothèse d'une session périmée : supprimez votre jeton d'accès mis en cache, relancez le processus d'authentification, reconnectez le WebSocket de données de marché, puis réessayez. Si les requêtes de ticks continuent de renvoyer NoServicePlan sur tous les symboles, c'est le plan lui-même qui est désynchronisé. Ce n'est pas quelque chose que vous pouvez forcer depuis le client. Ouvrez un ticket auprès du support Tradovate. Indiquez clairement ce que vous avez acheté (API Access, tout abonnement de données, enregistrement en tant que sous-fournisseur) et joignez l'erreur exacte, y compris le code NoServicePlan et le message relatif aux ticks. Demandez-leur de vérifier que le plan de données de marché en temps réel est actif et correctement associé à votre compte API, et de réappliquer la liste blanche si elle a expiré. Sur un compte prop/d'évaluation, adressez plutôt cette demande à la société.
Ou contournez complètement le problème
Si vous n'avez pas besoin des ticks, remplacez votre requête de graphique d'une unité de ticks par un intervalle de temps (minute/seconde). Cela lève souvent directement le blocage spécifique aux ticks. Si vous n'avez pas du tout besoin du flux en temps réel de Tradovate, exécutez une automatisation uniquement pour les ordres : passez des ordres, gérez les positions et interrogez le compte sans plan de données en temps réel. Récupérez vos données en direct auprès d'un fournisseur tiers de données de marché ou utilisez des données différées gratuites pour les signaux, tout en gardant l'exécution sur Tradovate.


Tableau de dépannage
| Symptôme | Cause probable | Que faire |
|---|---|---|
| NoServicePlan sur un graphique en ticks, mais les cotations en direct s'affichent dans l'interface du trader | Données de la plateforme actives, données API en temps réel non autorisées | Effectuez l'enregistrement en tant que sous-fournisseur CME et demandez à Tradovate d'inscrire le compte sur liste blanche |
| NoServicePlan sur tous les symboles via l'API | Aucun plan API en temps réel associé à la session | Complétez le droit d'accès aux données de marché de l'API, puis réauthentifiez-vous |
| Ne se produit que sur un compte prop/d'évaluation | Données contrôlées par le fournisseur du compte | Demandez à la société prop d'activer les données de marché pour ce compte |
| Fonctionnait hier, échoue aujourd'hui | Droit d'accès désynchronisé ou expiré après facturation/renouvellement | Réauthentifiez-vous ; si le problème persiste, faites réconcilier le plan par le support |
| Échoue uniquement avec les unités de ticks, les graphiques en minutes se chargent | Les graphiques en ticks nécessitent un flux en direct que des données différées ne peuvent pas fournir | Passez à un intervalle de temps ou activez les données en temps réel |
| Vous n'avez pas réellement besoin de données API en temps réel | Vous payez pour un plan que vous n'utiliserez pas | Exécutez une automatisation uniquement pour les ordres ou utilisez une source de données tierce |
Où PickMyTrade intervient
La plupart des personnes qui rencontrent NoServicePlan ne cherchent pas réellement à exploiter un flux brut de données de marché via l'API Tradovate, elles veulent que leur stratégie s'exécute sur Tradovate. PickMyTrade vous permet de faire exactement cela sans jamais toucher au flux de sous-fournisseur CME :
- Signaux sur TradingView, exécution sur Tradovate, vos graphiques et votre logique de ticks résident dans TradingView, vous n'avez donc jamais besoin de récupérer des données en temps réel via l'API Tradovate pour trader.
- Acheminement uniquement des ordres, PickMyTrade envoie les ordres et gère les positions, en évitant entièrement le droit d'accès aux données de marché API en temps réel qui déclenche NoServicePlan.
- Authentification gérée, les jetons et les sessions restent à jour, de sorte qu'une connexion périmée ne se fait jamais passer pour un problème de droit d'accès.
- Synchronisation multi-comptes, reproduisez la même alerte sur tous les comptes connectés en une seule passe, sans qu'un plan de données par compte soit nécessaire.
Aucun flux de données CME nécessaire
Démarrez votre essai gratuit de 5 jours et automatisez Tradovate à partir de vos alertes TradingView, sans avoir besoin du flux de données CME.
Démarrez votre essai gratuit de 5 joursQuestions fréquentes
Cela signifie que le plan de données de marché associé à votre session API ne comprend pas le flux en temps réel dont a besoin un graphique basé sur les ticks. Le message complet est : 'A real-time market data subscription is required for tick-base charts.' Le serveur ne détecte aucun droit d'accès qu'il reconnaît comme couvrant les données API en temps réel, il rejette donc la requête.
Parce que les données de marché de la plateforme et les données de marché en temps réel de l'API sont deux droits d'accès distincts. L'abonnement que vous acceptez dans le trader Tradovate vous permet de voir des cotations en direct dans l'interface. La diffusion de données en temps réel via le WebSocket de l'API est régie séparément, par un accord de sous-fournisseur CME et une liste blanche côté serveur. Acheter l'un n'accorde pas automatiquement l'autre.
Oui. Un graphique en ticks trace chaque transaction (ou un nombre fixe de transactions par barre), il doit donc consommer le flux de transactions en direct. Des données différées ne peuvent pas construire un graphique en ticks en direct, c'est pourquoi NoServicePlan cible spécifiquement les graphiques basés sur les ticks, tandis qu'un graphique basé sur le temps avec des données différées peut se charger sans ce même blocage.
Enregistrez-vous auprès de la CME en tant que sous-fournisseur dans le cadre de leur accord de licence, puis informez-en Tradovate afin qu'ils inscrivent votre compte sur liste blanche pour les données de marché de l'API. Des frais de bourse mensuels s'appliquent, versés à la CME plutôt qu'à Tradovate. Le montant exact varie selon la bourse et le type de licence et évolue dans le temps, confirmez donc le montant actuel auprès de la CME et de Tradovate avant de vous engager.
Votre société prop ou d'évaluation. Sur ces comptes, les droits d'accès aux données sont contrôlés en amont par le fournisseur, pas par vous, vous ne pouvez donc pas réconcilier le plan vous-même dans Tradovate. Contactez le support de la société et demandez-lui d'activer les données de marché (et l'accès API, s'il est autorisé) pour votre compte spécifique.
Souvent, oui. Si vous n'avez pas strictement besoin du flux API en temps réel de Tradovate, vous pouvez exécuter une automatisation uniquement pour les ordres, passer des ordres, interroger le compte et acheminer des alertes TradingView, sans vous enregistrer en tant que sous-fournisseur. Vous pouvez également récupérer des données auprès d'un fournisseur tiers ou utiliser des données différées gratuites, tout en gardant votre exécution sur Tradovate.
C'est possible, si votre flux de travail ne dépend pas des ticks. Les graphiques basés sur le temps (minute, heure, jour) peuvent être construits à partir de données différées ou standard dans davantage de contextes, de sorte que demander un intervalle de temps plutôt qu'un intervalle de ticks peut contourner le blocage spécifique aux ticks. C'est une solution de contournement, pas une correction du manque de droit d'accès sous-jacent.
Les droits d'accès peuvent se désynchroniser sur le serveur après un cycle de facturation, un changement de plan, un accord expiré ou une modification de compte côté support. Réauthentifiez-vous d'abord pour écarter une session périmée. Si les requêtes de ticks continuent de renvoyer NoServicePlan sur tous les symboles, le plan lui-même doit être réconcilié, contactez le support.
Ce guide est fourni à des fins éducatives et informatives uniquement et ne constitue pas un conseil financier, d'investissement ou de trading. Le trading de contrats à terme et d'autres produits à effet de levier comporte un risque de perte substantiel et ne convient pas à tous les investisseurs. PickMyTrade est une plateforme d'automatisation indépendante tierce et n'est ni affiliée à Tradovate, Inc., ni approuvée ou parrainée par cette dernière. Tous les noms, logos et marques associés sont la propriété de leurs détenteurs respectifs. Les fonctionnalités et les étapes de la plateforme évoluent avec le temps, confirmez donc toujours le processus actuel dans la plateforme et la documentation officielles de Tradovate avant d'agir.