This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Future prices of Treasury bonds given spot price


[QtdFutPrice,AccrInt] = tfutbyprice(SpotCurve,Price,SettleFut,MatFut,ConvFactor,CouponRate,Maturity,Interpolation)



Treasury spot curve; a number of futures (NFUT) by 3 matrix in the form of [SpotDates SpotRates Compounding].

Allowed compounding values are −1, 1, 2 (default), 3, 4, and 12, where −1 is continuous compounding.


Scalar or vector containing prices of Treasury bonds or notes per $100 notional. Use bndprice for theoretical value of bond.


Scalar or vector of identical elements containing settlement date of futures contract.


Scalar or vector containing maturity dates (or anticipated delivery dates) of futures contract.


Conversion factor. See convfactor.


Scalar or vector containing underlying bond annual coupon in decimal.


Scalar or vector containing underlying bond maturity.


(Optional) Interpolation method. Available methods are (0) nearest, (1) linear, and (2) cubic. Default = 1. See interp1 for more information.

Inputs (except SpotCurve) must either be a scalar or a vector of size equal to the number of Treasury futures (NFUT) by 1 or 1-by-NFUT.


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

  • QtdFutPrice — Quoted futures price, per $100 notional.

  • AccrInt — Accrued interest due at delivery date, per $100 notional.

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.


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 = 


AccrInt = 


See Also



Introduced before R2006a

Was this topic helpful?