Python

使用/從給定的索引固定計算 QuantLib IborCoupon

  • March 26, 2019

在給定的 3M Euribor 指數定價情況下,如何使用 QuantLib 計算 3M Euribor 指數上浮動利率 IborCoupon 的票面金額?

如果我嘗試以下 Python 程式碼:

from QuantLib import *
index = Euribor(Period(3, Months))
start = DateParser_parseISO("2019-02-22")
end = DateParser_parseISO("2019-05-22")
coupon = IborCoupon(end, 1.0, start, end, 2, index)
fixDate = coupon.fixingDate()
index.addFixing(fixDate, 0.04)
print coupon.amount()

我得到錯誤pricer not set

根據我的理解,我想知道錯誤原因不需要定價,因為相關的修復已經給出。結果應該是大約 0.01。

查看該方法的 (c++) 原始碼amount()或更確切地說是該rate()方法,我可以看到在每次呼叫時都會檢查定價器的存在。

因此,我認為我的程式碼是錯誤的方法。

目前的實現在檢查優惠券是否已經固定之前委託給定價者;不僅如此,它還要求指數具有有效的預測期限結構。不過,您也沒有錯:我可以看到人們期望呼叫如何工作。我建議你在 GitHub 上打開一個問題(在https://github.com/lbalabio/QuantLib/issues)並建議將其作為可用性改進。

同時,您可以解決此問題。IBOR券的預設定價器不需要額外的參數,您可以通過添加設置一個:

coupon.setPricer(BlackIborCouponPricer())

創建優惠券後。順便說一句,如果您使用IborLeg創建一系列優惠券而不是創建單個優惠券,並且如果優惠券沒有上限或下限(這需要通過波動性),IborLeg將為每個優惠券設置一個預設定價器,以便您不必。

至於預測曲線,最簡單的方法是將索引創建為:

dummy_curve = FlatForward(0, NullCalendar(), 0.0, Actual365Fixed())
index = Euribor(Period(3, Months), YieldTermStructureHandle(dummy_curve))

但如果你有一個實際的 Euribor 曲線,我建議你改用那個。這樣,您就不會冒指數使用虛擬曲線進行預測的風險,以防萬一您滑倒並要求未來修復。

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