Mi objetivo es determinar una superficie de volatilidad FX calibrada por precios de mercado interbancarios.
Supongamos que una superficie de volatilidad, $\Sigma(t,k)$, devuelve una volatilidad para el tiempo hasta el vencimiento y el strike. La superficie utiliza una malla con el tiempo hasta el vencimiento en una dimensión y el valor monetario en la segunda. Se aplican técnicas de interpolación entre los parámetros, $\sigma_{i,j}$ que representan los valores en la malla.
Valores fijos, conocidos, para el iterador son las tasas de interés (y por lo tanto los factores de descuento) y las tasas de cambio a plazo del FX ($\mathbf{R_1},\mathbf{R_2},\mathbf{F})$, y los precios de las estrategias de opciones interbancarias, ($\mathbf{S}$) (straddles, risk reversals, butterflies).
El iterador intenta encontrar la solución del siguiente problema de mínimos cuadrados ponderados, donde $\mathbf{r}(..)$ son los precios de las estrategias de opciones en esa iteración:
$$ \min_{\sigma_{i,j}} (\mathbf{r}(\mathbf{\Sigma};\mathbf{R_1},\mathbf{R_2},\mathbf{F})-\mathbf{S})^T \mathbf{W} (\mathbf{r}(\mathbf{\Sigma};\mathbf{R_1},\mathbf{R_2},\mathbf{F})-\mathbf{S}) $$
Se utiliza Levenberg-Marquardt o Guass-Newton como algoritmo de actualización.
La diferencia entre hacer esto para una Superficie de Volatilidad FX y curvas de tasas de interés es que las especificaciones del instrumento FX dependen de los parámetros mientras que los instrumentos de tasas de interés están bien definidos. Por ejemplo, un IRS a 10 años tiene fechas y estructura definidas, mientras que un risk reversal de 25 delta de FX tiene sus strikes para cada opción en la estrategia determinados a partir de la volatilidad de la iteración actual de la superficie de volatilidad.
Pregunta
El Jacobiano, $\frac{\partial r_k}{\partial \sigma_{i,j}}$, que se requiere para cualquiera de los algoritmos, se puede construir incluyendo la sensibilidad del strike a la volatilidad o excluyéndola. Es decir,
$$ \frac{d r_k}{d \sigma_{i,j}} = \frac{\partial r_k}{\partial \sigma_{i,j}}, \quad \text{fijando el strike K antes de iterar} \\ \frac{d r_k}{d \sigma_{i,j}} = \frac{\partial r_k}{\partial \sigma_{i,j}} + \frac{\partial r_k}{\partial K_m} \frac{\partial K_m}{\partial \sigma_{i,j}}, \quad \text{K depende de la volatilidad} $$
En un marco AD puede ser más fácil o más eficiente de implementar. Aún no he realizado pruebas.
En la experiencia de alguien, ¿implementar (o no implementar) alguna de las opciones anteriores conduce a algún comportamiento espurio que deba ser destacado? ¿Alguien tiene experiencia con la eficiencia de cada enfoque? Es matemáticamente más correcto incluir la sensibilidad al strike en la iteración, pero no está claro en esta etapa si es más rápido en general.
Cualquier otra información es bienvenida...