Binomail Tree Models in Finance

Overview


The binomial tree is a tree model where each node of the tree, branches off into two other nodes. It is the simplest model of no-arbitrage pricing of derivatives, and can be cast in a risk neutral setting.

The binomial tree can be used numerically to price various derivatives.

Binomial Tree


The binomial tree is the workhorse of the tree models in finance. This is because it is the simplest tree model, but also because it is the tree model that most closely resembles the Ito Processes used in the continuous time models.

The binomial tree starts as a single node, representing a price or some other variable. Each level of the tree represents a new point in time, and each node branches into two nodes in the next level.

The following is a tree that models a variable, here name value (possibly representing a price). Each node is assigned a probability that represents the probability of that state occurring.

copy

The visual tree generated here used the binomial tree api

Typically the tree is constructed by specifying an initial price of the asset, {% S_0 %} and the specifying two factors,

  • An up factor, labeled {% u %}. If the price takes the up path, the next price will be {% u \times S_0 %} The tree moves to the up node with probability {% p %}.
  • A down factor, labeled {% d %}. If the price takes the down path, the next price will be {% d \times S_0 %}. The tree moves to the down node with probability {% 1-p %}.

The time difference between one layer of the tree and the next is labeled {% \Delta t %}. The one period interest rate is denoted by {% r %}. (Note, the up and down values should be chose so that {% r %} is between them. If this is not the case, an arbitrage exists and the risk neutral probabilities, see below, will exceed {% 1 %} or be less than {% 0 %})

Risk Neutral Tree


The binomial tree can be used to value plain vanilla options. This is typically done by following the principles laid out in risk neutral pricing. That is, a set of risk neutral probabilities are computed and then assigned to each branch of the tree. A probability {% p %} is computed assigned assigned to the up move of the asset price, and the probability of the downward move is then {% 1-p %}.

These probabilities are not the real world probabilities of the price movements, rather they are probabilities which makes the drift of the asset equal to the discount rate {% r %}.

The derived formula for the risk neutral probability of the upward move is given by
{% p = (e^{r \Delta t} - d)/ (u - d) %}
(see Hull chapter 12)

The following code demonstrates the calculation.


let r = 0.1;
let u = 2;
let d = 0.5;
let t = 1;
let prob = (Math.exp(r*t) - d)/ (u-d);
					

The following uses the binomial tree library to construct a binomial tree, using the computed parameters.


//construct a 5 period binomial tree starting a 100 with the given parameters.
let tree = bt.binomial(100, 5, u, d, prob);
let sum = 0;
for(let item of tree[tree.length-1]){
  sum += item.probability * Math.max(0, item.value - 100);			
}

let value = Math.exp(-1*r*5) * sum;
					
Try it!