bndfutimprepo

Implied repo rates for bond future given price

Syntax

``ImpRepo = bndfutimprep(Price,FutSettle,FutPrice,Delivery,ConvFactor,CouponRate,Maturity)``
``ImpRepo = bndfutimprep(___,Name,Value)``

Description

example

````ImpRepo = bndfutimprep(Price,FutSettle,FutPrice,Delivery,ConvFactor,CouponRate,Maturity)` computes the implied repo rate for a bond future given the price of a bond, the bond properties, the price of the bond future, and 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 inputs.```

example

````ImpRepo = bndfutimprep(___,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 repo rate for a bond future using the following data.

`bndfutimprepo(129,98,'9/21/2000','12/29/2000',1.3136,.0875,'8/15/2020')`
```ans = 0.0584 ```

Input Arguments

collapse all

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

Data Types: `double`

Future prices, specified as an `numBonds`-by-`1` vector.

Data Types: `double` | `cell`

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

Data Types: `double` | `cell`

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 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: ```ImpRepo = bndfutimprepo(Price,FutPrice,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

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`

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`

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`

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

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

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

Implied repo rate, or the repo rate that would produce the price input, 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