Calcul des rendements de portefeuille
Pour construire et effectuer un rétrotest d'un portefeuille, vous devez être à l'aise de manipuler les rendements de plusieurs actifs dans un seul objet.
Dans cet exercice, vous utiliserez un objet DataFrame de pandas, déjà enregistré dans la variable StockReturns, pour conserver les rendements de plusieurs actifs et calculer les rendements d'un portefeuille modèle.
Le portefeuille modèle est construit avec des pondérations prédéfinies pour certaines des plus grandes entreprises au monde, juste avant janvier 2017 :
| Company Name | Ticker | Portfolio Weight |
|---|---|---|
| Apple | AAPL | 12% |
| Microsoft | MSFT | 15% |
| Exxon Mobil | XOM | 8% |
| Johnson & Johnson | JNJ | 5% |
| JP Morgan | JPM | 9% |
| Amazon | AMZN | 10% |
| General Electric | GE | 11% |
| FB | 14% | |
| AT&T | T | 16% |
Remarquez que, dans la plupart des cas, la somme des pondérations du portefeuille devrait être de 100 %
Cette activité fait partie du cours
Introduction à la gestion du risque de portefeuille en Python
Instructions de l’exercice
- Terminez la définition du tableau numpy
portfolio_weightsavec les valeurs indiquées dans le tableau ci-dessus. - Utilisez la méthode
.mul()pour multiplierportfolio_weightssur les lignes deStockReturnsafin d'obtenir les rendements pondérés des titres. - Utilisez ensuite la méthode
.sum()sur les lignes de l'objetWeightedReturnspour calculer les rendements du portefeuille. - Enfin, examinez le graphique des rendements cumulatifs dans le temps.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Finish defining the portfolio weights as a numpy array
portfolio_weights = np.array([0.12, 0.15, 0.08, 0.05, 0.09, 0.10, 0.11, ____, ____])
# Calculate the weighted stock returns
WeightedReturns = StockReturns.____(portfolio_weights, axis=____)
# Calculate the portfolio returns
StockReturns['Portfolio'] = WeightedReturns.____(axis=____)
# Plot the cumulative portfolio returns over time
CumulativeReturns = ((1+StockReturns["Portfolio"]).cumprod()-1)
CumulativeReturns.plot()
plt.show()