我遵循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
而不是array
中。你知道吗
例如在SPX
中,我们在不同的expiration
处有不同的strike
增量。所以一些strikes
在一个到期日是空的,而不是另一个到期日。我意识到我可以通过使matrix
单元格始终具有数值来强制这种情况,但是我假设在给定的strike/expiry
处插入一个0是个坏主意。或者,强制所有expiry
到strikes
之间的expiry
的最小公分母会抛出大量数据。你知道吗
如果您拥有的volatility
引号不是正方形,并且在构建ql.Matrix
交给BlackVarianceSurface
时不想抛出数据,会发生什么情况?你知道吗
不幸的是,没有现成的解决方案。正如您所说的,用0填充缺少的单元格是个坏主意;但是通过手动插入缺少的值来填充它们应该是可行的。方法可能取决于你的数据有多稀疏。。。你知道吗
相关问题 更多 >
编程相关推荐