Modelo Heston para precios de opciones en lenguaje R

Enlace original: http://tecdat.cn/?p=12111


 

En este artículo, le mostraré cómo simular el modelo de volatilidad estocástica de Heston de los precios de las acciones. 

El modelo Heston es para opciones con volatilidad estocástica y se aplicó para opciones de divisas para bonos en 1993 . Para una tasa de interés fija libre de riesgo [R, se describe como:

Al usar este modelo, se puede derivar el precio de las opciones de compra europeas.

Esta es la descripción de la función. 

callHestoncf(S, X, tau, r, v0, vT, rho, k, sigma){
# S = Spot, X = Strike, tau = time to maturity
# r = risk-free rate, q = dividend yield
# v0 = initial variance, vT = long run variance (theta)
# rho = correlation, k = speed of mean reversion (kappa)
# sigma = volatility of volatility
}
 

Ahora, los precios de Monte Carlo. Pondremos en precio 3 opciones de compra europeas (S_t) _ {t \ geq 0}con 3 precios de ejercicio diferentes. Usamos 100,000 simulaciones en 15 años, una vez al mes. Los siguientes son parámetros útiles para la simulación:

#Initial stock price
S0 <- 100
# Number of simulations (feel free to reduce this)
n <- 100000
# Sampling frequency
freq <- "monthly"
# volatility mean-reversion speed
kappa <- 0.003
# volatility of volatility
volvol <- 0.009
# Correlation between stoch. vol and spot prices
rho <- -0.5
# Initial variance
V0 <- 0.04
# long-term variance
theta <- 0.04
#Initial short rate
r0 <- 0.015
 
# Options maturities
horizon <- 15
# Options' exercise prices
strikes <- c(140, 100, 60)

 

Para utilizar el modelo de Heston simulado, primero debemos definir cómo realizar la simulación.

Esta función proporciona una lista de 2 componentes, cada componente que contiene un incremento gaussiano aleatorio simulado. 

#  Stochastic volatility  simulation
sim.vol <- simdiff(n =  n, horizon =  horizon,
frequency =  freq, model = "CIR", x0 =  V0,
theta1 =  kappa*theta, theta2 =  kappa,
theta3 =  volvol, eps =  shocks[[1]])
 
# Stock prices simulation
sim.price <- simdiff(n = n, horizon = horizon,
frequency = freq, model = "GBM", x0 = S0,
theta1 = r0, theta2 = sqrt(sim.vol),
eps = shocks[[2]])

 Ahora podemos usar 3 diferentes

Calcule el precio de la opción. 

# Stock price at maturity (15 years)

print(results)
 
 
strikes mcprices  lower95  upper95 pricesAnalytic
1     140 25.59181 25.18569 25.99793         25.96174
2     100 37.78455 37.32418 38.24493         38.17851
3      60 56.53187 56.02380 57.03995         56.91809

 

A partir de estos resultados, vemos que los precios de Monte Carlo de estas tres opciones están bastante cerca de los precios calculados usando la función (usando la fórmula directamente para calcular el precio). El intervalo de confianza del 95% contiene el precio teórico.

A continuación se muestra el precio de la opción en función del número de simulaciones. El precio teórico calculado se dibuja en azul, el precio promedio de Monte Carlo se dibuja en rojo y el área sombreada representa el intervalo de confianza del 95% alrededor de la media (precio de Monte Carlo).


 

Supongo que te gusta

Origin www.cnblogs.com/tecdat/p/12713386.html
Recomendado
Clasificación