Submitted by: Submitted by tian00xia
Views: 10
Words: 7063
Pages: 29
Category: Business and Industry
Date Submitted: 02/13/2016 02:53 PM
c 2002 Society for Industrial and Applied Mathematics
SIAM REVIEW
Vol. 44, No. 4, pp. 661–677
Nine Ways to Implement the
Binomial Method for
Option Valuation in MATLAB∗
Desmond J. Higham†
Abstract. In the context of a real-life application that is of interest to many students, we illustrate
how the choices made in translating an algorithm into a high-level computer code can
affect the execution time. More precisely, we give nine MATLAB programs that implement the binomial method for valuing a European put option. The first program is a
straightforward translation of the pseudocode in Figure 10.4 of The Mathematics of Financial Derivatives, by P. Wilmott, S. Howison, and J. Dewynne, Cambridge University
Press, 1995. Four variants of this program are then presented that improve the efficiency
by avoiding redundant computation, vectorizing, and accessing subarrays via MATLAB’s
colon notation. We then consider reformulating the problem via a binomial coefficient
expansion. Here, a straightforward implementation is seen to be improved by vectorizing,
avoiding overflow and underflow, and exploiting sparsity. Overall, the fastest of the binomial method programs has an execution time that is within a factor 2 of direct evaluation
of the Black–Scholes formula. One of the vectorized versions is then used as the basis for
a program that values an American put option. The programs show how execution times
in MATLAB can be dramatically reduced by using high-level operations on arrays rather
than computing with individual components, a principle that applies in many scientific
computing environments. The relevant files are downloadable from the World Wide Web.
Key words. algorithm, American option, Black–Scholes, European option, optimization, overflow,
underflow, vectorization
AMS subject classifications. 65-01, 65Y20
PII. S0036144501393266
1. Introduction. This paper is about the efficient implementation of algorithms.
We use a case study based around the...