5 votos

Calcular la huelga desde el delta de Black Scholes

Tengo una lista de deltas y sus correspondientes volatilidades en un mercado de divisas, pero quiero pasar de delta a precio de ejercicio. En esta pregunta se está discutiendo un problema similar

¿Cómo puedo calcular el precio de ejercicio o la volatilidad implícita a partir de un delta dado?

La forma en que lo entiendo, el precio de ejercicio se puede encontrar de esta manera: ingresa la descripción de la imagen aquí

¿Es correcto mi enfoque? Si es así, ¿podrían ayudarme a entender el término N(d_1), para poder proceder con el proceso de resolución?

Editar:
Básicamente quiero crear la sonrisa de volatilidad en un gráfico (strike, vol) a partir de datos encontrados por la función OVDV de Bloombergs: ingresa la descripción de la imagen aquí

Entonces quizás haya una forma más simple de hacerlo

0 votos

En Excel, la función N(d1) se llama NORMSDIST(). En muchos otros idiomas existe una función similar. En Python es norm.cdf() como parte de Scipy.

0 votos

En R; ¿es dnorm() o pnorm()?

1 votos

Es pnorm() en lenguaje R. Es una "p" porque devuelve una probabilidad (un número entre 0 y 1).

7voto

Logicalmind Puntos 1260

Esto es un poco más complicado que la respuesta proporcionada anteriormente, ya que se trata de FX y la convención para determinar el precio de ejercicio importa.

https://www.researchgate.net/publication/275905055_A_Guide_to_FX_Options_Quoting_Conventions

La mayoría de los pares toman la prima en la moneda extranjera (es decir, en el lado izquierdo). Esto significa que estás pagando por una opción en el activo subyacente, como pagar por una opción de compra de IBM con acciones de IBM, y esas acciones pueden considerarse parte del delta. Como resultado, la mayoría de los pares utilizan la convención "incluir prima". Los detalles están en el documento de Wystup y deberías leerlo. Las matemáticas son fáciles y es agradable ver todo explicado para ti. Los únicos pares que "excluyen prima" son EURUSD, GBPUSD, AUDUSD, NZDUSD, por lo que calculan el delta de la forma habitual. También en FX para BBG, la convención es utilizar típicamente el delta al contado para vencimientos inferiores a un año y el delta a plazo para vencimientos >= 1 año. De lo contrario, la respuesta anterior de onlyvix está bien si asumes que la tasa de interés libre de riesgo extranjera es del 0.0%. El delta real es $e^{-r_ft}N(d1)$ en el caso de excluir la prima.

0 votos

Gracias, @FinanceGuyQueNoSabeProgramar. Estoy teniendo dificultades con el parámetro de Tiempo. Hace una gran diferencia si uso días, meses, etc. Si uso $T=1/12$ (años) para las opciones de 1 mes, consigo que mis puntos estén muy muy cerca de la ATM que si uso $T=21$ (días). Al mirar el ejemplo proporcionado arriba, ¿cuál es la forma correcta de medir el tiempo $T$?

2 votos

@Sanjay - Bloomberg FX utiliza días calendario para sus cálculos de volatilidad. Por lo tanto, la convención es ACT/365 - podría ser ACT/ACT para manejar mejor los años bisiestos, pero creo que es ACT/365. Por lo tanto, necesitas (la fecha de vencimiento exacta - la fecha de hoy) /365. Calcular la fecha de vencimiento a partir de los plazos es complicado en realidad. Una descripción bastante completa de qué hacer se encuentra en: es.wikipedia.org/wiki/Convenios_de_fechas_de_divisas Hay un par de excepciones a las reglas descritas aquí, pero esto te llevará 95% del camino.

0 votos

Entonces, ¿para la opción de 1 mes, el tiempo $T$ es aproximadamente $T=(30/365)$? No estoy seguro si lo he entendido correctamente.

5voto

user25164 Puntos 236

Solo para saltar a la solución del artículo mencionado:

Para una superficie de volatilidad de Delta $\Delta$ vs volatilidad $\sigma$, podemos calcular el precio de ejercicio $K$ con un activo subyacente $f$, $\phi$ es 1 para compra, -1 para venta y tiempo hasta el vencimiento $\tau$, que debería ser una fracción de año de días laborables:

$K = fe^{-\phi N^{-1}(\phi\Delta)\sigma\sqrt{\tau}+\frac{1}{2}\sigma^{2}\tau}$

0 votos

¿Es correcto calcular el f usando la paridad de tasas de interés cubiertas: f(tasaCCY1, tasaCCY2, spot, t) = spot * exp[(tasaCCY1 - tasaCCY2)*t] o es el forward ATM?

0 votos

Buen trabajo y gracias, esto verifica blackscholes. Verifiqué y esto es correcto

3voto

syntheticbrain Puntos 549

Dado que $ \Delta_K = N(d_1) $, utiliza la función inversa normal $ N^{-1} $ (por ejemplo, NORM.INV en excel, norminv en matlab) para calcular $ d_1 = N^{-1} (\Delta_K) $. Luego utiliza álgebra para resolver $K$

0voto

BC. Puntos 9229

Al parecer, tu objetivo final es obtener un vol asociado con cierta huelga y plazo. En Bloomberg, en realidad puedes hacer que la API haga ese "truco" por ti, incluyendo todas las convenciones (prima incluida/excluida; delta spot/forward...) y configuraciones que tengas en el terminal.

Para que la anulación de la huelga funcione, primero debes establecer la anulación de delta en 0 porque ese delta se utiliza de forma predeterminada y esa es la forma de excluirlo en la API.

=BDP("EURUSD Curncy","SP_VOL_SURF_BID","VOL_SURF_EXPIRY_OVR","20221030","VOL_SURF_CALLPUT_OVR","C","REFERENCE_DATE","20220324","VOL_SURF_DELTA_OVR","0","VOL_SURF_STRIKE_OVR=1.25")

Esto te da para la fecha 2022-03-24 la IVOL de la llamada EURUSD para el vencimiento del 2022-10-30 y una huelga de 1.25.

También puedes usar directamente plazos de la siguiente manera:

=BDP("GBPUSD Curncy","SP_VOL_SURF_MID","VOL_SURF_MTY_OVR=1D","VOL_SURF_CALLPUT_OVR=P","VOL_SURF_STRIKE_OVR=1.1","VOL_SURF_DELTA_OVR=0")

Si realmente quieres hacerlo tú mismo, puedes ver esta respuesta que muestra en fórmula y código cómo Bloomberg resuelve la huelga a partir de delta. Ten en cuenta que esto no funciona si se ajusta la prima, mientras que la fórmula de Excel de arriba simplemente hace todo correctamente por ti y extrae la IV correcta para cualquier huelga y plazo que desees.

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