Skip to content
All library documents

Comparing American and European Option Prices in a Binomial Model

Article Quant Q&A · Author: Stephen Ge

Summary

The discussion examines an apparent case in which a numerically calculated American call is slightly cheaper than an analytically priced European call under matching inputs. The accepted response attributes the discrepancy to comparing different numerical methods: a closed-form Black–Scholes result for the European option and a discretized binomial-tree estimate for the American option. A finite tree can introduce approximation error, so the quoted comparison does not establish that the American contract is intrinsically less valuable.

A fairer check is to price both exercise styles on the same binomial tree, then compare the tree’s European estimate with its analytical benchmark to gauge discretization error. The response asserts the usual value ordering under otherwise identical conditions, while noting that the MATLAB routines may use different models or implementations. The example’s conclusion is limited by the chosen tree resolution and cross-method comparison; numerical convergence should be assessed before interpreting a small price difference.

Key ideas

  • The example compares a Black–Scholes European price with a binomial-tree American estimate.
  • Different pricing methods can create small numerical discrepancies.
  • Price both exercise styles on the same tree for a more controlled comparison.
  • Compare the tree’s European result with an analytical value to assess discretization error.
  • A finite tree resolution can affect the apparent ordering of option values.

Tags

Full text
# Is American option price lower than European option price?


# Is American option price lower than European option price?












I used to think under the same condition, the American option is always more expensive than the European option, because American option can be exercised at any time (has more rights than European option).

#### MatLab function:

```
[Call,Put] = blsprice(Price,Strike,Rate,Time,Volatility);
[AssetPrice,OptionValue] = binprice(Price,Strike,Rate,Time,Increment,Volatility,Flag);

[Call_E, Put_E] = blsprice(56.31, 56.31, 3.29/100, 3/12, 0.33);
[~, Call_A] = binprice(56.31, 56.31, 3.29/100,3/12, 1/1e3, 0.33, 1);
[~, Put_A]  = binprice(56.31, 56.31, 3.29/100,3/12, 1/1e3, 0.33, 0);
```

#### Output:

`Call_E = 3.9225 and Call_A(1,1) = 3.9188`.

Can anyone explain to me why the 3-month European Call option is more expensive than the 3-month American Call option?

## Answer by JohnDoe (score 3, accepted)

https://quant.stackexchange.com/a/44176

You compare the result of an analytical solution (european call) with the numerical solution for the american option. It seems as if you use to few steps to calculate your American option price. Just try to increase the number of steps and see what happens.

Or just compare the european price based on the same binomial tree with the american one and you should see the expected relation. And in this case, you get a sense of the discretization error by comparing the analytical and the numerical european call prices.

## Answer by MonteCarloSims (score 1)

https://quant.stackexchange.com/a/44174

Cetaris parabus, American options will always have a higher price. The option to exercise at any point is worth > 0.

I cant speak much to the MATLAB functions themselves or their implementation, though. It looks like one is Black-Scholes and the other is Cox-Ross-Rubinstein so they differ fundamentally in some way.

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.