स्वागत है!

Python में Quantitative Risk Management

Dr. Jamsheed Shorish

Computational Economist

मेरे बारे में

  • Computational Economist
  • विशेषज्ञता:
    • asset pricing
    • financial technologies ("FinTech")
    • economics और finance में computer applications
  • सह-प्रशिक्षक, "Economic Analysis of the Digital Economy", ANU में
  • Shorish Research (Belgium): computational business applications
Python में Quantitative Risk Management

Quantitative Risk Management क्या है?

  • Quantitative Risk Management: मापने योग्य अनिश्चितता का अध्ययन
  • अनिश्चितता:
    • भविष्य के नतीजे अज्ञात होते हैं
    • नतीजे योजना संबंधी फैसलों को प्रभावित करते हैं
  • Risk management: प्रतिकूल नतीजों के प्रभाव घटाना
  • मापने योग्य अनिश्चितता: जोखिम मापने के कारक पहचानना
    • उदाहरण: फायर इंश्योरेंस. किन कारकों से आग की संभावना बढ़ती है?
  • यह कोर्स: financial portfolio से जुड़े जोखिम पर फोकस
Python में Quantitative Risk Management

Risk management और Global Financial Crisis

  • ग्रेट रिसेशन (2007 - 2010)
    • ग्लोबल ग्रोथ में $2 ट्रिलियन से अधिक की कमी
    • United States: household wealth में करीब $10 ट्रिलियन की गिरावट
    • U.S. स्टॉक मार्केट्स में लगभग $8 ट्रिलियन वैल्यू का नुकसान
  • ग्लोबल फाइनेंशियल क्राइसिस (2007-2009)
    • मूलभूत asset values में बड़े पैमाने पर बदलाव
    • भविष्य के रिटर्न को लेकर भारी अनिश्चितता
    • asset returns में उच्च volatility
    • सफलता या विफलता में risk management निर्णायक रहा
Python में Quantitative Risk Management

त्वरित पुनरावलोकन: financial portfolios

  • Financial portfolio
    • अनिश्चित भविष्य रिटर्न वाले assets का संग्रह
    • Stocks
    • Bonds
    • Foreign exchange holdings ('forex')
    • Stock options
  • चुनौती: अनिश्चितता प्रबंधन हेतु जोखिम को मात्रात्मक बनाना
    • इष्टतम निवेश निर्णय लें
    • जोखिम रूचि के अनुसार पोर्टफोलियो रिटर्न अधिकतम करें
Python में Quantitative Risk Management

रिटर्न को मापना

  • पोर्टफोलियो रिटर्न: individual asset returns का weighted sum
    • Pandas data analysis लाइब्रेरी
    • DataFrame prices
    • .pct_change() मेथड
    • returns का .dot() मेथड
prices = pandas.read_csv("portfolio.csv")

returns = prices.pct_change()
weights = (weight_1, weight_2, ...)
portfolio_returns = returns.dot(weights)
Python में Quantitative Risk Management

जोखिम को मापना

  • पोर्टफोलियो रिटर्न की volatility = risk
  • volatility को covariance matrix से निकालें
  • returns की DataFrame मेथड .cov() उपयोग करें और annualize करें

 

 

covariance = returns.cov()*252

print(covariance)

4 assets के बीच covariance matrix का उदाहरण

Python में Quantitative Risk Management

जोखिम को मापना

  • पोर्टफोलियो रिटर्न की volatility = risk
  • volatility को covariance matrix से निकालें
  • returns की DataFrame मेथड .cov() उपयोग करें और annualize करें
  • covariance का diagonal individual assets की variances देता है  

   

covariance = returns.cov()*252

print(covariance)

Diagonal पर variance हाइलाइट किया गया covariance matrix का उदाहरण

Python में Quantitative Risk Management

जोखिम को मापना

  • पोर्टफोलियो रिटर्न की volatility = risk
  • volatility को covariance matrix से निकालें
  • returns की DataFrame मेथड .cov() उपयोग करें और annualize करें
  • covariance का diagonal individual assets की variances देता है
  • covariance के off-diagonals assets के बीच covariances होते हैं
covariance = returns.cov()*252

print(covariance)

Off-diagonals पर covariances हाइलाइट किया गया covariance matrix का उदाहरण

Python में Quantitative Risk Management

पोर्टफोलियो जोखिम

  • पोर्टफोलियो में asset weights पर निर्भर करता है
  • पोर्टफोलियो variance $\sigma_p^2$ है $$ \sigma_p^2 := w^T \cdot \textnormal{Cov}_p \cdot w $$
  • Python में matrix multiplication @ ऑपरेटर से करें
  • आमतौर पर variance के बजाय standard deviation उपयोग होता है
weights = [0.25, 0.25, 0.25, 0.25] # मान लें पोर्टफोलियो में चार assets हैं

portfolio_variance = np.transpose(weights) @ covariance @ weights
portfolio_volatility = np.sqrt(portfolio_variance)
Python में Quantitative Risk Management

Volatility टाइम सीरीज़

  • आप समय के साथ पोर्टफोलियो volatility भी निकाल सकते हैं
  • एक 'window' लेकर तय अवधि (जैसे सप्ताह, 30-दिन 'महीना') में volatility निकालें
  • Series.rolling() window बनाता है
  • volatility का रुझान और संभावित चरम घटनाएँ देखें
windowed = portfolio_returns.rolling(30)

volatility = windowed.std()*np.sqrt(252) volatility.plot() .set_ylabel("Standard Deviation...")

वार्षिकीकृत रिटर्न volatility का 30-दिन rolling window प्लॉट

Python में Quantitative Risk Management

अभ्यास करते हैं!

Python में Quantitative Risk Management

Preparing Video For Download...