Description
1 Trinomial Trees and Lattices
Pretty much everything parallels the Binomial Tree from a conceptual sense.
If the stock price at discrete time step k is denoted by Sk. In this case, the
process Sk is specified as
Sk+1 =
uSk with probability pu,
Sk
u with probability pd,
Sk with probability 1 − pu − pd.
Just as with the binomial tree whose leaves can be combined to form the binomial lattice, you can get a trinomial lattice from a trinomial tree. To ensure the
martingale property
E{Sk+1 | Sk} = R × Sk,
where R = e
r
T
n , as with the Binomial Tree. We need to assign1
u = e
σ
√
2(T /n)
pu =
√
R − √
1
u √
u − √
1
u
!2
pd =
√
u −
√
R
√
u − √
1
u
!2
Just as with the binomial lattice. you can use (k, i) to denote an arbitrary vertex
on the trinomial lattice. The vertex (k, i) is connected to {(k + 1, i + 1),(k +
1, i),(k+ 1, i−1)} with the appropriate probabilities along the appropriate arcs.
If V (k, i) is value of the option at (k, i), for the european call option we have
the recursion
V (k, i) =
max{0, S0 × u
i − K} if (k, i) is a terminal node
pu×V (k+1,i+1)+(1−pu−pd)×V (k+1,i)+pd×V (k+1,i−1)
R
otherwise
The option price is V (0, 0).
You are going to do a little more than this for this programming assignment.
1You can verify this at your leisure.
1
2 Part 1: Pricing an American-Option using a
Trinomial Model by Recursion
Using my C++ program american option pricing by binomial model.cpp on Compass as reference, write a C++ program that takes as command-line input the
values of T, N, r, σ, S0 and K, and presents the value of an American-Option
using a trinomial model.
Input: The command-line input is the same as what I have for the C++
code that priced the European option in lesson 6 of my notes.
Output: A sample output that I expect from your code is shown in figure
??
Figure 1: Sample output (Note: 20 divisions will take some time to run on
your computer. Be patient. The next part of this assignment will be able to
handle a large number of divisions, as you will see.).
3 Part 2: Pricing an American-Option using a
Trinomial Model by Dynamic Programming
Using my C++ program american option pricing by dynamic programming.cpp
on Compass as reference, write a C++ program that takes as command-line
input the values of T, N, r, σ, S0 and K, and presents the value of an AmericanOption using a trinomial model.
Input: The command-line input is the same as what I have for the C++
code that priced the European option in lesson 6 of my notes.
Output: A sample output that I expect from your code is shown in figure
??
2
Figure 2: Sample output (Note: A large number of Divisions should not be a
problem when you use Dynamic Programming.)
3