TÉMOIGNAGE : « Comment écrire un algorithme de trading systématique »
Le trading systématique est une partie importante et croissante du marché. Les architectes de ces stratégies de trading ont des backgrounds variés : des codeurs n'ayant jamais tradé, des traders ne sachant pas coder et de brillants data scientists incapables de coder ou trader car enfermés dans leur tour d'ivoire.
En conséquence, des erreurs fondamentales sont régulièrement commises. Voici quelques règles pour vous éviter les ennuis :
1. Soyez attentif la structure du marché
La théorie financière est très élégante, mais le marché n’est pas aussi bien ordonné en réalité. Les mouvements de marché ne suivent pas de belles distributions statistiques théoriques. Le prix auquel les intervenants vendent ou achètent des actifs (Bid ask spreads) peut varier rapidement en dehors des normes attendues et la liquidité disparaître en un instant.
Les coûts d'emprunt peuvent être réduits à l'extrême et certaines actions pourraient ne pas être empruntables du tout en raison de pénuries ou de problèmes de réglementation. De nombreux algo designers ont eu du mal à accepter des détails prosaïques tels que les conventions de comptage journalier ou les pricing non décimaux sur le marché du Trésor US. Faites votre recherche avant de concevoir votre système.
2. Réfléchissez bien aux coûts de l'impact du marché
Dans un environnement de simulation épuré, les mouvements de cours ne sont pas affectés par votre trading. En réalité, une fois que votre algo sera mis en service, le trading fera bouger les prix et augmentera vos coûts de trading. Cela est particulièrement problématique si vous tradez rapidement, beaucoup, ou sur des marchés non liquides.
Une tactique prudente peut réduire votre impact sur le marché, mais il ne sera jamais nul. Des estimations réalistes sont essentielles pour décider si votre alpha survivra après avoir payé la réduction de ses coûts de transaction.
3. Le temps presse
Albert Einstein a dit des choses intéressantes sur le temps. Les astronautes qui se déplacent à grande vitesse dans l'espace verront le temps passer plus lentement. Le temps peut aussi se comporter de manière inhabituelle sur les marchés financiers. Les ticks peuvent arriver sur votre serveur de trading dans le mauvais ordre ou avec des horodatages incorrects. Il est difficile d’obtenir des prix synchronisés sur plusieurs marchés si vous mettez en œuvre un système de valeur relative. La gestion de la multitude de changements d'heure d'été est un casse-tête opérationnel. Votre code et vos process doivent être en mesure de résoudre ces problèmes.
La latence est également un facteur à prendre en compte : les retards pris dans la réception, la data, le traitement , l'envoi des ordres et la récupération des données. Les stratégies de trading à haute fréquence mourront si leur latence est trop élevée. Vous devrez débourser beaucoup d’argent pour participer à la course aux armements de la latence : localisez votre client de trading près de la bourse et utilisez du matériel optimisé hautes performances. Même les algos les plus lents ont besoin d’une estimation réaliste de leur temps de latence probable pour ne pas avoir d’attentes irréalistes en matière de performance.
4. Attention aux mauvaises données
Les algos systématiques sont conçus pour fonctionner automatiquement. Cela signifie qu’ils devraient être en mesure de gérer tout type de cas particuliers : données d’entrée inattendues ou mauvaises. Il n’est pas rare qu’un flux de données brutes produise des prix multipliés par 100 ou un zéro à la place d’un prix valide.
Il est plus difficile de détecter les variations de prix importantes qui pourraient être réelles - un autre flash krach - ou qui pourraient être fausses. Si vous tradez suffisamment lentement, des données potentiellement mauvaises peuvent être signalées pour vérification manuelle. Les algos plus rapides doivent décider d'accepter ou non des données de mauvaise qualité; ou l'ignorer et attendre dans l'espoir que le marché se normalise.
5. Surveillez votre stratégie
Le fait que les algos fonctionnent automatiquement ne signifie pas que vous ne pouvez pas les surveiller - et vous devriez le faire. Cela implique en partie de résoudre ce qui a déjà mal tourné, mais vous aurez également besoin d’outils pour identifier les problèmes potentiels avant qu’ils ne se produisent. Votre système doit générer des rapports réguliers pour vous mettre à jour : calculs, transactions, bénéfices, diagnostics de risques et de systèmes. Les fichiers de connexion simples
font l'affaire mais les systèmes volumineux ou complexes doivent vider régulièrement les données de diagnostic dans des databases pour interrogation ou surveillance en direct.
Le système devrait déclencher des alertes lorsque les choses tournent vraiment mal. Être réveillé à 2h du matin avec un SMS de votre algo trading n’est pas très amusant, mais c’est préférable que de perdre votre chemise lorsque votre algo explose !
Robert Carver est un ancien responsable fixed income pour le hedge fund quantitatif AHL et l'auteur de «Systematic Trading» et de «Smart Portfolios». Il conçoit maintenant des stratégies de trading pour son propre compte.
Vous avez un scoop, une anecdote, un conseil ou un commentaire que vous aimeriez partager ? Contact : tiochem@efinancialcareers.com