Python

了解 quantlib 中的 DiscountCurve

  • April 9, 2018

我想使用 quantlib 在 python 中創建一個 TermStructureHandle 句柄。我使用DiscountCurve該類並輸入日期和折扣因素列表,如下所示:

dates = [ql.Date(9,4,2018), ql.Date(9,4,2019), ql.Date(9,4,2020)] 
discfactors = [1, 0.9, 0.8] 
dayCount = ql.ActualActual() 
disc_curve = ql.DiscountCurve(dates, discfactors, dayCount) 
term_structure = ql.YieldTermStructureHandle(disc_curve) 

從這個期限結構得出的兩年貼現因子應該是 0.8 但實際上我得到了

print(abs(discfactors[2]-term_strcuture.discount(2)))
0.00018797232855949364

這是什麼原因?當我插入更長的日期列表和相應的折扣因素時,差異會不斷增加。

請注意,ql.Date(9,4,2018) 和 ql.Date(9,4,2020) 之間的 DCF在 Act/Act 下不是2,而是 2.0019987。

所以你可以使用

 term_strcuture.discount(2.0019987)

或將您的 DayCountConvention 設置為 30/360,DCF 實際上是 2。

引用自:https://quant.stackexchange.com/questions/39191