Python Quantlib:如何处理 RuntimeError 'addFixing(date, value)'
Python Quantlib : How to deal with RuntimeError 'addFixing(date, value)'
for t_ccy in rate_dates.keys():
libor_base = ql.AUDLibor(ql.Period(3,ql.Months),ql.YieldTermStructureHandle(term_structure[t_ccy]))
libor_up = ql.AUDLibor(ql.Period(3,ql.Months),ql.YieldTermStructureHandle(term_structure_up[t_ccy]))
for key in hist_rates_dict.keys():
try:
libor_base.addFixing(key,hist_rates_dict[key])
libor_up.addFixing(key,hist_rates_dict[key])
except:
print("Following Exception in Schedule creation " +str (key))
print((sys.exc_info()))
RuntimeError('At least one invalid fixing provided: Monday May 6th, 2019, 0.015491',).
此日期来自 'hist_rates_dict',其中 'key' 是日期,'values' 是汇率。
如何处理这个异常。提前致谢。
ql.AUDLibor
可能不是您要查找的索引。那是 2013 年停用的 BBA LIBOR 指数。它基于伦敦日历...
>>> import QuantLib as ql
>>> libor = ql.AUDLibor(ql.Period(3,ql.Months))
>>> print(libor.fixingCalendar())
London stock exchange calendar
...2019 年 5 月 6 日是英国银行假日...
>>> print(ql.UnitedKingdom().isBusinessDay(ql.Date(6, ql.May, 2019)))
False
...所以它不会是 AUD LIBOR 的有效定价日期,如果它还有效的话。
>>> libor.isValidFixingDate(ql.Date(6, ql.May, 2019))
False
您可能正在尝试为替代 BBA LIBOR 的其他 AUD 指数加载修复,而图书馆并未将其作为自己的 class 提供。一旦弄清楚它的约定(例如固定日历等),您就可以将其创建为通用 Ibor
class.
的实例
for t_ccy in rate_dates.keys():
libor_base = ql.AUDLibor(ql.Period(3,ql.Months),ql.YieldTermStructureHandle(term_structure[t_ccy]))
libor_up = ql.AUDLibor(ql.Period(3,ql.Months),ql.YieldTermStructureHandle(term_structure_up[t_ccy]))
for key in hist_rates_dict.keys():
try:
libor_base.addFixing(key,hist_rates_dict[key])
libor_up.addFixing(key,hist_rates_dict[key])
except:
print("Following Exception in Schedule creation " +str (key))
print((sys.exc_info()))
RuntimeError('At least one invalid fixing provided: Monday May 6th, 2019, 0.015491',).
此日期来自 'hist_rates_dict',其中 'key' 是日期,'values' 是汇率。 如何处理这个异常。提前致谢。
ql.AUDLibor
可能不是您要查找的索引。那是 2013 年停用的 BBA LIBOR 指数。它基于伦敦日历...
>>> import QuantLib as ql
>>> libor = ql.AUDLibor(ql.Period(3,ql.Months))
>>> print(libor.fixingCalendar())
London stock exchange calendar
...2019 年 5 月 6 日是英国银行假日...
>>> print(ql.UnitedKingdom().isBusinessDay(ql.Date(6, ql.May, 2019)))
False
...所以它不会是 AUD LIBOR 的有效定价日期,如果它还有效的话。
>>> libor.isValidFixingDate(ql.Date(6, ql.May, 2019))
False
您可能正在尝试为替代 BBA LIBOR 的其他 AUD 指数加载修复,而图书馆并未将其作为自己的 class 提供。一旦弄清楚它的约定(例如固定日历等),您就可以将其创建为通用 Ibor
class.