2 votos

Desajuste de volatilidad en la calibración de SABR

  • Declaración del problema

Hola, estoy tratando de calibrar SABR en un nuevo activo, que no es la 'tasa de intercambio a futuro'. Mientras utilizo la calibración vanillaSABR, encuentro que el parámetro 'sigma' (uno de los parámetros del modelo, sigma, alpha, rho, beta) depende enormemente del valor absoluto de la huelga/precio-a-futuro. Es decir, si alimento al modelo con huelga/precio-a-futuro escalado, con la IV fija, la salida del modelo será completamente diferente.

Sigo la implementación de vanillaSABR (que funciona bien con datos de tasa de intercambio).

Primero, estoy tratando de ajustar el modelo a los datos de opciones ETH.

forawrd_price=1600
strikes = [i*100 for i in range(11,22)]
time_to_expiration=0.2558724912480974 # aquí estoy usando datos de opciones ETH-29DIC23
iv=np.array([0.543,0.496,0.4613000000000001, 0.41789999999999994, 0.3821, 0.3626, 0.3608, 0.3738, 0.395,0.407,0.433])
model = SABR_swaption(F = forawrd_price, # tasa a futuro, escalar
                      K = strikes, # huelgas, vector (N X 1)
                      tiempo = time_to_expiration, # vencimiento (en años), escalar
                      vols = iv, # volatilidades de mercado observadas, vector (N X 1)
                      calibración="SLS_SciPy",
                      beta = 0.5)
model.plot_smile()

print(model.alpha, model.beta, model.rho, model.nu)

===>
13.706637968052135 0.5 -0.04495875656782091 1.8499748021823488

original_price_smile

Se ve bien. Pero nota que el parámetro de volatilidad (alpha=sigma_0) es extremadamente grande. Como representa la volatilidad del activo, debería estar alrededor de su IV: 0.4 (40%).

En segundo lugar, si escalamos la huelga y el precio-a-futuro simultáneamente,

forawrd_price=1.6
strikes = [i/10 for i in range(11,22)]
...
print(model.alpha, model.beta, model.rho, model.nu)
===>
0.4331475152825642 0.5 -0.04276820194468185 1.850789849704347

precio escalado

Esta vez el parámetro de volatilidad alpha es razonable, lo que coincide con la IV.

  • Pregunta

Por lo tanto, me pregunto por qué hay tanta discrepancia al ajustar activos cuando escalamos el precio. Si estoy a punto de ajustar activos cuyo precio tiene un valor absoluto grande, ¿debería primero escalarlo y luego volver a escalarlo? ¿Cuál es el enfoque correcto aquí?

¡Gracias!

1voto

user65759 Puntos 1

Supongamos que puedes calibrar igual de bien usando $\beta = 1$. Entonces tendrías $$ dF = \alpha \sqrt F dW $$ y $$ dF = \tilde\alpha F dW = (\tilde\alpha \sqrt F) \sqrt F dW $$ Así que puedes hacer la identificación $$ \alpha \sim (\tilde\alpha \sqrt F) $$ En tu ejemplo $\alpha = 13.71$ y $\tilde \alpha = 0.43$. Entonces supongo que el precio spot $F_t$ está en el orden de magnitud $1016$. ¿Está cerca?

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