Matlab中的隐含波动率 | 您所在的位置:网站首页 › matlab隐含波动率的计算程序 › Matlab中的隐含波动率 |
牛顿Rhapson方法不适用于隐含波动率很好地工作。你应该使用二分法(不确定它在Matlab中如何使用)。它在http://en.wikipedia.org/wiki/Bisection_method中描述。为了完整性,它的工作原理如下: 1)选择任意高(不可能)波动率,如高= 200%/年。 2)选择尽可能低的波动率(低位= 0%)。 2a)计算0%波动率下的期权溢价,如果实际溢价低于此值,则意味着负波动率(这是“不可能的”)。 3)虽然没有发现隐含波动率: 3.1)如果“高”和“低”非常接近(例如相当于多达5位数),无论是人是你的隐含波动率。如果不是... 3.2)计算“高”和“低”之间的平均值。 avg =(高+低)/ 2 3.3)计算平均波动率的期权溢价。 3.4)如果实际溢价高于p(avg),则min = avg,因为隐含波动率必须介于avg和max之间。 3.4a)如果实际保费低于p(avg),则max = avg,因为隐含卷必须位于min和avg之间。 对分的主要缺点是您必须选择一个最大值,所以您的函数不会发现隐含波动率大于此值。但是,像200%/年这样的东西应该足以满足现实世界的使用。 我使用的又一方法更像牛顿法,因此不限于范围,因为维加是衍生物,但具有“线性化”修复避免狩猎和失败由于小拉斯维加斯: def implied_volatility(type, premium, S, K, r, s_dummy, t): if S 9999%/year return 100.0 return 0.0不过,我认为对分是你最好的选择。 |
CopyRight 2018-2019 实验室设备网 版权所有 |