从收益曲线ycHandle
(一个YieldTermStructureHandle
对象)开始,我想使用ZeroSpreadedTermStructure
方法添加一个常量价差。我做了以下工作(在Python中使用QuantLib 1.8):
shift = 0
spread = ql.SimpleQuote(shift)
shiftedCurve = ql.ZeroSpreadedTermStructure(ycHandle,ql.QuoteHandle(spread))
def plotCurve(ycHandle, maxTen=25, lab=''):
# function taking a yield curve handle and plotting it
call = ql.TARGET()
tv = [] # tenor vector
rv = [] # rate vector
for _ in range(12*1,12*maxTen):
dt = call.advance(ql.Date.todaysDate(), 2, ql.Days) + 30*_
tv.append(dc.yearFraction(today,dt))
rv.append(ycHandle.zeroRate(dt,dc,ql.Compounded,ql.Annual).rate())
plt.plot(tv,rv, label=lab)
plt.figure()
plotCurve(ycHandle)
plotCurve(shiftedCurve)
不幸的是,两条曲线没有重叠,尽管我已经将ycHandle
移动了0。我怀疑这可能与复合有关,曾试图将所有更改为ql.Annual
或{
目前没有回答
相关问题 更多 >
编程相关推荐