Ratio de Sharpe et ratio de Sortino

Négociation financière en Python

Chelsea Yang

Data Science Instructor

Quelle stratégie s'en sort le mieux ?

$$

Stratégie 1 :
  • Rendement : 15 %
  • Volatilité (écart-type) : 30 %

$$

Stratégie 2 :
  • Rendement : 10 %
  • Volatilité (écart-type) : 8 %
Négociation financière en Python

Rendement ajusté du risque

  • Rendre comparables les performances entre stratégies
  • Un ratio qui décrit le risque pour obtenir le rendement

Risque vs rendement

Négociation financière en Python

Ratio de Sharpe

$$ \text{Sharpe Ratio} = (R_p - R_r)/\sigma_p $$

$$

  • $R_p $ : Rendement d'une stratégie, d'un portefeuille, d'un actif, etc.
  • $R_r $ : Taux sans risque
  • $\sigma_p $ : Écart-type du rendement excédentaire ($R_p-R_f$)

$$

  • Plus le ratio de Sharpe est grand, plus le rendement est attrayant
Négociation financière en Python

Faites votre choix à nouveau

$$

Stratégie 1 :
  • Rendement : 15 %
  • Volatilité (écart-type) : 30 %
  • Ratio de Sharpe : 15 %/30 % = 0,5

$$

Stratégie 2 :
  • Rendement : 10 %
  • Volatilité (écart-type) : 8 %
  • Ratio de Sharpe : 10 %/8 % = 1,25
Négociation financière en Python

Obtenir le ratio de Sharpe avec un rétrodosage bt

resInfo = bt_result.stats
# Obtenir les ratios de Sharpe à partir des stats du rétrodosage
print('Sharpe ratio daily: %.2f'% resInfo.loc['daily_sharpe'])
print('Sharpe ratio monthly %.2f'% resInfo.loc['monthly_sharpe'])
print('Sharpe ratio annually %.2f'% resInfo.loc['yearly_sharpe'])
Sharpe ratio daily: 0.49
Sharpe ratio monthly 0.48
Sharpe ratio annually 1.34
Négociation financière en Python

Calculer manuellement le ratio de Sharpe

# Obtenir le rendement annuel
annual_return = resInfo.loc['yearly_mean']

# Obtenir la volatilité annuelle volatility = resInfo.loc['yearly_vol']
# Calculer manuellement le ratio de Sharpe sharpe_ratio = annual_return / volatility print('Sharpe ratio annually %.2f'% sharpe_ratio)
Sharpe ratio annually 1.34
Négociation financière en Python

Limites du ratio de Sharpe

  • Pénalise la volatilité « positive » et « négative »
  • La volatilité à la hausse peut faire baisser le ratio

Limites du ratio de Sharpe

Négociation financière en Python

Ratio de Sortino

$$ \text{Sortino Ratio} = (R_p - R_r)/\sigma_d $$

  • $R_p $ : Rendement d'une stratégie, d'un portefeuille, d'un actif, etc.
  • $R_r $ : Taux sans risque
  • $\sigma_d $ : Déviation à la baisse du rendement excédentaire ($R_p-R_f$)

Volatilité à la baisse

Négociation financière en Python

Obtenir le ratio de Sortino avec un rétrodosage bt

resInfo = bt_result.stats
# Obtenir le ratio de Sortino à partir des stats du rétrodosage
print('Sortino ratio daily: %.2f'% resInfo.loc['daily_sortino'])
print('Sortino ratio monthly %.2f'% resInfo.loc['monthly_sortino'])
print('Sortino ratio annually %.2f'% resInfo.loc['yearly_sortino'])
Sortino ratio daily: 0.70
Sortino ratio monthly 0.86
Sortino ratio annually 2.29
Négociation financière en Python

Passons à la pratique !

Négociation financière en Python

Preparing Video For Download...