- 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
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
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!