Portfolio-Renditen berechnen
Um ein Portfolio zu bauen und zu backtesten, musst du dich damit wohlfühlen, die Renditen mehrerer Assets in einem einzigen Objekt zu verarbeiten.
In dieser Übung verwendest du ein pandas-DataFrame-Objekt, das bereits als Variable StockReturns gespeichert ist, um die Renditen mehrerer Assets zu halten und die Renditen eines Modellportfolios zu berechnen.
Das Modellportfolio ist mit vordefinierten Gewichten für einige der größten Unternehmen der Welt kurz vor Januar 2017 konstruiert:
| 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% |
Beachte, dass sich die Portfoliogewichte in den meisten Fällen zu 100 % summieren sollten.
Diese Übung ist Teil des Kurses
Einführung in das Portfoliorisikomanagement mit Python
Anleitung zur Übung
- Vervollständige das NumPy-Array der Modell-
portfolio_weightsmit den Werten aus der Tabelle oben. - Verwende die Methode
.mul(), um dieportfolio_weightszeilenweise mitStockReturnszu multiplizieren und so gewichtete Aktienrenditen zu erhalten. - Verwende anschließend die Methode
.sum()zeilenweise auf dem ObjektWeightedReturns, um die Portfoliorenditen zu berechnen. - Schau dir zum Schluss das Diagramm der kumulierten Renditen im Zeitverlauf an.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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()