假定由市面上有的有限数量的 期权报价反推出相应的隐含波动率,怎样才能拟合出一个无套利波动率曲面呢? 大致的思路是怎样的? 任何思路, 参考资料都欢迎最近我正好在做这个,目前还没拟合出一个特别好的曲面(能尽可能match 市场上listed option price) 总的来说,这是个非常困难的工程(如果你不是在一个大型金融机构,有多个相关经验的人支持的话) 目前比较简单的solution是local vol或者heston vol。 简单来说,heston vol的难点在于optimization那一步涉及数值积分,而如果你要fit整个surface,你的目标函数是一个sum of error squares,每一个option对应一个expiry和strike,需要单独计算一次数值积分,给定一组参数,就需要计算n次数值积分(n等于surface上observed option prices)。这样优化下来最后会有非常多局部解。。而另一个难点在于优化的参数太多,梯度很难计算。。我calibrate时基本无法拿到make sense的参数 Local vol的问题在于,首先需要smooth implied vol或者price surface(这里已经有一万篇papers和methodologies了,主流的是一种regularized spline,还有的带有arbitrage-free 性质,例如Fengler的),而且在smoothing前往往还有个pre-smoothing步骤。smoothing非常关键,因为最后的local vol对smoothing很敏感。个人感觉这一步清洗数据也非常关键,拿掉那些明显偏离arbirage free的点。而我做quick implementatio时基本是把整个surface扔进algo,这可能是造成我的IV surface一直不太好的原因(smooth以后离market IV很远)值得一提的是,最近看了bloomberg文档,他们用的log-normal mixture model (Brigo 2002),还没功夫去研究。 拿到smoothed IV surface以后就可以用Dupire公式计算local vol了 我这里只是提出了一些implementation的困难,还望大神指教
貌似你的问题只是smooth implied vol surface,那看这篇就好(Fengler)
http://www.ssoar.info/ssoar/bits ... lied.pdf?sequence=1 我们自己有开发波动率曲面调试工具,分享一下心得:
- 只考虑真正有人Trade的档期,太远期的不考虑,数据太少,实用度太低;
- 把能拿的数据都拿下来;
- 洗好数据;
- 档期间(调整完分红后)去Interpolate缺失数据效果要优于同档期内不同执行价Interpolate
- 实在没把握就把Bid/Ask拉宽点
Interpolate的话可以考虑Cubic Spline(档期间适用)和SVI(同档期内适用)。
如果只是做Plain Vanilla Call/Put(不带Barrier、Knockout、Knockin之类的)上述的就够了,比较exotic的考虑用local stochastic vol来确保整个曲面都是arb free。
是哪种类型的波动率曲面? Equity 可以参考Jim Gatheral的SSVI/SVI
https://arxiv.org/pdf/1204.0646.pdf
需要注意的是不同的产品线需要的parameterization不一样,见Gatheral 的5.1。
去看jim gatheral的书 刚刚写了一篇关于隐含波动率曲面的文章,希望有所帮助。
Volatility Surface - Keep Runningkeeprunning.sg 我们自己有开发波动率曲面调试工具,分享一下心得:
- 只考虑真正有人Trade的档期,太远期的不考虑,数据太少,实用度太低;
- 把能拿的数据都拿下来;
- 洗好数据;
- 档期间(调整完分红后)去Interpolate缺失数据效果要优于同档期内不同执行价Interpolate
- 实在没把握就把Bid/Ask拉宽点
Interpolate的话可以考虑Cubic Spline(档期间适用)和SVI(同档期内适用)。
如果只是做Plain Vanilla Call/Put(不带Barrier、Knockout、Knockin之类的)上述的就够了,比较exotic的考虑用local stochastic vol来确保整个曲面都是arb free。
是哪种类型的波动率曲面? Equity 可以参考Jim Gatheral的SSVI/SVI
https://arxiv.org/pdf/1204.0646.pdf
需要注意的是不同的产品线需要的parameterization不一样,见Gatheral 的5.1。
去看jim gatheral的书 刚刚写了一篇关于隐含波动率曲面的文章,希望有所帮助。
Volatility Surface - Keep Running
|