lattices (3) - Linux Manuals
NAME
Lattice methods -
Classes
class ExtendedBinomialTree< T >
Binomial tree base class.
class ExtendedEqualProbabilitiesBinomialTree< T >
Base class for equal probabilities binomial tree.
class ExtendedEqualJumpsBinomialTree< T >
Base class for equal jumps binomial tree.
class ExtendedJarrowRudd
Jarrow-Rudd (multiplicative) equal probabilities binomial tree.
class ExtendedCoxRossRubinstein
Cox-Ross-Rubinstein (multiplicative) equal jumps binomial tree.
class ExtendedAdditiveEQPBinomialTree
Additive equal probabilities binomial tree.
class ExtendedTrigeorgis
Trigeorgis (additive equal jumps) binomial tree
class ExtendedTian
Tian tree: third moment matching, multiplicative approach
class ExtendedLeisenReimer
Leisen & Reimer tree: multiplicative approach.
class BinomialTree< T >
Binomial tree base class.
class EqualProbabilitiesBinomialTree< T >
Base class for equal probabilities binomial tree.
class EqualJumpsBinomialTree< T >
Base class for equal jumps binomial tree.
class JarrowRudd
Jarrow-Rudd (multiplicative) equal probabilities binomial tree.
class CoxRossRubinstein
Cox-Ross-Rubinstein (multiplicative) equal jumps binomial tree.
class AdditiveEQPBinomialTree
Additive equal probabilities binomial tree.
class Trigeorgis
Trigeorgis (additive equal jumps) binomial tree
class Tian
Tian tree: third moment matching, multiplicative approach
class LeisenReimer
Leisen & Reimer tree: multiplicative approach.
class BlackScholesLattice< T >
Simple binomial lattice approximating the Black-Scholes model.
class TreeLattice< Impl >
Tree-based lattice-method base class.
class TreeLattice1D< Impl >
One-dimensional tree-based lattice.
class TreeLattice2D< Impl, T >
Two-dimensional tree-based lattice.
class TsiveriotisFernandesLattice< T >
Binomial lattice approximating the Tsiveriotis-Fernandes model.
class Tree< T >
Tree approximating a single-factor diffusion
class TrinomialTree
Recombining trinomial tree class.
Detailed Description
The framework (corresponding to the ql/Lattices directory) contains basic building blocks for pricing instruments using lattice methods (trees). A lattice, i.e. an instance of the abstract class QuantLib::Lattice, relies on one or several trees (each one approximating a diffusion process) to price an instance of the DiscretizedAsset class. Trees are instances of classes derived from QuantLib::Tree, classes which define the branching between nodes and transition probabilities.
Binomial trees
The binomial method is the simplest numerical method that can be used to price path-independent derivatives. It is usually the preferred lattice method under the Black-Scholes-Merton model. As an example, let's see the framework implemented in the bsmlattice.hpp file. It is a method based on a binomial tree, with constant short-rate (discounting). There are several approaches to build the underlying binomial tree, like Jarrow-Rudd or Cox-Ross-Rubinstein.
Trinomial trees
When the underlying stochastic process has a mean-reverting pattern, it is usually better to use a trinomial tree instead of a binomial tree. An example is implemented in the QuantLib::TrinomialTree class, which is constructed using a diffusion process and a time-grid. The goal is to build a recombining trinomial tree that will discretize, at a finite set of times, the possible evolutions of a random variable $ y $ satisfying [ dy_t = mu(t, y_t) dt + igma(t, y_t) dW_t. ] At each node, there is a probability $ p_u, p_m $ and $ p_d $ to go through respectively the upper, the middle and the lower branch. These probabilities must 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 [ p_u y_{i+1,k+1}^2 + p_m y_{i+1,k}^2 + p_d y_{i+1,k-1}^2 = V^2_{i,j}+E_{i,j}^2, ] where k (the index of the node at the end of the middle branch) is the index of the node which is the nearest to the expected future value, $ E_{i,j}=mathbf{E}
suppose that the variance is only dependant on time $ V_{i,j}=V_{i} $ and set $ y_{i+1} $ to $ V_{i}qrt{3} $, we find that [ p_{u} = ac{1}{6}+ac{(E_{i,j}-y_{i+1,k})^{2}}{6V_{i}^{2}} + ac{E_{i,j}-y_{i+1,k}}{2qrt{3}V_{i}}, ] [ p_{m} = ac{2}{3}-ac{(E_{i,j}-y_{i+1,k})^{2}}{3V_{i}^{2}}, ] [ p_{d} = ac{1}{6}+ac{(E_{i,j}-y_{i+1,k})^{2}}{6V_{i}^{2}} - ac{E_{i,j}-y_{i+1,k}}{2qrt{3}V_{i}}. ]
Bidimensional lattices
The QuantLib::DiscretizedAsset class
This class is a representation of the price of a derivative at a specific time. It is roughly an array of values, each value being associated to a state of the underlying stochastic variables. For the moment, it is only used when working with trees, but it should be quite easy to make a use of it in finite-differences methods. The two main points, when deriving classes from QuantLib::DiscretizedAsset, are:
- 1.
- Define the initialisation procedure (e.g. terminal payoff for european stock options).
- 2.
- Define the method adjusting values, when necessary, at each time steps (e.g. apply the step condition for american or bermudan options). Some examples are found in QuantLib::DiscretizedSwap and QuantLib::DiscretizedSwaption.
Author
Generated automatically by Doxygen for QuantLib from the source code.