全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4192 9
2012-11-29
悬赏 80 个论坛币 已解决
欧式看涨期权,定价公式就是B-S,模拟100次;各项初始input自己定义即可。
请大牛给出算法流程,如有代码更好;时间复杂度等算法效率没有要求。

最佳答案

self. 查看完整内容

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]
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-11-29 23:42:41
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)
}
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-11-30 11:44:15
欧式看涨期权?
不用二叉树么?B-S和 二叉树 模型在处理 欧式期权时是一会事吧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-11-30 14:30:43
showbox33 发表于 2012-11-30 11:44
欧式看涨期权?
不用二叉树么?B-S和 二叉树 模型在处理 欧式期权时是一会事吧
结果相同,算法不同
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-1 09:31:57
//Monte Carlo valuation for a European call
S = 230;
E = 210;
r = 0.04545;
sigma = 0.25;
T = 0.5;
M = 100000;

set.seed(100)
Svals = S*exp((r-0.5*sigma^2)*T + sigma*sqrt(T)*rnorm(M,0,1));
Pvals = exp(-r*T)*pmax(Svals-E,0);
Pmean = mean(Pvals)
Pmean
#[1]  30.75251
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-1 10:52:03
epoh 发表于 2012-12-1 09:31
//Monte Carlo valuation for a European call
S = 230;
E = 210;
谢谢帮助,若把时间t=1分为50步计算,并模拟1000次;也就是加入循环结构之后怎样改进这个程序?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群