Supongamos que tengo los siguientes datos (para los precios actuales de las acciones y las opciones del Bank of America)
Strike Last IV Probability
4 8 5.43 0.5813566 0.0000000
7 11 2.45 0.2868052 0.1571556
8 12 1.68 0.3611712 0.0000000
9 13 0.93 0.3149634 0.0000000
10 14 0.42 0.2906097 0.4216563
11 15 0.16 0.2827868 0.0000000
12 16 0.06 0.2894076 0.0000000
13 17 0.03 0.3147238 12.5000000
14 18 0.02 0.3498626 0.0000000
15 19 0.02 0.4019490 0.0000000
16 20 0.01 0.4093461 100.0000000
17 21 0.01 0.4513419 0.0000000
18 22 0.02 0.5374740 0.0000000
19 23 0.01 0.5280132 Inf
20 24 0.02 0.6147154 0.0000000
21 25 0.01 0.5967137 0.0000000
Lo que quiero hacer es obtener una distribución de probabilidad neutral al riesgo de los rendimientos de las acciones. Leo este pregunta. Se dice que para ello necesito tomar la segunda derivada del precio de la opción como $\frac{\partial^2 c}{\partial K^2}$ . ¿Tengo razón en que no puedo hacerlo analíticamente a partir de la fórmula de la opción (utilizo BSM)? Entonces, ¿cuál es la solución práctica para esto (podría explicar en detalle y preferiblemente con un ejemplo utilizando mis datos)?
En el El libro de Hull se afirma que se puede utilizar la siguiente expresión para evaluar la densidad de probabilidad $g(K)$
$$ g(K) = e^{rT}\frac{c_1+c_3-2c_2}{\delta^2} $$ donde $K$ es una huelga, $c_1$ , $c_2$ y $c_3$ son los precios de las opciones de compra europeas con vencimiento $T$ y las huelgas $K-\delta$ , $K$ y $K+\delta$ respectivamente. ¿Es la forma que debo utilizar en la práctica para evaluar $g(K)$ ? Lo he probado con mis datos pero obtengo resultados poco realistas (por ejemplo, probabilidades negativas).
Agradezco su ayuda
Actualización : según la respuesta de @Quantuple he calculado la probabilidad, $Probability_i$ que el precio de las acciones se situará entre $Strike_{i-1}$ y $Strike_{i+1}$ (¿lo interpreto bien?). Los valores que obtuve parecen ser poco realistas (por ejemplo, probabilidad negativa). En este caso he intentado hacer lo mismo con otro dato (precios actuales de las acciones y opciones de Apple) y he obtenido lo siguiente
Strike Last IV Probability
8 85.0 21.41 0.2814728 0.00000000
10 90.0 16.65 0.2712171 0.04287807
11 92.5 14.15 0.2350727 0.00000000
12 95.0 12.10 0.2530275 0.00000000
13 97.5 10.05 0.2506622 0.01535698
14 100.0 8.23 0.2525582 0.00000000
15 105.0 5.01 0.2436027 0.00000000
16 110.0 2.71 0.2368809 0.07017230
17 115.0 1.35 0.2363258 0.00000000
18 120.0 0.61 0.2362289 0.00000000
19 125.0 0.29 0.2435342 0.85066163
20 130.0 0.15 0.2548730 0.00000000
21 135.0 0.08 0.2660732 0.00000000
22 140.0 0.05 0.2814728 4.00000000
23 145.0 0.03 0.2935170 0.00000000
Utilizo el siguiente código R
chain <- getOptionChain("BAC", Exp = "2016-05-20")
chain <- chain$calls
chain <- chain[, 1:2]
chain$IV <- 0
time_remain <- as.numeric(as.Date("2016-05-20") - as.Date(Sys.time()))
time <- time_remain/360
rf <- 0.01
Spot <- getQuote("BAC")
Spot <- Spot$Last
chain <- as.data.frame(apply(chain, 2, as.numeric))
for (i in 1:nrow(chain)) {
chain$IV[i] <- iv.opt(S = Spot, K = chain$Strike[i], T = time, riskfree = rf, price = chain$Last[i], type = "Call")
}
chain <- na.omit(chain)
ggplot(chain, aes(x = Strike, y = IV)) + geom_line(size = 1, color = "red") + ylab("Implied volatility") + theme(axis.text = element_text(size = 18), panel.border = element_rect(fill = NA, colour = "black", size = 2), axis.title = element_text(size = 20))
chain$Probability <- 0
for (i in seq(2, nrow(chain), 3)) {
chain$Probability[i] <- (-2*chain$Last[i] + chain$Last[i-1] + chain$Last[i+1])/((chain$Last[i+1] - chain$Last[i-1])^2)
}
chain
Para Apple todo parece estar bien además de eso $P\left[S \in (135; 145)\right] = 4$ que es irreal (de nuevo). ¿Es real obtener probabilidades neutrales al riesgo que pueda interpretar de forma "común" (por ejemplo, que no sean negativas o que su suma no supere $1$ )?