Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

capbyhw

Price cap instrument from Hull-White interest-rate tree

Syntax

[Price, PriceTree] = capbyhw(HWTree, Strike, Settle, Maturity,
Reset, Basis, Principal, Options)

Arguments

HWTree

Interest-rate tree structure created by hwtree.

Strike

Number of instruments (NINST)-by-1 vector of rates at which the cap is exercised.

Settle

Settlement dates. NINST-by-1 vector of dates representing the settlement dates of the cap.

Maturity

NINST-by-1 vector of dates representing the maturity dates of the cap.

Reset

(Optional) NINST-by-1 vector representing the frequency of payments per year. Default = 1.

Basis

(Optional) Day-count basis of the instrument. A vector of integers.

  • 0 = actual/actual (default)

  • 1 = 30/360 (SIA)

  • 2 = actual/360

  • 3 = actual/365

  • 4 = 30/360 (BMA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (European)

  • 7 = actual/365 (Japanese)

  • 8 = actual/actual (ICMA)

  • 9 = actual/360 (ICMA)

  • 10 = actual/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = actual/365 (ISDA)

  • 13 = BUS/252

For more information, see basis.

Principal

(Optional) NINST-by-1 of notional principal amounts or NINST-by-1 cell array where each element is a NumDates-by-2 cell array where the first column is dates and the second column is associated principal amount. The date indicates the last day that the principal value is valid. Default is 100.

Options

(Optional) Derivatives pricing options structure created with derivset.

Description

[Price, PriceTree] = capbyhw(HWTree, Strike, Settle, Maturity,
Reset, Basis, Principal, Options)
computes the price of a cap instrument from a Hull-White interest-rate tree.

Price is the expected price of the cap at time 0.

PriceTree is the tree structure with values of the cap at each node.

The Settle date for every cap is set to the ValuationDate of the HW tree. The cap argument Settle is ignored.

    Note:   Use the optional name-value pair argument, Principal, to pass a schedule to compute price for an amortizing cap.

Examples

collapse all

Load the file deriv.mat, which provides HWTree. The HWTree structure contains the time and interest-rate information needed to price the cap instrument.

load deriv.mat;

Set the required values. Other arguments will use defaults.

Strike = 0.03;
Settle = '01-Jan-2004';
Maturity = '01-Jan-2007';

Use capbyhw to compute the price of the cap instrument.

Price = capbyhw(HWTree, Strike, Settle, Maturity)
Price =

    2.3090

Define the RateSpec.

Rates = [0.035; 0.042; 0.047; 0.052; 0.054];
ValuationDate = '01-April-2014';
StartDates = ValuationDate;
EndDates = {'01-April-2019'};
Compounding = 1;
RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,...
'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding)
RateSpec = 

  struct with fields:

           FinObj: 'RateSpec'
      Compounding: 1
             Disc: [5×1 double]
            Rates: [5×1 double]
         EndTimes: [5×1 double]
       StartTimes: [5×1 double]
         EndDates: 737516
       StartDates: 735690
    ValuationDate: 735690
            Basis: 0
     EndMonthRule: 1

Define the cap instruments.

Settle ='01-April-2014';
Maturity = '01-April-2018';
Strike = 0.055;
Reset = 1;
Principal ={{'01-April-2015' 100;'01-April-2016' 60;'01-April-2017' 40;'01-April-2018' 20};
            100};

Build the HW Tree.

VolDates = ['01-April-2015';'01-April-2016';'01-April-2017';'01-April-2018'];
VolCurve = 0.05;
AlphaDates = '01-April-2018';
AlphaCurve = 0.10;

HWVolSpec = hwvolspec(RateSpec.ValuationDate, VolDates, VolCurve,...
                      AlphaDates, AlphaCurve);
HWTimeSpec = hwtimespec(RateSpec.ValuationDate, VolDates, Compounding);
HWTree = hwtree(HWVolSpec, RateSpec, HWTimeSpec)
HWTree = 

  struct with fields:

      FinObj: 'HWFwdTree'
     VolSpec: [1×1 struct]
    TimeSpec: [1×1 struct]
    RateSpec: [1×1 struct]
        tObs: [0 1 2 3]
        dObs: [735690 736055 736421 736786]
      CFlowT: {[4×1 double]  [3×1 double]  [2×1 double]  [4]}
       Probs: {[3×1 double]  [3×3 double]  [3×5 double]}
     Connect: {[2]  [2 3 4]  [2 3 4 5 6]}
     FwdTree: {[1.0350]  [1.1300 1.0363 0.9503]  [1×5 double]  [1×7 double]}

Price the amortizing and vanilla caps.

Basis = 0;
Price  = capbyhw(HWTree, Strike, Settle, Maturity, Reset, Basis, Principal)
Price =

    1.6754
    4.6149

Related Examples

Introduced before R2006a

Was this topic helpful?