2 votos

Determinación del precio de un acuerdo de tipos de interés a plazo con QuantLib Python

¿Puede alguien ayudar con la fijación de precios del siguiente acuerdo de tipos de interés a plazo utilizando QuantLib Python?

Un acuerdo de tipo de interés a plazo 3x6, con un nocional de 100.000 dólares, siendo el tipo FRA del 6%, La fecha de liquidación del FRA es después de 3 meses (90 días) y la liquidación se basa en un USDLIBOR a 90 días.

Mi fecha de valoración es el 30 de junio de 2020.

Este es mi intento:

import QuantLib as ql

startDate = ql.Date(30, 6, 2020)
ql.Settings.instance().evaluationDate = startDate

spotDates = [ql.Date(30, 6, 2020), ql.Date(31, 12, 2020), ql.Date(30, 6, 2021)]
spotRates = [0.05, 0.05, 0.05]

dayConvention = ql.Thirty360()
calendar = ql.UnitedStates()

maturityDate = calendar.advance(startDate, ql.Period('3M'))

compounding = ql.Simple
compoundingFrequency = ql.Annual

spotCurve = ql.ZeroCurve(spotDates, spotRates, dayConvention, calendar, ql.Linear(), compounding, compoundingFrequency)
spotCurve.enableExtrapolation()
spotCurveHandle = ql.YieldTermStructureHandle(spotCurve)

index = ql.USDLibor(ql.Period('3M'), spotCurveHandle)
index.addFixing(ql.Date(26, 6, 2020), 0.05)
notional = 100000
rate = 0.06

fra = ql.ForwardRateAgreement(startDate, maturityDate, ql.Position.Long, rate, notional, index, spotCurveHandle)
print('NPV:', fra.NPV())

Y esta es la respuesta que recibo:

VAN: 0,0

La respuesta que recibo no es correcta.

4voto

Brad Tutterow Puntos 5628

Para un FRA de 3x6, probablemente quieras escribir algo como:

today = ql.Date(30, 6, 2020)
ql.Settings.instance().evaluationDate = today

startDate = calendar.advance(today, ql.Period('3M'))
maturityDate = calendar.advance(startDate, ql.Period('3M'))

Es decir, las fechas de inicio y vencimiento que se pasan al constructor del FRA deben ser el periodo subyacente del LIBOR.

Lo que usted escribía, en cambio, era un FRA para un periodo que va desde hoy hasta dentro de tres meses, y que la biblioteca consideraba ya caducado.

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