Python

使用來自不同日期數據的數據引導 OIS 曲線

  • February 6, 2018

我在引導 JPY OIS 曲線時遇到以下問題。當擁有一組數據時,引導本身就可以工作,例如日期2017-02-09。我有我所有的儀器,正如所說的引導和接收 OIS 曲線。如果我將數據集擴展到第二個日期2017-02-10 ,我會將所有數據接收到我的引​​導程序中,這對錯誤消息毫無意義:

不止一種帶支柱的儀器 2017 年 2 月 10 日

由於如上所述的不同日期的數據,這導致相同的到期日。我以某種方式遍歷 fdates,但我不知道這在這種情況下如何工作。幫助將不勝感激。

import QuantLib as ql
import pandas as pd
import matplotlib.pyplot as plt

def Convert(Period):
   unit =[]
   if Period[-1:] == 'D':
       unit = ql.Days
   elif Period[-1:] == 'M':
       unit = ql.Months
   elif Period[-1:] == 'W':
       unit = ql.Weeks
   elif Period[-1:] == 'Y':
       unit = ql.Years
   period_object = ql.Period(int(Period[:-1]), unit)
   return period_object

date = ql.Date(9, ql.February, 2017)
ql.Settings.instance().evaluationDate = date

data = pd.read_csv('C:/Data_JPY_Playing.csv').fillna('')

data_selected = data[['fdate', 'ptype' ,'maturity','fixing','values']].to_records(index=False)  

Rate_Helper_Full_Disc = [] 

for fdate, ptype, maturity, fixing, values in data_selected:
   if row['ptype'] == 'Deposit':
       helper_disc = ql.DepositRateHelper(ql.QuoteHandle(ql.SimpleQuote(row['values']/100)),
                                          Convert(row['maturity']), 
                                          int(row['fixing']),
                                          ql.Japan(), 
                                          ql.ModifiedFollowing, 
                                          False, 
                                          ql.Actual365Fixed())

       Rate_Helper_Full_Disc.append(helper_disc) 

disc_curve = ql.PiecewiseCubicZero(date, Rate_Helper_Full_Disc, ql.Actual365Fixed())
disc_curve.enableExtrapolation()

曲線用於在給定交易日期進行計算(例如現金流折現)。為兩個不同的交易日期引導一條曲線是沒有意義的。使用第一組數據,您應該引導 2017-02-09 交易日期的 OIS 曲線,使用第二組數據,您應該引導 2017-02-10 交易日期的 OIS 曲線。

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