Nicolas Liebaert Produits structurés et dérivés English

Nicolas Liebaert

Pricer les payoffs que je pricais sur le desk

J’ai fait deux stages sur des desks de produits structurés. Chez Natixis CIB, j’ai travaillé sur des payoffs actions pour les réseaux de distribution français. Chez Kepler Cheuvreux, j’ai travaillé sur les actions, les taux, le crédit et les matières premières, pour des distributeurs, des entreprises, des institutionnels et des banques privées. J’ai pricé des autocallables, des reverse convertibles, des shark notes et des notes indexées sur le crédit (CLN) avec les outils du desk. Ces outils me donnaient un chiffre, pas une raison. J’ai donc écrit mon propre code pour les mêmes payoffs, afin de voir ce qu’il y a derrière le chiffre.

Ce site exécute ce code. Sur les pages de pricing, bougez un curseur : le titre est repricé par le même Python que dans les dépôts, dans votre navigateur. Sur les pages de trading, une règle simple est testée sur des données de marché datées. Chaque page dit aussi ce que je n’ai pas pu montrer.

MSc Financial Markets & Investments, SKEMA Dubaï

Issus de mon propre trading

Trois projets sur des règles de trading. Chacun montre ses coûts et ce que je n’ai pas pu tester.

02

Valeur relative et risque

Deux trades de spread, testés avec les coûts

La marge d’une raffinerie de pétrole (le crack spread) et le milieu de la courbe des taux américains (le butterfly), testés sur 20 à 36 ans. L’avantage est petit et la plupart des trades gagnent. Des tickets du jour disent quoi acheter et vendre, et une étude montre quelle taille donner à un petit avantage.

  • Crack spread 3-2-1 et butterfly 2s5s10s
  • Coûts, stop et tickets du jour
  • Simulateur de challenge de compte financé
Ouvrir le projet

Code source sur GitHub: relative-value-strategies, position-sizing

Comment ça marche

Les pages autocall, options et suivi de tendance téléchargent Python compilé en WebAssembly, avec NumPy et SciPy (NumPy et pandas pour le suivi de tendance), puis chargent les fichiers .py du projet. Cela représente environ 31 Mo pour l’autocall, 31 Mo pour les options et 22 Mo pour le suivi de tendance. Les fichiers viennent de ce site : cela marche donc aussi sur un réseau qui bloque les CDN publics. Le tout tourne dans un processus d’arrière-plan, donc la page reste utilisable pendant le démarrage.

Les pages des trades de spread et de la volatilité fonctionnent autrement. Les règles sont courtes : je les ai écrites en JavaScript, qui démarre aussitôt sur un téléphone. Un test exécute le JavaScript et le Python sur les mêmes données et échoue au moindre écart. Les tableaux fixes de ces pages viennent d’une seule exécution du Python. Pour les trades de spread, les fichiers de données sont mis à jour chaque matin depuis FRED (rendements du Trésor américain) et l’EIA (prix du pétrole).

Les curseurs utilisent 20 000 trajectoires de Monte Carlo (des futurs simulés au hasard), pour que le résultat suive votre main. Un bouton haute précision lance 200 000 trajectoires, qui reproduisent les chiffres des README des dépôts. Quand un chiffre est incertain, sa marge d’erreur est affichée à côté.

Les modèles de pricing utilisent Black-Scholes avec une seule volatilité plate. C’est suffisant pour saisir la forme d’un payoff et raisonner sur son risque. Ce n’est pas ce sur quoi un desk cote. Chaque page indique où son propre modèle cesse d’être fiable.