全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 金融工程(数量金融)与金融衍生品
22034 17
2012-01-06
各位大仙小弟遇到困难,请帮帮我啊,就是用BS模型直接计算和分步计算结果差距很大——
EXCEL中BS模型的VBA代码如下
Function BSOptionPrice(S, K, T, R, Div, Vol, Call_Put)
    d1 = (Log(S / K) + (R - Div + Vol ^ 2 / 2) * T) / (Vol * Sqrt(T))
    d2 = d1 - Vol * Sqrt(T)
    If Call_Put <> 1 Then Call_Put = -1
    x = Call_Put
    Nd1 = Application.NormSDist(x * d1)
    Nd2 = Application.NormSDist(x * d2)
    BSOptionPrice = (S * Exp(-Div * T) * Nd1 - K * Exp(-R * T) * Nd2) * x
End Function
计算结果与分步骤依次计算      
S/K——LOG(S/K)——R - Div + Vol ^ 2 /  2) * T ——(Vol * Sqr(T)) ——d1——d2——ND1——ND2——C call  
差距比较大,问题出在哪里呢?
具体来说是
       标的价格  288778.3    执行价  251546.6    时间  20.0     利率  4.3%    连续股利  5%    波动性  15%
用VBA的BS模型计算结果为27829
但是分步计算,结果是27647,因为分数位数足够多,应该不存在这方面问题啊。


求助,求助!


求各位高手的帮助,谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-1-6 21:48:01
excel一能解决这么复杂的问题吗?
二维码

扫码加我 拉你入群

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

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

2012-1-6 21:51:54
Jasonluo 发表于 2012-1-6 21:48
excel一能解决这么复杂的问题吗?
能啊,这个程序看起来不是那么复杂,就很奇怪为什么误差会这么大
二维码

扫码加我 拉你入群

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

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

2012-1-6 22:19:15
Capture3.JPG Capture1.JPG Capture.JPG 我用excel和matlab都算了一下,直接调用函数和分部自己算都是27829,不知道你哪里出问题了。我截了几张图你看看参考一下吧。
二维码

扫码加我 拉你入群

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

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

2012-1-6 22:23:15
Chemist_MZ 发表于 2012-1-6 22:19
我用excel和matlab都算了一下,直接调用函数和分部自己算都是27829,不知道你哪里出问题了。我截了几张图你 ...
高手啊,十分感谢啊,我就很奇怪我这里哪里会错呢,整整找了一下午问题,没找出来
二维码

扫码加我 拉你入群

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

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

2012-1-6 22:23:23
Chemist_MZ 发表于 2012-1-6 22:19
我用excel和matlab都算了一下,直接调用函数和分部自己算都是27829,不知道你哪里出问题了。我截了几张图你 ...
高手啊,十分感谢啊,我就很奇怪我这里哪里会错呢,整整找了一下午问题,没找出来
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群