在python中构建一个简单的BlackVarianceSurface

时间:2012-05-09 05:53:24

标签: python quantlib quantlib-swig

我正在尝试构建一个BlackVarianceSurface,以便我可以将插值结果与我的比较。我做的是

todaydate = Date(1, January, 2010) 
maturity=[]
for i in range(24):
  maturity.append(Date(1, January, 2010)+Period(i, Months))

k = range(10, 90, 10)
vol = abs(random.randn(24, 8)).transpose().tolist()

volsurf = BlackVarianceSurface(todaydate, TARGET(), maturity, k, vol, Actual365Fixed())

我正在使用numpy矩阵。是否包含在quantlib Matrix中?有什么我做错了吗

非常感谢

1 个答案:

答案 0 :(得分:2)

不幸的是,QuantLib包装器不会使用numpy矩阵。在将它们传递给类构造函数之前,您必须将它们转换为简单的列表列表。

我在尝试您的代码时遇到的另外几个问题:

  • 你必须转置矩阵。外部列表的len()必须等于罢工次数,而内部列表中的len()必须等于到期次数。
  • 你使用的是今天的日期,这个日期晚于大多数到期日(可能是上面的拼写错误,或者复制/粘贴错误了吗?)。无论如何,构造函数将引发异常,因此您必须以某种方式修复日期。此外,您可能希望将Settings.instance().evaluationDate设置为今天的日期。