N=100
y0=1
K=1
T=3
d_t=1/12
t=36
b=0.3
{
r=runif(100,0,1)
for(s in 1:100)
{
p=rep(NA,N)#由于重复N次会生成N个价格,因此先构造一个N维的空向量P
for(i in 1:N)
{
y=rep(NA,t)
d_t=1/12
y=rep(NA,t)
epsilon=rnorm(t,0,1)#生成T个误差项
for(j in 2:t)
{
y[1]=y0
v=r[s]-1/2*(b)^2
y[j]=(exp(v*d_t+b*epsilon[j]*((d_t)^(1/2))))*y[j-1]#根据公式算得每个时刻标的资产的价格
}
if(y[t]<K)
p[i]=0#到期日的价格小于行权价格则不行权,则价值为0
else
p[i]=(y[t]-K)/((1+r)^(T/365))#行权时的价值
}
price=rep(NA,100)
price[s]=mean(p)#对所有价值的平均值就是欧式期权的价格
}
windows()
plot(r,price)
}


雷达卡


京公网安备 11010802022788号







