tfutbyprice - Future prices of Treasury bonds given spot price

Syntax

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

Arguments

SpotCurve

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.

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.

Description

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

Examples

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.4029

This 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.

See Also

convfactor, tfutbyyield

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS