bndfutprice

Price bond future given repo rates

Syntax

[FutPrice,AccrInt] = bndfutprice(RepoRatePrice,FutSettle,Delivery,ConvFactor,CouponRate,Maturity)
[FutPrice,AccrInt] = bndfutprice(___,Name,Value)

Description

example

[FutPrice,AccrInt] = bndfutprice(RepoRatePrice,FutSettle,Delivery,ConvFactor,CouponRate,Maturity) computes the price of a bond futures contract for one or more bonds given a repo rate, and bond properties, including the bond conversion factor. The default behavior is that the coupon reinvestment rate matches the repo rate. However, you can specify a separate reinvestment rate using optional arguments.

example

[FutPrice,AccrInt] = bndfutprice(___,Name,Value) specifies options using one or more optional name-value pair arguments in addition to the input arguments in the previous syntax.

Examples

collapse all

This example shows how to compute the price for a bond future using the following data.

bndfutprice(.064, 129, '9/21/2000','12/29/2000', 1.3136, .0875, '8/15/2020')
ans = 98.1516

Input Arguments

collapse all

Repo rates, specified as an numBonds-by-1 vector in decimals.

Data Types: double

Bond prices, specified as an numBonds-by-1 vector in decimals.

Data Types: double

Future settlement date, specified as scalar date using a serial date number or a date character vectors.

Data Types: double | char

Future delivery dates, specified as an numBonds-by-1 vector.

Data Types: double | cell

Bond conversion factors, specified as an numBonds-by-1 vector. For more information, see convfactor.

Data Types: double

Coupon rates, specified as an numBonds-by-1 vector of numeric decimals.

Data Types: double

Maturity dates, specified as an numBonds-by-1 vector of serial date numbers or a cell array of character vectors.

Data Types: double | 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: [FutPrice,AccrInt] = bndfutprice(RepoRate,Price,FutSettle,Delivery,ConvFactor,CouponRate,Maturity,'Basis',5,'Face',1000,'Period',4)

Day count basis, specified as the comma-separated pair consisting of 'Basis' and a scalar integer from 0 to 13.

  • 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

End-of-month rule flag, specified as the comma-separated pair consisting of 'EndMonthRule' and a scalar with a nonnegative integer [0, 1].

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

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

Data Types: logical

Bond issue date, specified as the comma-separated pair consisting of 'IssueDate' and a scalar date using a serial date number or a date character vector.

Data Types: double | char

Face value of the bond, specified as the comma-separated pair consisting of 'Face' and a scalar numeric. Face has no impact on key rate duration.

Data Types: double

Irregular first coupon date, specified as the comma-separated pair consisting of 'FirstCouponDate' and a scalar date using a serial date number or a date character vector.

When FirstCouponDate and LastCouponDate are both specified, FirstCouponDate takes precedence in determining the coupon payment structure.

Data Types: double | char

Irregular last coupon date, specified as the comma-separated pair consisting of 'LastCouponDate' and a scalar date using a serial date number or a date character vector.

In the absence of a specified FirstCouponDate, a specified LastCouponDate determines the coupon structure of the bond. The coupon structure of a bond is truncated at the LastCouponDate, regardless of where it falls, and is followed only by the bond's maturity cash flow date.

Data Types: double | char

Coupons per year, specified as the comma-separated pair consisting of 'Period' and a scalar integer. Values for Period are 0, 1, 2, 3, 4, 6, and 12.

Data Types: double

Day count basis for the reinvestment rate, specified as the comma-separated pair consisting of 'ReinvestBasis' and a scalar integer from 0 to 13.

  • 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

Underlying bond annual coupon, specified as the comma-separated pair consisting of 'ReinvestRate' and a scalar decimal numeric.

Data Types: double

Day count basis for repo rate, specified as the comma-separated pair consisting of 'RepoBasis' and a scalar integer from 0 to 13.

  • 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

Forward starting date of payments (the date from which a bond cash flow is considered), specified as the comma-separated pair consisting of 'StartDate' and a scalar date using a serial date number or a date character vector.

Data Types: double

Output Arguments

collapse all

Quoted futures price, per $100 notional, returned as numBonds-by-1 vector.

Accrued interest due at delivery date, per $100 notional, returned as numBonds-by-1 vector.

References

[1] Burghardt, G., T. Belton, M. Lane, and J. Papa. The Treasury Bond Basis. McGraw-Hill, 2005.

[2] Krgin, Dragomir. Handbook of Global Fixed Income Calculations. John Wiley & Sons, 2002.

Introduced in R2009b