Developing Efficient Option Pricing Algorithms by Combinatorial Techniques
Tian-Shyr Dai
∗Yuh-Dauh Lyuu
†Li-Min Liu
‡Abstract
How to price options efficiently and accurately is an important research problem. Options can be priced by the lattice model. Although the pricing results con-verge to the theoretical option value, the prices do not converge monotonically. Worse, for some options like barrier-options, the prices can oscillate significantly. Thus, large computational time may be required to achieve acceptable accuracy. The combinatorial tech-niques can be used to improve the performance for pricing a wide variety of options. This paper uses vanilla options, single-barrier options, double-barrier options, and lookback options as examples to show how to derive linear-time pricing algorithms by com-binatorial techniques. These algorithms are shown to compare favorably against many other lattice al-gorithms, which takes at least quadratic time in com-putation.
Keywords: option pricing, lattice, combinatorial
ap-proach, exotic option.
1
Introduction
Options are financial derivatives that give their buy-ers the right but not the obligation to buy or sell the elementary financial instrument for the exercise price. The elementary financial instrument in this paper is assumed to be stock for convenience. With the rapid growth and deregulation of economies, many complex options have been structured to meet specific financial goals. Although financial innovations make the mar-ket efficient, they give rise to new problems in pricing these options efficiently and accurately.
How to assign a fair price to an option given a continuous-time stochastic process for the stock price has been investigated since 1900. Black and Scholes settle the pricing problem for the vanilla option [1]. Although an option must have a unique theoretical value, calculating that price may be intractable. Most of the options can not be evaluated analytically and
∗Department of Information and Finance Management,
National Chiao-Tung University, Taiwan 300, ROC. E-mail:[email protected]. Tel: 886-3-2653131. The au-thor was supported by NSC grant 94-2213-E-033-024.
†Department of Finance and Department of Computer
Sci-ence & Information Engineering, National Taiwan University. The author was supported in part by NSC grant 94-2213-E-002-088.
‡Department of Applied Mathematics, Chung Yuan
Chris-tian University. The author was supported in part by NSC grant 94-2213-E-033-031.
must be priced by the numerical methods. Finding efficient and accurate numerical pricing methods is thus important.
The lattice method is a popular numerical method for pricing options. A lattice divides a certain time interval from time 0 to T into n discrete time steps and simulates the stock price discretely at each time step. Take a 4-time-step CRR lattice [4] in Fig. 1 as an example. The time interval between the op-tion initial date to the maturity date is evenly divided into 4 time steps. The stock price at time step 0 is S0. For any node at an arbitrary time step i
rep-resents a possible stock price at the i-th time step. From an arbitrary node with stock price S, the CRR lattice says that the stock price after one time step equals Su (the up move) with probability p and Sd (the down move) with probability 1− p, where d < u and ud = 1. Let σ denotes the volatility of the stock price, r denotes the risk-free rate. Then u and d are set to eσ
√
T /n and e−σ√T /n, respectively. Note that
ud = 1 in the CRR lattice model. The probability p is set to (erT /n− d)/(u − d). Note that the stock
price S resulting from j down moves and i − j up moves from time step 0 equals S0ui−jdj with
proba-bilityjipi−j(1− p)j. This node located at time step i is denoted as N (i, j) for simplicity.
The pricing results generated by the lattice method converge to the theoretical option value as n → ∞ [6]. To calculate the pricing results, a naive lattice algorithm needs to calculate the option price for each node of the lattice. In other words, the time com-plexity of such a lattice algorithm is at least O(n2)
since there are O(n2) nodes in a lattice. Note that
pricing some complex options, like lookback options, needs higher time complexity. Even more, Chalasani et al. show that an option can be so defined that its pricing problem is #P-hard [3]. Besides, the lattice method also has some problems in convergence. For some options like lookback options, the pricing results converge very slowly. Worse, for some options like barrier-options, the pricing results can oscillate sig-nificantly [2]. Thus, a large n is required to achieve acceptable accuracy.
The combinatorial approach seems to be first sug-gested by Lyuu. He develops a linear time combi-natorial algorithm for pricing single-barrier options on the CRR lattice [11] by taking advantage of the reflection principle. In fact, we find that some combi-natorial tools, like the recurrence relation, the reflec-tion principle, and the inclusion-exclusion principle, can be applied to improve the performance for
pric-0 S u S0 d S0 p p − 1 2 0u S 3 0u S 0 S 2 0d S 3 0d S u S0 d S0 0 1 2 3 N (0,0) N (1,0) N (1,1) N (2,0) N (2,1) N (2,2) N (3,0) N (3,1) N (3,2) N (3,3) Time step 4 N (4,0) N (4,1) N (4,2) N (4,4) N (4,3) 4 0u S 2 0u S 0 S 2 0d S 4 0d S
Figure 1: The CRR Lattice.
ing a wide variety of options on the CRR lattice. In this paper, we will use vanilla options, single-barrier options, double-barrier options, and lookback options as examples to demonstrate how these tools can im-prove the lattice pricing algorithms. We will show that all the resulting pricing algorithms runs in linear time. These proposed algorithms are at least an order faster than currently existing algorithms.
A simple survey for above mentioned options is given as follows. Black and Scholes derive an ana-lytical solution for vanilla options [1]. A barrier op-tion is an opop-tion whose payoff depends on whether the stock’s price path ever touches certain price lev-els called the barriers. A single-barrier option is a barrier option with only one barrier, while a double-barrier option is a double-barrier option with two double-barriers. When the payoff functions of single-barrier options follow some simple forms, analytical pricing formulas can be obtained from [13]. The valuation of double-barrier options has been studied by [10]. However, no simple exact closed-form pricing formula for double-barrier options is available in the literature. The pric-ing formula can be expressed as an infinite series of cumulative normal distributions. Although trunca-tion of this infinite series is necessary numerically, it can lead to large pricing errors according to [10]. The payoff of a lookback option depends on the extreme stock price achieved during a certain period of time. The analytical formulas for the lookback options are derived in [8].
The lattice model is a flexible way to price op-tions since it can price an option with only nomi-nal changes even when the option’s payoff function is nonstandard, such as the power payoff function used in power options. In contrast, there may not be closed-form formulas for these options. However, the pricing results may converge slowly or even os-cillate significantly. The oscillation phenomenon for pricing vanilla options by the lattice model is studied in [12]. Boyle and Lau study the oscillation prob-lem for pricing single-barrier options [2]. To alle-viate price oscillation problem, Ritchken provides a trinomial lattice model for pricing both single- and double-barrier options [14]. Figlewski and Gao
pro-vides the adaptive mesh model for pricing vanilla op-tions and single-barrier opop-tions [7]. Although their algorithms successfully alleviate the price oscillation problem, their algorithms are not efficient since they all run in O(n2) time. In this paper, we will derive a
O(n) time combinatorial algorithm for pricing double-barrier options on the CRR lattice. This algorithm can be applied to improve the performance for pricing double-barrier options on the Bino-Trinomial lattice (see [5]), which is mainly composed of a CRR lattice. Numerical results show that the resulting approach can achieve the same level of accuracy with much less computational time than other lattice approaches.
An efficient lattice pricing algorithm for the back option is useful since the pricing results for look-back options converge very slowly. An efficient lat-tice algorithm for lookback options is thus important. The most efficient algorithm currently known runs in O(n2) time [9]. In this paper, we propose an O(n)
time combinatorial algorithm for pricing lookback op-tions.
Our paper is organized as follows. Required math-ematical and financial background knowledge are in-troduced in section 2. An O(n) time algorithm for pricing double-barrier options is derived in section 3. In section 4, we develop O(n) time pricing algo-rithms for lookback options. Numerical results are provided in section 5 to show how the combinatorial techniques improve the efficiency of the lattice pricing algorithms. Section 6 concludes the paper.
2
Preliminary
Payoff Functions for Options
A vanilla option gives the holder the right to buy or sell the stock for the exercise price X at the maturity date. A call option allows the option owner to buy the stock with price X at time T , while a put option allows the option owner to sell the stock with the same price at time T . Thus the payoff of a vanilla option at time T can be expressed as follows:
max(θS(T ) − θX, 0), (1)
where S(T ) denotes the stock price at time T , θ equals to 1 and −1 for call and put options, respec-tively.
A barrier option is an option whose payoff depends on whether the stock’s price path ever touches cer-tain price levels called the barriers. A single-barrier option is a barrier option with only one barrier, says H. Assume that H > S(0) for convenience. Define Ssup ≡ sup0≤t≤TS(t). The payoff of a single-barrier
option at maturity date T is expressed as follows:
Payoff =
max(θS(T ) − θX, 0), if Ssup≥ H,
0, otherwise.
A double-barrier option is a barrier option with two barriers, says L and H. Assume that L < S0< H for
for a double barrier option at maturity date can be expressed as follows:
Payoff =
max(θS(T ) − θX, 0) if Ssup≥ H or Sinf≤ L,
0 otherwise.
(2)
The payoff of a lookback option depends on the ex-treme stock’s price during a certain time interval. The payoff function for a lookback option at the maturity date can be described as follows.
Payoff =
S(T ) − Sinf for a call option,
Ssup− S(T ) for a put option. (3)
Pricing Options on the CRR Lattice
The theoretical value of an option is expressed as fol-lows:
e−rTE (Payoff) . (4)
The dynamic programming technique can be applied when we price an option on the CRR lattice. The option value for each node is evaluated backwardly from time step n to time step 0. Take a vanilla call option as an example. Define the option value for node N (i, j) as V (i, j). Thus V (n, j) is equal to max(S0un−jdj− X, 0). V (i, j) can be calculated by
the following formula:
V (i, j) ≡ e−rT /n× (pV (i + 1, j) + (1 − p)V (i + 1, j + 1)) ,
where 0≤ i < n. The pricing result is V (0, 0). Note that this naive pricing method takes O(n2) time since
there are O(n2) nodes in an n-time-step CRR lattice.
The Recurrence Relation
The recurrence relation can help us to speed up com-putation. Take the vanilla call option mentioned above as an example. Since the probability to reach node N (n, j) isnjpn−j(1− p)j, the pricing result of
the n-time-step CRR lattice can be derived by apply-ing Eq. (4) as follows:
e−rT n j=0 n j pn−j(1− p)jmax(S 0un−jdj− X, 0). (5)
This formula can be evaluated in O(n) time by the two following recurrence relations. Define Cj and Dj
as njpn−j(1− p)j and S
0un−jdj, respectively. Cj
and Dj can be expressed by the two following
re-currence relations: Cj = Cj−1×(1−p)×(n−j+1)p×j , and
Dj = Dj−1× du. Note that both Cj and Dj can be
evaluated in constant time when Cj−1 and Dj−1 are
known. To obtain the pricing result, we may first cal-culate C0and D0 and then evaluate each summation
term in Eq. (5) in constant time by the recurrence relations mentioned above. Eq. (5) can be evaluated in O(n) time since there are n + 1 summation terms in this equation.
The Reflection Principle
The reflection principle can help us to efficiently count the number of paths that hit a specific price level be-fore reaching a certain node at the n-th time step of
J s K H L A (0,a) (0,-a) (0,-(a+2s)) B (n,-b) (0,0) (0,-s) 1 A 2 A
Figure 2: Count the Number of Paths that Hit
Barrier H (or L) by the Reflection Principle and the Inclusion-Exclusion Principle.
the CRR lattice. This property is useful for pricing single-barrier options. We will derive a useful combi-natorial formula with the help of the grid illustrated in Fig. 2. This grid reflects the structure of a CRR lattice. The x-coordinate denotes the time step of the CRR lattice, and the y-coordinate denotes the stock price level. To fit the stock price movement on the CRR lattice, each path in the grid can move from vertex (i, j) to vertex (i + 1, j + 1) (the up move) or vertex (i + 1, j − 1) (the down move). Now con-sider the following problem that is useful for pricing single-barrier options: How many paths starting form (0, −a) (node A) will reach barrier H before arriving at (n, −b) (node B)? Without loss of generality, we further assume that a, b ≥ 0.
Consider one such path, AJB, that hits barrier H at node J. We can reflect the path AJ (marked by the solid curve) with respect to the H-axis to get A1J
(marked by the dash curve). Each path from node A to node J maps to a unique path from node A1 to
node J. For example, the path AJ maps to A1J.
Thus the number of paths from node A to node J equals to the number of paths from node A1 to node
J. By this observation, the reflection principle says that the number of paths staring from node A and hitting barrier H before reaching node B equals to the number of paths moving from node A1 to node
B. Assume that x up moves and y down moves are required to move from node A1 to node B. Thus we
have x + y = n and x − y = −a − b. By solving these two equations, we have x = n−a−b2 . Thus the number
of paths that reach H before arriving B is
n
n−a−b
2
for even, non-negative n − a − b (6)
and zero otherwise.
Lyuu derives an O(n) time combinatorial algorithm for pricing a single-barrier option with barrier H by taking advantage of Eq. (6) [11]. His work is sketched as follows. A CRR lattice is placed on a grid as illus-trated in Fig. 3. Assume that barrier H is equal to S0un−2h for convenience. The CRR lattice is placed
so barrier H coincides with the x-axis. The single-barrier call option can be priced by taking the dis-counted expected payoff of the option at maturity date as in Eq. (4). We calculate the values con-tributed by theses nodes at the n-th time step. For convenience, we use “terminal nodes” to refer to these nodes. Two different kinds of terminal nodes are
de-H L 0 2h-2l 2h-n n Time Step ) (0 n u S − ) (S0 ) ( 2 0 l n u S − ) ( 2 0 h n u S − Price level 2h-2n ) ( 0 n u S 2h h l s≡2−2
Figure 3: Placing a CRR Lattice on a Grid (for
Pricing both Single- and Double-Barrier Op-tion). The coordinate of the root node of the CRR
lattice is (0, 2h − n). s denotes the distance between H and L. The values in parentheses denote the stock prices.
scribed as follows. For a terminal node that is above barrier H (inclusive) like node A, all the paths that reach this node must hit barrier H. The option value contributed by these terminal nodes can be calculated as follows: V ≡ h i=0 n i
pn−i(1− p)imax(S0un−idi− X, 0).
For a terminal node that is below barrier H (exclu-sive) like node B, all the paths that reach this node before hitting barrier H can be efficiently computed by Eq. (6). The option value contributed by these terminal nodes can be calculated as follows:
V≡ n i=h+1 n 2h − i pn−i(1− p)imax(S 0un−idi− X, 0).
The value of the single barrier option priced by the CRR lattice is simply V + V.
3
Double-Barrier Options
3.1
A Combinatorial Formula
We derive a combinatorial formula that can efficiently count the number of paths that hit one of some prede-termined price levels before reaching a certain node at the n-th time step in a CRR lattice. This formula is helpful to derive an O(n) algorithm for pricing double-barrier options. Consider the gird illustrated in Fig. 2. How many price paths starting form (0, −a) (node A) will reach either barrier H or barrier L before ar-riving at (n, −b) (node B)? Obviously, the reflection principle is not directly applicable. This problem can be solved by applying the reflection principle repeat-edly and by the inclusion-exclusion principle.
Before solving this problem, a simplified problem is considered first: How many price paths moving form node A to node B will hit barrier H before one hit of barrier L? One such path may hit barrier H at J and barrier L at K. We can first reflect the path AJ with respect to the H-axis to get A1J. The reflection
principle says that the number of paths staring from node A and hitting barrier H before reaching node B equals to the number of paths moving from node A1
to node B. The reflection principle can be applied more than once. The curve A1K can be reflected
with respect to the L-axis to obtain A2K. By the
reflection principle, the number of paths staring from node A1 and hitting barrier L before reaching node
B equals to the number of paths moving from node A2 to node B. Thus the number of paths moving
from node A to node B and reaching barrier H at least once before hitting the barrier L is equal to the number of paths moving from A2 to B. Assume that
x up moves and y down moves are required to move from node A2(with coordinate (0, −(a+2s))) to node
B (with coordinate (n, −b)). Thus we have x + y = n and x − y = a − b + 2s. We get x = n+a−b+2s2 by solving the above two equations. So the answer to this simplified problem mentioned above is
n
n+a−b+2s
2
for even, non-negative n + a − b. (7)
Note that a path counted by Eq. (7) may hit L first before hitting H. The point is that among the hits, one hit of barrier H must appear before one hit of barrier L.
The problem of counting the number of paths that will hit either barrier H or barrier L before arriving at node B is now within reach. First, a function f is constructed to map each path to a string. This string contains the information about the barrier hitting se-quence. For example, f (AB) = HHL since the path
AB hits the barrier H twice before hitting the bar-rier L. Next, we define αi as the set of paths whose f
value contains
i
H+L+H+· · · with i ≥ 1. L+ and H+
denote a sequence of Ls and Hs, respectively. Obvi-ously, the path AB belongs to both set α1and set α2.
Similarly, define βi as the set of paths whose f value
contains
i
L+H+L+· · · with i ≥ 1. Thus the path AB belongs to set β1. The number of elements in set αi
and βi can be calculated by repeatedly using the
re-flection principle mentioned in last paragraph. The number of elements in each set is listed as follows:
| αi| = ⎧ ⎪ ⎪ ⎨ ⎪ ⎪ ⎩ n n+a+b+(i−1) s 2 for odd i n n+a−b+is 2 for even i (8) | βi| = ⎧ ⎪ ⎪ ⎨ ⎪ ⎪ ⎩ n n−a−b+(i+1) s 2 for odd i n n−a+b+is 2 for even i
Note that each path that hits the barrier may belong to more than one set. For example, AB in Figure 2 belongs to set α1, α2, and β1. The inclusion-exclusion
principle is then applied to calculate the exact number of paths that moves from A (with coordinate (0, −a)) to B (with coordinate (n, −b)) and that hit either barrier H or L at least once as follows:
N(a, b, s) =
ns i=1
3.2
Linear Time Algorithm
We first put the CRR lattice on a grid as dis-played in Fig. 3. Assume that the barriers H and L equal to S0un−hdh(= S0un−2h) and L =
S0un−ldl(= S0un−2l), respectively. The exercise price
X satisfies the following equality S0un−ada ≤ X <
S0un−a+1da−1 for some integer a.
Next we analyze the option value contributed by a price path that reaches node N (n, j). The probability for this price path is pn−j(1− p)j. The payoff at
node N (n, j) is max(S0un−jdj−X, 0). Thus the value
contributed by this price path is
p(j) ≡ e−rTpn−j(1− p)jmax(S0un−jdj− X, 0), (10)
if this price path hits either barrier H or barrier L. Furthermore, the number of price paths that reach node N (n, j) isnj. If node N (n, j) is above the bar-rier H (inclusive) or below the barbar-rier L (inclusive), the value contributed by this node njp(j). This is because all the price paths that reach this node must also hit barrier H or L.
The combinatorial algorithm for pricing the double-barrier call option is now within reach. First, a “com-bination table” is built for storing the value of nk, where 0 ≤ k ≤ n. Thus nk can be evaluated in constant time by looking up this table. Next, two non-degenerate cases are considered as follows.
Case 1. L < X < H:
The option value can be decomposed into two fol-lowing parts: (1) the value contributed by the ter-minal nodes between X and H (exclusive), and (2) the value contributed by the terminal nodes above H (inclusive).
The first part of the option value can be computed by accumulating the values contributed by the termi-nal nodes, says N (n, j) (a > j > h), between X and H. The number of paths that reach one of the barriers before reaching N (n, j) is N(n − 2h, 2j − 2h, 2l − 2h). The value contributed by such a path is p(j) (see Eq. (10)). Therefore, the value contributed by node N (n, j) is N(n − 2h, 2j − 2h, 2l − 2h)p(j). The sum of the values contributed by the terminal nodes between X and H is
P0≡
a−1 j=h+1
N(n − 2h, 2j − 2h, 2l − 2h)p(j). (11)
The second part of the option value is computed by accumulating the values contributed by the terminal nodes, says N (n, i) (0 ≤ i ≤ h), above the barrier H (inclusive). The value contributed by N (n, i) is n
i
p(i). Therefore, the second part of the option value is P1 ≡ h i=0 n i p(i) = e−rT h i=0 n i
pn−i(1 − p)i max(S0un−idi − X, 0).
(12)
We conclude that the value of a double-barrier call option is P0+ P1 under the condition L < X < H.
Case 2. X ≤ L:
The option value can be decomposed into three fol-lowing parts: (1) the option value contributed by the
terminal nodes between L (exclusive) and H (exclu-sive), (2) the option value contributed by the terminal nodes above H (inclusive), and (3) the option value contributed by the terminal nodes between L (inclu-sive) and X.
The first part of the option value is computed by accumulating the values contributed by the terminal nodes between L and H as follows:
P0≡
l−1
j=h+1
N(n − 2h, 2j − 2h, 2l − 2h)p(j). (13)
The second part of the option value is computed by accumulating the values contributed by the terminal nodes above the barrier H (inclusive) as listed in Eq. (12). The third part of the option value is computed by accumulating the option value contributed by the terminal nodes, says N (n, k) (l ≤ k < a), between L (inclusive) and X. This part of the option value is P 1 = a k=l n k p(k) = e−rT a k=l n k pn−k (1 − p)k max(S0un−k dk − X, 0). (14)
Thus, the value of a double-barrier call option is P0+
P1+ P1 under the condition X ≤ L.
Finally, we prove that our algorithm runs in O(n) time. Our pricing algorithm can be divided into three parts. The first part denotes the construction of the combination table, the second part denotes the eval-uation of Eq. (12) and (14), and the last part denotes the evaluation of Eq. (11) ( in case 1) or Eq. (13) ( in case 2). We show that our algorithm runs in O(n) time by showing that these three parts can be com-puted in O(n) time.
First, recall that the combination table is a ta-ble that stores the value of nk, where 0 ≤ k ≤ n. All the fields in the combination table could be filled in O(n) time by the recurrence equation n
k
=k−1n ×(n−k +1)÷k. Next, Eq. (12) and (14) can also be calculated in O(n) time by the recurrence relations used to calculate Eq. (5). Finally, we show that both Eq. (11) and Eq. (13) can be calculated in O(n) time. Note that the terms |αi| and |βi| defined
in Eq. (8) can be represented innkform, so|αi|+|βi|
can be evaluated in constant time by looking up the combination table. Thus N (a, b, s) defined in Eq. (9) can be solved in O(n
s) time. In both Eq. (11) and
Eq. (13), N (n − 2h, 2j − 2h, 2l − 2h) would be evalu-ated less than l−h times.Consequently, it takes about O( n
2(l−h)(l−h)) ≈ O(n) time to evaluate Eq. (11) and
Eq. (13). Thus the option value P0+ P1 ( in case 1)
or P0+ P1+ P1 (in case 2) can be calculated in O(n)
time. So we conclude that our pricing algorithm runs in O(n) time.
4
Pricing Lookback Options
An efficient combinatorial algorithm for pricing a lookback option on a CRR lattice model is derived by repeatedly applying the reflection principle (see Eq. (6)) in this section. Recall that the payoff of a lookback option depends on the extreme stock’s price
occurred from time 0 to time T (see Eq. (3)). The value contributed by a price path at the maturity date therefore depends only on the terminal node reached by the price path and the extreme stock price of the price path. We can divide all possible price paths into some groups by these two factors. We will first show how to count the number of price paths in each group. This helps us to calculate the value contributed by each group. The value contributed by a terminal node N is calculated by summing the values contributed by the groups consisted of the paths reaching N . Finally, the value of a lookback option is obtained by summing the values contributed by all the terminal nodes.
A simple example for pricing a lookback option on a 4-time-step CRR lattice illustrated in Fig. 1 is given as follows. All possible price paths for this 4-time-step CRR lattice is divided into 9 groups as illustrated in Fig. 4. Take the terminal node N (4, 2) as an example. 6≡42 price paths reach node N (4, 2), and these price paths can be divided into 3 different groups by the minimal stock prices of these price paths. Con-sider the group with minimal stock price S0d. The
number of paths in this group can be computed by applying Eq. (6) twice. First, we calculate the num-ber of paths that passing through N (0, 0) and N (4, 2) and that hitting the price level S0d by Eq. (6). The
answer is 4≡41. But some of these four paths may have minimal prices lower than S0d and these price
paths must hit the price level S0d2. We can apply Eq.
(6) again to compute the number of price paths and the answer is 1≡40. Thus we can conclude that there are 3≡41−40price path in the group with minimal stock price S0d. Note that the payoff and the
probability of each price path in this group is S0−S0d
and p2(1−p)2, respectively. The value contributed by
this group is e−rTp2(1− p)24 1 −4 0 (S0− S0d).
Next, we calculate the values contributed by a ter-minal node by summing the values contributed by the groups consisted of the price paths reaching this ter-minal node. Take N (4, 2) in Fig. 4 as an example. The value contributed by this node is simply
e−rT p2(1 − p)2 4 0 S0 − S0d2 + 41 −4 0 (S0 − S0d) + 4 2 −4 1 (S0 − S0).
This above formula can be further rewritten by grouping the positive terms and the negative terms as follows: e−rT p2(1 − p)2S0 4 0 + 4 1 −4 0 + 4 2 −4 1 −e−rT p2(1 − p)2 4 0 S0d2 + 41 −4 0 S0d + 42 −4 1 S0 . For convenience, the former term and the latter term are called the positive part and the negative part of the value contributed by N (4, 2), respectively.
Next, we show two recurrence relations on the pos-itive part and the negative part of the values tributed by the terminal nodes. Let the value con-tributed by node N (n, i) as E(i). E(i) can be di-vided into two parts: the positive part (denoted as F (i)) and the negative part (denoted as G(i)). As-sume that n is a even number and px = 1−pp , then
F (i) and G(i) can be expressed by the following re-currence relation: F (0) = e−rT pn n 0 S0un, G(0) = e−rT pn n 0 S0, F(i) = ⎧ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎩
F (i − 1)px/u2 + e−rT pn−i(1 − p)ini+ n i−1
S0un−2i,
if 0 < i ≤ n/2,
F (i − 1)px/u2 − e−rT pn−i(1 − p)i
n n−i+1 − n n−i S0un−2i, if i > n/2, G(i) = ⎧ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎩
G(i − 1)px/u + e−rT pn−i(1 − p)ini+ n i−1
S0,
if 0 < i ≤ n/2,
G(i − 1)px/u − e−rT pn−i(1 − p)in−in+1− n n−i
S0d2i−n−1,
if i > n/2.
The O(n) time combinatorial pricing algorithm for lookback options is now within reach. The value of a lookback option can be expressed as follows:
n i=0 E(i) = n i=0 (F (i) − G(i)) . (15)
We can evaluate it in O(n) time if each term in the summation (F (i) − G(i)) can be calculated in con-stant time. Two tables are constructed to achieve this goal. A combination table is constructed to store the values of ni, where 0 ≤ i ≤ n. A prob-ability table is constructed to store the values of pi(1 − p)n−i, where 0 ≤ i ≤ n. All the fields in
both tables can be filled in O(n) time by the recur-rence relations nk = k−1n × (n − k + 1) ÷ k and
pi(1− p)n−i = pi−1(1− p)n−i+1× p ÷ (1 − p),
re-spectively. Note that for any arbitrary i, both ni and pi(1− p)n−i can be obtained in constant time
by looking up the two tables mentioned above. F (i) and G(i) can now be calculated in constant time by the recurrence relations listed above if F (i − 1) and G(i − 1) are known. Thus we conclude that Eq. (15) can be calculated in O(n) time.
5
Experimental results
Pricing barrier options on a CRR lattice will re-sult in significant oscillation. To alleviate oscillation, Ritchken proposes a novel trinomial lattice model [14]. His model is not quite efficient since it runs in O(n2) time. Dai and Lyuu propose another new
lattice model, BTT model, which is mainly composed of a CRR lattice [5]. Thus pricing barrier options on the BTT model can be done in O(n) time by taking advantage of the combinatorial algorithms mentioned in this paper. The numerical results for pricing a double-barrier options is illustrated in Fig. 5. The accurate value is about 10.1993. It costs the BTT model about 0.08 seconds to converge to 10.1993, but it costs the Ritchken’s trinomial lattice model about 5 seconds to converge to the same value.
Pricing lookback options on a lattice would suffer from slow convergence problem. Finding an algorithm that can efficiently handle large n is thus important. Hull provides an O(n2) time algorithm to price the lookback option on the CRR lattice [9]. This pa-per provides a combinatorial algorithm that runs in
S0d4 S0d3 S0d2 S0d S0 N (4, 0) 0 0 0 0 40 S0u4 − S0 N (4, 1) 0 0 0 40 S0u2 − S0d 41 −40 S0u2 − S0 N (4, 2) 0 0 40 S0 − S0d2 41 −40(S0 − S0d) 42 −41(S0 − S0) N (4, 3) 0 40 S0d2 − S0d3 41 −40 S0d2 − S0d2 0 0 N (4, 4) 40 S0d4 − S0d4 0 0 0 0
Figure 4: Node Contribution Table for a 4-Time-Step Lattice. The x-axis denotes the lowest price level reached by the price paths, and the y-axis denotes the terminal node reached by the price paths. Each field in the table denotes the product of the number of price paths and the payoff.
Ritchken BTT Time(sec) n Value n Value
0.054 500 10.2020 5244 10.1997 0.083 700 10.2010 10142 10.1993 5.125 5000 10.1993
Accurate Value 10.1993
Figure 5: Pricing a Double-Barrier Option. The initial stock price is 95, the exercise price is 100, the risk-free rate is 10%, the volatility of the stock price is 25%, the time to maturity is 1 year, and the two barriers are 140 and 90, respectively. The accurate value is computed by the BTT model by setting the number of time steps as 20000.
n Value Time (in seconds) Hull Combinatorics 3000 23.997554 11.313 0.005 5000 24.043836 31.687 0.008
Accurate Value:24.203853
Figure 6: Running-Time Comparison for
Pric-ing Lookback Options. The initial stock price is
100, the risk-free rate is 6%, the volatility is 30%, and the time to maturity is 1 year. “Hull” denotes the O(n2) time algorithm in [9]. “Combinatorics”
de-notes the combinatorial algorithm in this paper.
O(n) time. The running times for both algorithm are in Fig. 6. Obviously, our algorithm runs faster than Hull’s one.
6
Conclusions
Combinatorial methods have found wide applicabil-ity in many fields. This paper extends their use in improving the performance for pricing a wide variety of options. This paper describes how to derive O(n) time combinatorial pricing algorithm for vanilla op-tions, single-barrier opop-tions, double-barrier opop-tions, and lookback options. These algorithms are shown to compare favorably against many other lattice meth-ods, which takes at least quadratic time in computa-tion.
References
[1] Black, F., Scholes, M. “The pricing of options and corporate liabilities.” J. Political
Econom., 81 (1973), pp. 637–659.
[2] Boyle P., and Lau, S. “Bumping Against the Barrier with the Binomial Method,” J. of Derivatives, 1 (1994), pp. 6–14.
[3] P. Chalasani, S. Jha, and I. Saias, “Ap-proximate Option Pricing”, Algorithmica, 25 (1999), pp. 2–21.
[4] J. Cox, S. Ross, and M. Rubinstein, “Op-tion Pricing: A Simplified Approach”, J. of Fi-nancial Econom. 7 (1979), pp. 229–264. [5] Dai, T.-S., and Lyuu, Y.-D., “The
Bino-trinomial Tree Model. ” Manuscript, February, 2006.
[6] Duffie, D. Dynamic Asset Pricing Theory. 2nd ed. Princeton, NJ: Princeton University Press, 1996.
[7] Figlewski, S., and Gao, B. “The Adaptive Mesh Model: A New Approach to Efficient Op-tion Pricing.” J. Financial Econom., 53 (1999), pp. 313–351.
[8] Goldman, B., H. Sosin, and M. A. Gatto. “Path-Dependent Options: Buy at the Low, Sell at the High.” J. Finance, 34 (1979), pp. 1111-1127.
[9] Hull, J. Options, Futures, and Other Deriva-tives. 5th ed. Englewood Cliffs, New Jersey: Prentice-Hall, 2003.
[10] Luo, L. “Various Types of Double Barrier Op-tions.” J. Comput. Finance, 4 (2001), pp. 125– 138.
[11] Lyuu, Y.-D. “Very Fast Algorithms for Bar-rier Option Pricing and the Ballot Problem.” J. Derivatives, 5 (1998), pp. 68–79.
[12] Omberg, E. “A Note on the Convergence of Binomial-Pricing and Compound-Option Mod-els.” J. Finance, (1987), pp. 463–469.
[13] Reiner, E. and Rubinstein, M. “Breaking Down the Barriers.” Risk, 4 (1991), pp. 28–35. [14] Ritchken, P “On Pricing Barrier Options”. J.