1Lattice methods(3) QuantLib Lattice methods(3)
2
3
4
6 Lattice methods -
7
9 The framework (corresponding to the ql/Lattices directory) contains
10 basic building blocks for pricing instruments using lattice methods
11 (trees). A lattice, i.e. an instance of the abstract class
12 QuantLib::Lattice, relies on one or several trees (each one
13 approximating a diffusion process) to price an instance of the
14 DiscretizedAsset class. Trees are instances of classes derived from
15 QuantLib::Tree, classes which define the branching between nodes and
16 transition probabilities.
17
19 The binomial method is the simplest numerical method that can be used
20 to price path-independent derivatives. It is usually the preferred
21 lattice method under the Black-Scholes-Merton model. As an example,
22 let's see the framework implemented in the bsmlattice.hpp file. It is a
23 method based on a binomial tree, with constant short-rate
24 (discounting). There are several approaches to build the underlying
25 binomial tree, like Jarrow-Rudd or Cox-Ross-Rubinstein.
26
28 When the underlying stochastic process has a mean-reverting pattern, it
29 is usually better to use a trinomial tree instead of a binomial tree.
30 An example is implemented in the QuantLib::TrinomialTree class, which
31 is constructed using a diffusion process and a time-grid. The goal is
32 to build a recombining trinomial tree that will discretize, at a finite
33 set of times, the possible evolutions of a random variable $ y $
34 satisfying dy_t = (t, y_t) dt + ma(t, y_t) dW_t. ] At each node, there
35 is a probability $ p_u, p_m $ and $ p_d $ to go through respectively
36 the upper, the middle and the lower branch. These probabilities must
37 satisfy p_{u}y_{i+1,k+1}+p_{m}y_{i+1,k}+p_{d}y_{i+1,k-1}=E_{i,j} ] and
38 p_u y_{i+1,k+1}^2 + p_m y_{i+1,k}^2 + p_d y_{i+1,k-1}^2 =
39 V^2_{i,j}+E_{i,j}^2, ] where k (the index of the node at the end of the
40 middle branch) is the index of the node which is the nearest to the
41 expected future value, $ E_{iig,hjt})=t$hbafn{dE}$t(
42 y(t_{i+1})|y(t_{i})=y_{i,j}
43 V_{i,j}^{2}=thbf{Var}y(t_{i+1})|y(t_{i})=y_{i,j} $. If we suppose that
44 the variance is only dependant on time $ V_{i,j}=V_{i} $ and set $
45 y_{i+1} $ to $ V_{i}t{3} $, we find that p_{u} =
46 ac{1}{6}+ac{(E_{i,j}-y_{i+1,k})^{2}}{6V_{i}^{2}} +
47 ac{E_{i,j}-y_{i+1,k}}{2t{3}V_{i}}, ] p_{m} =
48 ac{2}{3}-ac{(E_{i,j}-y_{i+1,k})^{2}}{3V_{i}^{2}}, ] p_{d} =
49 ac{1}{6}+ac{(E_{i,j}-y_{i+1,k})^{2}}{6V_{i}^{2}} -
50 ac{E_{i,j}-y_{i+1,k}}{2t{3}V_{i}}. ]
51
53 To come...
54
56 This class is a representation of the price of a derivative at a
57 specific time. It is roughly an array of values, each value being
58 associated to a state of the underlying stochastic variables. For the
59 moment, it is only used when working with trees, but it should be quite
60 easy to make a use of it in finite-differences methods. The two main
61 points, when deriving classes from QuantLib::DiscretizedAsset, are:
62
63 1. Define the initialisation procedure (e.g. terminal payoff for
64 european stock options).
65
66 2. Define the method adjusting values, when necessary, at each time
67 steps (e.g. apply the step condition for american or bermudan
68 options). Some examples are found in QuantLib::DiscretizedSwap and
69 QuantLib::DiscretizedSwaption.
70
71 Classes
72 class BinomialTree
73 Binomial tree base class.
74 class EqualProbabilitiesBinomialTree
75 Base class for equal probabilities binomial tree.
76 class EqualJumpsBinomialTree
77 Base class for equal jumps binomial tree.
78 class JarrowRudd
79 Jarrow-Rudd (multiplicative) equal probabilities binomial tree.
80 class CoxRossRubinstein
81 Cox-Ross-Rubinstein (multiplicative) equal jumps binomial tree.
82 class AdditiveEQPBinomialTree
83 Additive equal probabilities binomial tree.
84 class Trigeorgis
85 Trigeorgis (additive equal jumps) binomial tree
86 class Tian
87 Tian tree: third moment matching, multiplicative approach
88 class LeisenReimer
89 Leisen & Reimer tree: multiplicative approach.
90 class BlackScholesLattice
91 Simple binomial lattice approximating the Black-Scholes model.
92 class TreeLattice
93 Tree-based lattice-method base class.
94 class TreeLattice1D
95 One-dimensional tree-based lattice.
96 class TreeLattice2D
97 Two-dimensional tree-based lattice.
98 class TsiveriotisFernandesLattice
99 Binomial lattice approximating the Tsiveriotis-Fernandes model.
100 class Tree
101 Tree approximating a single-factor diffusion
102 class TrinomialTree
103 Recombining trinomial tree class.
104
105
106
107Version 0.8.1 29 Oct 2007 Lattice methods(3)