2

我正在尝试构建一个 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 矩阵中了吗?有什么我做错了吗

非常感谢

4

1 回答 1

3

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

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

  • 你必须转置矩阵。外部列表的 len() 必须等于罢工次数,内部列表的 len() 必须等于到期次数。
  • 您使用的今天日期晚于大多数到期日(可能是上面的错字,或者复制/粘贴出错了?)。无论如何,构造函数将引发异常,因此您必须以一种或另一种方式修复您的日期。此外,您可能希望设置Settings.instance().evaluationDate为今天的日期。
于 2012-05-09T09:55:03.113 回答