Again while testing my routines (Java code to implement the binomial tree to price American options) I came across an issue with the **FinancialDerivative** command of **Mathematica 8** (I am working with the **linux** version). The default algorithm chosen by Mathematica for **American** style options seem to converge to a wrong result. To get the correct result one must manually set the option ** “Method” -> “Binomial”**. As a simple example of the issue I post here the code to compute the price of a European and American call option with **zero dividends**. The two prices should be the same in this case. Here what I get instead:

In[1]:= $Version
Out[1]= "8.0 for Linux x86 (32-bit) (October 10, 2011)"
In[2]:= FinancialDerivative[{"American", "Call"}, {"StrikePrice" -> 110.00, "Expiration" -> 1}, {"InterestRate" -> 0.08, "Volatility" -> 0.,"CurrentPrice" -> 100, "Dividend" -> 0.0}]
Out[2]= 7.10517
In[3]:= FinancialDerivative[{"European","Call"}, {"StrikePrice" -> 110.00,"Expiration" -> 1}, {"InterestRate" -> 0.08, "Volatility" -> 0.2,"CurrentPrice" -> 100, "Dividend" -> 0.0}]
Out[3]= 7.27904

the two results are different. To get the correct price also for the American option try this

In[4]:= FinancialDerivative[{"American","Call"}, {"StrikePrice" -> 110.00,Expiration" -> 1}, {"InterestRate" -> 0.08, "Volatility" -> 0.2,"CurrentPrice" -> 100, "Dividend" -> 0.0}, "Method" -> "Binomial"]
Out[4]= 7.27904

I reported the issue to Wolfram support also asking what is the default method for American options and how to get the full list of available methods. By now I just received a short answer saying

“*[…] I have*

*forwarded your example to our developers so that they can take a look into*

*this and resolve the issue for a future version of Mathematica.*”

so let’s hope that this will be fixed in Mathematica v9. If I will get more information I’ll modify the post, by now just use the Binomial method to get the correct price for American options.

### Like this:

Like Loading...