El método de árboles binomiales es una herramienta poderosa para la valuación de opciones sobre activos financieros (puede ser tipos de cambio, acciones, metales, incluso otros derivados). En este ejercicio se valuará una opción “call,” europea, sobre algún activo con precio actual \(P_0 = 80\), y precio de ejercicio \(K = 76\). Asumimos que la tasa libre de riesgo es igual a la tasa de descuento (mundo neutro al riesgo), \(r = 5\%\).

1) Probabilidades subjetivas

Primero haremos supuestos sobre los valores que podría tomar ese activo al cabo de un año. Comenzamos generando datos al azar para los posibles aumentos y disminuciones que el precio podría sufrir entre hoy y un año (considerando esto como “1 periodo”):

set.seed(275)
up <- runif(15, min = 1.05, max = 3)
down <- runif(15, min = 0.05, max = 0.95)

Para hacerlo semejante a un ‘paso del borracho,’ escogemos una distribución uniforme con un mínimo de 1.05; los movimientos hacia abajo son extraídos de una distribución uniforme con media 0.5 y un rango de 0.9. Esto es una simplifación para evitar bajas mayores al 0% y menores que 100%. Por razones de replicabilidad, se ha fijado el generador de números set.seed a 275.

Adicionalmente, fijaremos unas probabilidades “objetivas” de que el precio del activo tome dichos valores (los vectores ‘up’ y ‘down’ que recién creamos). Lo calcularemos como la probabilidad de que se alcance el valor ‘up’

pr_objetiva <- punif(up, min = 1.05, max = 3, lower.tail = FALSE)

data.frame(up, pr_objetiva) %>% 
  mutate(Alza = round(up, digits = 2),
                                       Probabilidad = paste0(round(pr_objetiva*100,1),"%")) %>%
  select(Alza, Probabilidad)

Nótese que “Alza” significa “veces el precio inicial” donde \(P_0=80\).

Podemos apreciar que valores grandes de “Alza” están asociados a menores probabilidades, lo que parece ser intuitivo.

Ahora entramos en materia. Dejemos de lado estas probabilidades objetivas de que el precio suba o baje. En otras palabras, supongamos que los agentes no consideran el riesgo al escoger su portafolio. Entonces, la probabilidad de que el precio suba viene dada por:

pr_subjetiva <- (exp(0.05) - down)/(up - down) ## 0.05 corresponde a la tasa de descuento, que es del 5%

Y a modo de comparación, notamos:

data.frame(up, pr_objetiva) %>% mutate(Alza = round(up, digits = 2),
                                       Objetiva = paste0(round(pr_objetiva*100,1),"%"),
                                       Subjetiva = paste0(round(pr_subjetiva*100,1),"%"),
                                       Diferencia =paste0(round((pr_objetiva-pr_subjetiva)*100,0), " p.p."))%>%
  select(Alza, Objetiva, Subjetiva, Diferencia)

La razón por la que estas probabilidades no coinciden es que la probabilidad subjetiva se calcula SIN consideración al riesgo. La probabilidad de que el precio suba se calculó bajo un supuesto: el precio sube siguiendo un paseo aleatorio, así como su probabilidad asociada.

Sin embargo, al ignorar el riesgo hemos calculado una probabilidad subjetiva bajo la cual el retorno esperado del activo es igual al retorno a la tasa libre de riesgo (5%) en todos los casos:

pr_subjetiva*80*up + (1-pr_subjetiva)*80*down ## retorno esperado activo
##  [1] 84.10169 84.10169 84.10169 84.10169 84.10169 84.10169 84.10169 84.10169
##  [9] 84.10169 84.10169 84.10169 84.10169 84.10169 84.10169 84.10169
exp(0.05)*80 ## retorno esperado tasa libre de riesgo
## [1] 84.10169

De acuerdo al libro “Opciones, Futuros y otros Derivados” de John Hull, se recurre al supuesto de una inversión escogida bajo neutralidad al riesgo porque no sería posible valuar una opción sobre un activo de otra manera, pues su riesgo es mayor y es muy difícil encontrar una tasa de descuento adecuada (Hull 2006).

2) Valuar la opción

Ahora vamos a calcular el precio, hoy, de la opción de compra de este activo. Pensemos en los resultados posibles de tener esta opción en nuestro portafolio. Solo hay dos resultados posibles: el precio resulta mayor que 76 (y la opción tiene valor positivo), o el precio del activo resulta menor (o igual) que 76 (y la opción no se ejerce, i.e., vale 0). Entonces, la opción paga \(80*Alza - 76\) con probabilidad dada por la probabilidad subjetiva, más 0 con el complemento de esa probabilidad:

pago_esperado <- pr_subjetiva*(80*up-76)
pago_esperado
##  [1] 18.94872 32.65480 45.69693 30.56050 47.90252 36.88233 17.05651 19.19181
##  [9] 21.74092 11.86999 28.73786 44.09283 23.41109 19.85915 41.61478

Finalmente, estos pagos esperados se realizan dentro de un año, por lo cual debemos traerlo a valor presente.

VP_pago_esperado <- exp(-0.05)*pago_esperado
VP_pago_esperado
##  [1] 18.02458 31.06221 43.46827 29.07005 45.56629 35.08355 16.22465 18.25582
##  [9] 20.68061 11.29108 27.33630 41.94240 22.26931 18.89061 39.58520
cor(VP_pago_esperado, up) ## Correlación precio de la opción vs apreciación del activo
## [1] 0.6237893
cor(VP_pago_esperado, down) ## Correlación precio de la opción vs depreciación del activo
## [1] -0.6265299

Este valor presente de los pagos esperados es el precio justo por la opción. Nótese que tiene correlación negativa con los precios a la baja y correlación positiva con los precios al alza: la opción solo tiene valor si el activo se cotiza por arriba de 76.

Referencias

Hull, John C. 2006. Options, Futures, and Other Derivatives. 6. ed., Pearson internat. ed. Upper Saddle River, NJ [u.a.]: Pearson Prentice Hall. http://gso.gbv.de/DB=2.1/CMD?ACT=SRCHA&SRT=YOP&IKT=1016&TRM=ppn+563580607&sourceid=fbw_bibsonomy.