Main Content

# 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 vector.

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.

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

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

Download ebook