Simple American Option Pricing via Monte Carlo Simulation in R - Results are too high

1.5k Views Asked by At

I am more of a novice in R and have been trying to built a formula to price american type options (call or put) using a simple Monte Carlo Simulation (no regressions etc.). While the code works well for European Type Options, it appears to overvalue american type options (in comparision to Binomial-/Trinomial Trees and other pricing models).

I would greatly appreciate your input!

The steps I take are outlined below.

1.) Simulate n stock price paths with m+1 steps (Geometric Brownian Motion):

n = 10000; m = 100; T = 5; S = 100; X = 100; r = 0.1; v = 0.1; d = 0
pat = matrix(NA,n,m+1)
pat[,1] = S
dt = T/m
for(i in 1:n)
{
  for (j in seq(2,m+1))
  {
    pat[i,j] = pat[i,j-1] + pat[i,j-1]*((r-d)* dt + v*sqrt(dt)*rnorm(1))
  }
}

2.) I calculate the payoff matrix for call options and put options and discount both via backwards induction:

# Put option
payP = matrix(NA,n,m+1)
payP[,m+1] = pmax(X-pat[,m+1],0)
  for (j in seq(m,1)){
    payP[,j] = pmax(X-pat[,j],payP[,j+1]*exp(-r*dt))
  }

# Call option
payC = matrix(NA,n,m+1)
payC[,m+1] = pmax(pat[,m+1]-X,0)
for (j in seq(m,1)){
  payC[,j] = pmax(pat[,j]-X,payC[,j+1]*exp(-r*dt))
}

3.) I calculate the Option Price as the average (mean) payoff at time 0:

mean(payC[,1])
mean(payP[,1])

In the example above, a call price of approximately 44.83 and an approximate put price of 3.49 is found. However, following a trinomial tree approach (n = 250 steps), prices should more 39.42 (call) and 1.75 (put). Black Scholes Call Price (since no dividend yield) is 39.42.

As I said, any input is highly appreciated. Thank you very much in advance!

All the bests!

1

There are 1 best solutions below

0
On

I think your problem is rather a conceptual one than an actual coding problem.

What your code currently does is that it takes the in hindsight best point in time to exercise the American option over the whole simulated stock price path. It does not take into account that once the intrinsic value of an American option is higher than its calculated option price, you exercise it - which means, that you forego the chance to exercise it in the future where the difference between the intrinsic value and option price might be even larger (depending on the realized stock price movements).

Hence, you overestimate the option prices.