Option Pricing Using The Binomial Model
Binomial models (and there are several) are arguably the simplest techniques used for option pricing. The mathematics behind the models is relatively easy to understand and (at least in their basic form) they are not difficult to implement.
This tutorial discusses the general mathematical concepts behind the binomial model with particular attention paid to the original binomial model formulation by Cox, Ross and Rubinstein (CRR). An example of implementing the CRR model in MATLAB can be found in a this tutorial.
However, there are many other versions of the binomial model. Several of them, including a discussion of their underlying mathematics and an example of their implementation in MATLAB, are presented in a companion option pricing tutorial.
Each of the approaches has its advantages and disadvantages for pricing different types of options. However, they all involve a similar three step process.
 Calculate potential future prices of the underlying asset(s) at expiry (and possibly at intermediate points in time too).
 Calculate the payoff of the option at expiry for each of the potential underlying prices.
 Discount the payoffs back to today to determine the option price today.
Each of those steps is discussed in the following sections.
Calculating a Tree for the Underlying Asset Price
The first step in pricing options using a binomial model is to create a lattice, or tree, of potential future prices of the underlying asset(s). This section discusses how that is achieved.
The One Step Binomial Model
A onestep binomial model is shown in Figure 1. The notation used is,
 S_{0}: The stock price today.
 p: The probability of a price rise.
 u: The factor by which the price rises (assuming it rises).
 d: The factor by which the price falls (assuming it falls).
Note that the model assumes that the price of the equity underlying the option follows a random walk.
The essence of the model is this: assume the price of an asset today is S_{0} and that over a small time interval Δt it may move to one of only two potential future values S_{0}u or S_{0}d. The underlying price is assumed to follow a random walk and a probablity p is assigned to the likelihood that the price will rise. Hence the probability of a fall in the stock price is 1p.
Conceptually any values for the three parameters, p, u and d may be used. (Subject to 0 < p < 1 and S_{0}d > 0.) However some values are more optimal than others. So the question is how can the best values be calculated?
There is no simple answer to that question. In fact there are many different approaches to calculating values for p, u and d. These include methods developed by,
 CoxRossRubinstein: This is the method most people think of when discussing the binomial model, and the one discussed in this tutorial.
 JarrowRudd: This is commonly called the equalprobability model.
 Tian: This is commonly called the moment matching model.
 JarrowRudd Risk Neutral: This is a modification of the original JuddYarrow model that incorporates a riskneutral probablity rather than an equal probability.
 CoxRossRubinstein With Drift: This is a modification of the original CoxRossRuninstein model that incorporates a drift term that effects the symmetry of the resultant price lattice.
 LeisenReimer: This uses a completely different approach to all the other methods, relying on approximating the normal distrbution used in the BlackScholes model.
Of the above approaches the CoxRossRubinstein method is perhaps the best known, with the JarrowRudd method close behind. The remaining methods have been developed to address perceived (and perhaps real) deficiencies in those two methods.
A RiskNeutral World
Three equations are required to be able to uniquely specify values for the three parameters of the binomial model. Two of these equations arise from the expectation that over a small period of time the binomial model should behave in the same way as an asset in a risk neutral world.
This leads to the equation
which ensures that over the small period of time Δt the expected return of the binomial model matches the expected return in a riskneutral world, and the equation,
which ensures that the variance matches.
CoxRossRubinstein
Cox, Ross and Rubinstein proposed the third equation
Rearranging the above three equations to solve for parameters p, u and d leads to,
The unique solution for parameters p, u and d given in Equation 4 ensures that over a short period of time the binomial model matches the mean and variance of an asset in a risk free world, and as will be seen shortly, ensures that for a multistep model the price of the underlying asset is symmetric around the starting price S_{0}.
The MultiStep Model
Before considering the more general case of a manystep model, consider the twostep model shown in Figure 2
As with the onestep model of Figure 1, over the first period of time in the twostep model the asset price may move either up to S_{u} or down to S_{d}. Over the second period, if the price moved up to S_{u} in the first period then the price may move to either S_{uu} or S_{ud}. However if the price moved down in the first period to S_{d} then in the second period it may move to either S_{du} or S_{dd}.
If S_{ud}=S_{du} then the price tree is said to be recombining. However if they are not equal then the price tree is said to be nonrecombining (or bushy).
Since there are typically tens if not hundred or thousands of time steps taken when pricing an option the amount of data (and hence computer memory, and computation time) required to calculate a nonbushy tree is typically prohibitively and hence they are rarely used.
The third equation of the CRR model ensures that it generates a recombining tree that is centred around the original stock price S_{0}. Taking multiple time steps leads to the tree shown in Figure 3.
In general the time period between today and expiry of the option is sliced into many small time periods. A tree of potential future asset prices is then calculated. Each point in the tree is refered to as a node. The tree contains potential future asset prices for each time period from today through to expiry.
Calculating the Payoffs at Expiry
The second step in pricing options using a binomial model is to calculate the payoffs at each node corresponding to the time of expiry. This corresponds to all of the nodes at the right hand edge of the price tree.
In general the payoff may depend on many different factors. As an example, the payoffs of simple put and call options will use the standard formulae

where
 N designates a node at expiry.
 V_{N} is the option value.
 X is the strike.
 S_{N} is the price of the underlying asset.
Discounting the Payoffs
The third step in pricing options using a binomial model is to discount the payoffs of the option at expiry nodes back to today. This is achieved by a process called backwards induction, and involves stepping backwards through time calculating the option value at each node of the lattice in a sequential manner.
This is achieved using the appropriate following formulae

where
 n designates a node prior to expiry.
 V_{n} is the option value.
 X is the strike.
 S_{n} is the price of the underlying asset.
 p is the probability of an upwards price movement.
 V_{u} is the option value from node upper node at n+1.
 V_{u} is the option value from the lower node at n+1.
 r is the riskfree interest rate.
 Δt is the step size between time slices of the model.
It is critical to notice that with backwards inducton the counter n starts at N (i.e. expiry) and decreases down to 0 (i.e. today).
The Option's Value
Following the three step procedure described above the value of the option V_{0} may be calculated. A MATLAB implementation of the CRR algorithm presented here can be found in this tutorial.
A companion option pricing tutorial discusses the mathematics behind several alternative binomial models.