bndfutimprepo

Implied repo rates for bond future given price

Description

example

ImpRepo = bndfutimprep(Price,FutPrice,FutSettle,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,datetime(2000,9,21),datetime(2000,12,29),1.3136,.0875,datetime(2020,8,15))
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 using a datetime array, string array, or date character vectors.

To support existing code, bndfutimprepo also accepts serial date numbers as inputs, but they are not recommended.

Future delivery dates, specified as an numBonds-by-1 vector using a datetime array, string array, or date character vectors.

To support existing code, bndfutimprepo also accepts serial date numbers as inputs, but they are not recommended.

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 using a datetime array, string array, or date character vectors.

To support existing code, bndfutimprepo also accepts serial date numbers as inputs, but they are not recommended.

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

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 datetime, string, or date character vector.

To support existing code, bndfutimprepo also accepts serial date numbers as inputs, but they are not recommended.

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

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

To support existing code, bndfutimprepo also accepts serial date numbers as inputs, but they are not recommended.

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

To support existing code, bndfutimprepo also accepts serial date numbers as inputs, but they are not recommended.

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.

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 datetime, string, or date character vector.

To support existing code, bndfutimprepo also accepts serial date numbers as inputs, but they are not recommended.

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.

Version History

Introduced in R2009b

expand all