Main Content

tfutbyprice

Future prices of Treasury bonds given spot price

Description

[QtdFutPrice,AccrInt] = tfutbyprice(SpotCurve,Price,SettleFut,MatFut,ConvFactor,CouponRate,Maturity) computes future prices of Treasury notes and bonds given the spot price.

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 tfutbyprice. For more information, see Converting an IRDataCurve or IRFunctionCurve Object.

Note

Alternatively, you can use the BondFuture object to price bond future instruments. For more information, see Get Started with Workflows Using Object-Based Framework for Pricing Financial Instruments.

example

[QtdFutPrice,AccrInt] = tfutbyprice(___,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);
Price = [114.416; 113.171];
Interpolation = 1;

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

  114.0409
  113.4029

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

Prices of Treasury bonds or notes per $100 notional at settlement date, specified as a scalar numeric or an NINST-by-1 vector. Use bndprice for theoretical value of bond.

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