Applying an Exercise Boundary to Simulated American Option Paths
Summary
The document describes an attempt to value an American call by applying exercise thresholds obtained from a binomial method to simulated stock paths. It gives an example with three scheduled exercise points and reports both the binomial model value and a much larger estimate from the path simulation. The included R snippets generate prices from a lognormal process and select the earliest exercise point whose stock price exceeds a threshold, then discount the resulting payoff.
The discrepancy is presented as an unresolved question; no answer establishes its cause. The code is useful for examining how an exercise rule is applied, but the path generator draws each time point from the initial price using elapsed time rather than evolving each path from its previous price. That construction does not produce ordinary sequential paths and can distort exercise decisions. The snippet also leaves key implementation details unclear, including the indexing and discount timing. The reported simulation estimate should therefore not be treated as a validated option value.
Key ideas
- The proposed valuation applies binomial-derived exercise thresholds to simulated paths.
- The document reports a substantial gap between the binomial value and the simulation estimate.
- The path code generates each time point from the initial price rather than incrementally along a path.
- Exercise selection and discounting depend on indexing details that are not fully explained.
- The document does not resolve the source of the valuation discrepancy.
Tags
Full text
# Pricing American Option Using an Exisiting Boundary
# Pricing American Option Using an Exisiting Boundary
I want to price American Option by applying an existing boundary to a set of randomly generated paths. The boundary can be obtained from a binomial method. For example, a call option with one year maturity can be exercised at the end of each four month (3 exercise points), the spot and strike price is both at $100 dollar, with continuous dividend at 10%, risk free rate at 5% and volatility at 20%. The following bound can be obtained from the binomial method: For the first exercise point, the option should be exercised if the stock price is greater than 113.9557.The second is 110.2940 and the last is 100.0000. The option value obtained from the binomial method is 5.73.
However, when I apply this bound to 10000 random generated path, I get a value around 9.5. I don't know what can cause this highly biased value? Thanks in advance for any suggestions and solutions.
The code for generating the path is:
```
b=10000;
payoff=Stockpath=matrix(S0[q], nrow=b, ncol=t+1);
optionvalue=matrix(0,nrow=b,ncol=1);
prev.theta=theta.maxexp=matrix(300, nrow=1, ncol=t+1);
theta.maxexp[4]=K; #initiate the bound
exercise=matrix(0,nrow=b,ncol=t+1);
exerciseindex=matrix(4,nrow=b,ncol=1);
for (p in 2:ncol(Stockpath)){
steptemp=tstep*(p-1);
for (i in 1:b/2){
x=rnorm(1, mean=0, sd=1);
Stockpath[i,p]=S0[q]*exp((r-delta-sigma^2/2)*steptemp+sigma*sqrt(steptemp)*x);
Stockpath[i+b/2,p]=S0[q]*exp((r-delta-sigma^2/2)*steptemp+sigma*sqrt(steptemp)*(-x));
payoff[i,p]=max(Stockpath[i,p]-K,0);
payoff[i+b/2,p]=max(Stockpath[i+b/2,p]-K,0);
}
}
```
The code for applying the bound is:
```
for (step in t:2){
exercise[,step]=ifelse(Stockpath[,step]>temp.theta[step],1,0)
}
exercise[which(apply(exercise,1,sum)==0),t+1]=1;
index=which(apply(exercise,1,sum)>1);
colindex=apply(exercise,1,function(x) min(which(x==1)));
exercise=matrix(0,nrow=b,ncol=t+1);
for (i in 1:b) exercise[i,colindex[i]]=1;
optionvalue=exercise*payoff;
exerciseindex=exercise*matrix(c(0:t+1),ncol=4,nrow=b,byrow=TRUE);
dicountfactor=exercise*exp(-r*(exerciseindex-1)/t);
dicountfactor[which(dicountfactor[,1]>0),1]=1;
optionvalue=optionvalue*dicountfactor;
mean(apply(optionvalue,1,sum));#The option value
```Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.