Tradovate API

Limites de débit de l'API Tradovate et erreurs 429

Automatisez Tradovate assez longtemps et vous rencontrerez le 429. Voici où se situent les véritables plafonds de requêtes, ce qui se passe lorsque vous les dépassez et comment brider votre bot pour rester en dessous.

On This Page

Automatisez Tradovate assez longtemps et vous rencontrerez le 429. Vous lancez une rafale d'appels API et, au lieu d'une exécution, vous recevez un 429 Too Many Requests. Ce n'est pas un bug : Tradovate plafonne la vitesse à laquelle un utilisateur peut solliciter son API, et dès que vous franchissez cette limite, les nouveaux appels sont rejetés jusqu'à ce que vous ralentissiez. Voici où se situe le plafond et comment rester en dessous.

Quelles sont les limites de débit de l'API Tradovate ?

Tradovate bride le trafic API par seconde, par minute et par heure. Les deux plafonds que vous ressentirez réellement :

Fenêtre de temps Plafond (glissant)
Par minuteEnviron 80 requêtes sur 60 secondes glissantes
Par heure5,000 requêtes sur 60 minutes glissantes

Ce sont des fenêtres glissantes, et non des réinitialisations à heure fixe. Si vous atteignez le plafond horaire à 2:15, il se libère vers 3:15 à mesure que vos plus anciennes requêtes sortent de la fenêtre. Tradovate peut aussi ajuster ces chiffres : considérez-les comme un plafond à ne pas atteindre, et non comme un quota à consommer. Il vous faudra d'abord des identifiants valides ; voici comment obtenir l'accès à l'API Tradovate et générer une clé.

Ce qui se passe quand vous recevez un 429

Si vous dépassez le plafond, Tradovate renvoie un 429 et gèle les nouvelles requêtes pendant environ 20 à 30 secondes. Cette pause est la partie dangereuse : tant qu'elle est active, vous ne pouvez ni passer, ni modifier, ni annuler d'ordres via l'API, une mauvaise situation avec une position ouverte. Si vous insistez, la réponse s'aggrave en pénalité de temps avec deux champs, p-time (secondes à attendre) et p-ticket (un jeton à renvoyer). Dans les cas tenaces, vous verrez aussi p-captcha, qui verrouille l'accès automatisé pendant environ une heure, et des inondations répétées peuvent valoir un blocage plus long que seul le support peut lever. Vous en saurez plus sur ces jetons dans le guide sur la pénalité de temps p-ticket / p-time.

Comment rester sous les limites de débit de Tradovate : pas à pas

1

Privilégiez les WebSockets plutôt que l'interrogation constante

Chaque appel REST (cotations, exécutions, vérifications de positions) consomme une requête. Si vous interrogez ces points d'accès avec une minuterie d'une seconde, vous épuiserez votre budget en quelques minutes. Ouvrez plutôt un WebSocket : abonnez-vous une fois et Tradovate vous envoie les mises à jour au fil de l'eau, ce qui vous évite de redemander des données que vous avez déjà. Cela seul réduit une grande part du volume de requêtes d'un bot actif.

2

Limitez et regroupez les appels que vous conservez

Pour les appels REST dont vous avez réellement besoin, placez un régulateur de débit en amont. Gardez votre débit sortant confortablement sous les 80 par minute (environ 40 à 50 est un rythme sûr) et mettez en file d'attente tout ce qui dépasse plutôt que de tout envoyer d'un coup. Regroupez les actions liées lorsque le point d'accès le permet.

3

Respectez la réponse p-ticket / p-time

Lorsque vous poussez trop fort, Tradovate vous indique comment récupérer. La réponse renvoie une valeur p-time (secondes à attendre) et un jeton p-ticket. Attendez les secondes de p-time, puis renvoyez exactement la même requête avec p-ticket ajouté au corps : conservez tous les champs d'origine et ajoutez simplement le ticket.

4

Temporisez après un 429 et évitez les tempêtes de reconnexion

Considérez un 429 comme une pédale de frein, et non comme une raison de réessayer plus fort. Ajoutez un backoff exponentiel : attendez, et si cela échoue de nouveau, doublez l'attente, et continuez à la doubler jusqu'à ce que les appels passent. Soyez tout aussi rigoureux avec les reconnexions : marteler les points d'accès d'authentification ou de connexion après une coupure est l'un des moyens les plus rapides de s'attirer une vraie pénalité. Reconnectez-vous une fois, patientez un instant, puis réessayez.

5

Bloqué ? Patientez ou demandez une réinitialisation

Si vous êtes déjà bloqué, la patience est la solution propre : la fenêtre glissante lève généralement le blocage environ une heure après votre dernier appel fautif. Vous ne pouvez pas attendre, par exemple parce que vous gérez une position ouverte ? Contactez le support Tradovate avec votre nom d'utilisateur et demandez la réinitialisation de vos limites de requêtes. Sur un compte prop ou d'évaluation, une partie de cela passe par votre firme, et les limites varient selon la firme et la taille du compte : vérifiez donc les règles actuelles de votre firme.

Automatisez tout cela avec PickMyTrade

Construire vous-même la limitation, le backoff et la gestion du p-ticket représente un vrai travail, facile à rater alors que vous essayez aussi de trader. PickMyTrade s'intercale entre vos alertes TradingView et Tradovate, en mettant en file d'attente et en cadençant les ordres pour qu'une rafale de signaux ne devienne jamais un blocage 429 : vous envoyez l'alerte, il gère le budget de requêtes. Vous préférez éviter le travail brut sur l'API ? Vous pouvez automatiser Tradovate directement depuis les webhooks TradingView.

Automatisez votre exécution sur Tradovate

Oubliez le code de limitation et de temporisation. Laissez PickMyTrade mettre en file d'attente et cadencer vos ordres afin qu'une rafale de signaux ne déclenche jamais un 429.

Commencez votre essai gratuit de 7 jours

Questions fréquentes

Tradovate limite les requêtes API par seconde, par minute et par heure ; en pratique, environ 80 par minute et 5,000 par heure sur des fenêtres glissantes. Vérifiez les chiffres actuels dans la documentation officielle de l'API Tradovate avant de vous y fier.

Ralentissez. Attendez que le blocage disparaisse, généralement 20 à 30 secondes pour une première infraction et jusqu'à une heure pour une pénalité plus longue, puis reprenez avec un débit de requêtes plus faible. Si la réponse contient p-time et p-ticket, attendez les secondes indiquées par p-time et renvoyez la requête avec le p-ticket joint. En cas de blocage dur, demandez au support Tradovate de réinitialiser vos limites de requêtes.

Ce guide est fourni à des fins exclusivement éducatives et informatives 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 important et ne convient pas à tous les investisseurs. PickMyTrade est une plateforme d'automatisation tierce indépendante et n'est ni affiliée à Tradovate, Inc., ni approuvée ou parrainée par cette dernière. « Tradovate » ainsi que 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 ; vérifiez donc toujours la procédure en vigueur dans la plateforme et la documentation officielles de Tradovate avant d'agir.