Quelle maîtrise de Python pour un poste en trading ?

eFC logo
Quelle maîtrise de Python pour un poste en trading ?

Être trader aujourd’hui nécessite un large éventail de compétences. Si savoir compter, rester zen sous la pression, et avoir une excellente mémoire restent bien sûr d’actualité, ce n’est plus suffisant… De plus en plus souvent, il faut aussi savoir coder.

J’ai déjà expliqué ici pourquoi Python est un bon langage polyvalent pour les traders. Il est très courant pour le backtesting des stratégies de trading et pour la gestion du risque. Associé au matériel informatique actuel, il est suffisamment puissant pour fixer les prix des dérivés sur mesure. S’il manque de rapidité pour le trading haute fréquence, il peut toutefois être utilisé pour des stratégies de trading systématique ne requérant pas de faible latence, ou pour les activités de tenue de marché sur des marchés moins liquides. Il peut aussi être utilisé pour analyser et améliorer le comportement des algorithmes haute fréquence.

Mais la plupart des traders n’ont pas de formation en informatique et n’ont aucune envie de passer des années à devenir experts en programmation. Ils veulent juste maîtriser le strict minimum pour travailler correctement. Les livres et cours gratuits en ligne sur Python sont légion, mais il n’est sans doute pas indispensable de suivre un cours complet. Mieux vaut donc être sélectif.

D’abord, téléchargez votre distribution Python (si elle n’est pas déjà installée sur votre ordinateur). Assurez-vous d’avoir la dernière version à jour – idéalement 3.8 et au moins 3.0 car les versions antérieures sont très différentes.

Ensuite, procurez-vous un ‘Environnement de Développement Intégré (IDE en anglais)’, essentiellement un éditeur de texte conçu pour l’écriture de code. Il est possible de coder avec n’importe quel éditeur, même Notepad ou TextEdit, mais un bon IDE vous permettra de tester et déboguer rapidement le code sans quitter l’environnement d’édition, et pourra même trouver les erreurs à mesure que vous tapez. Les IDE les plus populaires sont Eclipse, PyCharm et Atom.

C’est après cette étape que commence l’apprentissage. Il vous faut comprendre les types d’objets en Python : les chaînes de caractères et les nombres (assurez-vous de savoir faire la différence entre les entiers – integer ou int - et les décimaux - floats) et le type de ‘collections’ contenant d’autres objets : dictionnaires, listes et tuples.

Afin de pouvoir en faire quelque chose d’intéressant, il faudra utiliser des ‘structures de contrôle’ : les boucles if-then-else, for et while. Prenons par exemple une stratégie de trading : if / si la demande est supérieure à l’offre, then / alors alignez-vous, else / sinon laissez l’ordre limite sur l’offre. Pour / for est utilisé pour itérer différentes valeurs, comme plusieurs jours au sein d’un historique de backtest ; while / tant que - s’applique quand une condition donnée est vraie, p. ex. while / tant que le marché est ouvert, vous avez le carnet d’ordres actualisé. Python a un type de boucle for appelé ‘compréhension de liste’. C’est très utile à connaître dans la mesure où cela rend votre code plus lisible et efficace.

Les opérations booléennes comme and, or, not permettent de faire des comparaisons logiques, p. ex. si l’action a dépassé sa date ex-dividende et / and le dividende n’a pas/not encore été payé, alors ajoutez le dividende à la série Total Return. On peut aussi utiliser all et any. Peut-on shorter all / toutes les valeurs du panier ? Y a-t-il any / un rendement dépassant la Value At Risk ?

La plus grande invention de l’histoire de la programmation est probablement la ‘fonction’. Les fonctions permettent d’écrire du code réutilisable, et donc d’économiser du temps et de l’énergie. Par exemple, au lieu de calculer séparément les ‘grecques’ non-paramétriques d’une option, vous pourriez écrire une fonction calculant la variation du prix d’option en fonction de la variation d’une ou l’autre de ses variables. Cela pourrait ensuite être modifié pour le delta (variation du prix), le vega (variation de la volatilité) et ainsi de suite. Il est préférable de séparer les grandes fonctions en plusieurs petites entités, ce qui réduit sensiblement le risque de bugs cachés et favorise la réutilisation.

Si vous êtes trader, il vous faudra sans doute passer par un peu de maths ; ce qui veut dire aussi utiliser l’import statement pour accéder aux ‘modules’ construits comme math, decimal et statistics. Les autres modules utiles sont datetime et calendar – qui vous permettront de répondre à des questions comme ‘combien de temps à courir jusqu’au paiement du prochain coupon ?’ De nombreux tutoriels python comprennent de larges passages sur la création de modules et packages. Vous pouvez les ignorer.

En réalité, vous pouvez même éviter complètement les parties techniques les plus obscures du langage. Néanmoins, il est important de vous pencher sur les concepts complexes de ‘mutabilité’ et ‘référencement’, car ils sont sources de nombreux bugs assez bizarres. Le module copy peut vous épargner de nombreux problèmes, tout comme le fera une bonne pratique de programmation – qui consisterait entre autres à ne pas réutiliser les noms de variables.

En revanche, si vous avez plus de temps, je vous conseillerais d’apprendre la programmation ‘orientée objet’. Vous pouvez certes utiliser Python sans y recourir (dans le jargon, Python est ‘turing complete’ sans objets), mais grâce à elle, votre code sera plus facile à tester, à lire et à déboguer. Si votre code doit interagir avec les logiciels d’autres utilisateurs, comme un module de pricing quantitatif interne, acquérir une connaissance des objets vous simplifiera la vie.

Une fois que vous maîtrisez les bases, vous devriez envisager d’apprendre certains packages tiers externes à Python. La bibliothèque dont vous aurez besoin dépendra du type de trading que vous effectuez au quotidien. Et bonne nouvelle, j’ai déjà écrit sur le sujet un autre article qui pourra vous aider.

Robert Carver est un ancien responsable fixed income du hedge fund quantitatif AHL ; il est aussi l’auteur de ‘Leveraged Trading’, ‘Systematic Trading’ et ‘Smart Portfolios’. Il utilise maintenant un système automatisé écrit en Python (à base de PyCharm) pour son activité de prop’trading.

Crédit photo : Vlad Tchompalov sur Unsplash

A lire aussi…

Close
Loading...
Loading...