En delta en la valoración de opciones, también llamado ratio de cobertura se expresa como la sensibilidad del precio de la opción a la variación del precio del subyacente.
En solución analítica de los modelos de valoración de opciones más habituales, como el Black-Scholes, el de Corrado y Su, y otros marcos, pueden encontrarse en Internet o en libros.
Sin embargo, estoy tratando con un modelo más complejo cuya solución analítica no es tan evidente y, por lo tanto, queremos obtener el delta (y más adelante también las otras griegas) mediante un método numérico.
Hasta ahora no he encontrado una forma adecuada de hacerlo. Más concretamente, al calcular simplemente el gradiente del precio Call con respecto al precio Spot subyacente, obtengo valores diferentes a los de la solución analítica -- En el caso del modelo Black-Scholes.
¿Puede alguien explicar por qué el gradiente no es igual al delta y cuáles son las alternativas numéricas para esta cuestión?
0 votos
Sólo puedo imaginar la opción con valor no suave, como la opción de barrera cerca de la barrera. En este caso, la derivada numérica podría dar un resultado muy diferente del analítico. ¿Podría ser su caso?
0 votos
Hmmm la verdad es que no, ya que he utilizado funciones estándar incorporadas en Matlab y lo he probado con la fórmula estándar de Black-Scholes (de ahí --blsprice-- para calcular los precios de las opciones, --blsdelta-- para calcular los delta's y --gradient-- para obtener numéricamente el delta).
0 votos
Eso es muy interesante. Nunca he utilizado la función gradiente para calcular derivadas manualmente. En caso de que C(:) sea un vector de precios de compra y S(:) sea un vector de precios al contado, calculo delta numéricamente de la siguiente manera Delta = diff(C)./diff(S).
0 votos
Pero básicamente te sugeriría que comprobaras si tu precio black-scholes coincide con el blsprice de Matlab.
0 votos
Gracias. Sí que coincide, de hecho he leído que tu método diff(C)/diff(S) es una aproximación. Cuando lo pruebo se acerca a los deltas de blsdelta(.), pero sigue habiendo diferencia. Supongo que para C(:) introduces los precios estimados de las opciones, no los reales.
0 votos
En este caso es difícil para mí decir nada sin mirar el código real y los valores
0 votos
Entiendo. Sin embargo, gradiente y diff(C)./diff(S) no producen los mismos valores. También delta se supone que es entre -1 y +1 supongo, que no es el caso para ambos métodos.
0 votos
@JohnAndrews, John, ¿podrías explicar qué falta aún en alguna de las respuestas? Estoy encantado de ayudar, pero no entiendo cuál es el problema. Yo expliqué cómo a través del desplazamiento del activo subyacente y un recálculo del precio de la opción puedes obtener tu delta; vonjd lo explicó de forma idéntica pero más elaborada. Realmente es un concepto muy sencillo incluso para los productos exóticos más complejos. Si su resultado ni siquiera se encuentra dentro de los límites -1---+1 entonces asumo que algo está mal en su código más que en el concepto.
0 votos
@JohnAndrews: Si te ha gustado mi respuesta haz el favor de aceptarla, de lo contrario se perderá la mitad de la recompensa. Gracias :-)