38 votos

¿Cómo debo calcular la volatilidad implícita de una opción americana en un entorno de producción en tiempo real?

Hay muchos modelos disponibles para calcular la volatilidad implícita de una opción americana. El método más popular, utilizado por OptionMetrics y otros, probablemente sea el modelo de Cox-Ross-Rubinstein. Sin embargo, dado que este método es numérico, produce un algoritmo intensivo computacionalmente que puede no ser factible (al menos para mi nivel de hardware) para el cálculo repetido de la volatilidad implícita en cientos de contratos de opciones e instrumentos subyacentes con precios cambiantes constantemente. Estoy buscando un algoritmo eficiente y preciso en forma cerrada para calcular la volatilidad implícita. ¿Alguien tiene experiencia con este problema?

La aproximación en forma cerrada más popular parece ser Bjerksund and Stensland (2002), que es recomendada por Matlab como la mejor opción para opciones americanas, aunque también he visto que se menciona a Ju and Zhong (1999) en Wilmott. Me interesa saber cuál de estos métodos (u otros) brinda las aproximaciones más razonables y precisas en un entorno real.

37voto

syntheticbrain Puntos 549

He trabajado extensamente en este tema (precios y cálculo de IV en producción) y creo que puedo ofrecer una opinión informada. En primer lugar, Mathworks - la empresa que crea Matlab - no es una firma comercial, por lo que probablemente no deberías fiarte tanto de su consejo.

Hay pocos modelos de precios de opciones en forma cerrada, y todos tienen limitaciones prácticas. El modelo de Barone-Adesi y Whaley (por favor, corrige la ortografía de los apellidos ya que estoy escribiendo de memoria) es una aproximación simple para opciones americanas pero lamentablemente no es muy preciso, y no tiene en cuenta los dividendos. Roll-Geske-Whaley trata los dividendos, pero no muy bien - hay situaciones de arbitraje que son posibles en el modelo. Ju y Zhong tienen otra aproximación pero nuevamente no es muy precisa. Finalmente, Bjerksund y Stensland parecen tener la mejor aproximación (versión de 2002, no 1993) pero aún así no resuelve el problema de los dividendos discretos.

En mi experiencia, el árbol es la mejor opción. Los árboles CRR son lentos pero Leisen y Reimer, 1995 idearon un esquema que converge mucho más rápido. Además, Mark Joshi creó su propio esquema binomial que converge ligeramente más rápido. En lugar de un dividendo discreto puedes usar un dividendo proporcional discreto - así no terminas con un árbol frondoso. Alternativamente, puedes probar con un árbol trinomial y un factor de descuento adicional te dará una mejor resolución sobre el dividendo, pero no encontré una mejora significativa en producción. En mi opinión, esa es la mejor combinación en términos de velocidad y precisión. Si buscas opiniones alternativas, echa un vistazo a estos dos artículos - http://www.nccr-finrisk.uzh.ch/media/pdf/ODD.pdf sobre el problema del dividendo discreto, y http://ssrn.com/abstract=1567218 sobre la fijación de precios de opciones americanas.

Aun así, las mejoras más importantes en velocidad vendrán de tu código: una técnica que se usa extensivamente en los servidores de comilla es la precomputación. Básicamente, continuamente calculas los precios para el precio de la acción $\pm 0.1$ y la volatilidad $\pm 0.01$, para que cuando el spot o la volatilidad se muevan, utilices el valor previamente calculado en caché (o interpolado a partir de los valores más cercanos).

0 votos

Aquí tienes un enlace al artículo de Leisen-Reimer: u.cs.biu.ac.il/~mschaps/finance/readings/options/…

0 votos

@zoom, ¿podrías por favor darme el enlace del trabajo o el título completo del artículo?

0 votos

¿Qué significa "extra DF"?

4voto

Logicalmind Puntos 1260

Me gusta el método de calibración rápida frente al método de calibración lenta que debería ser suficiente para tus propósitos. El método de calibración lenta calcula la volatilidad implícita y los griegos de la manera habitual. Luego, un método de calibración rápida puede utilizar la volatilidad implícita, delta, gamma y vega del cálculo lento previo; podemos suponer que rho/theta son cero durante tu período de tiempo. Luego usa el precio de la calibración lenta y esta aproximación ($P$ es el precio de la opción, $S$ es el activo subyacente, y $\nu$ es vega:

$$P_{t}\approx P_{t-1}+\Delta(S_t-S_{t-1})+0.5\Gamma(S_t-S_{t-1})^2+\nu(\sigma_t-\sigma_{t-1})$$

Todo lo que necesitas está ahí para resolver $\sigma_t$ en la calibración rápida. Haz que la calibración lenta se ejecute en segundo plano y cada vez que se complete, úsala como nuevo punto de referencia para la calibración rápida.

Este sigue siendo una cantidad significativa de trabajo técnico, pero se puede hacer y casi con certeza será suficiente para la aplicación. Probablemente puedas omitir el uso de $\Gamma$ durante un intervalo de tiempo tan corto, pero está ahí si lo necesitas. También ten cuidado con las anomalías de oferta/demanda (es decir, retirar ofertas y volverlas a colocar puede hacer que las volatilidades medias parezcan moverse mucho cuando en realidad no lo hacen), pero esto se aplica a cualquier método y no solo a este.

3voto

Kyle Cronin Puntos 554

Si piensa que es demasiado intensivo computacionalmente, probablemente no esté utilizando suficientes "trucos" analíticos numéricos, como los variates de control. Utilizándolos, generalmente encontrará que la valoración de opciones americanas es más rápida en árboles que con las aproximaciones analíticas.

0 votos

¡Gracias! ¿Conoces alguna buena referencia sobre variables de control? No estoy familiarizado con la técnica. ¿En términos generales qué es? ¿Hay otras técnicas? ¿Alguna de estas está incorporada en la función del cuadro de herramientas CRRTree de Matlab?

0 votos

No he mirado Matlab en un tiempo. Para trucos, sugiero Métodos Cuantitativos en la Fijación de Precios de Derivados por Domingo Tavella.

1 votos

¿Control variates? ¿Está calculando precios de opciones de vanilla, por qué estaría haciendo M.C.?

2voto

Dr.Dredel Puntos 684

Sin usar trucos u optimizaciones, escribí un código en C++ que valora una opción americana con 5 variaciones diferentes del método binomial, incluido CRR. Calcula los cinco precios e imprime en la consola aparentemente al instante (mucho menos de 1 segundo; no medí). Diría que si su cálculo está tomando mucho tiempo, el problema es la implementación, no el algoritmo.

Recomendación: obtenga algo codificado específicamente para sus necesidades. Esta es una forma de optimización de alto nivel. Por ejemplo, si generalmente trabaja en un marco de tiempo dado para la expiración, puede experimentar para descubrir la cantidad de ramificaciones necesarias para obtener su precisión deseada. O puede usar una precisión objetivo más baja en el conjunto completo de contratos, luego "ampliar" a una precisión más alta para los contratos de interés.

0voto

Paul Dixon Puntos 577

Para mí, esto tiene como objetivo calcular una superficie de volatilidad implícita diaria. Para algunas acciones/índices, puede tener opciones de vainilla o opciones americanas cotizadas en el mercado. Si su volatilidad implícita se calcula a partir de opciones call/put híbridas de vainilla/americana, entonces su metodología de cálculo de volatilidad implícita debe ser lo más cercana posible. No deberías considerar directamente la aproximación aquí, ya que nos gustaría mantenernos cerca, por ejemplo, de un marco de precios de volatilidad local de Monte Carlo donde los dividendos se separan con precisión y así sucesivamente.

Puede considerar la resolución de EDP en un entorno de producción (con regla de actualización para el manejo de dividendos discretos). Si está bien implementado, es rápido y se comporta bien. Debería usar Newton-Raphson para zonas de alto vega (cerca del dinero y cada vez más extendido para vencimientos largos) y Brent para el resto. Una buena suposición inicial acelerará el proceso.

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