Obliczanie stóp zwrotu portfela
Aby zbudować i przetestować portfel inwestycyjny, musisz sprawnie pracować ze stopami zwrotu wielu aktywów zgromadzonych w jednym obiekcie.
W tym ćwiczeniu będziesz korzystać z obiektu DataFrame biblioteki pandas, już zapisanego jako zmienna StockReturns, do przechowywania stóp zwrotu wielu aktywów i obliczania stóp zwrotu modelowego portfela.
Modelowy portfel został skonstruowany z wcześniej określonymi wagami dla niektórych największych spółek na świecie tuż przed styczniem 2017 roku:
| Nazwa spółki | Ticker | Udział w portfelu |
|---|---|---|
| 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% |
Pamiętaj, że wagi w portfelu powinny sumować się do 100%
To ćwiczenie jest częścią kursu
Wprowadzenie do zarządzania ryzykiem portfela w Pythonie
Instrukcje do ćwiczenia
- Dokończ definiowanie tablicy numpy z wagami
portfolio_weights, używając wartości z powyższej tabeli. - Użyj metody
.mul(), aby pomnożyćportfolio_weightsprzez kolejne wierszeStockReturnsi uzyskać ważone stopy zwrotu akcji. - Następnie użyj metody
.sum()na wierszach obiektuWeightedReturns, aby obliczyć stopy zwrotu portfela. - Na koniec przejrzyj wykres skumulowanych stóp zwrotu w czasie.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()