Valeur relative
Deux trades de spread, testés avec les coûts
Un trade de spread parie sur l’écart entre deux prix, pas sur la direction du marché. J’ai pris deux spreads classiques, écrit une règle simple et cherché à savoir si l’avantage est réel. Chaque spread a son propre page.
Les deux études
Étude 1
Le crack spread
La marge d’une raffinerie de pétrole : le prix des carburants moins le prix du brut. Vingt ans de prix quotidiens, trois marchés, une marge.
Sharpe 0,43 · 87 % des trades gagnent
Lire l’étude crack spreadÉtude 2
Le butterfly 2s5s10s
Le milieu de la courbe des taux du Trésor américain face à ses deux extrémités. Trente-six ans de rendements quotidiens.
Sharpe 0,33 · 81 % des trades gagnent
Lire l’étude butterflyChaque spread a aussi un ticket qui applique la règle aux dernières données : quoi acheter et vendre, en quelle taille et où placer le stop. La page taille de position demande ensuite quelle taille on peut donner à un petit avantage comme celui-ci.
- Ce que j’ai fait
- J’ai construit une règle qui vend un spread quand il est bien au-dessus de sa moyenne récente et l’achète quand il est bien en dessous. Je l’ai lancée sur 36 ans de rendements du Trésor américain et 20 ans de prix du pétrole. Chaque jour, je n’ai utilisé que ce qu’on savait ce jour-là, et j’ai payé les coûts de transaction.
- Pourquoi cela compte pour un trader
- Les équipes de valeur relative gagnent de l’argent quand un écart se referme. Le plus dur est de savoir si un écart est une occasion de trader ou une nouvelle normalité. Un test avec coûts sur de nombreuses années est la première chose que demande un gérant.
- Ce que j’ai trouvé
- Un petit avantage, pas un gros. La plupart des trades gagnent, mais quelques gros perdants mangent les gains : le pire trade vaut de 8 à 11 fois le trade moyen. Avec un stop, la marge d’erreur inclut zéro pour les deux spreads. L’avantage n’est donc peut-être rien.
- Ce que je n’ai pas pu montrer
- Que quelqu’un aurait vraiment pu trader cela. J’utilise des données gratuites, pas les prix des contrats à terme ni des obligations qu’on négocierait réellement. Je n’ai pas modélisé la marge exigée ni la facilité d’entrer et de sortir.
La règle
La même règle sert pour les deux spreads. On prend les 250 derniers jours de bourse, soit environ un an. On mesure de combien d’écarts-types le spread d’aujourd’hui s’écarte de la moyenne de cette année. C’est le score z. Un écart-type est la taille habituelle d’un écart par rapport à la moyenne.
- Si le score z est au-dessus de 1,5, on vend le spread. S’il est en dessous de -1,5, on l’achète.
- On sort du trade quand le score z est revenu à moins de 0,5 (en valeur absolue).
- En option, on ajoute un stop : on abandonne si le spread bouge de 2 écarts-types contre nous, mesurés le jour de l’entrée. Après un stop, on attend que le score z soit revenu sous 1,5.
J’ai choisi ces réglages avant de regarder les résultats. Chaque étude montre ce qui se passe avec d’autres réglages, pour qu’on voie qu’ils n’ont pas été choisis parce qu’ils étaient les meilleurs.
Les coûts. À chaque changement de position, je compte 0,5 point de base (pb) sur le butterfly et 0,10 $ par baril sur le crack. Un point de base vaut 0,01 point de pourcentage. Chaque étude montre comment le résultat change avec d’autres coûts.
Les deux résultats côte à côte
Le ratio de Sharpe est le gain moyen par jour divisé par l’ampleur de ses variations, ramené à l’année. Au-dessus de 1, c’est bon. Autour de 0,3 à 0,5, c’est faible. L’intervalle à 95 % est un intervalle de bootstrap : une marge d’erreur calculée en mélangeant des blocs de jours dans les données.
| Butterfly | Crack | |
|---|---|---|
| Période testée | 1990 à 2026 | 2006 à 2026 |
| Ratio de Sharpe, règle simple | 0,33 | 0,43 |
| Intervalle à 95 % de ce ratio de Sharpe | de 0,04 à 0,61 | de 0,09 à 0,76 |
| Ratio de Sharpe, avec un stop à 2 écarts-types | 0,27 | 0,30 |
| Intervalle à 95 % avec le stop | de -0,02 à 0,56 | de -0,05 à 0,65 |
| Trades (règle simple) | 89 | 60 |
| Trades gagnants | 81 % | 87 % |
| Trade moyen | 4,8 pb | 2,9 $ /baril |
| Pire trade | -39 pb | -32,5 $ /baril |
| Pire trade avec le stop | -33 pb | -16,7 $ /baril |
| Années gagnantes | 24 sur 37 | 14 sur 21 |
Trois choses ressortent. D’abord, l’avantage est petit, et avec un stop la marge d’erreur inclut zéro pour les deux trades. Ensuite, le stop réduit le gain. Il ramène le pire trade du crack de -32,5 $ à -16,7 $ par baril, mais la pire perte reste bien plus grosse que le gain moyen. Enfin, la plupart des trades gagnent et quelques gros perdants mangent les gains. C’est la forme habituelle d’un trade de retour à la moyenne (un pari qu’un écart va se refermer), et c’est pourquoi la taille de la position compte plus que le signal.
Comment les tests sont faits
Seulement le passé. La moyenne et l’écart-type du jour t n’utilisent que les jours jusqu’à t. Une position ouverte le jour t gagne ou perd à partir du jour t+1. Un test du dépôt modifie les 100 derniers jours de données et vérifie qu’aucun résultat plus ancien ne bouge.
Deux jours écartés. Le 20 avril 2020, le prix du brut WTI est passé sous zéro et a faussé le crack. J’écarte tout jour où le brut valait moins de 5 $, ce jour-là ou la veille. Cela retire les 20 et 21 avril 2020, et rien d’autre. Les chiffres figurent sur la page crack spread.
Le même code, dans deux langages. La règle a été écrite en Python, dans le dépôt de recherche, avec 40 tests. Le site la fait tourner en JavaScript pour que ce soit instantané sur téléphone. Un contrôle lance les deux sur les mêmes données et échoue si un seul résultat diffère.
Des données fraîches. Les rendements du Trésor viennent de la FRED et les prix du pétrole de l’Energy Information Administration (EIA) américaine. Une tâche sur le serveur met à jour les deux chaque matin. L’EIA publie par lots hebdomadaires, donc les prix du pétrole ont en général une semaine de retard.
Ce que ce n’est pas
C’est de la recherche. Rien ici n’a été tradé, et rien ici n’est un conseil. La règle a rapporté un peu dans le passé. Ce n’est pas une promesse pour l’avenir.
Code source et tests sur
github.com/Nicolas8330/relative-value-strategies.
Chaque chiffre fixe de ces pages vient d’une seule exécution de
examples/make_results.py.