Я создаю PiecewiseCubicZerocurve и PiecewiseLogCubicDiscount и получаю нулевую ставку на 1 год по обеим кривым. Я ожидаю, что моя годовая нулевая ставка будет равна моей годовой номинальной ставке.
У меня два вопроса:
- Почему нулевая ставка отличается для PiecewiseCubicZerocurve и
PiecewiseLogCubicDiscount
- Почему годовая нулевая ставка не равна годовой номинальной ставке?
Я попытался поиграть с количеством рабочих дней и соглашением. Но это до сих пор не решило проблему.
from QuantLib import *
today = Date(29, 1, 2019)
Settings.instance().evaluationDate = today
convention = Actual365Fixed()
helpers = [OISRateHelper(2, Period(*tenor),
QuoteHandle(SimpleQuote(rate)), Eonia())
for rate, tenor in [(0.001, (1, Years)), (0.002, (2,Years))]]
curve1 = PiecewiseCubicZero(0, TARGET(), helpers, convention)
curve2 = PiecewiseLogCubicDiscount(0, TARGET(), helpers, convention)
print('discount factor (zero)', curve1.discount(today + Period(1, Years)))
print('discount factor (discount)', curve2.discount(today + Period(1, Years)))
print('expected discount factor', 1/(1+0.001))
print('zero (zero)', curve1.zeroRate(today + Period(1, Years), convention, Annual))
print('zero (discount)', curve2.zeroRate(today + Period(1, Years), convention, Annual))
print('expected zero 0.1%')
Вывод выписок:
discount factor (zero) 0.9989871380405977
discount factor (discount) 0.9989954702856564
expected discount factor 0.9990009990009991
zero (zero) 0.101389 % Actual/365 (Fixed) Annual compounding
zero (discount) 0.100554 % Actual/365 (Fixed) Annual compounding
expected zero 0.1%