Python ile Nicel Risk Yönetimi
Jamsheed Shorish
Computational Economist
asset_returns içindeki getirilerle başlayınweights ile portfolio_returns hesaplayınportfolio_returns değerlerini lossesa dönüştürünlosses için ör. %95 güven seviyesinde np.quantile() hesaplayın
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 içinden Normal dağılım normu içe aktarıntotal_steps tanımlayın (1 gün = 1440 dakika)N tanımlayınportfolio_losses verisinin ortalaması mu ve st. sapması sigmayı hesaplayınfrom scipy.stats import normtotal_steps = 1440N = 10000mu = portfolio_losses.mean() sigma = portfolio_losses.std()
N koşu için daily_loss vektörünü başlatınN koşu üzerinde döngü yapınloss vektörünü hesaplayınnorm.rvs() kullanırtotal_steps ile ölçeklenen mu ve sigmayı kullanırdaily_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 koşusu için kümülatif daily_loss üretindaily_loss üzerinde ör. %95 güven seviyesinde VaR için np.quantile() kullanın
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 ile Nicel Risk Yönetimi