2012-05-09 6 views
0

私は補間結果を私と比較できるようにBlackVarianceSurfaceを構築しようとしています。私がしたことは単純なBlackVarianceSurfaceをPythonで構築する

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の行列に包まれていますか?私は残念ながら間違っ

おかげでたくさん

答えて

1

をやっているものがあり、QuantLibラッパーはnumpyの行列を取ることはありません。それらをクラスコンストラクタに渡す前にリストの単純なリストに変換する必要があります。

あなたのコードをしようとしているときに、私が出会った問題のもう一つのカップルは:

  • あなたは行列を転置する必要があります。外側のリストのlen()はストライクの数と等しくなければならず、内側のリストの長さは満期の数と等しくなければならない。
  • 今日の日付はほとんどの満期よりも遅れています(上記の誤字、またはコピー/ペーストが間違っていますか?)。とにかく、コンストラクタは例外を発生させるので、あなたはどちらかの方法で日付を修正する必要があります。また、Settings.instance().evaluationDateを今日の日付に設定することもできます。
+0

ありがとう、Luigi。アサーション・システムは非常に包括的です。それは私が得るときまでバージョンを修正することを通して私を導く RuntimeError:日付は一意にソートされなければならない! しかし、成熟度はソートされユニークであるように見えます – archlight

+0

基準日を最初の満期日より早く変更すると、それは機能します。 – archlight

関連する問題