Main Content

tfutbyyield

Future prices of Treasury bonds given current yield

Description

[QtdFutPrice,AccrInt] = tfutbyyield(SpotCurve,Yield,SettleFut,MatFut,ConvFactor,CouponRate,Maturity) computes prices of Treasury bond futures given a spot curve and bond yields at settlement.

In addition, you can use the Financial Instruments Toolbox™ method getZeroRates for an IRDataCurve object with a Dates property to create a vector of dates and data acceptable for tfutbyyield. For more information, see Converting an IRDataCurve or IRFunctionCurve Object.

example

[QtdFutPrice,AccrInt] = tfutbyyield(___,Interpolation) specifies options using one or more optional arguments in addition to the input arguments in the previous syntax.

example

Examples

collapse all

This example shows how to determine the future price of two Treasury bonds based upon a spot rate curve constructed from data for November 14, 2002.

% construct spot curve from Nov 14, data
Bonds = [datenum('02/13/2003'),        0;
         datenum('05/15/2003'),        0;
         datenum('10/31/2004'),  0.02125;
         datenum('11/15/2007'),     0.03;
         datenum('11/15/2012'),     0.04;
         datenum('02/15/2031'),  0.05375];

Yields  = [1.20; 1.25; 1.86; 2.99; 4.02; 4.93]/100;

Settle = datenum('11/15/2002');

[ZeroRates, CurveDates] = ...
zbtyield(Bonds, Yields, Settle);

SpotCurve  = [CurveDates, ZeroRates];

% calculate a particular bond's future quoted price
RefDate    = [datenum('1-Dec-2002'); datenum('1-Mar-2003')];
MatFut     = [datenum('15-Dec-2002'); datenum('15-Mar-2003')];
Maturity   = [datenum('15-Aug-2009');datenum('15-Aug-2010')];
CouponRate = [0.06;0.0575];
ConvFactor = convfactor(RefDate, Maturity, CouponRate);
Yield = [0.03576; 0.03773];
Interpolation = 1;

[QtdFutPrice, AccrInt] = tfutbyyield(SpotCurve, Yield, Settle, ...
MatFut, ConvFactor, CouponRate, Maturity, Interpolation)
QtdFutPrice = 2×1

  114.0416
  113.4034

AccrInt = 2×1

    1.9891
    0.4448

Input Arguments

collapse all

Treasury spot curve, specified as a number of futures using one of the following forms:

  • NFUT-by-2 matrix in the form of [SpotDates SpotRates] and these spot rates must be quoted as semiannual compounding (2) when the third column is not supplied.

  • NFUT-by-3 matrix in the form of [SpotDates SpotRates Compounding], where allowed Compounding values for the third column are −1, 1, 2 (default), 3, 4, and 12, where −1 is continuous compounding.

Data Types: double

Yield to maturities at settlement date, specified as a scalar numeric or an NINST-by-1 vector. Use bndyield for theoretical value of bond yield.

Data Types: double

Settlement date of futures contract, specified as a scalar or an NINST-by-1 vector using serial date numbers or date character vectors.

Data Types: double | char

Maturity dates (or anticipated delivery dates) of futures contract, specified as a scalar or an NINST-by-1 vector using serial date numbers or character vectors.

Data Types: double | char

Conversion factor, specified using convfactor.

Data Types: double | char | cell

Underlying bond annual coupon, specified as a scalar numeric decimal or an NINST-by-1 vector of decimals.

Data Types: double

Underlying bond maturity date, specified as a scalar or an NINST-by-1 vector using serial date numbers or date character vectors.

Data Types: double | char

(Optional) Interpolation method to compute the corresponding spot rates for the bond's cash flow, specified as an NMBS-by-1 vector. Available methods are (0) nearest, (1) linear, and (2) cubic spline. For more information on the supported interpolation methods, see interp1.

Data Types: double

Output Arguments

collapse all

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

Accrued Interest due at delivery date, per $100 notional, returned as a NINST-by-1 vector.

Version History

Introduced before R2006a