Forward Bond

Table of Contents

A forward bond is a contract to buy or sell a bond at a future date at an agreed price. ORE models it with the trade type ForwardBond. The container node is ForwardBondData. This note records the domain grounding, as ORE documents it in its product catalogue.

1. Identifiers

What a trader books it as, and what to grep for. The codes are the trade type catalogue's, which is what the database enforces.

Field Value
Full name Forward Bond
Short name Forward Bond
ORE Studio product code ForwardBond
Asset class bond
Family Forward
ORE trade data node ForwardBondData
ORE documentation forwardbond.tex

2. Summary

A forward bond establishes an agreement to buy or sell an underlying bond at a future date at an agreed price. The direction of the contract is set by LongInForward. Settlement can be physical or cash. A T-Lock is a forward bond on a US Treasury bond, priced by a lock-in yield instead of an amount. A J-Lock is the same contract on a Japanese Government Bond. The forward bond is priced with the DiscountingForwardBondEngine.

3. Detail

3.1. What it is

ORE defines the product as follows:

A Forward Bond (or Bond Forward) is a contract that establishes an agreement to buy or sell (determined by LongInForward) an underlying bond at a future point in time (the ForwardMaturityDate) at an agreed price (the settlement Amount).

Source: ORE User Guide, Products catalogue, forwardbond.tex.

ORE describes the T-Lock and J-Lock forms as follows:

A T-Lock is a Forward Bond with a US Treasury Bond as underlying, whereas a J-Lock is a Forward Bond with a Japanese Government Bond as underlying. T-Locks can be specified in terms of a lock-in yield rather then a settlement amount. The cash settlement amount is given by (bond yield at maturity - lock rate) x DV01 in this case.

Source: ORE User Guide, Products catalogue, forwardbond.tex.

3.2. In plain terms

A forward bond is a promise to buy or sell a bond at a fixed future date at a price agreed today. It locks the price of a bond trade that happens later. A T-Lock is the same contract on a US Treasury, stated as a yield instead of a price.

3.3. How it works in ORE

ORE describes the setup as follows:

A Forward Bond is set up using a ForwardBondData block as shown below and the trade type is ForwardBond.

Source: ORE User Guide, Products catalogue, forwardbond.tex.

The BondData block specifies the underlying bond. A long position must be taken in the bond, so the Payer flag must be true. The block carries one extra field for forward bonds: IncomeCurveId names the benchmark curve to use for compounding. It must match a curve in the yield curves or index curve block of todaysmarket.xml. The field is optional. When it is left out, the market reference yield curve is used for compounding.

The SettlementData block defines the terms of settlement. ForwardMaturityDate is the maturity date of the forward contract. Settlement is optional and takes Cash or Physical; it defaults to Physical, except when the settlement is defined by LockRate, in which case it defaults to Cash. Amount is optional: it is the settlement amount, also called the strike, transferred at forward maturity in return for the bond, or as a cash amount equal to the dirty price of the bond for cash settlement. It cannot be negative and is assumed to be in the currency of the underlying bond. Exactly one of Amount and LockRate must be given. LockRate defines a payoff of the yield at forward maturity minus the lock rate, times the DV01, for a long forward. When it is given, settlement must be cash. LockRateDayCounter is optional and defaults to A360. SettlementDirty decides whether the settlement amount reflects a clean or a dirty price. In either case the dirty amount is actually paid on the forward maturity date. When it is false, the forward accruals are computed internally and added to the given amount. It defaults to true.

The PremiumData block is optional and defines a potential premium payment. Date is the payment date and Amount is the amount paid. The amount is transferred from the party that is long to the party that is short, and cannot be negative. LongInForward decides whether the contract is entered in a long or a short position. KnockOut is optional. When it is true, the contract terminates without payout if the underlying bond defaults before the forward maturity date. When it is not given, it defaults to false for a vanilla payoff and to true for a lock rate payoff.

ORE notes the credit input as follows:

As for the ordinary bond the forward bond pricing requires a recovery rate that can be specified in ORE per SecurityId.

Source: ORE User Guide, Products catalogue, forwardbond.tex.

3.4. Mathematical notes

A physically settled forward pays the settlement amount at the forward maturity date and receives the bond. A cash settled forward pays or receives a cash amount equal to the dirty price of the bond, against the settlement amount. The amount is the price locked today for a trade that happens at the forward date.

A T-Lock states the contract as a yield. Its payoff is the bond yield at forward maturity minus the lock rate, scaled by the DV01 of the bond. The compounding of the forward uses the benchmark curve named by IncomeCurveId, or the market reference yield curve when the field is absent. The pricing engine is the DiscountingForwardBondEngine, configured with a product type of ForwardBond and a three-month time step.

3.5. What moves its value (static sensitivities)

  • The yield curve of the underlying bond. It drives the forward price and the discounting.
  • The compounding curve, named by IncomeCurveId, which carries the bond from today to the forward date.
  • The credit of the issuer and the recovery rate per SecurityId.
  • The DV01 of the bond, for a T-Lock: it scales the whole payoff.
  • The passage of the settlement conventions and the premium.

The forward price tracks the spot price minus the cost of carrying the bond to the forward date. The value of the contract is the difference between the locked amount and the prevailing forward price.

3.6. How the profile ages (dynamic sensitivities)

The contract ages toward the ForwardMaturityDate. The forward price converges to the spot price of the bond as the date approaches. The accrued interest of the bond grows into the dirty price that settlement pays. At the forward date the trade settles and ends. When the underlying bond defaults before maturity, a knock-out contract terminates without payout; otherwise the default path is priced through the recovery rate.

3.7. Why a customer would want it

A forward bond locks the price of a bond purchase or sale that happens later. It removes the price risk of a planned trade. A customer who must buy a bond at a known future date fixes the cost today. T-Locks are the standard way to trade US Treasury yield levels forward. In ORE Studio a customer books forward bonds to value them and run sensitivities on the ORE engine.

3.8. Example

ORE's catalogue shows a long, physically settled forward bond with a premium. The example names a benchmark compounding curve and a settlement amount of one million:

<ForwardBondData>
  <BondData>
    ...
    <IncomeCurveId>BENCHMARKINCOME-EUR</IncomeCurveId>
  </BondData>
  <SettlementData>
    <ForwardMaturityDate>20160808</ForwardMaturityDate>
    <Settlement>Physical</Settlement>
    <ForwardSettlementDate>20160810</ForwardSettlementDate>
    <Amount>1000000.00</Amount>
    <SettlementDirty>true</SettlementDirty>
  </SettlementData>
  <PremiumData>
    <Amount>1000.00</Amount>
    <Date>20160808</Date>
  </PremiumData>
  <LongInForward>true</LongInForward>
</ForwardBondData>

Source: ORE User Guide, Products catalogue, forwardbond.tex, listing Forward Bond Data. The source spells the settlement value Physcial and closes the IncomeCurveId element without the leading slash; both are normalised here. The catalogue also shows the same structure with a LockRate of 0.02365 in place of the Amount, its T-Lock form.

4. See also

Emacs 29.3 (Org mode 9.6.15)