0 votos

Momentos neutros de riesgo BKM en python

Estoy tratando de calcular los momentos implícitos BKM (Bakshi, Kapadia y Madan 2003) en python siguiendo este documento:

Neumann, Skiadopoulos: Dinámica predecible en los momentos de riesgo neutro de orden superior: Pruebas de las opciones del S&P 500 , Journal of Financial and Quantitative Analysis (JFQA), 2013, p947-977 enlace

que en la página 7 y 8, describen las integrales de varianza, asimetría y curtosis mediante las ecuaciones (8), (9) y (10).

En la página 8, parte B. Aplicación empírica, los autores hablan de su metodología para extraer los momentos implícitos. Lo que no entiendo es

a) ¿Por qué tienen que interpolar las volatilidades implícitas en función de la delta (creando una "cuadrícula delta" artificial), y volver a convertir estas deltas en los respectivos precios de ejercicio a través de la BS? Dicen que las integrales requieren "un continuo de opciones de compra y venta OTM a través de los strikes", y que sólo observamos precios de strike discretos, de ahí la razón de utilizar el "espacio delta". ¿Por qué la interpolación en el espacio delta lo hace más "continuo"?

b) De la página 9 del documento: Then, we compute the constant maturity moments [equations (5), (6), (7)] by evaluating the integrals in formulae (8), (9), and (10) using trapezoidal approximation. ¿Cómo se evalúan esas integrales definidas en python? Estoy atascado mirando esas 3 integrales sin saber cómo continuar en python.

Ejemplo (parte de la ecuación (8)):

enter image description here

1voto

Pete Doyle Puntos 153

Creo que la razón para interpolar utilizando una cuadrícula delta es doble.

En primer lugar, tenga en cuenta que la delta de una opción (o hablemos de un strike determinado) le da cierta información sobre cómo de OTM/ITM es la opción. Utilizar los strikes sin comprobar los deltas podría implicar que para algún vencimiento se podría elegir una buena parrilla de strikes para muestrear, pero sin embargo para otro conjunto de opciones variables esa parrilla no sería tan útil o representativa, llevando por tanto a errores numéricos en su código.

Esto nos lleva a la segunda razón, que está relacionada con la primera. Desde el punto de vista de la codificación, la implementación de una rutina de muestreo puede ser mucho más robusta utilizando una cuadrícula delta en comparación con una elección basada en la huelga. Piénsalo de esta manera: no importa cuáles sean tus elecciones de variables, el orden de magnitud del precio subyacente (que podría ir desde centavos hasta miles de dólares para una acción, o podría ser 1,10-1,20 para algún FX, mientras que es 500 para otro, etc). Si implementas una rutina usando deltas, entonces el mecanismo/rutina de interpolación no se preocuparía por este tema, ya que se define en términos de delta sin importar el subyacente, que es en realidad una cantidad que significa algo (como dije, te da una idea de cuánto es una opción ITM/OTM). Por lo tanto, tu código no necesita que codifiques una solución sobre cómo interpolar dependiendo del nivel subyacente, etc.

Respecto a la pregunta b), te sugiero que busques alguna biblioteca que te permita calcular esas integrales. Lamentablemente, no estoy tan familiarizado con ellas como para sugerir una. Creo que scipy debe tener algunas rutinas, tal vez usted podría echar un vistazo a ellos. Editar: No he visto a Kermittfrog comentar esto. Thant enlaces apunta directamente a ella, por lo que recomiendo que vaya a través de él.

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