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 (
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
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
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
SpotCurve) must either be
a scalar or a vector of size equal to the number of Treasury futures
[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
IRDataCurve object with a
to create a vector of dates and data acceptable for
For more information, see Converting an IRDataCurve or IRFunctionCurve Object.
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 = 114.0409 113.4029 AccrInt = 1.9891 0.4448