程式
QuantlIb:如何在 OIS 利率助手 Quantlib 中使用期限代替期限?
我想知道我是否可以使用我的費率數據框中的到期日期來生成 OISratehelpers。在以下程式碼中,OIS 利率助手使用“期限”,我想用到期日替換這些期限。對於“如果”條件,可以使用期限,但在計算中我想使用到期日。我在這部分需要幫助(ql.OISRateHelper(0, ql.Period(tenor), ql.QuoteHandle(ql.SimpleQuote(rate)), index)。我該如何處理到期日?
rates_df = [Curve date maturity tenor rates FEDFUNDS 1/10/2022 1/11/2022 1D -0.07 FEDFUNDS 1/10/2022 1/12/2022 2D -0.75 FEDFUNDS 1/10/2022 1/19/2022 1W -0.654 FEDFUNDS 1/10/2022 1/26/2022 2W -0.675 FEDFUNDS 1/10/2022 2/2/2022 3W -0.432 FEDFUNDS 1/10/2022 2/14/2022 1M -0.564] index = 'FEDFUNDS' helpers = [] for idx, row in rates_df.iterrows(): rate = row["rates"] / 100 tenor = row.tenor if tenor == "1D": helpers.append(ql.DepositRateHelper(rate, index)) elif tenor == '2D': print("2D") else: helpers.append( ql.OISRateHelper( 0, ql.Period(tenor), ql.QuoteHandle(ql.SimpleQuote(rate)), index ) )
改用
DatedOISRateHelper
類。它需要明確的開始和結束日期。(這兩種情況——期限和顯式日期——需要在 C++ 中以不同的方式實現,因此我們必須編寫兩個不同的類。)
似乎建構子堅持一個男高音。您或許可以嘗試轉換曲線的到期日和結算日/生效日之間的天數,然後從中創建一個 Period 對象。請看下面的例子:
settlement = ql.Date(10,1,2022) maturity = ql.Date(1,11,2022) calendar = ql.TARGET() calendar.businessDaysBetween(settlement,maturity) tenor = ql.Period(int(days_between),ql.Days)