Volatility और structural breaks
Volatility में होने वाले बदलावों का visualization समय-श्रृंखला में संभावित structural break points उजागर करने में मदद करता है. जब आप पहचान लेते हैं कि volatility कब बदलती दिख रही है, तब आप समझदारी से एक break point चुन सकते हैं, जिसे आगे की सांख्यिकीय विश्लेषण (जैसे Chow test) में उपयोग किया जा सकता है.
आप 2008 - 2009 के investment bank पोर्टफोलियो की volatility के दो visualizations देखेंगे, दो उपलब्ध पोर्टफोलियो वेट्स के लिए: weights_with_citi और weights_without_citi. ये क्रमशः Citibank के साथ और बिना Citibank के equal-weighted पोर्टफोलियो के अनुरूप हैं, जिसमें (जैसा आपने Chapter 1 में देखा) उस अवधि में चार एसेट्स में से सबसे अधिक volatility Citibank की थी.
2008 - 2009 के लिए Citibank सहित पोर्टफोलियो प्राइस prices_with_citi के रूप में उपलब्ध हैं, और Citibank के बिना prices_without_citi के रूप में.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Quantitative Risk Management
अभ्यास निर्देश
weights_with_citiऔरweights_without_citiका उपयोग करके दोनों पोर्टफोलियो के रिटर्न सीरीज़ निकालिए.- दोनों पोर्टफोलियो के लिए 30-day rolling window standard deviation की गणना कीजिए.
- दोनों Pandas
Seriesऑब्जेक्ट्स को एक "vol" नामक DataFrame ऑब्जेक्ट में संयोजित कीजिए. - समय के साथ दोनों पोर्टफोलियो की volatility की तुलना करने के लिए
volऑब्जेक्ट की सामग्री को प्लॉट कीजिए.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Find the time series of returns with and without Citibank
ret_with_citi = prices_with_citi.____.dot(weights_with_citi)
ret_without_citi = prices_without_citi.pct_change().____(____)
# Find the average 30-day rolling window volatility as the standard deviation
vol_with_citi = ret_with_citi.____.std().dropna().rename("With Citi")
vol_without_citi = ret_without_citi.rolling(30).____.dropna().rename("Without Citi")
# Combine two volatilities into one Pandas DataFrame
vol = pd.concat([____, ____], axis=1)
# Plot volatilities over time
vol.____().set_ylabel("Losses")
plt.show()