Výpočet výnosů portfolia
Aby ses mohl/a věnovat sestavování a backtestování portfolia, musíš umět pracovat s výnosy více aktiv najednou v rámci jednoho objektu.
V tomto cvičení použiješ objekt DataFrame z knihovny pandas, který je uložený v proměnné StockReturns. Tento objekt bude obsahovat výnosy více aktiv a poslouží k výpočtu výnosů modelového portfolia.
Modelové portfolio je sestaveno s předem definovanými váhami pro několik největších světových společností těsně před lednem 2017:
| Název společnosti | Ticker | Váha v portfoliu |
|---|---|---|
| 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 % |
Váhy v portfoliu by ve většině případů měly dávat dohromady 100 %.
Toto cvičení je součástí kurzu
Úvod do řízení portfoliového rizika v Pythonu
Pokyny k cvičení
- Dokonči definici numpy pole
portfolio_weightss hodnotami podle tabulky výše. - Pomocí metody
.mul()vynásobportfolio_weightspřes řádkyStockReturnsa získej vážené výnosy jednotlivých akcií. - Pak použij metodu
.sum()přes řádky objektuWeightedReturnsa vypočítej výnosy portfolia. - Nakonec si prohlédni graf kumulativních výnosů v čase.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()