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?