Accelerating the pace of engineering and science

# disc2zero

Zero curve given discount curve

## Syntax

```[ZeroRates, CurveDates] = disc2zero(DiscRates, CurveDates, Settle,Compounding, Basis)
```

## Arguments

 DiscRates Column vector of discount factors, as decimal fractions. In aggregate, the factors in DiscRates constitute a discount curve for the investment horizon represented by CurveDates. CurveDates Column vector of maturity dates (as serial date numbers) that correspond to the discount factors in DiscRates. Settle Serial date number that is the common settlement date for the discount rates in DiscRates. Compounding (Optional) Output compounding. A scalar that sets the compounding frequency per year for annualizing the output zero rates. Allowed values are: 1 Annual compounding 2 Semiannual compounding (default) 3 Compounding three times per year 4 Quarterly compounding 6 Bimonthly compounding 12 Monthly compounding 365 Daily compounding -1 Continuous compounding Basis (Optional) Day-count basis for annualizing the output zero rates.0 = actual/actual (default)1 = 30/360 (SIA)2 = actual/3603 = actual/3654 = 30/360 (PSA)5 = 30/360 (ISDA)6 = 30/360 (European)7 = actual/365 (Japanese)8 = actual/actual (ISMA)9 = actual/360 (ISMA)10 = actual/365 (ISMA)11 = 30/360E (ISMA) 12 = actual/365 (ISDA)13 = BUS/252For more information, see basis.

## Description

[ZeroRates, CurveDates] = disc2zero(DiscRates, CurveDates, Settle, Compounding, Basis) returns a zero curve given a discount curve and its maturity dates.

 ZeroRates Column vector of decimal fractions. In aggregate, the rates in ZeroRates constitute a zero curve for the investment horizon represented by CurveDates. The zero rates are the yields to maturity on theoretical zero-coupon bonds. CurveDates Column vector of maturity dates (as serial date numbers) that correspond to the zero rates. This vector is the same as the input vector CurveDates.

## Examples

expand all

### Determine the Zero Curve Given a Discount Curve and Maturity Dates

Given the following discount factors DiscRates over a set of maturity dates CurveDates, and a settlement date Settle:

```DiscRates = [0.9996
0.9947
0.9896
0.9866
0.9826
0.9786
0.9745
0.9665
0.9552
0.9466];

CurveDates = [datenum('06-Nov-2000')
datenum('11-Dec-2000')
datenum('15-Jan-2001')
datenum('05-Feb-2001')
datenum('04-Mar-2001')
datenum('02-Apr-2001')
datenum('30-Apr-2001')
datenum('25-Jun-2001')
datenum('04-Sep-2001')
datenum('12-Nov-2001')];

Settle = datenum('03-Nov-2000');
```

Set daily compounding for the output zero curve, on an actual/365 basis.

```Compounding = 365;
Basis = 3;
```

Execute the function disc2zero which returns the zero curve ZeroRates at the maturity dates CurveDates.

```[ZeroRates, CurveDates] = disc2zero(DiscRates, CurveDates,...
Settle, Compounding, Basis)
```
```ZeroRates =

0.0487
0.0510
0.0523
0.0524
0.0530
0.0526
0.0530
0.0532
0.0549
0.0536

CurveDates =

730796
730831
730866
730887
730914
730943
730971
731027
731098
731167

```

For readability, DiscRates and ZeroRates are shown here only to the basis point. However, MATLAB® software computed them at full precision. If you enter DiscRates as shown, ZeroRates may differ due to rounding.