1 votos

La interpolación de la curva cero no recupera las tasas de entrada de los puntos nodales

Tengo un problema con la interpolación en QuantLib Python. Por favor, vea el código a continuación para un ejemplo de trabajo mínimo

myCurve = ql.ZeroCurve([ql.Date(2,3,2024),ql.Date(2,8,2024)], 
                             [0.05,0.09], 
                             ql.Actual365Fixed(), 
                             ql.NullCalendar(),
                             ql.Linear(),
                             ql.Continuous)

print(myCurve.zeroRate(ql.Date(2,3,2024), ql.Actual365Fixed(),ql.Continuous).rate())
print(myCurve.zeroRate(0,ql.Continuous).rate())

La salida en ambos casos es 0,05000954248362214. ¿Espero recuperar el valor de entrada de 0,05?

3voto

Brad Tutterow Puntos 5628

Por razones históricas, la implementación de la curva pasa por factores de descuento para calcular los tipos cero, independientemente de cuál sea la representación subyacente; véase https://github.com/lballabio/QuantLib/blob/master/ql/termstructures/yieldtermstructure.cpp#L98-L115 .

Por desgracia, esto hace que $t=0$ un caso especial. A diferencia del resto de veces, no podemos recuperar el cero del descuento, ya que la fórmula se vuelve indeterminada. Por lo tanto, utilizamos como sustituto el cero que podemos recuperar de un tiempo pequeño $t' > 0$ . Por supuesto, aunque $t'$ es pequeño, ya es lo suficientemente diferente de cero como para ver una diferencia, ya que sus tasas están aumentando bruscamente.

Otros nodos no tienen este problema; debería poder recuperar su tasa cero original de 2024-08-02 con precisión numérica.

Puede que intente evitar este problema en una futura versión, pero tendré que tener cuidado para que el cambio sea compatible con versiones anteriores en cuanto a interfaz y comportamiento, por lo que no puedo garantizar que lo consiga.

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