1 votos

Problema con bond.bondYield Quantlib

Estoy teniendo problemas con un simple cálculo de rendimiento de bonos FixedRateBond utilizando QuantLib:

import QuantLib as ql

start = ql.Date(9,9,2020)
end = ql.Date(23,7,2021)
period = ql.Period(int(2))
coupon = 2.75
face = 100
ql.Settings.instance().evaluationDate = ql.Date(31,5,2021)
given = 102.23

schedule = ql.Schedule(start, end,
                       period, ql.UnitedStates(),
                       ql.Unadjusted, ql.Unadjusted,
                       ql.DateGeneration.Backward, True)

day_counter = ql.Thirty360()

bond = ql.FixedRateBond(1, face, schedule, [coupon/100], day_counter)

bond_price = bond.bondYield(given, day_counter, ql.Compounded, 2)

El código anterior devuelve -0,12041547246813772 como rendimiento del bono. Sé que el rendimiento es de alrededor de 0,00190424005054490 ya que estoy replicando un ejercicio realizado previamente en matlab.

El programa parece estar fallando ya que, cuando llamo a bond.cashflows() Obtengo tres flujos de caja que suman alrededor de 102,391304, que es mayor que el precio dado y, por lo tanto, los factores de descuento deberían ser menores que 1, y el rendimiento no debería ser negativo.

Gracias de antemano por su ayuda.

2voto

Chris Mc Puntos 31

En primer lugar, no creo que el cupón sea correcto. Usted tiene coupon = 0.0275 pero luego se introduce el parámetro como [coupon/100] . Serían 2,75 puntos básicos.

Además, ¿podría ser 102,23 el precio sucio? QuantLib espera el precio limpio en el .bondYield método...

En cualquier caso, el rendimiento del -12% parece correcto con esos insumos, porque como aproximación rápida, el precio sería:

(100 + 2.75 * 53/360) / (1+ (-0.12)*53/360) = 102.21

0voto

Dianne Puntos 46

Mi error fue con el ql.Settings.instance().evaluationDate = ql.Date(31,5,2021) debe establecerse como ql.Settings.instance().evaluationDate = start para obtener un cálculo de rendimiento similar al de otros motores.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X