zeroprice

Price zero-coupon instruments given yield

Description

example

Price = zeroprice(Yield,Settle,Maturity) prices zero-coupon instruments given a yield. zeroprice calculates the prices for a portfolio of general short and long-term zero-coupon instruments given the yield of reference bonds. In other words, if the zero-coupon computed with this yield is used to discount the reference bond, the value of that reference bond is equal to its price.

example

Price = zeroprice(___,Period,Basis,EndMonthRule) adds optional arguments for Period, Basis, and EndMonthRule.

Examples

collapse all

This example shows how to compute the price of a short-term zero-coupon instrument.

Settle = '24-Jun-1993';
Maturity = '1-Nov-1993';
Period = 2;
Basis = 0;
Yield = 0.04;

Price = zeroprice(Yield, Settle, Maturity, Period, Basis)
Price = 98.6066

This example shows how to compute the prices of a portfolio of two zero-coupon instruments, one short-term, and the other long-term.

Settle = '24-Jun-1993';
Maturity = ['01-Nov-1993'; '15-Jan-2024'];
Basis = [0; 1];
Yield = [0.04; 0.1];

Price = zeroprice(Yield, Settle, Maturity, [], Basis)
Price = 2×1

   98.6066
    5.0697

Input Arguments

collapse all

Reference bond yield, specified as a scalar or a NZERO-by-1 vector.

Data Types: double

Settlement date, specified as a NZERO-by-1 vector of serial date numbers.

Data Types: double

Maturity date, specified as a NZERO-by-1 vector of serial date numbers.

Data Types: double

(Optional) Number of coupons in one year, specified as a positive integer for the values 1,2,4,6,12 in a NZERO-by-1 vector.

Data Types: double

(Optional) Day-count basis of the bond, specified as a positive integer using a NZERO-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

(Optional) End-of-month rule flag, specified as a nonnegative integer with a value of 0 or 1 using a NZERO-by-1 vector. This rule applies only when Maturity is an end-of-month date for a month having 30 or fewer days.

  • 0 = Ignore rule, meaning that a bond coupon payment date is always the same numerical day of the month.

  • 1 = Set rule on, meaning that a bond coupon payment date is always the last actual day of the month.

Data Types: double

Output Arguments

collapse all

Price for each zero-coupon instrument (per $100 notional), returned as a column vector.

Algorithms

To compute the price when Period is 1 or 0 for the quasi-coupon periods to redemption, zeroprice uses the formula

Price=RV1+(DSRE×YM)

.

Quasi-coupon periods are the coupon periods that would exist if the bond were paying interest at a rate other than zero.

When there is more than one quasi-coupon period to the redemption date, zeroprice uses the formula

Price=RV(1+YM)Nq1+DSCE

.

The elements of the equations are defined as follows.

VariableDefinition

DSC

Number of days from settlement date to next quasi-coupon date as if the security paid periodic interest.

DSR

Number of days from settlement date to the redemption date (call date, put date, and so on).

E

Number of days in quasi-coupon period.

M

Number of quasi-coupon periods per year (standard for the particular security involved).

Nq

Number of quasi-coupon periods between settlement date and redemption date. If this number contains a fractional part, raise it to the next whole number.

Price

Dollar price per $100 par value.

RV

Redemption value.

Y

Annual yield (decimal) when held to redemption.

References

[1] Mayle, Jan. Standard Securities Calculation Methods. 3rd Edition, Vol. 1, Securities Industry Association, Inc., New York, 1993, ISBN 1-882936-01-9. Vol. 2, 1994, ISBN 1-882936-02-7.

Introduced before R2006a