计算VaR常用的三种方法分别是历史模拟法、方差-协方差法和Monte-Carlo模拟方法。
设有金融资产的价值序列:x=c(189.9390,206.5707,186.4814,210.9900,195.1849,200.6311,182.0851,200.5738,202.8953 ,210.8375)
计算其在置信水平1- alpha=0.95的VaR值。
历史模拟法:
代码:
方差-协方差法:
需要先拟合金融资产序列,如用GARCH族模型拟合金融资产价值序列,可以得到其在各期的条件标准差序列,设计算所得条件标准差为h:
h=c(0.0630,0.0036 ,0.1621 ,0.0076 ,-0.0486, -0.0938 ,0.0535 ,0.0254 ,0.2659, -0.0911)
代码:
Monte-Carlo模拟方法:
根据历史数据计算出特征数据均值、标准差等,然后假设 其服从一定的分布,进而对金融资产价值的未来走向作出模拟。
假设其金融资产的价值序列服从正态分布。
于是,回到历史模拟法。
代码:
设有金融资产的价值序列:x=c(189.9390,206.5707,186.4814,210.9900,195.1849,200.6311,182.0851,200.5738,202.8953 ,210.8375)
计算其在置信水平1- alpha=0.95的VaR值。
历史模拟法:
代码:
<br />
x=c(189.9390,206.5707,186.4814,210.9900,195.1849,200.6311,182.0851,200.5738,202.8953 ,210.8375); <br />
alpha=0.05; <br />
fun1=function(x,alpha){ <br />
n=length(x); <br />
VaR=rep(0,times=n-1); <br />
for(i in 2:n){ <br />
VaR=mean(x[1:i-1])-quantile(x[1:i-1],alpha); <br />
} <br />
VaR <br />
} <br />
fun1(x,alpha) <br />
方差-协方差法:
需要先拟合金融资产序列,如用GARCH族模型拟合金融资产价值序列,可以得到其在各期的条件标准差序列,设计算所得条件标准差为h:
h=c(0.0630,0.0036 ,0.1621 ,0.0076 ,-0.0486, -0.0938 ,0.0535 ,0.0254 ,0.2659, -0.0911)
代码:
<br />
x=c(189.9390,206.5707,186.4814,210.9900,195.1849,200.6311,182.0851,200.5738,202.8953 ,210.8375); <br />
h=c(0.0630,0.0036 ,0.1621 ,0.0076 ,-0.0486, -0.0938 ,0.0535 ,0.0254 ,0.2659, -0.0911); <br />
alpha=0.05; <br />
fun2=function(x,h,alpha){ <br />
n=length(x); <br />
r=rep(0,times=n-1); <br />
for( i in 2:n){ <br />
r[i-1]=log(x)-log(x[i-1]); <br />
r; <br />
} <br />
VaR=rep(0,time=n-1); <br />
for(i in 2:n){ <br />
VaR[i-1]=qnorm(1-alpha)*x[i-1]*h-x[i-1]*mean(r); <br />
} <br />
VaR <br />
} <br />
fun2(x,h,alpha)<br />
Monte-Carlo模拟方法:
根据历史数据计算出特征数据均值、标准差等,然后假设 其服从一定的分布,进而对金融资产价值的未来走向作出模拟。
假设其金融资产的价值序列服从正态分布。
<br />
mean(x)= 198.6189; sd=9.997478; <br />
xnew=rnorm(mean=mean(x),sd=sd(x),n=200) <br />
于是,回到历史模拟法。
代码:
<br />
x=c(189.9390,206.5707,186.4814,210.9900,195.1849,200.6311,182.0851,200.5738,202.8953 ,210.8375); <br />
xnew=rnorm(mean=mean(x),sd=sd(x),n=200); <br />
alpha=0.05; <br />
fun1(xnew,alpha) <br />