Financial Derivatives Toolbox    

Black-Derman-Toy Model (BDT)

The Black-Derman-Toy (BDT) model is an analytical model used for pricing interest rate derivatives. The model considers a given initial zero rate term structure of interest rates and a specification of the yield volatilities of long rates to build a tree representing the evolution of the interest rates. For further explanation, see the paper "A One Factor Model of Interest Rates and its Application to Treasury Bond Options" by Fischer Black, Emanuel Derman, and William Toy.

Building a BDT Interest Rate Tree

The BDT interest rate tree represents the evolution of interest rates in a given period of time. This section explains how to create the BDT interest rate tree using the Financial Derivatives Toolbox.

The MATLAB function that creates the BDT interest rate tree is bdttree. This function takes three structures as input arguments:

Creating the BDT Interest Rate Tree (bdttree)

Calling the function bdttree creates the structure, BDTTree, containing time and interest rate information of the recombining tree.

This structure is a self-contained unit that includes the BDT tree of rates (found in the FwdTree field), and the volatility, rate, and time specifications used in building this tree.

The calling syntax for bdttree is

where:

Specifying the Volatility (VolSpec)

The function bdtvolspec generates the structure VolSpec, which specifies the volatility process. The function requires three input arguments:

An optional fourth argument InterpMethod, specifying the interpolation method, can be included.

The syntax used for calling bdtvolspec is

where:

Consider the example

Use bdtvolspec to create a volatility specification. Because no interpolation method is explicitly specified, the function uses the 'linear' default.

Specifying the Interest Rate Term Structure (RateSpec)

The structure RateSpec is an interest term structure that defines the initial interest rate specification from which the tree rates are derived. The section Interest Rate Term Structure explains how to create these structures using the function intenvset, given the interest rates, the starting and ending dates for each rate, and the compounding value.

Consider the example

Use the function datedisp to examine the dates defined in the variable RateSpec. For example,

Specifying the Time Structure (TimeSpec)

The structure TimeSpec specifies the time structure for a BDT tree. This structure defines the mapping between the observation times at each level of the tree and the corresponding dates.

TimeSpec is built using the function bdttimespec. The bdttimespec function requires three input arguments:

The syntax used for calling bdttimespec is

where:

Calling bdttimespec with the same data used to create the interest rate term structure, RateSpec builds the structure that specifies the time layout for the tree.

Note that the maturities specified when building TimeSpec do not have to coincide with the EndDates of the rate intervals in RateSpec. Since TimeSpec defines the time-date mapping of the BDT tree, the rates in RateSpec are interpolated to obtain the initial rates with maturities equal to those found in TimeSpec.

Example: Creating a BDT Tree

Use the previously computed values for VolSpec, RateSpec, and TimeSpec as input to the function bdttree to create a BDT Tree.


  Calculating Prices and Sensitivities Using BDT Trees in MATLAB