| Fixed-Income Toolbox™ | ![]() |
QtdFutPrice = tfutbyprice(SpotCurve, Price, SettleFut, MatFut, ConvFactor, CouponRate, Maturity, Interpolation)
| SpotCurve | Treasury spot curve; a number of futures (NFUT)
by 3 matrix in the form of Allowed compounding values are -1, 1, 2 (default), 3, 4, and 12. |
| Price | Scalar or vector containing prices of Treasury bonds or notes per $100 notional. Use bndprice for theoretical value of bond. |
| SettleFut | Scalar or vector of identical elements containing settlement date of futures contract. |
| MatFut | Scalar or vector containing maturity dates (or anticipated delivery dates) of futures contract. |
| ConvFactor | Conversion factor. See convfactor. |
| CouponRate | Scalar or vector containing underlying bond annual coupon in decimal. |
| Maturity | Scalar or vector containing underlying bond maturity. |
| Interpolation | (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 = tfutbyprice(SpotCurve, Price, SettleFut, MatFut, ConvFactor, CouponRate, Maturity, Interpolation) computes future prices of Treasury notes and bonds given the spot price.
In addition, you can use the Fixed-Income 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.
Determine the future price of two Treasury bonds based upon a spot rate curve constructed from data for November 14, 2002.
% Constructing 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];
% Calculating 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 = tfutbyprice(SpotCurve, Price, Settle, ...
MatFut, ConvFactor, CouponRate, Maturity, Interpolation)
QtdFutPrice =
114.0409
113.4029This compares with closing prices of 113.93 and 112.68. The differences are expected due to the nature of the contract and data that is not directly comparable.
![]() | tbillyield2disc | tfutbyyield | ![]() |
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |