cfspread

Compute spread over yield curve for cash flow

Description

example

Spread = cfspread(RateSpec,Price,CFlowAmounts,CFlowDates,Settle) computes spread over a yield curve for a cash flow.

example

Spread = cfspread(___,Name,Value) specifies options using one or more name-value pair arguments in addition to the input arguments in the previous syntax.

Examples

collapse all

Use cfspread to compute the spread over a yield curve for a cash flow.

Define data for the yield curve.

Settle = datenum('01-Jul-2003');
CurveDates = daysadd(Settle,360*[.25 .5 1 2 3 5 7 10 20],1);
ZeroRates = [.0089 .0096 .0107 .0130 .0166 .0248 .0306 .0356 .0454]';

Compute the RateSpec.

RateSpec = intenvset('StartDates', Settle, 'EndDates', CurveDates,...
'Rates', ZeroRates)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: 2
             Disc: [9x1 double]
            Rates: [9x1 double]
         EndTimes: [9x1 double]
       StartTimes: [9x1 double]
         EndDates: [9x1 double]
       StartDates: 731763
    ValuationDate: 731763
            Basis: 0
     EndMonthRule: 1

Compute the spread.

Price = 98;
CFAmounts = [30;40;30];
CFDates = datenum({'15-Jul-2004', '15-Jul-2005', '15-Jul-2006'});

Spread = cfspread(RateSpec, Price, CFAmounts, CFDates, Settle)
Spread = 3×1
103 ×

   -8.7956
   -4.0774
   -3.7073

Use cfspread to compute the spread over a yield curve for a cash flow using datetime inputs.

Settle = datenum('01-Jul-2003');
CurveDates = daysadd(Settle,360*[.25 .5 1 2 3 5 7 10 20],1);
ZeroRates = [.0089 .0096 .0107 .0130 .0166 .0248 .0306 .0356 .0454]';
RateSpec = intenvset('StartDates', Settle, 'EndDates', CurveDates,...
'Rates', ZeroRates);
Price = 98;
CFAmounts = [30;40;30];
CFDates = datenum({'15-Jul-2004', '15-Jul-2005', '15-Jul-2006'});

CFDates = datetime(CFDates,'ConvertFrom','datenum','Locale','en_US');
Settle = datetime(Settle,'ConvertFrom','datenum','Locale','en_US');
Spread = cfspread(RateSpec, Price, CFAmounts, CFDates, Settle)
Spread = 3×1
103 ×

   -8.7956
   -4.0774
   -3.7073

Input Arguments

collapse all

Interest-rate specification for initial risk-free rate curve, specified by the RateSpec obtained from intenvset. For information on the interest-rate specification, see intenvset.

Data Types: struct

Price of cash flows, specified as an NINST-by-1 vector.

Data Types: double

Cash flow amounts, specified as an NINST-by-MOSTCFS matrix . Each row is a list of cash flow values for one instrument. If an instrument has fewer than MOSTCFS cash flows, the end of the row is padded with NaNs.

Data Types: double

Cash flow dates, specified as an NINST-by-MOSTCFS matrix . Each entry contains the date of the corresponding cash flow in CFlowAmounts.

Data Types: double | char | datetime

Settlement date, specified as an NINST-by-1 vector using serial date numbers or a cell array of date character vectors. The Settle date is the date on which the cash flows are priced.

Data Types: double | char | cell

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: Spread = cfspread(RateSpec,Price,CFlowAmounts,CFlowDates,Settle,'Basis',4)

Note

An optional input of size NINST-by-1 is also acceptable as a single value applicable to all contracts. Single values are internally expanded to an array of size NINST-by-1.

Day-count basis, specified as the comma-separated pair consisting of 'Basis' and a positive integer using a NINST-by-1 vector.

  • 0 = actual/actual

  • 1 = 30/360 (SIA)

  • 2 = actual/360

  • 3 = actual/365

  • 4 = 30/360 (PSA)

  • 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.

Data Types: double

Output Arguments

collapse all

Spread of cash flows over a zero curve, returned as an NINST-by-1 vector. The Spread is expressed in basis points.

Introduced in R2012a