Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

BasketLattice.h File Reference

Detailed Description

Lattices for a vector of assets , following a driftless dynamics

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

resulting in

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:

We want to have a large number of nodes but not so large as to exceed main memory. With 1GB main memory we can tolerate about 5.3 million nodes corresponding to 250 time steps in a two factor lattice and 3.5 million nodes corresponding to 60 time steps in a three factor model.

Definition in file BasketLattice.h.

#include "TypedefsMacros.h"
#include "Matrix.h"
#include "Lattice.h"
#include "Node.h"

Go to the source code of this file.


class  BasketLattice

Generated on Mon Sep 22 02:16:32 2003 for Libor-Library by doxygen1.3-rc3