Introduction à la gestion du risque de portefeuille en Python
Dakota Wixom
Quantitative Analyst | QuantCourse.com

Le ratio de Sharpe mesure le rendement ajusté au risque.
Pour calculer la version 1966 du ratio de Sharpe :
$$ S = \frac{ R_a - r_f }{\sigma_a} $$

Tout point sur la frontière efficiente est un portefeuille optimal.
Ces deux points courants sont les portefeuilles de Markowitz :

Comment choisir le meilleur portefeuille ?
En supposant un DataFrame df de portefeuilles aléatoires avec les colonnes Volatility et Returns :
numstocks = 5
risk_free = 0
df["Sharpe"] = (df["Returns"] - risk_free) / df["Volatility"]
MSR = df.sort_values(by=['Sharpe'], ascending=False)
MSR_weights = MSR.iloc[0, 0:numstocks]
np.array(MSR_weights)
array([0.15, 0.35, 0.10, 0.15, 0.25])
Même si un portefeuille à Max Sharpe Ratio semble attrayant, en pratique, il est très difficile de prévoir les rendements.
En supposant un DataFrame df de portefeuilles aléatoires avec les colonnes Volatility et Returns :
numstocks = 5
GMV = df.sort_values(by=['Volatility'], ascending=True)
GMV_weights = GMV.iloc[0, 0:numstocks]
np.array(GMV_weights)
array([0.25, 0.15, 0.35, 0.15, 0.10])
Introduction à la gestion du risque de portefeuille en Python