AlgoVesta › Glossaire › Logique de réessai

Exécution des ordres

Logique de réessai

La logique de nouvelle tentative est l'ensemble des règles qui décident si une requête échouée vers un exchange ou un courtier doit être renvoyée, combien de fois, après combien de temps, et surtout, quelles requêtes ne doivent jamais être répétées parce que les répéter pourrait placer un second ordre.

Pourquoi c'est important

Les réseaux et les places d'exécution échouent de manières qui se ressemblent de l'extérieur : un délai d'attente dépassé peut signifier que l'ordre n'est jamais arrivé, ou qu'il a été accepté et que la confirmation a été perdue. Retenter une lecture (solde, positions, statut d'ordre) est sans danger ; retenter un placement d'ordre après un échec ambigu peut doubler la position, ce qui est un résultat pire que de manquer un trade. Les nouvelles tentatives interagissent aussi avec les limites de requêtes : une rafale de tentatives pendant un incident sur une place d'exécution peut faire bannir temporairement une IP ou une clé, entraînant avec elle tous les autres comptes de ce serveur.

Comment AlgoVesta le gère

AlgoVesta distingue les lectures des écritures. Les requêtes de lecture, comme la récupération des positions, sont retentées une fois après une courte attente ; les placements d'ordre ne sont pas retentés aveuglément après un délai d'attente, car une confirmation perdue n'est pas la preuve que l'ordre a été perdu. La plateforme rapproche plutôt les données de la place d'exécution : les positions et l'historique des transactions de l'exchange sont vérifiés, et un ordre qui s'avère avoir été placé est enregistré plutôt que dupliqué. Une protection anti-doublon rejette un second signal identique pour le même compte, symbole et direction dans une courte fenêtre, afin qu'un fournisseur republiant un message n'ouvre pas deux positions. Lorsqu'une place d'exécution renvoie une réponse de limite de requêtes ou de blocage, la clé ou le serveur concerné se met en retrait au lieu de la marteler, et la condition est affichée dans le tableau de bord. Les ordres de protection dont la création échoue sont retentés et vérifiés, et sur les comptes forex, une position dont le stop ne peut être confirmé est refermée par conception. Voir idempotence et limite de requêtes (rate limit) de l'exchange.

Exemple

Un ordre d'achat de 0,05 BTC dépasse le délai d'attente au bout de 10 secondes sans réponse. AlgoVesta ne le renvoie pas. Il interroge les positions ouvertes et les exécutions récentes du compte, trouve une nouvelle position longue de 0,05 BTC correspondant à l'ordre, l'enregistre avec le prix d'exécution de l'exchange, et y place le stop et l'objectif. Si la requête n'avait rien trouvé, le signal aurait été marqué comme échoué avec la raison du délai d'attente, et le trader aurait pu le renvoyer délibérément.

Erreurs fréquentes

En pratique

Découvrez comment AlgoVesta automatise cela