Python में Quantitative Risk Management
Jamsheed Shorish
Computational Economist
asset_returns में रिटर्न से शुरू करेंweights से portfolio_returns निकालेंportfolio_returns को losses में बदलेंlosses पर 95% जैसे confidence level के लिए np.quantile() निकालें
weights = [0.25, 0.25, 0.25, 0.25]portfolio_returns = asset_returns.dot(weights)losses = - portfolio_returnsVaR_95 = np.quantile(losses, 0.95)
scipy.stats से Normal distribution norm इंपोर्ट करेंtotal_steps परिभाषित करें (1 day = 1440 minutes)N परिभाषित करेंportfolio_losses के mean mu और standard deviation sigma निकालेंfrom scipy.stats import normtotal_steps = 1440N = 10000mu = portfolio_losses.mean() sigma = portfolio_losses.std()
N runs के लिए daily_loss वेक्टर इनिशियलाइज़ करेंN runs पर लूप चलाएँloss वेक्टर निकालेंnorm.rvs() उपयोग करता हैmu और sigma को 1/total_steps से स्केल करता हैdaily_loss = np.zeros(N)for n in range(N):loss = ( mu * (1/total_steps) + norm.rvs(size=total_steps) * sigma * np.sqrt(1/total_steps) )
n के लिए cumulative daily_loss जनरेट करेंdaily_loss पर 95% जैसे confidence level के लिए VaR पाने हेतु np.quantile() उपयोग करें
daily_loss = np.zeros(N) for n in range(N):loss = mu * (1/total_steps) + ... norm.rvs(size=total_steps) * sigma * np.sqrt(1/total_steps)daily_loss[n] = sum(loss)VaR_95 = np.quantile(daily_loss, 0.95)
e_covPython में Quantitative Risk Management