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);


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?

  • $\begingroup$ 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. $\endgroup$
    – Ezy
    Feb 21 '19 at 4:07
  • 1
    $\begingroup$ [Call_E, Put_E] = blsprice(CurrentPrice,Strike,RiskFreeRate,Time_to_Expiry,Volatility) is the build-in BlackSholes function for option pricing $\endgroup$
    – Stephen Ge
    Feb 21 '19 at 5:10
  • 1
    $\begingroup$ [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 $\endgroup$
    – Stephen Ge
    Feb 21 '19 at 5:13

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.


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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.