Voici comment comprendre le Ratio de Sharpe en trading
Le Ratio de Sharpe est un ratio très utilisé en trading. En effet, il sert à qualifier si un algorithme de trading ou un investissement est de qualité. Plus précisément, il compare le rendement d’un placement ou d’une stratégie de trading par rapport au risque pris. Cependant il n’est pas sans défaut. Découvrez le ratio de Sharpe en théorie et en pratique avec Python.
Comprendre le ratio de Sharpe
Table des matières
Définition du ratio de Sharpe
Tout d’abord, le ratio de Sharpe est une mesure largement utilisée en finance pour évaluer le rendement ajusté en fonction du risque d’un investissement ou d’une stratégie de trading.
Il a été développé par le lauréat du prix Nobel William F. Sharpe en 1966. Ce ratio est calculé en soustrayant le taux de rendement sans risque de la moyenne du rendement de l’investissement, puis en divisant le résultat par l’écart-type des rendements de l’investissement. Ainsi, mathématiquement, il s’exprime comme suit :
Où :
- Rp est le rendement moyen de l’investissement ou du portefeuille,
- Rf est le taux de rendement sans risque (par exemple, le rendement des bons du Trésor),
- σp est l’écart-type des rendements de l’investissement ou du portefeuille.
Regardez la vidéo associée à cet article. Vous verrez tout le détail du calcul en python et plein d’astuces.
Utilité du ratio de Sharpe
Ainsi, le ratio de Sharpe fournit une mesure du rendement excédentaire généré par unité de risque prise. Il s’agit d’un ratio très utilisé en finance. Et ce qui nous intéresse tout particulièrement c’est qu’il est souvent donné dans le rapport sur un algorithme de trading. Alors, il est important de savoir à quoi cela correspond et comment l’interpréter.
Dans la pratique, les investisseurs et les gestionnaires de portefeuille utilisent souvent le ratio de Sharpe pour comparer les performances ajustées en fonction du risque de différents investissements ou portefeuilles et pour évaluer si les rendements obtenus sont proportionnels au niveau de risque pris.
Comment interpréter le ratio de Sharpe ?
Le ratio de Sharpe fournit une mesure du rendement excédentaire généré par unité de risque prise. Un ratio de Sharpe plus élevé indique un meilleur rendement ajusté en fonction du risque, car il implique que l’investissement a généré plus de rendement par unité de risque. En revanche, un ratio plus faible suggère que l’investissement ne compense peut-être pas adéquatement le niveau de risque pris.
Le rendement moyen est celui qu’on espère. Mais la réalisation, elle peut être différente. C’est ce que montre l’écart-type. Donc, le rendement réel peut être négatif, inférieur ou très supérieur comme l’illustrent les deux courbes verte et rouge ci-dessous.
Quelles valeurs le ratio de Sharpe peut-il prendre ?
Voici un guide général pour interpréter les ratios de Sharpe :
- Ratio de Sharpe < 1.0 : Le rendement de l’investissement ne compense pas suffisamment le risque pris. Cela peut indiquer que l’investissement ne fournit pas des rendements adéquats par rapport au niveau de risque.
- 1.0 ≤ Ratio de Sharpe < 2.0 : Le rendement de l’investissement est considéré comme acceptable pour le niveau de risque pris. Cela indique que l’investissement fournit un rendement raisonnable par rapport au niveau de risque.
- 2.0 ≤ Ratio de Sharpe < 3.0 : Le rendement de l’investissement est considéré comme bon pour le niveau de risque pris. Cela suggère que l’investissement fournit un rendement solide par rapport au niveau de risque.
- Ratio de Sharpe ≥ 3.0 : Le rendement de l’investissement est considéré comme excellent pour le niveau de risque pris. Cela indique que l’investissement fournit un rendement très solide par rapport au niveau de risque, et que la performance ajustée au risque est exceptionnelle.
Comprendre le ratio de Sharpe avec des exemples concrets
Maintenant, nous allons utiliser le langage python pour calculer le ratio de Sharpe.
Première méthode de calcul : le calcul basique
Tout d’abord, allez voir cette vidéo pour mettre en place votre environnement python.
Créer un fichier pour votre code. Et ajouter dedans :
import numpy as np # Exemple de gains en % pour chaque trade d'une stratégie de trading pnl_des_trade = np.array([0.001, -0.015, 0.002, 0.001, -0.003, 0.005, -0.007, 0.001, -0.005]) # Nombre de trades (N) nombre_de_trades = len(pnl_des_trade) # Calcul de la moyenne moyenne = np.mean(pnl_des_trade) stddev = np.std(pnl_des_trade, ddof=1) # Calcul du ratio de Sharpe ratio_de_sharpe = np.sqrt(nombre_de_trades) * (moyenne / stddev) print(f"Moyenne des PnL: {moyenne}") print(f"Standard Deviation de les PnL: {stddev}") print(f"Ratio de Sharpe : {ratio_de_sharpe}")
Voici comment fonctionne ce code
On importe la librairie numpy. Cette librairie est parfaite pour les calculs mathématiques sur des tableaux et des matrices. Ensuite on crée un tableau de nombres représentant les variations d’un cours ou les gains d’un algorithme de trading. Pour cela on utilise l’instruction np.array.
On calcule ensuite la moyenne de ces nombres. Puis l’écart type. Numpy a deux instructions pour cela : np.mean et np.std.
Enfin, on calcule le ratio de Sharpe en divisant les deux. On multiplie par racine carrée du nombre de trades pour « cumuler » sur l’ensemble. Plus d’explication là-dessus, plus loin.
Les instructions print() affichent le résultat.
Seconde méthode
Dans la précédente méthode nous avons calculé le ratio de Sharpe d’une liste de valeurs. Dans cette seconde méthode nous allons calculer le ratio des cours de bourse d’une action.
Alors, c’est très intéressant, parce qu’on va apprendre à récupérer les cours d’un titre boursier. Ne ratez pas cela. Tout est dans cette vidéo :
Où trouver les sources python du calcul du ratio de Sharpe ?
Vous pourrez retrouver le code source python des deux exemples sur les liens suivants :
- https://github.com/mli77/courspythontrading/blob/main/sharpe_ratio_basic.py
- https://github.com/mli77/courspythontrading/blob/main/sharpe_ratio_stock.py
Quels sont les défauts du Ratio de Sharpe
Tout d’abord, j’en parle plus dans la vidéo… Mais le plus gros défaut du ration de Sharpe c’est qu’il ne fait pas la différence entre un bon algo de trading et un mauvais sauvé par un seul très bon trade. Un très bon trade pas forcément reproductible dans la réalité ou le futur.
Car en général, on mesure ce ratio sur un backtest d’une stratégie de trading (voir la vidéo). Si un excellent trade, mais peu courant est arrivé et a sauvé la performance globale de la stratégie, quand on l’utilisera, ce trade ne se réalisera pas. Et on aura de mauvaises performances réelles.
Mes sources
Merci aux sites suivants dont je me suis inspiré :
- https://www.codearmo.com/blog/sharpe-sortino-and-calmar-ratios-python
- https://blog.quantinsti.com/sharpe-ratio-applications-algorithmic-trading/
- https://medium.datadriveninvestor.com/the-sharpe-ratio-with-python-from-scratch-fbb1d5e490b9
N’oubliez pas de vous inscrire à la mailing-list de ce site (formulaire en haut de page). En effet, un cours gratuit de 30 jours vous attend.
Illustrations : canva