2 votos

QuantLib: Cómo crear una curva de rendimiento utilizando futuros de 3M - Python

Necesito crear una curva de rendimiento con futuros a 3 meses, utilizando un spline cúbico si es posible.

Usando, por ejemplo, el Euríbor a 3 meses, ¿cómo puedo crear la curva de rendimiento utilizando Python?

Tengo un vector de fechas y un vector de precios de futuros.

Descubrí sobre la biblioteca QuantLib, y más específicamente, el ql.PiecewiseCubicZero. Sin embargo, hay una gran falta de documentación sobre cómo usarlo, y aún más, con futuros.

¡Cualquier ayuda sería muy apreciada!

3voto

Brad Tutterow Puntos 5628

2voto

dotnetcoder Puntos 1262

Si deseas una respuesta realmente sencilla, puedes hacer lo siguiente:

  1. Convierte tus precios futuros en tasas, por ejemplo $100 - precio = tasa$.

  2. Construye una LineCurve en rateslib:

    from rateslib import * curve = LineCurve( nodes={ dt(2023, 9, 21): 3.92, dt(2023, 12, 20): 4.01, dt(2024, 3, 20): 3.96, dt(2024, 6, 20): 3.83, dt(2024, 9, 20): 3.62, dt(2024, 12, 20): 3.42, dt(2025, 3, 20): 3.25, }, t=[ dt(2023, 9, 21), dt(2023, 9, 21), dt(2023, 9, 21), dt(2023, 9, 21), dt(2023, 12, 20), dt(2024, 3, 20), dt(2024, 6, 20), dt(2024, 9, 20), dt(2024, 12, 20), dt(2025, 3, 20), dt(2025, 3, 20), dt(2025, 3, 20), dt(2025, 3, 20), ] ) curve.plot()

ingresa descripción de la imagen aquí

El parámetro t es la secuencia de nudos que se necesita para instruir una spline cúbica. Puedes leer sobre esto en la documentación de rateslib

La tasa de la curva el 18 de enero de 2024

>>> curve[dt(2024, 1, 18)]
4.008222134667067

La curva que se produce es una curva de futuros y no tiene en cuenta los ajustes de convexidad que generalmente son creados por la presencia de un mercado de swaps.

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