Message Boards Message Boards

FinancialDerivative: American vs. European Call

Posted 8 years ago

To my knowledge, the American call option on a non-dividend paying stock has the same value as the European call option.

Why does it happen then that according to Mathematica they are not equal?

FinancialDerivative[{"European", "Call"}, {"StrikePrice" -> 100.00, "Expiration" -> 1},  
    {"InterestRate" -> 0.03, "Volatility" -> 0.2, "CurrentPrice" -> 100, "Dividend" -> 0.0}]

Out[5]= 9.4134

FinancialDerivative[{"American", "Call"}, {"StrikePrice" -> 100.00, "Expiration" -> 1},  
    {"InterestRate" -> 0.03, "Volatility" -> 0.2, "CurrentPrice" -> 100, "Dividend" -> 0.0}]

Out[5]= 9.24515

Next question:

The numbers of "Steps" in the following specification is some sort of placebo, right?

FinancialDerivative[{"American", "Call"}, {"StrikePrice" -> 100.00, 
"Expiration" -> 1},  {"InterestRate" -> 0.03, "Volatility" -> 0.2, 
"CurrentPrice" -> 100, "Dividend" -> 0.10}, Method -> "Binomial", 
"Steps" -> 200]
POSTED BY: Sandu Ursu
3 Replies

Sandu, I think it would be worth reporting this to the Wolfram development team as a bug.

POSTED BY: Jonathan Kinlay
Posted 8 years ago

A question would be then: what is the default number of steps used when pricing with the binomial model? To achieve a value indistinguishable from the Black-Scholes, in this case, one needs to use a number of steps higher than 10000. This, however, is a bit time consuming.

Suspicious.

POSTED BY: Sandu Ursu

It looks like there are some issues with the FinancialDerivative function. As you point out, absent a dividend the price of American and European call options should be identical (not true for put options, of course, due to the time value of the cash value of the stock sold via the put).

One way to get the same result is to use the binomial method option:

FinancialDerivative[{"American", "Call"}, {"StrikePrice" -> 100.00, "Expiration" -> 1}, {"InterestRate" -> 0.03, "Volatility" -> 0.2, 
  "CurrentPrice" -> 100, "Dividend" -> 0.0}, Method -> "Binomial"]

which gives 9.4134, the same price as for a European option.

As you point out, changing the number of steps used in the Binomial method has no effect (as it should).

As regards the Method option, the documentation says:

By default, FinancialDerivative prices American vanilla options by numerically solving the BlackĀ–Scholes partial differential equation. A binomial tree solution method can be specified by setting the Method option to "Binomial".

So the difference in prices appears to be the result of using the Black-Scholes vs. Binomial pricing model.

Using Black Scholes I get a value of 9.4134, which agrees with the Binomial method price. So the issue appears to be with the default method.

POSTED BY: Jonathan Kinlay
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract