BlackVarianceSurface的IV的锯齿状报价

时间:2018-02-12 17:46:08

标签: python quantlib

我正在关注this示例并尝试根据我的需要进行调整。

在代码部分:

implied_vols[i][j] = data[j][i]

implied_vols = ql.Matrix(len(strikes), len(expiration_dates))
for i in range(implied_vols.rows()):
    for j in range(implied_vols.columns()):
        implied_vols[i][j] = data[j][i]
  [1]: http://gouthamanbalaraman.com/blog/volatility-smile-heston-model-calibration-quantlib-python.html

这假定IV matrix对于给定的到期时具有所有对应的strikes。实际上,由于这个原因,[质量] quote通常存储在dictionary而不是array中。

例如,在SPX中,我们在不同的strike处有不同的expiration增量。所以有些strikes在一个到期时是空的,而不是另一个。我意识到我可以通过使matrix单元格始终具有数值来强制这种情况,但我假设在给定的strike/expiry处插入0是个坏主意。或者,强制所有expirystrikes之间的expiry的最小公分母会抛出大量数据。

如果volatility引号不是正方形,并且您在构建ql.Matrix以交给BlackVarianceSurface时不想丢弃数据,会发生什么?

1 个答案:

答案 0 :(得分:1)

不幸的是,没有现成的解决方案。正如你所说用0填充缺失的单元格是一个坏主意;但通过手动插补缺失值来填充它们应该有效。这样做的方式可能取决于您的数据有多稀疏......