Defining Future Contracts
A future contract is a collection of future products traded on a given exchange at a given expiry month (for example, the EUROLIBOR 3-month traded on the Chicago Mercantile Exchange defines three future products on JUN09, SEP09, DEC09). The future products can be traded, and used as curve underlying instruments.
Quick Reference Creating future contracts and products is a two-step process:
Examples for setting up futures, including those with specific setup requirements. |
1. Editing and Creating Future Contracts
From the Calypso Navigator, navigate to Configuration
> Listed Derivatives > Future Contracts (menu action refdata.FutureDefinitionWindow
) for
creating future contracts.
» | To create a new contract, click New. Then enter the fields described below: Details and Underlying. |
» | To load and edit an existing contract, type in a few letters in the Search field. All contracts that contain those letters will appear. You can select a contract from the list. You can then edit the fields described below as needed. |
» | Click Save to save your changes. |
Note that if the Authorization mode is enabled, an authorized user must approve your entry, provided that "FutureContract" has been added to the "classAuthMode" domain.
1.1 Details Panel
Select the Details panel to define the details of the contract.
Details - Contract Summary
Fields | Description |
---|---|
Exchange |
Select the exchange where the contract is traded. An exchange is a legal entity of role MarketPlace. |
Currency |
Select the currency in which the contract is traded. |
Name |
Enter the contract name. Note that a unique contract is defined by its combination of Name, Exchange and Currency, so that you cannot have an MM future contract and a bond future contract with the same name and currency on the same exchange. Australian bond futures on SFE should be named XM or YM, in order to allow the proper computation of the settlement amount. |
Type |
Select the type of future: BRL, Bond, CDSIndex, Commodity, Dividend, Equity, EquityIndex, FX, MM (Money Market), StructuredFlows (cash legs), Swap, SwapPerpetual, Volatility. |
Details - General Fields
Fields |
Description |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Quote Type |
Select the quote type of the future’s price. For example, “Yield” for FutureBRL contracts, “Future” defined as “100 - Rate = Price” for FutureMM contracts, and “Price” for FutureBond contracts. For Future32 and Future64, the format is HHH-TTF.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Quote Decimals |
Define the decimal precision at the contract level. The system uses this decimal precision in the Price field in the trade window and in quote rounding when calculating the NPV. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Is Contract Size Variable |
Check if the contract size is variable. This applies to Equity index futures. The contract size is equal to index price * tick size * tick value. The equity index product is selected in the Underlying panel, and the contract size is calculated when the future is actually traded. This also applies to Electricity Futures.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Contract Size |
Only applies when "Is Contract Size Variable" is not checked. Enter the face value of the underlying product represented by one future. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
No. of Futures in Contract |
Enter the total number of future products traded in the contract. For example, for the CME Eurodollar contract there are five years worth of tradable expiry months, for a total of twenty tradable futures. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Settle Type |
Select the settlement type of the underlying product: Cash or Physical. For Gold FX Futures, you can also select "Spot Deferred" to identify a future contract that prices Gold for spot delivery but the delivery is deferred each day with no last trading date. These contracts do not expire. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Negative Price Liquidation |
Check to allow entering negative prices for trade capture and quotes. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Attributes |
Optional. Click Select... and then the down arrow to the right to add attributes to the contract definition. Out-of-the-box Attributes
Other available formats:
More examples can be found at http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html Ⓘ [NOTE: For the nominal calculator SFEFutureNominalCalculator, the DateFormat attribute must be set to "MMM yy"]
Fields Specific to Non-CBOT exchanges The below 2 fields are used to implement the rounding for all exchanges other than CBOT.
The rounding is done as follows for non-CBOT exchanges: SA/PV = ROUND_Curr(ROUND_ContractDef(Price * Tick Size * Tick Value ,2)* Quantity ,2) Here the ROUND_Curr is the currency default rounding, while the ROUND_ContractDef is the rounding being applied at the contract level.
Attributes Specific to BRL Futures
For example, if the USD/BRL FX Future has a strike of 3.62 but the quote is expressed as 3,6200.00, setting the attribute to 1000 matches the quote with the contract and allows for curve generation.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BenchMark |
For bond futures that are used as benchmarks to price bonds, you can specify the number of days before the last trading day, within which, if the pricing occurs, the future contract will be rolled to the next one. This is only for pricing purposes. As the future approaches expiry, the liquidity shifts to the next contract. Enter the number of days before the last trading day, and select business days or calendar days. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fungible with |
Select a contract that can be liquidated with the current contract, if any. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Future Name Month |
By default, futures are displayed as Contract Name/Contract Date, example “CME LIBOR/07/18/2016”, where the contract date can be one of the following:
You can also choose the following logic using the domain “ProcessingConfig”: Value = LegacyProductDesc, Comment = false Futures are displayed as Contract Name/Contract Date, where the Contract Date is displayed as MMMyy for “Monthly” date format or DDMMMyy for “Daily” date format. Example: “CME LIBOR/JUL16” for “Monthly” or “CME LIBOR/18JUL16” for “Daily”. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Last CCP Date Lag |
Number of business days between the expiration date and the last CCP date. When the future products are generated the Last CCP Date is computed accordingly. This date represents the last date on which the CCP (the exchange clearinghouse) has any risk to the default of a member carrying a position in that future. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Long Name |
Contract long name. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Exchange Clearing Ticker |
For ETD Clearing - Market standard contract symbol used by the exchange and trade interface. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nominal Rounding Method |
The nominal rounding method is a drop down. Rounding by default will be nearest. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nominal Rounding Decimal |
This is rounded upto 2 places. |
Details - Ticks
Fields | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Tick Type |
Select the tick type: Fixed or Variable. If the tick type is variable, you need to specify the nominal calculator to compute the contract size. See below. |
|||||||||
Nominal Calculator |
Only applies to variable ticks. Specify the nominal calculator that allows computing the contract size. Out of the box, the following calculators are available:
Otherwise, you need to implement a custom calculator for computing the contract size. To implement a custom calculator, create a class named |
|||||||||
Minimum move (ticks) |
Enter the minimum allowable price fluctuation for the contract, as defined by the exchange, in decimal format. |
|||||||||
Tick Value |
Only applies to fixed ticks. Enter the change in value of one contract, given a change in the contract’s price equal to the Minimum Move (one tick). Tick Value = Contract Size / Tick Size |
|||||||||
Tick Size |
The Tick Size is the denominator of the fractional representation of the Minimum Move. For instance, a minimum move of 0.01, or 1/100, gives a Tick Size of 100. You can add tick size values to the dropdown menu through the domain "tickSize". |
Details - Dates/Time
Fields | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Date Format |
Select the date format for the quote names of the future products:
|
|||||||||
Last Trading Time |
Enter the time of day that trading will end on the last trading day. Use twenty-four hour time notation (for example 16:30 is four-thirty in the afternoon). |
|||||||||
Time Zone |
Select the time zone of the trading time. |
|||||||||
Expiration Date Schedule Last Trade Date Schedule First Delivery Date Schedule Last Delivery Date Schedule First Notification Date Schedule Last notification Date Schedule |
Type in a few letters (at least 2) in a date schedule field. All date schedules that contain those letters will appear. You can select a date schedule from the list. A date schedule can be a date rule or a manual date schedule. Date rules are created using Configuration > Definitions > Date Schedule Definitions > Date Rule from the Calypso Navigator - Help is available from that window. Manual date schedules are created using Configuration > Definitions > Date Schedule Definitions > Manual Date Schedule from the Calypso Navigator - Help is available from that window. |
|||||||||
First Delivery Use Prev Date Last Delivery Use Prev Date |
You can check these boxes so that the delivery date is before the last trading date. It is the next expiry date otherwise. For example, if the expiry date has a date rule "15th of every month" and the first delivery has a date rule "1st of every month".
|
1.2 Underlying Panel
Select the Underlying panel to select the underlying product of the contract.
The selection criteria depend on the type of contract.
Underlying - BRL
» | Select an underlying currency, a reference index, a tenor, and holiday calendars as needed. |
Underlying - Bond
You can select type "Specific" to select a specific Bond product. Bond products are created using Configuration > Fixed Income > Bond Product Definition from the Calypso Navigator.
» | Select a Bond product. |
You can also select type "Relative" to define a generic bond.
» | Select a bond type, a maturity, and enter a coupon rate to define the generic bond. |
Underlying - CDS Index
You can select type "Specific" to select a specific CDS Index product. CDS Indices are created using Configuration > Credit Derivatives > CDS Index Definition from the Calypso Navigator.
» | Select a CDS Index Definition. |
You can also select type "Benchmark" to select a benchmark over a CDS index. CDS Index benchmarks are created using Configuration > Fixed Income > Benchmarks from the Calypso Navigator. After the last trading day, the future contract will be rolled to the next one.
» | Select a CDS Index Benchmark. |
Underlying - Commodity
» | Select a Commodity product. Commodity products are created using Configuration > Commodities > Commodities from the Calypso Navigator. |
Depending on the type of product, additional parameters will be requested: price fixing, commodity reset, physical delivery reset, default delivery contract, etc. Sample Commodity Futures are shown in the Calypso Commodities documentation.
Underlying - Dividend, Dividend Index
» | Select an Equity or Equity Index product. |
Equities are created using Configuration > Equity > Stock from the Calypso Navigator.
Equity Indices are created using Configuration > Equity > Equity Indices from the Calypso Navigator.
» | You can set "Special Quote = Yes" to allow creating special quote names - You need to select the fixing type in that case - Upon saving the products, the system will save the standard quote name, and "<standard quote name>.<fixing type>" - The special quote is used on expiration date. |
The following fixing types are supported in addition to CLOSE, OPEN, HIGH, LOW, and LAST:
– | Future Price Reference (EDSP) - This is a special quote typically known at the Open of the market trading. EDSP is published by a future or option exchange. |
– | Volume Weighted Average (VWAP) - The average price of the day is popular as a fixing because many exchanges and brokers allow clients to Buy or Sell shares at the VWAP. Therefore, Fixing at the VWAP facilitates the orderly removal of hedge transactions. |
– | Prezzo di Riferimento (PDR) - A special Italian Exchange-published level that is used to settle exchange and OTC derivatives. |
Set "Special Quote = No" otherwise.
» | You can set "ES Contract = Yes" to identify an ES contract (contract with specific rules for settlement). |
You can set the number of days between the last trading date and the payment date in "SpotDaysES".
This applies to SGX to cover contracts that allow the settlement date to be any date between trade and last trading date + SpotDaysES.
Set "ES Contract = No" otherwise. Settlement date = trade date + spot days defined in the Exchange attributes.
» | Enter a tax rate as needed. |
Underlying - Equity, Equity Index, Volatility
» | Select an Equity or Equity Index product. |
Equities are created using Configuration > Equity > Stock from the Calypso Navigator.
Equity Indices are created using Configuration > Equity > Equity Indices from the Calypso Navigator.
» | You can set "Special Quote = Yes" to allow creating special quote names - You need to select the fixing type in that case - Upon saving the products, the system will save the standard quote name, and "<standard quote name>.<fixing type>" - The special quote is used on expiration date. |
The following fixing types are supported in addition to CLOSE, OPEN, HIGH, LOW, and LAST:
– | Future Price Reference (EDSP) - This is a special quote typically known at the Open of the market trading. EDSP is published by a future or option exchange. |
– | Volume Weighted Average (VWAP) - The average price of the day is popular as a fixing because many exchanges and brokers allow clients to Buy or Sell shares at the VWAP. Therefore, Fixing at the VWAP facilitates the orderly removal of hedge transactions. |
– | Prezzo di Riferimento (PDR) - A special Italian Exchange-published level that is used to settle exchange and OTC derivatives. |
Set "Special Quote = No" otherwise.
» | You can set "ES Contract = Yes" to identify an ES contract (contract with specific rules for settlement). |
You can set the number of days between the last trading date and the payment date in "SpotDaysES".
This applies to SGX to cover contracts that allow the settlement date to be any date between trade and last trading date + SpotDaysES.
Set "ES Contract = No" otherwise. Settlement date = trade date + spot days defined in the Exchange attributes.
» | For Volatility, you can also select a daycount. |
Underlying - FX
» | Select a currency pair. Currency pairs are created using Configuration > Definitions > Currency Definition from the Calypso Navigator. |
Underlying - Money Market (MM)
You can select type "Specific" to define a MM product on-the-fly.
» | Select a currency and whether there is principal exchange or not. |
» | Select the underlying start date: it can be a date rule or a manual date schedule. |
You can check "Start Date before Future Expiry" to handle lookback contracts. If checked, the start date to be picked up from the date schedule is the date preceding the future expiry date. If not checked, the start date will be equal to or greater than the future expiry date.
It should be checked for FedFunds, OIS and EONIA.
» | Select the end date type: it can be a tenor or a date schedule. |
For a tenor, select a tenor.
For a date schedule, you can select a date rule or manual date schedule.
» | Select whether the coupon is fixed or floating, and the corresponding parameters. |
You can also select type "Relative" to select a rate index.
» | Select an underlying currency, a reference index, a tenor, holiday calendars, and an underlying start lag. |
For Australian MM futures on SFE with IR/BB commodity codes, the 3M tenor can act as 90D tenor. On the Rate Index, set the attribute "USE_ACT_365_CONVENTION" to true to have the 90D behavior on cashflow forward end date, the date roll convention to NO_CHANGE, and the daycount to ACT/365.
Underlying - StructuredFlows
Structured flows are exotic legs - This can be used for defining Brazilian DDI futures.
See Sample DDI Future Setup for details.
» | Select a currency and whether there is principal exchange or not. |
» | Select the underlying start date: it can be a date or a date schedule. |
For a date schedule, you can select a date rule or a manual date schedule.
You can check "Start Date before Future Expiry" to handle lookback contracts. If checked, the start date to be picked up from the date schedule is the date preceding the future expiry date. If not checked, the start date will be equal to or greater than the future expiry date.
It should be checked for overnight rate indices.
» | Select the end date type: it can be a tenor or a date schedule. |
For a tenor, select a tenor.
For a date schedule, you can select a date rule or a manual date schedule.
» | Select the payment parameters. |
» | Select the exotic type - Exotic types are created using Configuration > Product > Exotic Type Creator from the Calypso Navigator. |
Underlying - Swap
Ⓘ [NOTE: The Swap Underlying settings panel above is also applicable when future contract Type = SwapPerpetual.]
» | Enter the notional and select the start date: it can be a date rule or a manual date schedule. |
» | Qualify each leg of the swap: fixed or floating and corresponding parameters. |
For a fixed leg, you can define a fixed rate schedule. The dates should correspond to the First Trade Dates. If the rate is not defined for a given date, the previous defined rate is used if any. The default fixed rate is used otherwise.
You can see the rate in the product description of the generated futures.
» | For ERIS Swap Futures, which mature on the Expiry Date, select the “Matures on Expiry” checkbox. |
» | For LDX Constant Maturity Swap Futures, only the Maturity tenor is needed – the Start Date rule can be left blank. The Default Fixed Rate property is ignored. |
2. Generating Future Products
Load a contract from the Search field. Then select a start date and click Load on the right-hand side.
» | For Bond Futures, you need to select the cheapest-to-deliver bond from the "Ctd" column - This is needed regardless of the type of settlement method - It is used to compute PV01 for bond futures as CTD PV01 / CTD factor when FUTURE_FROM_QUOTE=false. |
– | Click ![]() |
– | Check CTD for the cheapest-to-deliver. |
– | You can enter a factor as applicable. This is the conversion factor between the bond future and the deliverable bond. |
» | The product code Prompt Month is populated by the Comments of the manual expiration schedule if Future Option Name Month = "Prompt Month". |
» | Click Save Futures to save the actual future products that can be traded. |
» | For certain types of contracts, you can click Save Curve Underlyings to save underlying futures that can be used in curve construction. |
» | You can select Config > Open Column Configurator to configure the layout. Then you can select Config > Save Current Column Config to save the layout, otherwise it will be lost upon closing the window. |
Details on Dates Generation
The dates of the Future products are set by default as follows - You can modify them as needed.
• | First Trade Date: Set to the Expiration Date. |
• | Last Trade Date: Set to the previous date generated by "Last Trade Date Schedule", or to the Expiration Date if no schedule is set. |
• | First Delivery Date: Set to the next date generated by "First Delivery Date Schedule", or to the Expiration Date if no schedule is set. |
• | Last Delivery Date: Set to the next date generated by "Last Delivery Date Schedule", or to the Expiration Date if no schedule is set. |
• | First Notification Date: |
– | Commodity: Set to the next date generated by "First Notification Date Schedule". |
– | All other products: Set to the next date generated by "First Notification Date Schedule", or to the Expiration Date if no schedule is set. |
• | Last Notification Date: |
– | For Commodity: Set to the next date generated by "Last Notification Date Schedule". |
– | All other products: Set to the next date generated by "Last Notification Date Schedule", or to the Expiration Date if no schedule is set. |
• | Last CCP Date: Set to the Expiration Date + Last CCP Date Lag (number of business days). |
3. Sample FedFund Future Setup
FedFund Rate Index Definition
Attributes:
Average Rate Details:
FedFund Manual Date Schedule
FedFund Contract Definition
4. Sample DDI Future Setup
The DDI Future is a future on the spread between the CDI rate index and the USD / BRL exchange appreciation.
Exotic Structure
The spread between the CDI rate index and the USD / BRL exchange appreciation is defined as an exotic structure.
You first need to define the exotic variables qCDI (exotic variable on the CDI rate index), and qPTAX (exotic variable on the currency pair USD/BRL using Configuration > Interest Rates > Exotic Variables from the Calypso Navigator.
Then from the Calypso Navigator, navigate to Configuration > Product > Exotic Type Creator to define the exotic structure.
In the Variables panel, define the following variables:
In the eXSP Structure panel, define the following structure:
Save the exotic structure and give it a name.
DDI Future Contract Details
» | Select the "StructuredFlows" type to allow selecting the exotic structure as an underlying. |
» | Select the tick type "Variable" and enter the nominal calculator "BRLNominalCalculator". |
» | Select the exotic structure that you have created which represents the spread between the CDI rate index and the USD / BRL exchange appreciation. |
Once a DDI Future is defined, it can be traded as a standard future trade or as an FRC trade.
See Capturing Future Trades for details.
5. Sample Swap Future Setup
Swap Futures currently support the following products: the CME Deliverable Swap Future, the ERIS Swap Future and the EUREX LDX Constant Maturity Swap Future.
5.1 CME Deliverable Swap Future
Date Rules Setup
Sample date rule for Expiration Date.
Sample date rule for Delivery Date
CME Deliverable Future Swap Contract Details
![]()
|
![]()
|
Swap Underlying
5.2 ERIS Swap Future
Date Rule for Start Date
ERIS Future Contract Details
![]()
|
![]()
|
Swap Underlying
5.3 EUREX LDX Constant Maturity Swap Future
LDX Constant Maturity Swap Future Contract Details
![]()
|
![]()
|
Swap Underlying
6. Sample SOFR Futures
SOFR futures are based on the Secured Overnight Financing Rate (SOFR), which is underpinned by the US Treasury overnight repurchase (repo) market. The futures are currently offered in 1-month and 3-month contracts. The sample setups here represent the recommended configurations for the SOFR rate index and futures in Calypso.
6.1 Rate Index for SOFR
Rate Definition Tab
The rate index definition for SOFR futures.
Rate Index Attributes
More details are provided in the Calypso Getting Started documentation if needed.
Tenors Tab
Only the 1D tenor is currently available in the market.
6.2 One-Month SOFR Futures
Date Rules
Last Trading Date is the last business day of the month.
The Underlying Start and End Dates for SOFR 1M is the first calendar day of the month.
Future Contract Configuration
The Future Contract Configuration for SOFR 1M is similar to CBOT FedFunds 30D Futures. Note that the First Delivery Date is being used as the Future Name Month and is being set to equal the Start Date on the Underlying tab.
After loading the futures, the dates should appear similar to those below.
6.3 Three-Month SOFR Futures
Date Rules
The Underlying tab Start Date and End Date are quarterly from IMM Wed to IMM Wed.
The Expiry/Last Trading Date is the last good business day before the delivery month’s IMM Wed.
Future Contract Configuration
Note that the First Delivery Date is being used as the Future Name Month and is being set to equal the Start Date on the Underlying tab.
After loading the futures, the dates should appear similar to those below.