Écrire un algorithme de négociation est la partie passionnante. En faire tourner dix de façon fiable, jour après jour, est la partie difficile. La plupart des problèmes que rencontrent les équipes de négociation ne viennent pas des stratégies elles-mêmes, mais de l’infrastructure qu’elles partagent.
Le problème du partage
Lorsque plusieurs stratégies tournent dans le même processus ou sur une infrastructure partagée non maîtrisée, elles s’influencent. Une stratégie qui consomme trop de ressources, plante ou inonde le système de messages peut ralentir ou arrêter les autres. Identifier la stratégie en cause devient difficile.
Un conteneur par stratégie
EXO, la plateforme de trading algorithmique d’OTS, exécute chaque stratégie dans son propre conteneur. Le conteneur isole la stratégie : un problème ne se propage pas aux autres, et chacune peut être démarrée, arrêtée et supervisée indépendamment.
Des canaux dédiés
L’isolement n’a de sens que si chaque stratégie reçoit l’information dont elle a besoin. Dans EXO, des canaux de messages transportent données de marché, demandes d’ordres et données de transactions, avec une file distincte par algorithme. Chaque stratégie voit son propre flux et n’entre pas en concurrence avec les autres pour les mêmes messages.
Données en ligne et historiques ensemble
Les stratégies ont souvent besoin de ce qui se passe maintenant et de ce qui s’est passé avant. EXO adosse chaque stratégie à des bases de données de marché en ligne et historiques, alimentées par des flux REST et sockets.
Un cœur lisible
Au centre, le cœur d’EXO gère les données de marché, les ordres via REST et les connexions temps réel par sockets. Dans l’environnement d’exécution des conteneurs, des routeurs acheminent données de marché et transactions vers la bonne destination, et la gestion de l’état suit chaque stratégie.
Écrire un algorithme est la partie passionnante. En faire tourner dix de façon fiable est la partie difficile.
Les questions à poser à toute plateforme algorithmique
- Qu’arrive-t-il aux autres stratégies quand l’une d’elles tombe en panne ?
- Chaque stratégie dispose-t-elle de ses propres canaux de données de marché et de transactions ?
- Les stratégies peuvent-elles utiliser des données historiques en plus des données en ligne ?
- Comment les ordres sont-ils envoyés et acheminés ?
- Chaque stratégie peut-elle être supervisée et contrôlée séparément ?
