Portefeuillerendementen berekenen
Om een portefeuille op te bouwen en te backtesten, moet je gemakkelijk kunnen werken met de rendementen van meerdere assets in één object.
In deze oefening gebruik je een pandas-DataFrame, al opgeslagen in de variabele StockReturns, om de rendementen van meerdere assets vast te leggen en de rendementen van een modelportefeuille te berekenen.
De modelportefeuille is samengesteld met vooraf gedefinieerde wegingen voor enkele van de grootste bedrijven ter wereld, net vóór januari 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% |
Let op: in de meeste gevallen moeten de portefeuillewegingen optellen tot 100%
Deze oefening maakt deel uit van de cursus
Introductie tot portefeuillerisicobeheer in Python
Oefeninstructies
- Maak de numpy-array met model-
portfolio_weightsaf met de waarden uit de bovenstaande tabel. - Gebruik de methode
.mul()om deportfolio_weightsover de rijen vanStockReturnste vermenigvuldigen en gewogen aandelenrendementen te krijgen. - Gebruik vervolgens de methode
.sum()over de rijen op het objectWeightedReturnsom de portefeuillerendementen te berekenen. - Bekijk tot slot de grafiek van de cumulatieve rendementen door de tijd.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()