with constant volatilities and unit vectors . Here W(t) is an n-dimensional Brownian motion where n is the number of assets in the basket. The driftless nature of the asset dynamics implies that the asset prices are martingales. This means that we are working with asset prices relative to a numeraire evolved in the corresponding numeraire measure. For example we could be working with discounted prices in the so called risk neutral probability (numeraire is the bank account) or with forward prices at some fixed date T in the forward martingale measure (numeraire is the zero coupon bond maturing at time T).
The asset price dynamics can be solved explicitly. Let denote the return on the asset . Then
with . Taking exponentials we get
The unit vectors determine the instantaneous correlations of the return increments as , that is
where U is the matrix with rows . Typically the unit vectors are not given but the correlation matrix is a model parameter. From this the matrix can be computed as a pseudo squareroot of . See book, Appendix A.1. To keep the number of nodes manageable we must reduce the number of factors, that is, the dimension of the Brownian motion W. If we want to run an r-factor model we compute U as an approximate r-factor pseudo square root of . Then U is an matrix and the are approximated as
where the are independent one dimensional Brownian motions (the components of W). Thus the lattice can be built to evolve the Brownian motion (the factors) and this is the simplest of all lattices. In practice at most three factors can be handled in the lattice otherwise the number of nodes explodes.
Note that the use of the continuous time drift does not preserve the martingale property of (absence of arbitrage). This is not significant since the lattice is an approximation to the continuous time dynamics in which the martingale property does hold. However the drifts can be fixed so that the in the lattice do have the martingale property if this is deemed desirable.
Three factor basket lattice. the lattice evolves the variables in time steps of equal length and each StandardBrownianNode computes the vector of assets from the volatilities of the returns which are now given as
where the matrix U is the approximate root of rank 3 of the correlation matrix . The rows of U are scaled backe to unit norm to preserve the correlations . This diminishes the quality of the approximation but preserves the volatilities of the . If we don't do this we lose volatility. See book, 8.1.1, 8.1.2, for details and notation.
The are independent standard Brownian motions which evolve from the state and then tick up or down in ticks of size where dt is the size of the time step. The state at any node is then given by the triple of integers (i,j,k) with
Two factor lattices are completely similar but the implementation is kept separate for greater clarity.
Number assets and of nodes. The lattice can handle any number of assets and the number of nodes in the lattice depends depends on the number of factors and the number of time steps in the lattice. Each node has four edges in the case of a two factor lattice and eight edges in the case of a three factor lattice. The total number of nodes allocated depends on the number of time steps in the lattice:
Definition in file BasketLattice.h.
Go to the source code of this file.