¿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.