Portföy getirilerini hesaplama
Bir portföy oluşturup geriye dönük test (backtest) yapabilmek için, birden fazla varlığın getirileriyle tek bir nesne içinde rahatça çalışabilmelisin.
Bu egzersizde, birden fazla varlığın getirisini tutmak ve bir model portföyün getirisini hesaplamak için, değişken StockReturns olarak saklanan bir pandas DataFrame nesnesini kullanacaksın.
Model portföy, Ocak 2017'den hemen önce dünyanın en büyük şirketlerinden bazıları için önceden tanımlanmış ağırlıklarla oluşturulmuştur:
| 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% |
Not: Çoğu durumda portföy ağırlıklarının toplamı %100 olmalıdır
Bu egzersiz, kursun bir parçasıdır
Python ile Portföy Risk Yönetimine Giriş
Egzersiz talimatları
- Tablodaki değerlere göre model
portfolio_weightsiçin numpy dizisini tanımlamayı tamamla. - Ağırlıklandırılmış hisse getirilerini elde etmek için
StockReturnsüzerindeportfolio_weightsdizisini satırlar boyunca çarpmak üzere.mul()yöntemini kullan. - Ardından, portföy getirilerini hesaplamak için
WeightedReturnsnesnesi üzerinde satırlar boyunca.sum()yöntemini kullan. - Son olarak, zaman içindeki kümülatif getiriler grafiğini incele.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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()