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
Or you can enter the trade fields directly. They are described below. Note that the Trade Date is entered in the Details panel.
Saving a Trade
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
Financing a Trade
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
|
1. Bond Trade
Bond Trade Window
You can click the links below for information on capturing specific types of 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.
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.
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.
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.
Browser Selection Click Browse to select a product from a user-defined bond browser.
If you do not have report templates, simply click Search to browse all existing bonds.
|
||||||||||||
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.
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:
Dual currency is supported in 'Calculate = Price', for the case where there is cross currency settlement (bond currency and trade settlement currency are different).
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.
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).
|
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.
|
||||||||||||
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.
For PIK bonds:
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.