1 votos

QuantLib en Python - RuntimeError: could not bootstrap optionlet:

Recibo el siguiente error cuando intento calcular un precio máximo. Sin embargo, no estoy seguro de cómo resolver este error.

"error: nu (-1.00062) debe ser >= -1.0 expiración: 4 de junio de 2020 anualidad: 0,0830405 precio: -1,25183e-07 atm: 0.255034 % strike: 0.739166 % tipo: Call RuntimeError: could not bootstrap optionlet:

He transformado los vols normales en decimales. A continuación se muestra el código de cómo he configurado el mango optionlet.

> cap_floor_vol  = ql.CapFloorTermVolSurface(2, ql.UnitedStates(),ql.ModifiedFollowing, expiries, vol_strikes, vol_surface)
> optionlet_surf = ql.OptionletStripper1(cap_floor_vol, ibor_index, ql.nullDouble(), 1e-6, 100, yts_handle_dis, type = ql.Normal)
> ovs_handle     = ql.OptionletVolatilityStructureHandle(ql.StrippedOptionletAdapter(optionlet_surf))
> ovs_handle.enableExtrapolation()

¿Puede alguien indicarme la dirección correcta? Gracias.

1voto

user35980 Puntos 1

Este error suele significar que hay un arbitraje en su superficie de tapas/suelos y que quantlib no puede eliminar las tapas/suelos de los datos de su superficie de entrada. Así que, por ejemplo, un mismo strike con un vencimiento más largo está costando menos que uno más corto. La información sobre el error ha reducido el lugar en el que se produce el error (la columna del precio de ejercicio 0,739% y el vencimiento parece ser uno de los plazos más cortos, pero no ha especificado la fecha de evaluación en su código, por lo que no está claro). Intenta ajustar los vols por ahí. Esto puede ser un proceso iterativo ya que los precios cercanos en su superficie se verán afectados.

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