Rendements et risque à pondération exponentielle
Dans cet exercice, vous allez optimiser un portefeuille en estimant le risque et les rendements d'une façon un peu différente : vous donnerez plus de poids aux données récentes dans l'optimisation.
C'est une bonne façon de traiter des données boursières généralement non stationnaires, c'est-à-dire lorsque la distribution évolue dans le temps. L'implémentation se fait rapidement en changeant le modèle de risque utilisé pour calculer Sigma, ainsi que la méthode de calcul des rendements pour obtenir mu. Le jeu de données des prix boursiers est disponible sous stock_prices. Allons-y!
Cette activité fait partie du cours
Introduction à l'analyse de portefeuille en Python
Instructions de l’exercice
- Utilisez la matrice de covariance à pondération exponentielle de
risk_modelset la fonction de rendements historiques à pondération exponentielle deexpected_returnspour calculerSigmaetmu. Réglez la portée (span) à 180 et la fréquence (c.-à-d. les jours de bourse) à 252. - Calculez la frontière efficiente avec les nouveaux
muetSigma. - Calculez les pondérations du portefeuille à ratio de Sharpe maximal.
- Obtenez le rapport de performance.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Define exponentially weightedSigma and mu using stock_prices
Sigma = risk_models.____(____, span=____, frequency=____)
mu = expected_returns.____(____, frequency=____, span=____)
# Calculate the efficient frontier
ef = ____(____, ____)
# Calculate weights for the maximum sharpe ratio optimization
raw_weights_maxsharpe = ____.____()
# Show portfolio performance
ef.____(verbose=True)