Exécution des ordres
Une limite de requêtes (rate limit) de l'exchange est le nombre maximal de requêtes API, ou le poids maximal de requêtes, qu'un exchange accepte d'une adresse IP ou d'une clé API donnée dans une fenêtre de temps donnée ; la dépasser renvoie des erreurs et, si cela continue, un blocage (ban) temporaire de l'IP ou de la clé.
L'automatisation effectue beaucoup plus de requêtes qu'un humain : régler le levier, placer l'entrée, créer les ordres de protection, interroger les positions et vérifier les exécutions pour chaque signal sur chaque compte. Les limites sont partagées entre tout ce qui utilise la même IP ou la même clé, une boucle mal comportée peut donc bloquer les ordres de tous les autres comptes sur le même serveur. Un blocage pendant un marché rapide est le pire cas de figure : les positions ne peuvent pas être ouvertes, et les stops qui n'existent qu'en logiciel ne peuvent pas être déplacés. Les limites diffèrent également entre exchanges et entre points d'accès, une plateforme doit donc les budgétiser plutôt que les découvrir en les heurtant.
AlgoVesta maintient un nombre d'appels fixe et réduit par ordre, et lit les données de marché depuis des flux publics partagés plutôt que d'interroger l'exchange une fois par compte. Les budgets de requêtes sont suivis par exchange et par clé, et lorsqu'une place d'exécution répond par une limite de requêtes ou un blocage, la clé ou le serveur concerné se met en retrait au lieu de retenter immédiatement ; la condition est enregistrée et signalée dans le tableau de bord. Les blocages rapportés par un testnet partagé sont conservés séparément des blocages sur le marché réel, afin qu'un environnement de test ne puisse pas retirer des serveurs d'exécution réels de la rotation. Les stops et objectifs sont placés comme des ordres en attente sur la place d'exécution, de sorte qu'une limite temporaire ne laisse pas une position sans protection. Les données historiques et autres lectures lourdes s'exécutent depuis des machines séparées afin de ne pas consommer le budget des serveurs d'exécution. Voir logique de nouvelle tentative et la page Exchanges pris en charge.
Pendant un pic de marché, un canal de signaux déclenche huit signaux en une minute pour un compte. Chacun s'exécute avec son jeu fixe d'appels, bien à l'intérieur du budget par minute de l'exchange ; les positions sont ouvertes avec leurs stops en attente sur l'exchange. Si l'exchange avait renvoyé une erreur de limite de requêtes en cours de route, les signaux restants auraient été enregistrés comme bloqués avec cette raison, et la clé se serait mise en pause avant la tentative suivante au lieu de déclencher un blocage plus long.