2 votos

Quantlib Bond PV01 de Tenor

Habiendo construido un objeto de bonos a tipo fijo, y viendo aquí y aquí En el caso de los bonos, ¿hay alguna forma de obtener el impacto del VAN de un bono revalorizado por tramo/tenor de la curva al contado en lugar de obtener una cifra simple de VAN? El objetivo de esto sería tener una línea de base para aplicar un modelo simple de Valor en Riesgo a una cartera de bonos, en la que los factores clave de riesgo serían los -PV01 cifras por tenor.

3voto

Chris Mc Puntos 31

Hay una manera, aunque tendrás que codificar la lógica. Supongo que quieres el DV01 del tenor (cambio del valor de mercado para un cambio de 1 pb en el tipo de mercado para un tenor determinado) y no el PV01 (valor actual de 1 pb).

Además, ten en cuenta la advertencia de Luigi sobre la interpolación entre los puntos del tenor de la curva en uno de los posts que has mencionado.

import QuantLib as ql
import matplotlib.pyplot as plt

today = ql.Date().todaysDate()
ql.Settings.instance().evaluationDate = today
yts = ql.YieldTermStructureHandle(
    ql.FlatForward(today, 0.01, ql.Actual365Fixed())
)

tenors = (1,2,3,4,5,6,7)
quotes = [ql.SimpleQuote(0.00) for n in tenors]
spreads = [ql.QuoteHandle(quote) for quote in quotes]
dates = [today + ql.Period(y, ql.Years) for y in tenors]

spreadedYts = ql.YieldTermStructureHandle(
    ql.SpreadedLinearZeroInterpolatedTermStructure(yts, spreads, dates)
)
engine = ql.DiscountingBondEngine(spreadedYts)

bond = ql.FixedRateBond(2, ql.TARGET(), 1e6, today, today + ql.Period(5, ql.Years), ql.Period('1Y'), [0.01], ql.ActualActual())
bond.setPricingEngine(engine)

npv = bond.NPV()
key_risk = []
for quote in quotes:
    quote.setValue(0.0001)
    key_risk.append( npv - bond.NPV() )
    quote.setValue(0.0)

plt.bar(tenors, key_risk)

Lo que daría como resultado:

enter image description here

También se puede calcular como la media de la variación del valor de mercado para un cambio al alza y otro a la baja

0 votos

¡Muchas gracias, David!

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