1 votos

Valoración del contrato de tipos de cambio a plazo en Quantlib

Estoy tratando de valorar una FRA en quantlib Python usando el siguiente código:

 import QuantLib as ql

calendar = ql.UnitedStates()

todaysDate = ql.Date(7, ql.May, 2017)
#
ql.Settings.instance().evaluationDate = todaysDate

spotDates = [ql.Date(7, 5, 2017)+ql.Period(i*6, ql.Months) for i in range(0, 10)]



spotRates = [4.3291/100]*len(spotDates)


interpolation = ql.Linear()

compounding = ql.Compounded

compoundingFrequency = ql.Annual

spotCurve = ql.ZeroCurve(spotDates, spotRates, ql.Actual360(), calendar,interpolation, compounding, compoundingFrequency)

spotCurveHandle = ql.YieldTermStructureHandle(spotCurve)

indexCurve1 = ql.Euribor6M(spotCurveHandle)

indexCurve1.addFixing(ql.Date(7, 5, 2017) -3,0.9,True)

forward_rates=[spotCurve.zeroRate(x,ql.Actual360(),compounding,compoundingFrequency).rate()for x in spotDates]

fra = ql.ForwardRateAgreement(ql.Date(7, 5, 2017),ql.Date(15,12,2020),ql.Position.Long,0.01,10e6,ql.Euribor6M(spotCurveHandle))
 

Sin embargo, si cambio la fecha de valoración en la función

 fra = ql.ForwardRateAgreement(ql.Date(7, 5, 2018),ql.Date(15,12,2020),ql.Position.Long,0.01,10e6,ql.Euribor6M(spotCurveHandle))
 

Me da un error: RuntimeError: no se puede desreferenciar el identificador vacío

¿Alguien puede ayudarme con este error? Se lo agradecería sinceramente.

¡Gracias por adelantado!

6voto

Chris Mc Puntos 31

No le está dando al constructor una curva de descuento. El constructor es:

 ql.ForwardRateAgreement(valueDate, maturityDate, position, strikeForward, notional, iborIndex, discountCurve=ql.YieldTermStructureHandle())
 

Por lo tanto, debe agregar un spotCurveHandle como último parámetro:

 fra = ql.ForwardRateAgreement(ql.Date(7, 5, 2018), ql.Date(15,12,2020), ql.Position.Long, 0.01, 10e6,ql.Euribor6M(spotCurveHandle), spotCurveHandle)
 

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