1

When building an ois curve in quantlib using dayCounter = ql.Actual365Fixed(ql.Actual365Fixed.NoLeap)

The index is worth 0 for every 28 feb of every leap year.

import QuantLib as ql

YieldTS = ql.RelinkableYieldTermStructureHandle()
index = ql.Estr(YieldTS)

helpers = []
for p,q in zip(['1M','50Y'], [0.02,0.02]):
    helperitem = ql.OISRateHelper(0, 
                                  ql.Period(p), 
                                  ql.QuoteHandle(ql.SimpleQuote(q)), 
                                  index)
    helpers.append(helperitem)

dayCounter = ql.Actual365Fixed(ql.Actual365Fixed.NoLeap)

curve = ql.PiecewiseKrugerZero(0, index.fixingCalendar(), helpers, dayCounter)
YieldTS.linkTo(curve)

index.fixing(ql.Date(28,2,2024))

This issue does not occur when doing it on a euribor index or using any other day count

import QuantLib as ql

YieldTS = ql.RelinkableYieldTermStructureHandle()

euribor = ql.Euribor(ql.Period('6M'), YieldTS)
helpers = []
for p,q in zip([1,5], [0.02,0.02]):
    helperitem = ql.FraRateHelper(
                                    ql.QuoteHandle(ql.SimpleQuote(q)),
                                    p, 
                                    euribor)
    helpers.append(helperitem)

curve = ql.PiecewiseKrugerZero(0, euribor.fixingCalendar(), helpers, dayCounter)   
YieldTS.linkTo(curve)
euribor.fixing(ql.Date(28,2,2024))

that code returns 0.02 as expected

Am i doing something wrong?

vpvp
  • 11
  • 2

0 Answers0