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?

• No idea what are those functions. You dont define your variables. Please clarify otherwise no one can give you an answer. And just to be clear the european vanilla call will always be cheaper than the corresponding american vanilla call so clearly there is a mistake either in your inputs, your understanding of them or your implementation of them.
– Ezy
Commented Feb 21, 2019 at 4:07
• [Call_E, Put_E] = blsprice(CurrentPrice,Strike,RiskFreeRate,Time_to_Expiry,Volatility) is the build-in BlackSholes function for option pricing Commented Feb 21, 2019 at 5:10
• [AssetPrice,OptionValue] = binprice(CurrentPrice,Strike,RiskFreeRate,Time_to_Expiry,TimeStep,Volatility,Call_or_Put) is the build-in Cox-Ross-Rubinstein Binomial model for American Option pricing. uk.mathworks.com/help/finance/binprice.html Commented Feb 21, 2019 at 5:13