Bond Option

Table of Contents

A bond option gives the buyer the right to buy or sell a bond at a fixed price. The option is European, and the underlying bond sits in the trade. ORE models it with the trade type BondOption. The container node is BondOptionData. 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 Bond Option
Short name Bond Option
ORE Studio product code BondOption
Asset class bond
Family Option
ORE trade data node BondOptionData
ORE documentation bondoption.tex

2. Summary

A bond option provides the buyer with the right, but not the obligation, to buy or sell a given bond at a fixed price either at or before a specific date. Options are written on government bonds and are traded on an OTC basis. Only vanilla bond options are supported, and the exercise style must be European. The BondOptionData node holds one OptionData sub-node plus the strike, the redemption ratio, the price type and the default behaviour, together with the underlying bond.

3. Detail

3.1. What it is

ORE defines the product as follows:

A bond option provides the buyer with the right, but not the obligation, to buy or sell a given bond at a fixed price either at or before a specific date. Options are written on government bonds and are traded on an OTC basis.

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

ORE describes the trade node as follows:

The BondOptionData node is the trade data container for the option part of a bond option trade type. Vanilla bond options are supported, the exercise style must be European. The BondOptionData node includes one and only one OptionData trade component sub-node plus elements specific to the bond option.

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

3.2. In plain terms

A bond option is a vanilla option on a government bond. The buyer of a call can buy the bond at the strike. The buyer of a put can sell it. The strike can be a clean or a dirty price, which decides how accrued interest enters the payoff.

3.3. How it works in ORE

The BondOptionData node is the trade data container for the option part of the BondOption trade type. It has one OptionData sub-node plus elements specific to the bond option. The OptionData sub-node carries the option terms. The StrikeData node holds the strike and supports StrikePrice and StrikeYield. Redemption is the redemption ratio in percent. PriceType decides which strike is used for pricing. With Dirty, the strike price is used as given. With Clean, the strike price is set equal to the strike value plus the accrued interest at the expiration date of the option. KnocksOut decides the default behaviour. When it is true, the option knocks out if the underlying defaults before option expiry. When it is false, the option is written on the recovery value in case of a default. The BondData block describes the underlying bond and holds the VolatilityCurveId, the yield volatility curve used for the valuation. This product carries the full bond description in the trade; ORE also documents a form that takes the bond from reference data.

3.4. Mathematical notes

The option payoff is the bond value less the strike, floored at zero, or the strike less the bond value. The exercise style is European, so the option can be exercised at expiry only. The strike enters as a dirty price when PriceType is Dirty, and as a clean price plus accruals when it is Clean. The value comes from a yield volatility model of the underlying bond.

3.5. What moves its value (static sensitivities)

  • The price and yield of the underlying bond.
  • The yield volatility curve named by VolatilityCurveId.
  • The strike and the redemption ratio.
  • The interest rates that discount the payoff.
  • The credit of the issuer, through the default behaviour.

The option is a claim on a bond, so bond yields, volatility and credit all move its value. Near the strike it is most sensitive to the bond price.

3.6. How the profile ages (dynamic sensitivities)

The option is European and ages like a vanilla option. Time value decays toward expiry. The default behaviour decides the outcome if the issuer fails before expiry: the option either dies or falls back to the recovery value. At expiry the buyer exercises when the bond value is on the right side of the strike.

3.7. Why a customer would want it

A bond option gives cheap, leveraged exposure to a government bond without buying it. It hedges a bond position or a pipeline of future bond purchases. In ORE Studio a customer books bond options to value them and run sensitivities on the ORE engine.

3.8. Example

ORE's catalogue shows a European bond option on a bond with a strike in EUR and a dirty price convention:

<Trade id="...">
  <TradeType>BondOption</TradeType>
  <Envelope>
      ...
  </Envelope>
  <BondOptionData>
    <OptionData>
        ...
    </OptionData>
    <StrikeData>
      <StrikePrice>
        <Value>11809123.56</Value>
        <Currency>EUR</Currency>
      </StrikePrice>
    </StrikeData>
    <Redemption>100.00</Redemption>
    <PriceType>Dirty</PriceType>
    <KnocksOut>false</KnocksOut>
    <BondData>
       <VolatilityCurveId>YieldVols-EUR</VolatilityCurveId>
        ...
    </BondData>
  </BondOptionData>
</Trade>

Source: ORE User Guide, Products catalogue, bondoption.tex, listing Bond Option data. The source closes the BondData element without the leading slash; it is normalised here.

4. See also

Emacs 29.3 (Org mode 9.6.15)