2 votos

¿Por qué el VAN de este FX Forward es 0?

He comprobado preguntas y respuestas similares, pero incluso después de establecer la fecha de evaluación en ql.settings sigo obteniendo cero. Al igual que otro cartel, también tengo el libro de cocina QL y he leído todo lo que pude encontrar, pero todavía luchando. Gracias por cualquier ayuda.

import QuantLib as ql 
calc_date= ql.Date(21,ql.July,2023)
ql.Settings.instance().setEvaluationDate(calc_date)

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

trade_date = ql.Date(20,ql.July,2023)
maturityDate = ql.Date(4,ql.August,2023)

spotDates = [ql.Date(20,ql.July,2023), ql.Date(4,ql.August,2023), ql.Date(4,ql.August,2024)]
spotRates = [0.01318, 00.01318,0.01318]

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('1W'), spotCurveHandle)
index.addFixing(ql.Date(18, ql.July, 2023),0.01318)
# index.addFixing(ql.Date(26, 6, 2020), 0.05)
notional = 54760000
rate = 1.37825/100

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

4voto

ria Puntos 116

No se trata de un FX Forward, sino de un Forward Rate Agreement (un producto de tipos). No estoy seguro de que QuantLib disponga de un valorador de FX Forward, pero sí de uno para FX swaps (véase FXSwapRateHelper ).

Ahora, para obtener un VAN distinto de cero, probablemente quieras añadir una fecha de valoración antes de la fecha de liquidación:

for day in [18, 19, 20]:
    ql.Settings.instance().evaluationDate = ql.Date(day, 7, 2023)
    fra = ql.ForwardRateAgreement(trade_date, maturityDate, ql.Position.Long, rate, notional, index, spotCurveHandle)
    print('NPV:', round(fra.NPV(), 2), "Expired:", fra.isExpired())

Lo que da:

NPV: -1373.95 Expired: False
NPV: -1373.95 Expired: False
NPV: 0.0 Expired: True

Recuerde que un FRA paga al principio del periodo (véase por ejemplo este papel). Esto también se explica en la documentación de QL ici : "el FRA se liquida y vence en la valueDate, no en la (posterior) maturityDate". El ciclo de vida es el siguiente:

enter image description here

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