---
description: >-
  A trinomial tree can be used for pricing particular types of barrier options.
  We consider particular types of single barrier and double barrier options.
---

# Trinomial Tree Method for Pricing Barrier Option

&#x20;

&#x20;

Trinomial Tree Method for Barrier Option

&#x20;

A trinomial tree can be used for pricing particular types of barrier options. We consider particular types of single barrier and double barrier options.  The single barrier options include certain types of:

&#x20;

&#x20;           _Down and In_ (D\_IN) calls and puts,

&#x20;           _Down and Out_ (D\_OUT) calls and puts,

&#x20;           _Up and In_ (UP\_IN) calls and puts, and

&#x20;           _Up and Out_ (UP\_OUT) calls and puts.

&#x20;

We specify these types next.

&#x20;

A D\_IN call option specification, for example,  includes the exercise type (i.e., either American or European),  an  exercise time, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png),  a strike level,![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png),  a rebate value, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png) (where ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image008.png), and a barrier level, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image010.png), which depends continuously on time over  the interval ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png). &#x20;

&#x20;

Here the underlying security is any security whose price, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png),  can be modeled as a piecewise geometric Brownian motion over the life of the option.  In addition we require that the initial spot level for the underlying security, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image016.png), lie above the initial barrier level, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image018.png).&#x20;

&#x20;

The payoff for a long, European D\_IN call is that of a standard European call, provided that  the underlying  falls below the barrier level at some time during the option’s life (i.e.,  ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image020.png), for some ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image022.png)); otherwise, the payoff at expiry  is equal to the fixed rebate, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png).  Formally a long, European D\_IN call option payoff is defined, at exercise time ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png), as

&#x20;

![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image026.png)

&#x20;

In contrast a  long, American D\_IN call can be exercised immediately after it has knocked in (i.e., after the underlying security has crossed the lower barrier level); if the option does not knock in, then the fixed rebate,![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png), is received at maturity.&#x20;

&#x20;

As mentioned above, we also consider certain types of double barrier options.  These options include particular types of:

&#x20;

&#x20;           _Down  and Out_ or _Up and Out_ (D\_OUT\_OR\_UP\_OUT) calls and puts,

&#x20;           _Down and In_ and _Up and Out_ (D\_IN\_AND\_UP\_OUT) calls and puts,

&#x20;           _Down and Out_ and _Up and In_ (D\_OUT\_AND\_UP\_IN) calls and puts,

&#x20;           _Down and In_ or _Up and In_ (D\_IN\_OR\_UP\_IN) calls and puts,

&#x20;           _Down and Out_ and _Up and Out_ (D\_OUT\_AND\_UP\_OUT) calls and puts, and

&#x20;           _Down and In_ and _Up and In_ (D\_IN\_AND\_UP\_IN) calls and puts.

&#x20;

The double barrier options above allow only for European exercise.   Below we provide specifications for certain of these options.

&#x20;

A  D\_OUT\_OR\_UP\_OUT European call option specification, for instance, includes an exercise time, a strike level, and a rebate value (we denote these parameters as above).   In addition two  barrier levels, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image029.png), which depend continuously on time over the interval ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image031.png), must be specified (here ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image033.png) ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image035.png)![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image037.png), for all ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image022.png)).  Note that the initial price of the underlying security, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image040.png), must lie between the initial upper and lower barrier values, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image042.png) and ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image018.png).&#x20;

&#x20;

The payoff from a long  European D\_OUT\_OR\_UP\_OUT call option is equal to that of a long, standard European call option, if the price of the underlying security does not cross either the upper or lower barrier during the time interval ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png) (i.e., if ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image046.png), for all ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image022.png)); otherwise, as _soon as_ one of these barriers is touched, a rebate value of ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png) is received.  Note that, of the double barrier options above, the D\_OUT\_OR\_UP\_OUT option is the only option that allows for a rebate.  Specifications for the remaining double barrier options above are provided in \[Myint, 1996a]

&#x20;

We also consider two types of knockout annuities, _Down and Out_ and _Up and Out._ If we are long such a knockout annuity, we receive a fixed coupon annuity until the price of the underlying security crosses a preset barrier level; we then receive the accrued annuity since the last pay date.  Note that only European exercise is permitted for the knockout annuities above, and no rebates are allowed.

&#x20;

Analytic formulas for pricing barrier options do not exist for the case where the barrier is an arbitrary, continuous  function of time or where the exercise type is American.  Tree methods (e.g., trinomial or binomial) can, however, be used to approximate the price of barrier options.   Unfortunately standard tree methods, when applied to price barrier options, suffer from several drawbacks, that is, these methods may converge very slowly and/or display a persistent bias in the price. The disadvantages above are due to the inability of standard tree methods to ensure, for example, for a single barrier option, that a layer of tree nodes always coincides with the barrier.&#x20;

&#x20;

In such a case, then, the tree method effectively prices a different option (i.e., with a new barrier).  An interesting, new trinomial tree method is presented for overcoming the above specification error in the barrier.  The idea of the method is to construct a tree lattice, for example, for a single barrier option, by ensuring that certain nodes near the barrier always branch onto the barrier.

&#x20;

Next we present the methods for pricing the types of barrier options described in Section 2.  Each method is based on a combination of techniques, that is, a tree generation technique and a backward induction pricing technique.  Below we describe the tree generation techniques for both single barrier and double barrier.  We then describe backward induction techniques for the types of options considered.

&#x20;

Let ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image050.png) be a partition of the time interval ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png).  Furthermore suppose that the underlying security follows piecewise geometric Brownian motion, in the sense described below,  over the interval ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png).   Specifically, assume that the underlying security can be modeled as a process, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image054.png), which, under the risk neutral probability measure, satisfies a stochastic differential equation (SDE) of the form

&#x20;

&#x20;                ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image056.png)                             (1)

&#x20;

where ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image058.png)is standard Brownian motion.  Here ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image060.png) and ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image062.png) are deterministic functions of the piecewise constant form

&#x20;

![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image064.png)    and   ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image066.png).

&#x20;

Each method includes a technique for constructing, based on the SDE (1), an appropriate tree of discrete prices of the underlying security.   Each such technique uses a mathematical result, described below, for ensuring that branching probabilities from each tree node are appropriate (i.e., probabilities, for each node, must be non-negative and sum to one).

&#x20;

Consider a tree node, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image068.png), at a  time slice, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image070.png),  where  ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image072.png);  furthermore, assume that the logarithm of the price of the underlying security at this node is equal to ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image074.png).  We assume that node ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image068.png) branches into three nodes, at time slice ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image077.png), with respective logarithm of the price of the underlying security of the form ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image079.png)![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image081.png)and ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image083.png) where ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image085.png)and ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image087.png). &#x20;

&#x20;

Here ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image089.png) is the value that, among all tree nodes at time ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image077.png), is  closest to ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image092.png) where ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image094.png) and ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image096.png);  furthermore, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image098.png) and  ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image100.png) are values for the two  nodes closest to the node with value  ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image089.png).  Next  we associate with node ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image102.png) a discrete random variable, ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image104.png), which takes the values

&#x20;

![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image106.png)

&#x20;

We seek to determine ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image108.png), above, so that the mean and variance of the discrete random variable ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image104.png) match those of the continuous random variable ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image111.png) (obtained by solving the SDE (1), with initial condition ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image113.png), for the time interval ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image115.png)).&#x20;

&#x20;

By matching mean and variances as described above, and by ensuring that the probabilities sum to one, we obtain the following system of linear equations

&#x20;

![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image117.png)      (2)

&#x20;

for the unknowns ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image119.png).  By algebraic manipulation, the linear system of equations above is equivalent to&#x20;

&#x20;

&#x20;                                            ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image121.png)                          (3)

&#x20;

Where

&#x20;

&#x20;                                                   ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image123.png)                                                    (4a)

&#x20;

and

&#x20;

&#x20;                                                  ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image125.png).                                              (4b)

&#x20;

Notice that while the system of equations above has a unique solution, we have no guarantee that ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image108.png) will be non-negative.   Next we determine a condition on ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image128.png)to ensure that ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image130.png)

&#x20;

Recall that the branching rule from node ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image068.png) implies that

&#x20;

&#x20;                        ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image133.png)               (5)

&#x20;

Dividing (5)  by ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image135.png)and substituting  ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image137.png) for the right hand side of (4b), we have![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image139.png), which we can rewrite as

&#x20;

&#x20;                                                  ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image141.png)                                                                (6)

&#x20;

for some ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image143.png).  Solving (3) and substituting the right hand side of (4b) for ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image137.png), we obtain

&#x20;

&#x20;                                                       ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image146.png)                                          (7)

&#x20;

where ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image143.png).  Notice that the right hand side of (7) has no dependency on ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image149.png).&#x20;

&#x20;

Analyzing the right hand side of (7) over the range ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image143.png), we obtain the condition ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image152.png)

&#x20;

&#x20;                                                        ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image154.png)                                                            (8)

&#x20;

on ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image128.png), which ensures that  ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image130.png)  Notice that (8) yields an equivalent condition on ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image135.png), that is,

&#x20;

&#x20;                                           ![](file:///C:/Users/Xiao/AppData/Local/Temp/msohtmlclip1/01/clip_image158.png).                          (9)

&#x20;

To summarize, for an arbitrary tree node on an arbitrary time slice, appropriate branching probabilities are given as the solution of (2) provided that condition (9)  holds.&#x20;

&#x20;

Reference:

[https://finpricing.com/lib/IrBasisCurve.html](https://finpricing.com/lib/IrBasisCurve.html)
