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?