Main Content

Analysis of Bond Futures

The following example demonstrates analyzing German Euro-Bund futures traded on Eurex. However,convfactor,bndfutprice, andbndfutimprepoapply to bond futures in the U.S., U.K., Germany, and Japan. The workflow for this analysis is:

  1. Calculate bond conversion factors.

  2. Calculate implied repo rates to find the CTD bond.

  3. Price the bond future using the term implied repo rate.

Calculating Bond Conversion Factors

Use conversion factors to normalize the price of a particular bond for delivery in a futures contract. When using conversion factors, the assumption is that a bond for delivery has a 6% coupon. Useconvfactorto calculate conversion factors for all bond futures from the U.S., Germany, Japan, and U.K.

For example, conversion factors for Euro-Bund futures on Eurex are listed atwww.eurexchange.com. The delivery date for Euro-Bund futures is the 10th day of the month, as opposed to bond futures in the U.S., where the short position has the option of choosing when to deliver the bond.

4%的债券,计算转换因子智慧h:

CF1 = convfactor('10-Sep-2009','04-Jul-2018', .04,.06,3)
CF1 = 0.8659

This syntax forconvfactorworks fine for bonds with standard coupon periods. However, some deliverable bonds have long or short first coupon periods. Compute the conversion factors for such bonds using the optional input parametersStartDateandFirstCouponDate. Specify all optional input arguments forconvfactoras parameter/value pairs:

CF2 = convfactor('10-Sep-2009','04-Jan-2019', .0375,'Convention',3,'startdate',...datenum('14-Nov-2008'))
CF2 = 0.8426

Calculating Implied Repo Rates to Find the CTD Bond

确定最便宜的债券的可用性for deliverable bonds against a futures contract, compute the implied repo rate for each bond. The bond with the highest repo rate is the cheapest because it has the lowest initial value, thus yielding a higher return, provided you deliver it with the stated futures price. Usebndfutimprepoto calculate repo rates:

% Bond PropertiesCouponRate = [.0425;.0375;.035]; Maturity = [datenum('04-Jul-2018');datenum('04-Jan-2019');datenum('04-Jul-2019')]; CF = [0.882668;0.842556;0.818193]; Price = [105.00;100.89;98.69];% Futures PropertiesFutSettle ='09-Jun-2009'; FutPrice = 118.54; Delivery ='10-Sep-2009';% Note that the default for BNDFUTIMPREPO is for the bonds to be% semi-annual with a day count basis of 0. Since these are German% bonds, we need to have a Basis of 8 and a Period of 1ImpRepo = bndfutimprepo(Price, FutPrice, FutSettle, Delivery, CF,...CouponRate, Maturity,'Basis',8,'Period',1)
ImpRepo = 0.0261 -0.0022 -0.0315

Pricing Bond Futures Using the Term Implied Repo Rate

Usebndfutpriceto perform price calculations for all bond futures from the U.S., Germany, Japan, and U.K. To price the bond, given a term repo rate:

% Assume a term repo rate of .0091;RepoRate = .0091; [FutPrice,AccrInt] = bndfutprice(RepoRate, Price(1), FutSettle,...Delivery, CF(1), CouponRate(1), Maturity(1),...'Basis',8,'Period',1)
FutPrice = 118.0126 AccrInt = 0.7918

See Also

|||||||||

Related Examples

More About