He aquí un ejemplo sencillo que puede ser útil. Básicamente se trata de encontrar los parámetros de una sección determinada. Algunos de los parámetros podrían ser asumidos al inicio en lugar de ser calibrados.
import QuantLib as ql
import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import minimize
strikes = [105, 106, 107, 108, 109, 110, 111, 112]
fwd = 120.44
expiryTime = 17/365
marketVols = [0.4164, 0.408, 0.3996, 0.3913, 0.3832, 0.3754, 0.3678, 0.3604]
params = [0.1] * 4
def f(params):
vols = np.array([
ql.sabrVolatility(strike, fwd, expiryTime, *params)
for strike in strikes
])
return ((vols - np.array(marketVols))**2 ).mean() **.5
cons=(
{'type': 'ineq', 'fun': lambda x: 0.99 - x[1]},
{'type': 'ineq', 'fun': lambda x: x[1]},
{'type': 'ineq', 'fun': lambda x: x[3]}
)
result = minimize(f, params, constraints=cons)
new_params = result['x']
newVols = [ql.sabrVolatility(strike, fwd, expiryTime, *new_params) for strike in strikes]
plt.plot(strikes, marketVols, marker='o', label="market")
plt.plot(strikes, newVols, marker='o', label="SABR")
plt.legend();
![enter image description here]()
0 votos
¿Busca una implementación de SABR en Python? O está buscando QuantLib-Python ¿las fijaciones?
0 votos
Estoy buscando enlaces QuantLib-Python.
0 votos
¿Qué quiere decir exactamente con código fuente Pyhton? ¿Un ejemplo de uso de los bindings para invocar la funcionalidad SABR en QuantLib?
0 votos
Sí, estoy buscando enlaces QuantLib-Python para invocar la funcionalidad de SABR.
0 votos
OK, creo que hay una confusión de términos aquí. Sólo para estar seguro: Usted quiere tener un ejemplo de código Python de usar los enlaces QuantLib-Python para acceder al motor SABR.
0 votos
Sí. Es correcto. He pasado por quantlib-python-docs.readthedocs.io/es/latest pero no encontré ninguna clase/función relacionada con SABR
0 votos
He echado un vistazo rápido al repositorio de GitHub: github.com/lballabio/QuantLib-SWIG/blob/ Debe haber algo que se pueda utilizar :)
1 votos
He pasado por ese enlace Bob. También proporciona una implementación efectiva del modelo SABR en el marco OOP. ¡¡¡Gracias Bob!!!