The aim of this project is to price a European up-and-out put option using Monte Carlo simulation under a standard risk-neutral geometric Brownian motion model.
In addition, the joint effect of volatility and maturity on the option price is illustrated.
The contract is a European put option with an upper barrier \(L\).
At maturity the payoff is \[ \max(K - S_T, 0), \] but only if the asset price never reaches or exceeds the barrier before maturity: \[ \max_{0 \le t \le T} S_t < L. \]
If the barrier is hit at any time, the option is knocked out and the payoff is zero.
Inputs used in the main experiment: Initial price S₀ = 105, Strike K = 110, Risk-free rate r = 0.05, σ = 0.21, T = 0.75, Barrier L = 125
res_fixed <- uo_put_mc(
S0 = 105, K = 110, L = 125,
r = 0.05, sigma = 0.21, T = 0.75,
n_paths = 200000, n_steps = 252, seed = 42
)
res_fixed
## $price
## [1] 7.820312
##
## $stderr
## [1] 0.02324998
##
## $knockout_rate
## [1] 0.3587
##
## $params
## $params$S0
## [1] 105
##
## $params$K
## [1] 110
##
## $params$L
## [1] 125
##
## $params$r
## [1] 0.05
##
## $params$sigma
## [1] 0.21
##
## $params$T
## [1] 0.75
##
## $params$n_paths
## [1] 200000
##
## $params$n_steps
## [1] 252
##
## $params$seed
## [1] 42
The knock-out rate is neither close to zero nor one, and the Monte Carlo standard error is small, indicating a stable estimate.
The option is priced on a grid of volatility and maturity values in order to study their joint influence.
S0 <- 105
K <- 110
r <- 0.05
L <- 125
sigmas <- seq(0.10, 0.40, length.out = 13)
Ts <- seq(0.10, 1.50, length.out = 15)
grid <- expand.grid(sigma = sigmas, T = Ts)
grid$price <- NA_real_
for (i in 1:nrow(grid)) {
out <- uo_put_mc(
S0 = S0, K = K, L = L, r = r,
sigma = grid$sigma[i], T = grid$T[i],
n_paths = 50000, n_steps = 252, seed = 1000 + i
)
grid$price[i] <- out$price
}
zmat <- matrix(grid$price, nrow = length(sigmas), ncol = length(Ts))
image(sigmas, Ts, zmat,
xlab = "Volatility (sigma)", ylab = "Time to maturity (T)",
main = "Up-and-out put price (barrier L = 125)")
contour(sigmas, Ts, zmat, add = TRUE)
The figure shows that the option price increases clearly when volatility becomes higher. For all maturities, moving from low to high volatility leads to a strong increase in the value of the put. This is expected, since higher volatility makes large downward price movements more likely, which benefits a put option.
The effect of maturity is more moderate. For very short maturities the price is low because there is little time for the option to finish in the money. When maturity increases, the price rises due to additional time value. However, the increase is weaker than for a standard put option, since longer maturities also increase the chance of hitting the barrier and losing the payoff.
Overall, the plot confirms the typical behavior of an up-and-out put. Volatility has a strong positive effect on the price, while maturity increases the price more slowly because of the growing knock-out risk.
In accordance with the Honor Code, I certify that my answers here are my own work, and I did not make my solutions available to anyone else.