Beräkna portföljavkastning
För att kunna bygga och backtesta en portfölj behöver du vara bekväm med att hantera avkastningen för flera tillgångar i ett och samma objekt.
I den här övningen använder du ett pandas DataFrame-objekt, redan lagrat som variabeln StockReturns, för att hålla avkastningen för flera tillgångar och beräkna avkastningen för en modellportfölj.
Modellportföljen är konstruerad med fördefinierade vikter för några av världens största företag strax innan januari 2017:
| Företagsnamn | Ticker | Portföljvikt |
|---|---|---|
| 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% |
Observera att portföljvikterna i de flesta fall ska summera till 100%
Den här övningen är en del av kursen
Introduktion till portföljriskhantering i Python
Övningsinstruktioner
- Slutför definitionen av numpy-arrayen med modellens
portfolio_weightsmed värdena enligt tabellen ovan. - Använd metoden
.mul()för att multipliceraportfolio_weightslängs raderna iStockReturnsoch få viktade aktiekurser. - Använd sedan metoden
.sum()längs raderna på objektetWeightedReturnsför att beräkna portföljavkastningen. - Granska slutligen diagrammet över kumulativ avkastning över tid.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()