Capturing Bond Trades

This document describes how to capture basic bond trades using the Bond worksheet.

Navigate to Trade > Fixed Income > Bond (menu action trading.TradeWindow$BondFront) to open the Bond Trade window, from the Calypso Navigator or from the Trade Blotter.

 

Bond Quick Reference

Entering Trade Details

» Hit F10 to load a template to populate the worksheet with default values. Then modify the fields as applicable.

Or you can enter the trade fields directly. They are described below.

Note that the Trade Date is entered in the Details panel.

» Proceed to the other panels as applicable.

Saving a Trade

» Hit F5 to save the trade, or choose Trade > Save.

You can also hit F3 to save the current trade as a new trade, or choose Trade > Save As New.

You can also hit F12 to save the trade using any action available in the workflow, or choose Trade > Save Action. You will be prompted to select an action.

A description will appear in the title bar of the trade worksheet, a trade id will be assigned to the trade, and the status of the trade will be modified according to the workflow configuration.

Pricing a Trade

» You can choose Pricing Env > Check to check if all required pricing data are available in the Pricing Environment.
» Click Price to price the trade.

Financing a Trade

» Once a bond trade has been saved, you can choose Bond > Finance Trade to enter a related repo trade. If the bond belongs to a bundle, the repo trade will be added to the bundle as well.

Or you can click Finance in the Bundle Entry area.

In the Bundle Entry area, you can also enter an asset swap by clicking Asset Swap, a performance swap by clicking Performance Swap, or an interest rate swap by clicking IR Swap – Help is available from these windows.

Trade Lifecycle

» You can allocate the trade to multiple books and legal entities using Back Office > Allocate.
» You can terminate the trade using Back Office > Terminate.
» You can apply corporate actions using Trade Lifecycle > Corporate Action > Corporate Action, or using the CORPORATE_ACTION scheduled task.
» You can assimilate issuance trades.

See Assimilating Issuance Trades for details.

See also - All Trade Menus for information on functions, menus and panels common to all trade windows.

 

1. Bond Trade

Bond Trade Window

You can click the links below for information on capturing specific types of bonds:

Asset Backed Bonds

Danish Mortgage Bonds

Floating Rate Notes

Inflation Bonds

Money Market Bonds

Taiwanese Bonds

When Issue / Re-Issue Bonds

 

Trade Details

Fields

Description

Buy / Sell / Issue / Upsize / Re-Open / Close

Select Buy or Sell as applicable to indicate the direction of the trade from the book’s perspective.

You can switch between the trade directions using the space bar (note that the space bar is not active in the Speed Entry Panel).

You can also select Issue / Upsize / Re-Open / Close for activity related to bond issues from the processing org.

See Issuance Activity for details.

You can also select Cover / Short instead of Buy / Sell. It allows identifying trades with trade keyword LongShort = Short whereas Buy / Sell allows identifying trades with trade keyword LongShort = Long. This can be used in the context of Asset Management for filtering and reporting purposes.

Product code

Product description

You can select a bond using one of the following methods: Product Code Selection or Browser Selection, they are described below.

Once you have selected a bond, the value of the alternative product code is displayed in the field adjacent to the Browse button. The alternative product code is specified in the User Defaults.

You can click Show to view the details of the selected bond, or to create a bond - Save the bond and click Apply in the Bond Product window if you have made any modification - Help is available from that window.

Product Code Selection

The product code defaults to the security code specified in the User Defaults. You can select another product code as applicable.

Note that the Name product code searches the bond short names.

» Type in a few characters of the code value in the adjacent field.

The system searches all the bonds defined in the system, unless a quick entry template has been specified, in which case the system only searches the bonds filtered by the quick entry template.

See Specifying a Bond Browser for information on setting up a quick entry template.

Also, if the environment property USE_SUBSTRING_IN_BOND_NAME_QUERY=true is set, the system searches all the letters in the product code values. Otherwise, it only searches from the start.

The bonds that satisfy the request are displayed in a list.

» Select a bond from the list.

Browser Selection

Click Browse to select a product from a user-defined bond browser.

See Specifying a Bond Browser for information on setting up a bond browser.

» Select a report template to display the corresponding bonds, and double-click a bond from the list to select it.

If you do not have report templates, simply click Search to browse all existing bonds.

» You can right-click any column and choose Configure Columns to customize the display.

Nominal/Quantity

Enter the amount of nominal that is traded. This is the original nominal. Double-clicking the label will change it to Quantity (nominal/face value). You can enter the quantity if the quote type on the bond is set to "Price", "UnitaryPrice", or "GrossUnitaryPrice".

The adjacent field displays the product’s currency.

Clean Price

The label actually displays the quote type of the bond product.

Defaults to the market quote as of the trade date if any. Modify as applicable. See Clean Price, Yield and Dirty Price below for details.

If there is no market quote and BOND_FROM_QUOTE is false, we price the bond from curve to produce an initial price for trading.

For BondMMDiscount and BondMMInterest, the pricing parameter MMKT_FROM_QUOTE is used instead of BOND_FROM_QUOTE.

Settle Date

The settlement date defaults to the trade date + the number of settle days specified in the bond product.

The settlement date uses the holiday calendar of the bond product to identify business days.

If you change the trade date in the Details panel, double-click the Settle Date label to update the settlement date accordingly.

Cash Date

In order to display the cash settlement date in the bond trade window, you need to set the environment property BOND_CASH_DATE=true. It is false by default.

The field Cash Date will be added next to the Settle Date field, and stored in the field “Alternate Date”.

To force the transfers to DAP, you need to set the trade keyword SWIFTDAP = true.

The static data filter element “Has Cash Date (true/false)” allows selecting bond trades with a cash settlement date, for messaging purposes.

 

Proceeds Details

Fields

Description

Principal

The principal amount is calculated as Nominal * Clean Price.

Accrual

The amount of accrued interest is calculated based on the Accrual Days.

You can double-click the Accrual label to make the Accrual field editable.

Settlement

The settlement amount is calculated as Principal + Accrual.

To enter a settlement amount instead of calculating it, see “Calculate” below.

Bonds issued in one currency and settled in another will have the settlement amount rounded using the settlement currency.

Note that for Mexican cross currency bonds, the settlement amount is calculated as Nominal * Dirty Price * FX Rate.

Calculate

Allows capturing trades based on settlement amount.

Trade Capture by Settlement Amount

To capture a trade based on settlement amount, enter the following fields:

Settle Date
Settlement
Calculate
If Calculate = “Quantity or Nominal”, enter one of the following: Clean Price, Dirty Price, Yield, Discount
If Calculate = “Price”, enter the Nominal / Quantity

Dual currency is supported in 'Calculate = Price', for the case where there is cross currency settlement (bond currency and trade settlement currency are different).

If Calculate = Settlement and Nominal, Principal and Price will be editable whereas Settlement and Nominal will be greyed out and will be calculated once the user enters values in the fields (Quote type i.e. CP or Yield or DP, Settle Date, Principal).

To note that, "Calculate = Settlement and Nominal" is limited only to the Australian Market. This implementation is done for bonds where a price/yield formula applies for calculating a price from an interest rate (yield or margin): Fixed Rate Bonds, Floating Rate Notes, Capital Indexed Bonds, Callable Bonds, and RFR Bonds, and pricers: PricerBondAUSCPI, PricerBondFRNAUD, PricerBondCGS, PricerBondGeneric, and PricerBondFRN.

In certain cases, users may see Principal and / or Nominal rounding up or down by 1 cent due to the already existing round trip calculation logic. In such cases, users are requested to set Nominal rounding to 3 decimals in the Bond definition > Market Tab.

The Nominal / Quantity, or the Price, depending on your “Calculate” selection, and accrued interest if any, will be calculated. The entered Settlement amount may be modified to adjust for having rounded down the Nominal / Quantity to a whole number as needed.

If Calculate = Fractional Quantity, the settlement amount is the user entered value and the price details section is editable.

To note that, "Calculate = Fractional Quantity" is limited only to the Australian Market. With the new calculation type, in certain cases, the users may see a 1 cent difference and they are requested to change the nominal decimal to a higher number. This support is provided only to the classic bond trade window.

 

BondMMDiscount and BondMMInterest

For BondMMDiscount and BondMMInterest products, if Calculate = Price or is left blank, and you enter a settlement amount, the dirty / clean price and yield will be calculated accordingly. The settlement amount is stored in the trade keyword “ManualSettlementAmount”. The bond pricer will return this amount as settlement amount for settlement calculation.

If Calculate = “Quantity or Nominal”, then this keyword is not stored and the Nominal / Quantity and Settlement amounts behave as described above.

Ccy

The settlement currency defaults to the bond’s currency.

When settling a cross currency bond trade, the settlement currency specified in the bond trade window will be used to round the settlement amount, not the currency specified in the bond product definition.

Modify as applicable.

FX

The FX field is enabled when the settlement currency is different from the bond’s currency.

The FX field defaults to the FX quote on Trade Date. For UDI/MXN bonds, the FX Rate defaults to the FX quote on Settle Date (This is only done for Mexican Bonds).

» Enter the FX rate between the settlement currency and the bond’s currency. The settlement amount is recalculated accordingly.

 

Price Details

Fields

Description

Clean Price

Yield

Dirty Price

Enter the clean price, yield, or dirty price, and the other fields will be calculated accordingly.

When a bond is not quoted in Yield, and you manually enter the yield, the manual yield is stored in the trade keyword "Entered Yield". This is used for PREM_DISC_YIELD calculations.

The dirty price is clean price + unit accrual.

For bonds quoted using Price32, you can enter the trade’s price with two, three, or four digits after the dash. The first two digits represent the number of thirty-seconds (between 1 and 31).

If the price contains 3 digits, the third digit represents the number of eighths of a thirty second (or 1/256, between 1 and 7). A bond price entered as "99-022" will be read as [99 + 2/32 + 2/8(1/32)], or 99.0703125. The third digit can also be +, indicating 4/8 of a thirty second.

If the price contains 4 digits, the last two digits represent the number of sixteenths of a thirty second (or 1/512, between 1 and 15).

Note that the four-digit logic only applies to bonds with the tick size 512.

For convertible bonds quoted in Price, the Clean Price label switches to Unit, and you can enter the monetary units.

For non-callable bonds with MM_ACT30 yield method, the Yield label switches to Monthly Yield.

For callable bonds, select the effective call method from the drop down next to the Yield field: Worst, Best, Next, Maturity, or Custom. The trade prices and settlement amount will reflect the effective call.

Note that to use Custom, you must have Effective Call = Custom, and a Call Date set in the Call Schedule panel.

For the AOAS quote type, see Zero Curve for complete details on Agency Option Adjusted Spread (AOAS) pricing for bonds.

Gross Price

Only used for Gilt RPI indexed bonds.

Margin

Only appears for floating rate bonds. It displays the DISC_MARGIN pricer measure, which calculates the spread added to current rates to equal the bond yield. Ref: Stigum and Robinson, “Money Market and Bond Calculations” (1996), Ch. 17. For the average rate needed for that formula, the Calypso implementation uses the index rate as of the valuation date.

You can enter a discounted margin to solve for the clean price.

Prepay Speed

Only used for BondAssetBacked.

<Secondary Ccy> Clean Price

<Secondary Ccy> Dirty Price

They allow entering a bond trade in any currency, and only appear if the BondEnableSecondaryCcy domain is set to true.

When the trade currency is different from the bond currency, you can enter either one and the other will be calculated.

<Secondary Ccy> Clean Price = Clean Price * FX Rate * Pool Factor
<Secondary Ccy> Dirty Price = Dirty Price * FX Rate * Pool Factor

For PIK bonds:

<Secondary Ccy> Clean Price = [Clean Price + (PIK Accrual * Clean Price)] * Pool Factor * FX Rate
<Secondary Ccy> Dirty Price = [Dirty Price + (PIK Accrual * Clean Price)] * Pool Factor * FX Rate

They are rounded according to the "Price Dec." field.

 

Benchmark Details

These fields only appear if the selected bond is associated with a benchmark.

Fields

Description

Clean Price

Yield

Displays the price and yield of the Benchmark associated with the selected bond if any.

If you modify those values, the Clean Price, Yield and Dirty Price of the trade will be calculated accordingly.

When saving a bond trade that has an underlying benchmark bond, the benchmark yield is saved in the keyword "Benchmark Yield".

When loading a trade that has the "Benchmark Yield" keyword, the original benchmark clean price and yield are displayed as read-only.

Note that you will only see the keyword if you add the value “Benchmark Yield” to the tradeKeyword domain.

Spread

Enter the spread over the benchmark. The Clean Price, Yield and Dirty Price of the trade will be calculated accordingly.

Name

Displays the name of the benchmark selected in the bond product.

You can choose Bond > Show Benchmark to display the benchmark details.

Security Code

The label actually displays the security code selected in the User Defaults.

Displays the security code value of the Benchmark associated with the selected bond if any.

ISIN

Displays the security code of the product.

Market Price

Displays the quote of the Benchmark associated with the selected bond if any.

 

Bond Details

Fields

Description

Market Quote

Displays the latest quote as of the trade date, if any.

If there is no quote, and BOND_FROM_QUOTE is false, we do not try to calculate a quote from curve.

For BondMMDiscount and BondMMInterest, the pricing parameter MMKT_FROM_QUOTE is used instead of BOND_FROM_QUOTE.

 Ⓘ   [NOTE: The locale used for quote type generation is set in the domain LocaleForBondQuotes. If no value exists in this domain, the locale set in the user environment properties will be used]

Next Coupon

Displays the next coupon date.

Accrual Days

Displays the number of days between the last coupon date and the settlement date.

Accrual Rate

Displays the current period calculated accrual rate based on observations until the settlement date for calculation of the current accrual. Only available when using a Daily Compounded RFR Reset Index (using bond types BondFRN, UST FRN and BondAssetBacked). Not available when the settlement date is earlier than the value date.

Current Nominal

Pool Factor

Displays the current nominal and pool factor for bonds with variable notional.

Current Coupon

Displays the current coupon rate.

Pool Factor

Displays the pool factor when the bond issuer defaults (for ABS and MBS type of Bonds).

 

Settlement Details

Fields

Description

Legal entity

The first field identifies the legal entity role. The default role is specified using Utilities > Set Default Role. However, you can change it as applicable.

You can select a legal entity of specified role from the second field provided you have set up favorite counterparties. You can also type in a character to display the favorite counterparties that start with that character. Favorite counterparties are specified using Utilities > Configure Favorite Counterparties.

Otherwise, click ... to select a legal entity of specified role from the Legal Entity Chooser. You can also type Ctrl-F to invoke the Legal Entity Chooser, or directly enter a Legal Entity short name.

Click Show to display the details of the selected legal entity. You can also choose Utilities > Selected Counterparty Info.

If the trade counterparty is a processing organization that owns the trade’s book, and if trade keyword BondNoXferRule=true, the trade does not generate any transfer rules.

Id

Ext Ref

Int Ref

Unique identification number of the trade. The trade id is automatically assigned by the system when the trade is saved.

You can load an existing trade by typing the trade id into this field, and pressing [Enter].

You can also display the internal reference or external reference. The default trade reference to be displayed can be selected in the User Defaults.

The internal reference and external reference can be set in the Details panel of the trade worksheet.

Book

Trading book to which the trade belongs. Defaults to the book selected in the User Defaults. You can modify as applicable.

You can select a book provided you have set up favorite books. You can also type in a character to display the favorite books that start with that character. Click ... to specify favorite books or Utilities > Configure Favorite Books.

The processing org of the book identifies the processing org of the trade.

Trade Date

Displays the trade date specified in the Details panel.

Status

Current status of the trade. The status is automatically assigned by the system based on the workflow configuration.

The status will change over the lifetime of the trade according to the workflow configuration and the actions performed on the trade.

 

Bundle Entry Details

You can associate the trade with a bundle. Bundles are created under Configuration > Books & Bundles > Trade Bundle.

Opening and existing trade, adding a trade bundle name and selecting 'Save as New' will not save the trade bundle name to the new trade.

You can also finance the trade, capture an asset swap, or capture a performance swap.

Fields

Description

Types

Select a bundle type.

Names

Select a bundle.

 

Additional Details

Fields

Description

Mirror Book

Select a mirror book if you want to mirror the current trade.

You can select the mirror trader from the Details panel.

A mirror trade will be saved with the current trade to the selected book, and you can view the mirror trade id from the Details panel.

Market Type

Defaults to the market type selected in the User Defaults. For when-issued and re-issue trades, the system automatically sets the corresponding market type to “When-Issued” and “Re-Issue” respectively.

You can modify as applicable.

Market types are created in the marketType domain.

Trade Classification

The values for that field come from the domain keyword.TradeClassification, and this field is stored in the trade keyword “TradeClassification”.

The “Trade Classification” column can be configured in the following reports: Trade Browser, Pair Off Manager, Transfer Report, Message Report and Postings Report.

This column can also be configured in the BO Browser, task station, and netting manager.

“KEYWORD.TradeClassification” can be used in Calypso filters.

Comment

Enter a free comment as applicable.

 

2. Issuance Activity

 

2.1 Issuing a Bond

The issue corresponds to the sale of a bond from the perspective of the processing org. You can click Show to create the bond on-the-fly.

For an issue, the bond should have the following characteristics:

The Issuer should be the processing org of the selected book.
The Issue Paying Agent (legal entity or role IPA) should be populated on the bond. The IPA handles the coupon payments for the issuer, and will be used in the corporate action process. SDIs should be defined for the bond’s IPA for the IPA role.

 

2.2 Upsizing a Bond

Once a bond has been issued but not yet settled, you can use that action to modify the total issued on the bond.

Select the bond that has been issued, and enter a nominal amount to increase the total issued.

 

2.3 Re-Opening a Bond

After the settlement date of the issue, you can still increase the total issued of the bond using that action. You can enter a different price and accrued interest will be computed.

 

2.4 Closing a Bond

This action allows buying back the bond.

 

3. Assimilating Issuance Trades

You can assimilate issuance trades on multiple bonds into one bond using the scheduled task ISSUANCE_CONSOLIDATION based on assimilation keys.

 

3.1 Defining Assimilation Keys

The following assimilation keys are used by default: Bond Class, Bond Type, Issue Date, Dated Date, Maturity Date, Issuer, Country, Issue Price, Issue Yield, Currency, Redem Price, Redem Currency, Face Value, Min. Purchase Amount, Coupon details, Market Details, Special details.

However, you can add more assimilation keys for bond legal entities and product codes as needed.

Add a menu item for menu action util.BondAssimilationKeysWindow to bring up the Assimilation Keys window.

Click ... to select additional keys, then click Save.

 

3.2 Running the Scheduled Task ISSUANCE_CONSOLIDATION

Configure the scheduled task ISSUANCE_CONSOLIDATION.

The trade filter should contain Product Type = Issuance.

Task Attributes

TransferFilter - You can select a static data filter based on transfer criteria.
Bundle Type - You can select a bundle type to set the bundle type on the assimilated trades. The bundle name will be set to the product ID of the target product.
One Msg Checked - Only applies if a bundle type has been selected. Set to true if you want the bundle to generate one confirmation, or set to false otherwise (default).
Mirror Bundle - Only applies if a bundle type has been selected. Set to true to save a mirror bundle, or set to false otherwise (default).
Apply Trade Action - Select the action to be applied on the assimilated trades.

 

The scheduled task must be run on the Issue date of the bond products that you want to assimilate. The system loads all the trades that match the assimilation keys and selects one of the products as the target product. It updates the trades with the target product, and sets the trade keyword "AssimilatedFrom" to the product ID of the original bond product.

It also updates the trade type to Upsize if the bond total issue is less than the quantity of the trades, and sets a trade bundle if specified.

 

On the assimilated bond products, the system shows the product into which they have been assimilated in the Special panel.

 

3.3 Undoing an Issuance

From the Trade Browser, you can right-click an Issuance trade, and choose Process > Unconsolidate. from the popup menu.

The system brings up all the trades that have been assimilated into a target product.

Check "Selected" for the trades you want to remove from the assimilation, and click Unconsolidate.