पोर्टफोलियो रिटर्न की गणना
किसी पोर्टफोलियो को बनाना और उसका बैकटेस्ट करने के लिए, आपको एक ही ऑब्जेक्ट में कई एसेट्स के रिटर्न के साथ काम करने में सहज होना होगा.
इस अभ्यास में, आप pandas का DataFrame ऑब्जेक्ट इस्तेमाल करेंगे, जिसे वैरिएबल StockReturns के रूप में पहले से स्टोर किया गया है, ताकि कई एसेट्स के रिटर्न रखे जा सकें और किसी मॉडल पोर्टफोलियो के रिटर्न निकाले जा सकें.
मॉडल पोर्टफोलियो जनवरी 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% |
ध्यान दें कि अधिकतर मामलों में पोर्टफोलियो वेट्स का योग 100% होना चाहिए
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में पोर्टफोलियो जोखिम प्रबंधन का परिचय
अभ्यास निर्देश
- ऊपर दी गई तालिका के अनुसार मानों के साथ मॉडल
portfolio_weightsका numpy array परिभाषित करना पूरा करें. StockReturnsकी पंक्तियों परportfolio_weightsको गुणा करने के लिए.mul()मेथड का उपयोग करें ताकि weighted stock returns मिलें.- फिर
WeightedReturnsऑब्जेक्ट पर पंक्तियों के पार.sum()मेथड का उपयोग करके पोर्टफोलियो रिटर्न की गणना करें. - अंत में, समय के साथ cumulative returns के प्लॉट की समीक्षा करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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()