Python Quantlib: как бороться с RuntimeError 'addFixing (дата, значение)'

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('Предоставлено как минимум одно неверное исправление: понедельник, 6 мая 2019 г., 0,015491',).

Эта дата взята из «hist_rates_dict», где «ключ» — это даты, а «значения» — это ставки. Как быть с этим исключением. Заранее спасибо.


person Akash    schedule 26.01.2020    source источник
comment
есть ли решение?   -  person Akash    schedule 27.01.2020
comment
Предоставьте минимальный воспроизводимый пример, а также полное сообщение об ошибке.   -  person AMC    schedule 26.03.2020


Ответы (1)


ql.AUDLibor, вероятно, не тот индекс, который вы ищете. Это индекс BBA LIBOR, который был прекращен в 2013 году. Он был основан на лондонском календаре...

>>> import QuantLib as ql
>>> libor = ql.AUDLibor(ql.Period(3,ql.Months))
>>> print(libor.fixingCalendar())
London stock exchange calendar

...и 6 мая 2019 года в Великобритании выходной день...

>>> print(ql.UnitedKingdom().isBusinessDay(ql.Date(6, ql.May, 2019)))
False

...так что это не была бы действительная дата фиксации AUD LIBOR, если бы она все еще была действительна.

>>> libor.isValidFixingDate(ql.Date(6, ql.May, 2019))
False

Вероятно, вы пытаетесь загрузить исправление для какого-то другого индекса AUD, который заменил BBA LIBOR и который не предоставляется библиотекой как собственный класс. Как только вы разберетесь с его соглашениями (такими как исправление календаря и тому подобное), вы можете создать его как экземпляр универсального класса Ibor.

person Luigi Ballabio    schedule 27.01.2020
comment
Спасибо. Очень вдумчивый. Пытаюсь получить BBR Libor. - person Akash; 27.01.2020