我试图使用Quantlib(v1.2)SWIG包装器在python中为一个非常基本的浮动利率债券定价.我修改了文档中包含的示例.
我的债券有4年的到期期限.libor设定为10%,债券的差价为0.我的问题是,如果我以10%的比率打折,为什么债券的PV不是100?我的值为99.54.
谢谢!
from QuantLib import *
frequency_enum, settle_date = 4, Date(5, 1, 2010)
maturity_date = Date(5, 1, 2014)
face_amount = 100.0
settlement_days = 0
fixing_days = 0
calendar = NullCalendar()
settle_date = calendar.adjust(settle_date)
todays_date = calendar.advance(settle_date, -fixing_days, Days)
Settings.instance().evaluationDate = todays_date
rate = 10.0 / 100.0
flat_forward = FlatForward(settle_date,
rate,
Thirty360(),
Compounded,
frequency_enum)
discounting_term_structure = RelinkableYieldTermStructureHandle(flat_forward)
index_term_structure = RelinkableYieldTermStructureHandle(flat_forward)
index = USDLibor(Period(3, Months), index_term_structure)
schedule = Schedule(settle_date,
maturity_date, Period(frequency_enum),
NullCalendar(),
Unadjusted, Unadjusted,
DateGeneration.Forward, False)
floating_bond = FloatingRateBond(settlement_days,
face_amount,
schedule, …Run Code Online (Sandbox Code Playgroud) 我有一个以quantlib的日期格式定义的日期列表。如何将它们转换为日期时间格式。我要问的原因是,我想绘制它,并且收到以下错误:
TypeError:float()参数必须是字符串或数字,而不是'Date'
在执行以下操作时:
plt.plot(dates,rates, linewidth=2.0) # Without date plotting works out.
Run Code Online (Sandbox Code Playgroud)
日期如下所示:
[
Date(11,12,2012),
Date(12,12,2012),
Date(13,12,2012),
Date(14,12,2012),
Date(15,12,2012),
Date(16,12,2012),
Date(17,12,2012),
Date(18,12,2012),
Date(19,12,2012),
Date(20,12,2012)
]
Run Code Online (Sandbox Code Playgroud)