你问了两个不同的问题:
1. 合约切换造成的jump,可以用前后两个合约的加权平均来算。英文叫做Generic Roll。以彭博终端为例,其中提供了很多可供用户选择的加权方式,例如通过剩余到期日加权(Relative to Expriation Average)。这样得到的其实就是连续合约(Generic contract),可以有效的解决jump的问题。
2. 只有历史数据而没有期权数据也是可以得到波动率曲面的。这种波动率叫做Breakeven volatility。具体的做法大约如下:
在BS模型的框架下:
1) 选择几个pillar point(你认为构建波动率曲面重要的点),例如1M, 2M, 3M, 6M, 1Y, 2Y, 3Y..., 90%, 100%, 110% moneyness.
2) 对于每个点,构建一个虚拟的价外期权,x(Ki,Ti)
3) 给定一个sigma_i,构建delta中性的组合,利用delta对冲+标的过去Ti长度的历史数据,计算从0到Ti的累计的对冲收益。
4) 令累计对冲收益0,反算出当时的sigma_i,这就是这个点的breakeven vol
5) 有了这些pillar point再用比如Heston模型fit出整个曲面就行了。
至于历史数据为什么也能算出波动率曲面,原因是历史数据扫过的标的价格范围其实可以完整得反映出标的真实的历史分布,从而算出对应的波动率微笑,如下图:
|