Recientemente he descubierto la LSMonteCarlo
biblioteca en R que determina básicamente el precio de las opciones Estadounidenses a través de Longstaff método de Schwartz.
He probado el AmerPutLSM
que por primera descripción simula caminos de un Movimiento Browniano geométrico y, a continuación, utiliza el Longstaff método de Schwartz.
Las primeras aplicaciones ¿no convencer, así que traté de precio de una Opción Put Europea con esta función:
library(LSMonteCarlo)
s0 <- 100
strike <- 100
sigma <- 0.03
set.seed(123)
AmerPutLSM(Spot = s0, sigma = sigma, n = 10000,
m = 12, Strike = strike, r = 0, mT = 1, dr = 0)
American Put Option
Price: 1.187689
Así que, básicamente, considero 10000 caminos de un movimiento Browniano geométrico con $\sigma = 0.03$ y un CAJERO automático poner la opción (strike = $S_0$ = 100). El plazo de vencimiento de la opción se establece en 1 (mT = 1
) y el número de pasos de tiempo en la simulación también se establece en 12 (m = 12
). Esto significa que la opción puede ser ejercida al final de cada mes (Bermudan tipo).
Para la simplicidad que supone ningún tipo de interés (r = 0
) y cero dividendos (dr = 0
).
Esta función me dice que el precio de esta opción es acerca de 1.188
Pero, si lo comparamos con el de Black-Scholes Ponga el Precio de una Opción Put Europea tenemos que
$$ V_{\text{Europea}} = \text{Huelga} \cdot \Phi\Bigl(\frac \sigma 2 \Bigr) - S_0 \cdot \Phi\Bigl(-\frac \sigma 2 \Bigr) = 1.196782. $$
strike * pnorm(sigma/2) - s0 * pnorm(-sigma/2)
[1] 1.196782
Esto no tiene ningún sentido, ya que el valor de la Opción Europea debe ser siempre inferior a su Americano (o Bermudan) de contrapartida.
¿Alguien tiene una explicación para esto?
Gracias.