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.