3 votos

Curva de descuento en Quantlib/Python

Estoy usando Python 2.7.12 con el paquete QuantLib. Estoy tratando de fijar el precio de los bonos fijos. Entiendo cómo crear un objeto de bono. Cómo obtener la curva de descuento "correcta" es una especie de problema. Asumiendo una estructura de plazos no plana, he visto la función ql.ZeroCurve:

spotCurve = ql.ZeroCurve(spotDates, spotRates, dayCount, calendar, interpolation, compounding, compoundingFrequency)
spotCurveHandle = ql.YieldTermStructureHandle(spotCurve)
bondEngine = ql.DiscountingBondEngine(spotCurveHandle)
fixedRateBond.setPricingEngine(bondEngine)

Supongo que las entradas son los vencimientos y los rendimientos de los ceros con el mismo "riesgo" que el bono, que estamos viendo.

¿Cómo puedo especificar la curva de descuento directamente, por ejemplo, cuando tengo los factores de descuento publicados por autoridades como la FED o el BCE?

Gracias de antemano

5voto

Brad Tutterow Puntos 5628

Puede utilizar el DiscountCurve que toma una lista de fechas y una lista de factores de descuento correspondientes.

El exportado por defecto en el módulo de Python utiliza una interpolación logarítmica-lineal entre los descuentos dados; utilizar una interpolación diferente requeriría añadir una línea en la interfaz SWIG correspondiente y recompilar el módulo.

0 votos

Gracias por su respuesta. Lo he intentado de la siguiente manera: discDates = [ql.Date(15, 1, 2015), ql.Date(15, 1, 2016), ql.Date(16, 1, 2017)] discRates = [1, 0.9, 0.8] discountCurve = ql.DiscountCurve(discDates, discRates, dayCount) .... bondEngine = ql.DiscountingBondEngine(spotCurveHandle) fixedRateBond.setPricingEngine(bondEngine) con un bono que paga 6 el 15 de enero de 2015, 2016 y 106 en 2017. Esperaría un VAN de 96,2 pero la función fixedRateBond.NPV me da 90,2. ¿Mi expectativa no es correcta o estoy codificando mal?

0 votos

Supongo que el código de precios considera el primer cupón como ya pagado y lo excluye del VAN. ¿Qué fecha de evaluación has establecido? ¿Cómo has inicializado el bono?

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