Derivatives
Derivatives
TEMENOS T24
Derivatives
User Guide
No part of this document may be reproduced or transmitted in any form or by any means,
electronic or mechanical, for any purpose, without the express written permission of TEMENOS Holdings NV.
Derivatives
Table of Contents
Overview .................................................................................................................................................. 7
Derivatives Module .............................................................................................................................. 8
Setup ..................................................................................................................................................... 10
Accounting Set-up.............................................................................................................................. 10
ACCOUNT.CLASS ......................................................................................................................... 10
CATEGORY ................................................................................................................................... 11
RE.TXN.CODE ............................................................................................................................... 12
TRANSACTION.............................................................................................................................. 12
DX.COMMISSION ............................................................................................................................. 12
Scenario 1 ...................................................................................................................................... 15
Scenario 2 ...................................................................................................................................... 17
DX.CONTRACT.CLASS .................................................................................................................... 18
DX.CONTRACT.MASTER ................................................................................................................. 18
Basic Contract Information ............................................................................................................. 19
Pricing Data .................................................................................................................................... 19
Contract Size Information ............................................................................................................... 20
Maturity Date Validation and Key Contract Dates .......................................................................... 21
Other Contract Information ............................................................................................................. 24
EB.CONTRACT.BALANCES ............................................................................................................. 25
DX.CUSTOMER ................................................................................................................................ 25
DX.EVENT.TYPE............................................................................................................................... 27
DX.EXCHANGE.MASTER ................................................................................................................. 30
DX.GROUPING ................................................................................................................................. 33
DX.MARGIN.RATES.......................................................................................................................... 34
The DX.MARGIN.RATE Key .......................................................................................................... 35
DX.PARAMETER............................................................................................................................... 36
DX.PRICE.SET .................................................................................................................................. 36
DX.PRICE.SOURCE.......................................................................................................................... 37
DX.STRATEGY.................................................................................................................................. 38
DX.TRADING.CONSTRAINT ............................................................................................................ 38
The System Record........................................................................................................................ 39
Setting Up a Constraint .................................................................................................................. 39
Best Rate ........................................................................................................................................... 41
Customer Available Funds Checking................................................................................................. 41
Alternate Indexes ............................................................................................................................... 42
Maturity & Call Put Indicator ........................................................................................................... 42
Overview
Futures and options may be traded in two ways: through recognised derivatives exchanges or in OTC
(‘Over the Counter’) transactions directly between two parties.
Exchange traded futures and options must conform to the standard contract specifications published
by the relevant exchange. Trades are passed through a clearinghouse associated with the exchange,
which assumes liability should one party default. They are relatively well regulated.
The specifications for contracts traded ‘Over The Counter’ are agreed between the parties to the trade,
giving considerably more flexibility. OTC trades are cheaper to execute since there are no exchange
or clearing fees to be paid, but riskier since there is no insurance against one party defaulting.
When a trade is agreed, a position is taken as a result. The buyer of the contract is said to be ‘long’ in
the contract, and the seller to be ‘short’. Exchanges and brokers require a ‘deposit’ called the Initial
Margin to cover the risk to the exchange or broker of their counter party defaulting on their
commitment. The exchange supplies an algorithm that must be used to calculate this figure. When a
position consists of many active trades and new trades are being added or closed daily, this figure is
recalculated each day.
Option contracts require the payment of a ‘premium’ by the buyer, which is effectively the cost of
purchasing the right to buy or sell the underlying asset or product. This represents the maximum loss
for the buyer of an option contract, since if the market moves against the buyer's expectation they will
allow the option to be expired (see below) and lose the premium amount rather than a much bigger
loss had they taken up their option.
During the life of a contract it is revalued. The most common form of valuation is ‘Mark to Market’,
where the price at which the contract was traded is compared with the current ‘fair value’ for the
contract (typically the latest official market price for the product) to yield a profit or a loss. An example
would be a futures contract bought at USD110 per lot – a month into the life of the contract the market
price for the same contract is USD115 per lot. Using the mark to market valuation the buyer has an
unrealised profit of (115-110) = USD5 per lot. This may also be referred to as the ‘variation margin’.
An active futures contract may either mature with some form of delivery of the underlying asset, or be
‘closed out’ against another active contract, i.e. a buy trade and a sell trade for the same contract that
meets certain conditions can be linked and removed from the active position. A realised profit and loss
is generally produced at these times, based on the trade price vs. the latest ‘fair value’ for maturities or
the difference between the buy price and the sell price if two trades are closed out.
An active option contract may be closed out as above or at the option contract buyer’s discretion, may
be ‘exercised’, (the option taken up and the underlying asset or product delivered or activated) or
‘expired’ (the option simply abandoned – the buyer loses the premium amount but nothing more).
Derivatives Module
The Derivatives product has been developed to allow trading of futures and ‘vanilla’ options initially.
The product supports trading, position keeping, valuation and closing out of both exchange-traded and
OTC contracts.
The Derivatives product may be used by: banks trading on their own behalf, by banks trading on
behalf of their customers or by banks offering their customers brokerage services.
Derivatives has been designed to cope with the rapid changes and developments experienced in the
derivatives market by adopting a ‘black box’ architecture for certain key elements of the system such
as margin and profit and loss calculations.
INPUT INPUT
PROCESSING PROCESSING
Broker
Profit and Loss
MARK T-BOND
EXT-
TO MARK
ERNAL
MARKET TO MKT Inital Margin
EXT-
ADEX OMLX More...
ERNAL
Processing Control Shell
Pricing Price/Data
Vendors
BLACK- COX/
BLACK EXT-
SCHOLE ROSS/
'76 ERNAL
S RUBEN.
PROCESSING PROCESSING
STORAGE/ STORAGE/
OUTPUT OUTPUT External Reporting
Reporting Tools Tools
Positions/Portfolios
The philosophy of the Derivatives product is that a detailed static data set up will enable the bank to
tailor the product to their needs and minimise the amount of manual intervention required to run the
system day-to-day. The Bank can input comprehensive data to define the products and exchanges
they or their customers may trade.
Derivatives perform on-line real-time updates of derivatives trading positions and cost of positions. Full
revaluations may be performed at any stage during the system day for reporting purposes, and the
End of Exchange process may either be run online or during the main T24 batch run to generate and
post to the accounts the ‘official’ margin figures.
All operations carried out in Derivatives raise a record in the main derivatives transaction file. This file
provides a comprehensive record of a customer’s activities within the Derivatives module and is the
basis for most client reporting/statements etc. Each transaction is also associated with one or more
‘events’ in the life of a contract that form the basis of the module’s event-driven accounting updates.
Setup
Accounting Set-up
In order for the application ccounting to operate correctly some static data set-up is essential. This
section contains a list of tables to be updated with guidelines for what should be included in the data
set.
ACCOUNT.CLASS
T24 derivatives trade input is always double sided, but the account postings resulting from the trade
may well be asymmetric, e.g. the bank may pay a certain clearing fee to a broker, but impose a ‘mark-
up’ on the fee it charges to the external customer involved in the trade. All trade-related postings are
therefore washed through suspense accounts or P&L categories to allow this to happen.
ACCOUNT.CLASS contains the definition of the suspense accounts or profit and loss categories
through which postings are ‘washed’, as follows:
ACCOUNT.CLASS ID Type Description
SUSPDXIMCR Account Suspense account for credit initial margin
SUSPDXIMDR Account Suspense account for debit initial margin
SUSPDXVMCR Account Suspense account for credit futures variation margin
SUSPDXVMDR Account Suspense account for debit futures variation margin
SUSPDXOMCR Account Suspense account for credit option variation margin
SUSPDXOMDR Account Suspense account for debit option variation margin.
SUSPDXCGCR Account Suspense account for credit derivatives charges
SUSPDXCGDR Account Suspense account for debit derivatives charges
SUSPDXPRCR Account Suspense account for credit option premium
payments
SUSPDXPRDR Account Suspense account for debit option premium payments
SUSPDXRPCR Account Suspense account for credit realised P&L
SUSPDXRPDR Account Suspense account for debit realised P&L
DXCSNDUE P&L ‘Suspense’ P&L category for derivatives commission
due not paid (not utilised until phase 2)
DXCSNEARN P&L ‘Suspense’ P&L category for derivatives commission
earned not received (not utilised until phase 2)
DXCSNPAID P&L ‘Suspense’ P&L category for derivatives commission
paid
DXCSNRCVD P&L ‘Suspense’ P&L category for derivatives commission
received
Note when setting up the ACCOUNT.CLASS records, it is important to consider which categories are
to be used. If different categories are used for the Debit and Credit ACCOUNT.CLASS(s) then the
two Internal Suspense accounts will net to zero, however the balances on the individual accounts will
continue to grow in a +ve or –ve direction. In many cases it would be advisable to use the same
CATEGORY for the debit and the credit ACCOUNT.CLASS so that the funds wash in and out of the
same suspense account.
CATEGORY
CATEGORY codes needing to be set up are divided into three types.
Also required for TT – tax posting, PP – option premium posting and IM – initial margin posting
DX.EVENT.TYPE records
A ‘dummy’ internal account CATEGORY code should be set up for entry onto DX.EVENT.TYPE
records where the category code is not used (CA, CC, CI, CR, UO) and also for DX.EVENT.TYPE
records for commission/fee postings where the USE.FT.TXN.CODE flag has been set.
As with all applications using the T24 accounting suite, at least one internal account should be set up
manually for each internal account category code entered. The system will then be able to open
internal accounts in all other currencies automatically.
It is possible to nominate a preferred wash account currency for posting option premiums to an
internal account. This is controlled through the WASH.ACC.TYPE field in DX.EVENT.TYPE. The
possible values are blank, “Local” and “Trade”. This value can only be applied specifically to the PP
record in DX.EVENT.TYPE attempts to utilise this functionality against any other records should
produce an error
When no currency (Blank) type is defined the posting will occur in the reference currency for the
customer
When “Local” type is selected, the postings occur in the system local currency
When “Trade” type is selected, the postings occur in the currency of the contract
Product Categories
A product category in the appropriate range should be set up for each DX.CONTRACT.CLASS
defined by the bank (see below).
P&L Categories
Should be set up for the following DX.EVENT.TYPE RECORDS: CM – contract maturity (realised
P&L), VM – variation margin, RP – realised P&L, OM – option variation margin, RO – realised option
P&L.
Also should be set up for commission/fee posting event types if DX.EVENT.TYPE category codes to
be used for posting P&L rather than category codes generated by CALCULATE.CHARGE.
It is possible to setup a P&L category for the PP event type. This will cause the Premium Posting for
the own book transaction to be booked directly to a P&L entry in CATEG.ENTRY
RE.TXN.CODE
Descriptions of transaction types used in the updating of the CRF are held in this table. The following
new transaction codes are required:
RE.TXN.CODE Description
CLO Derivatives contract closeout
UOV Derivatives unrealised option value
TRANSACTION
Each DX.EVENT.TYPE record requires the entry of a debit and a credit transaction code (though
these may be the same transaction code if required). The user should set aside a range of transaction
codes for Derivatives accounting.
DX.COMMISSION
The Derivatives system allows trading commission to be calculated automatically dependent on
certain criteria set up in DX.COMMISSION. This facility allows commission and charges to be based
on a number of decision levels:
Commission can therefore be set up for the following range of customer/group/contract combinations.
These elements are separated by ‘-‘and combine together to create the commission code. Codes,
which denote a narrower scope of grouping, are selected in precedence to those with greater
generalisation. In each search to calculate commission, the order of priority (and list of valid
combinations) is given below:
3. Customer.
6. Customer group.
7. Contract.
8. Contract class.
9. System default.
The procedure used to determine when a correct commission table has found can be controlled by the
field SEARCH.ALL.COMMSN in the application DX.PARAMETER (SYSTEM record) If this field is set
to NO then once a record has been matched with the key then no further records will be searched. If
the field is set to YES, then each record found will be searched to find matching extra criteria.
So that the system knows how to interpret the input, a two-character prefix is used to identify each
element, the application also recognises mnemonics used by the source applications.
The extra criteria for determining the calculation of commission and charges are defined within
DX.COMMISSION. The field FIELD.NAME contains a drop down list of fields from DX.TRADE.
When a field is selected, the contents from the trade will be compared, using the entry in the
OPERATOR field, against the values input into FIELD.FROM and FIELD.TO. These fields are sub
valued so that one or more tests can be combined for even greater refinement. Note that secondary
side fields on the trade are not listed in FIELD.NAME. If a primary side trade field is selected, then the
corresponding secondary trade field name is displayed in SEC.FIELD.NAME. This will consequently
be used in tests for customers, which appear on the secondary side of the trade.
The following screenshot shows a test, which requires two conditions to be satisfied. These are:
If either condition proves to be false for the trade, then the commissions specified in this test set will
not be used.
Once the trade details have been matched, up to five different types of commission and charges can
be calculated. Each type can contain a commission/charge code linked to either
FT.COMMISSION.TYPE or FT.CHARGE.TYPE. The types of commission/charges and fields in
which they are entered in are given below:
Commissions COMM.CHARGE
More than one commission code can be entered for each commission type, but there is only one
commission currency per type. If a commission currency is specified then this will override whatever
currency is defined on FT.COMMISSION.TYPE or FT.CHARGE.TYPE.
The field CHARGE.PERCENT contains a percentage multiplier to apply to the charge amounts
calculated. However this is performed on types commission, execution and clearing fees only.
A couple of examples are presented to show some simple commission scenarios.
Scenario 1
A bank has set up a customer group called GROUPEXT to contain all relevant internal (own-book)
customers, and a similar group GROUPINT for all non-own-book customers.
On behalf of their internal accounts and external client, they trade European options on EUREX and
LIFFE. They are not trading members of either exchange, but instead use an external broker, with
customer number 100324. This broker charges different rates for each exchange. These have been
created in FT.COMMISSION.TYPE as CISERXEXC and CISLIFFEEX respectively. The bank
charges the internal accounts the same rates, but charges the private clients a standard commission
amount, STDCUST. Following standard exchange rules, commission will only be actually charged
when a position is closed out.
In examining the GROUPEXT client commission set-up, it can be seen that the PAY.RECEIVE field is
set to “PAY”, indicating that the customer is paying the commission to the bank.
For the EXTERN1 client group, FIELD.FROM is left blank so that the test with FIELD.NAME set to
“EXCHANGE.CODE” and OPERATOR set to “NE” will pick up all exchanges (LIFFE and EUREX in this
example).
The commission set-up for Broker “A”, 100115, has the PAY.RECEIVE field set to “RECEIVE”,
indicating that the bank is paying the commission to the broker.
Scenario 2
Another bank trades only Foreign Exchange options. Assume that there is no overriding commissions
for brokers or exchanges and a general system default can be used.
The bank has two commonly traded currencies, USD and GBP, for which it charges a percentage
commission, STDPCNT. If other currencies are traded then extra charges, given as NONSTD, are to
be levied.
DX.CONTRACT.CLASS
The DX.CONTRACT.CLASS application will allow the definition of a group of contracts. This name
may then be entered in the DX.CONTRACT.CLASS application and used to define commission and
margin classes.
The CATEGORY.CLASS field defines the product category code for contracts in this group.
DX.CONTRACT.CLASS Record
DX.CONTRACT.MASTER
DX.CONTRACT.MASTER is the main application that defines the characteristics of future, stock or
option contracts that can be traded in the Derivatives product.
DX.CONTRACT.MASTER Record
The DELIVERY.METHOD of the contract may be CASH, PHYSICAL or NONE, for the cases where the
contract is ‘delivered’ as a defined amount of cash, the physical underlying product is simply removed
from the option position with no further action within T24. If DELIVERY.TYPE is CASH, the
DELIVERY.CURRENCY must be entered.
Pricing Data
T24 Derivatives contains powerful functionality to describe the format and calculation of contract
prices, and to validate them on that basis. A short glossary of terms and overview of the main
calculations used with examples may be found in the Appendix “Price Calculation Overview”.
Main pricing data such as the price basis (INTEREST for interest-rate based prices, NORMAL
otherwise) are the same for all prices on a contract, but in some cases values like tick size and value
may vary when the contract price falls within different bands. This is catered for by multi-valuing the
PRICE.BAND to INT.PRICE.BAND set.
In rare cases, the tick size and value may vary continuously with the price of the contract, e.g.
Swedish Government Bonds, Australian T-Bill Futures. The pricing characteristics of these contracts
cannot be accurately represented using the main price data fields in DX.CONTRACT.MASTER, but
the ability to handle anomalous pricing characteristics through creating specialised pricing routines
has been designed into the product.
The PRICE.TOLERANCE field allows the Bank to set a percentage tolerance for input checking of
prices. If the price input on a trade is more than the PRICE.TOLERANCE percentage different to the
latest input market price, an override will be raised at trade entry
Exchange traded derivatives contracts (and most OTC contracts) are traded in ‘lots’. Lots are specified
by the exchange or by OTC agreement quantities of an underlying product or asset, in whichever unit
of measure is appropriate. The lot size for CME Frozen Pork Bellies futures, for example, is 40,000lb
of frozen pork bellies of a standardised size and quality, whilst that for the LIFFE 3-month Short
Sterling interest rate future is GBP500,000. This size is set in the CONTRACT.SIZE field, whilst the
unit of measure used can be specified in UNITS.OF.MEASURE. At present, this field is not validated
but will later be linked to other applications to cope with physical delivery of commodities.
The fields MATURITY.TYPE and AVAIL.MONTHS and the multi-value set MONTHS.FWD to MAT.DAYS
allow the user to define valid maturity months for the contract using information supplied by the
exchange
Contract specifications from exchanges quote monthly maturity date rules in one of two ways: either
specifying which months are valid up until a certain number of months forward, or specifying a total
number of valid months. Either method may be combined with a ‘cycle’ of valid months within year (e.g.
March, June, September, and December).
Setting MONTHS.FWD and any cycle required in the sub-multi-valued MAT.MONTHS fields will handle
the first case, whilst setting AVAIL.MONTHS and any cycle required will handle the second case.
Examples of set ups for actual contracts are shown in the Appendix “Example Contract Maturity
Rules”.
For a monthly maturity contract, certain dates related to the maturity month are significant; chief
among these is the ‘last trading date’, i.e. the last date for which contracts maturing in that month may
be traded. The exchange will publish rules to determine this and other key contract dates, which can
be set up in the fields LAST.TRADE.DATE to AMORT.DATE.
T24 Derivatives uses a range of keywords, codes and modifiers to represent the exchange rules when
determining the dates.
MO Monday
TU Tuesday
WE Wednesday
TH Thursday
FR Friday
SA Saturday
SU Sunday
LBD Last business day of the month Not valid with multiplier/operator in
same field
LCD Last calendar day of the month Not valid with multiplier/operator in
same field
FBD First business day of the month Not valid with multiplier/operator in
same field
FCD First calendar day of the month Not valid with multiplier/operator in
same field
*
Note: these operators are only valid in the final input field of the date formula string and only one of
them is allowed.
Operators and multipliers can then be applied to any of the above “keywords”, subject to the rules
shown in the table. For example, +3BD indicates add 3 business days.
Some keywords are only valid in the presence of operators or multipliers. It makes no sense to put the
keyword ‘BD’ into a field since it is only useful when describing a date offset, i.e. +3BD or –2BD.
Conversely, keywords such as FBD and LCD describe fixed points in a month and are meaningless
when combined with operators or multipliers. It is important to note that the scenario “the first business
day in the month 2 months forward” is represented by “+2M,FBD” and not “+2FBD”.
The ‘days of the week’ keywords are admissible with or without multipliers/operators, because in
certain circumstances is will be necessary for example to say that a date is valid if it falls on any
Monday in a given month. This would be represented by the keyword ‘MO’ without any modifiers.
Brief examples of the use of the keywords follow:
Description Formula
Third Wednesday of the month prior to the delivery month -1M, +3WE
The Saturday following the third Friday of the delivery month +3FR, +1SA
Ninth business day prior to the twentieth of the delivery month +20CD, -9BD
A ‘real-world’ example can be found in the Appendix “Example Key Contract Date Calculation”.
If an exchange modifies a particular key contract date (in the event of an unexpected public holiday,
for example), then override key dates may be entered for the month/year combination(s) set in
OVR.YEAR.MONTH. All other month/year combinations will continue to use the main rules.
The UNDERLYING field is very important – for an option contract it specifies the ID of the
DX.CONTRACT.MASTER record that the option will declare to. For a future it represents the actual
asset the contract is based on, e.g. a stock. It may also represent the underlying Security No on the
SECURITY.MASTER.
The SETT.ALLOWED flag seen here will override the main flag at DX.EXCHANGE.MASTER level to
say whether or not an eligible open position in the contract should be automatically closed out in the
End of Exchange processing.
CONTINGENT.VALUE can be set to represent a value per contract lot to be used in calculating and
posting contingent asset/liability when the contract is traded. If left blank, the system will use the
contract value (No. Of lots * internal price) to calculate the posting.
EB.CONTRACT.BALANCES
For each DX.TRADE contract of Dealer type, a unique EB.CONTRACT.BALANCES record is updated.
This holds details of the contract currency, balances by asset types, daily movements for each asset
types and Consol key. This file is updated by core accounting process at authorization level.
The workflow is as follows-
• For each DX.TRADE contract, EB.CONTRACT.BALANCES is generated online upon
authorization. However accrual of interest, scheduled payment are updated during close of
business.
•For this purpose, entries are generated online instead of through CONSOL.ENT.TODAY
during close of business.
DX.CUSTOMER
Specific information required for trading derivatives information must be entered for each customer
that will be used in the Derivatives product. The application DX.CUSTOMER acts as a supplement
to the main CUSTOMER application to record this information.
DX.CUSTOMER Record
The CUSTOMER.TYPE field allows the customer to be classed as Customer, Counterparty, Dealer,
Broker or Exchange Type customer.
Customer and Dealer are equivalent and are simply for reporting purposes.
Counterparty, Exchange and Broker are also basically equivalent and are separated for reporting
purposes. However, these three customer types have significance for margining purposes. As the DX
module is double sided for every buy or sell by a customer/dealer, the equal and opposite position is
held for with a broker, dealer or exchange. Therefore when initial margins are calculated by the
system, all positions held by brokers, counterparties and exchanges will be reversed, therefore
ensuring the margin results are calculated correctly and maybe reconciled. Brokers and exchange
customer types are not expected to have portfolios when trading. The Customer and Dealer types
represent the majority of the Bank’s clients and own-book trading, and must have
SEC.ACC.MASTER portfolios set up before trading. Finally, the Exchange type customer is used
solely when associated with a DX.EXCHANGE.MASTER record and is used to hold the exchange’s
positions when trading direct with the exchange.
Reporting frequencies for derivatives reports may be set for the customer for Batch and End of
Exchange reports in this application.
A multi-value set of fields EXCHANGE to MARG.WEIGHTING allow the definition of the interaction of the
customer with one, several or all exchanges defined in the Derivatives product. This lets the Bank
define the customer as a speculative or hedge trader on each exchange, and also whether the
customer is a member of the exchange. The exchange membership may be set to Trading, Clearing,
Both or None.
The MARG.WEIGHTING field may be set to force the Derivative product to apply a percentage
weighting to any initial margin figure calculated for the customer on the relevant exchange(s). This
would typically be used if the Bank considers a particular customer to be a greater than normal trading
risk, and wishes to apply more than the normal calculated initial margin requirement to that customer.
The multi-value set of fields headed by AU.CT.CLASS are used to define what contract class is going
to be closed out by this particular method as defined in AU.SETT.TYPE. The last field needs to be set
to AUTO if automatic close out is to be allowed. Details may be found in the Helptext for these fields.
If the ID of a DX.GROUPING record is present in the GROUP field, this customer is treated as a
member of that group for commission calculation, margin calculation and reporting purposes.
The fields MARGIN.ACC.CCY through to TRADING.STATUS may be populated at this release but are
available for information only. They will be used by further developments released in later stages of
the product development.
The customer’s REPORTING.CCY is used as the default currency for revaluation figures produced for
the customer in the Derivatives revaluation. It is defaulted from the reference currency in the first
active SEC.ACC.MASTER portfolio for the customer (if one exists) or otherwise defaults to the
company local currency.
The RENEWAL.FREQUENCY field allows a standard T24 frequency code to be entered to define when
the document should be renewed. This information is picked up by DX.CUSTOMER for information
and reporting purposes.
DX.EVENT.TYPE
The DX.EVENT.TYPE application is crucial in the accounting behaviour of the Derivatives product.
Events occurring during the life of a derivatives contract are selected from a predefined list and
associated with information that is used in accounting for the Bank’s own book portfolios. The module
then assigns one or more events to each activity performed on the system and logged in the
DX.TRANSACTION file.
As an example, a simple futures trade between a broker and the Bank’s own book entered into
Derivatives with execution and clearing commission due at trade input time would generate two
DX.TRANSACTION records, one for the broker and one for the own book portfolio. Each transaction
would then be tested and have the following events assigned:
CI – Contract Initiation – triggers posting of contingent liability posting for own-book portfolio.
FC – Clearing Fee – posts clearing fee calculated to broker account vs. P&L category for own book
portfolio.
FE – Execution Fee – posts execution fee calculated to broker account vs. P&L category for own book
portfolio.
The event types that may be defined in the application are as follows:
OX Order abandon After at least one partial fill, remaining lots are
cancelled.
For events referring to the posting of commissions and charges, the USE.FT.TXN.CODE flag may be
set to use the CATEGORY or ACCOUNT and TRANSACTION codes set on the
FT.COMMISSION.TYPE or FT.CHARGE.TYPE records (if any) used in the commission set up.
The CATEGORY and TRANSACTION codes on the events are used for postings relating to own-
book transactions only, for certain types the CATEGORY code will be mandatory.
The records PP (premium posting) and UO (unrealised option value) in DX.EVENT.TYPE can
be assigned categories as:-
PP – A PL-category (50000-59999) or an internal account category (10000-19999).
UO – A PL-category (50000-59999) or a product category between (24000-24999).
If an internal account category is defined in the DX.EVENT.TYPE for PP, system will raise a
STMT.ENTRY for the premium amount to the internal account category defined.
If a PL category is defined in the DX.EVENT.TYPE for PP & UO, system will raise a
CATEG.ENTRY.
For example, if a PL-category assigned then, on entering a DX.TRADE for option contract,
system will book the premium amount in PL by raising appropriate CATEG.ENTRY. It will
raise debit or credit entry in CATEG.ENTRY for long and short positions respectively and
corresponding entry will be raised in STMT.ENTRY for broker’s account.
Similarly, the UO amount generated on account of revaluation (for own-book trades) will be
posted to PL by raising debit or credit entry (depending upon the position - long or short) in
CATEG.ENTRY and corresponding entry will be raised for internal account in STMT.ENTRY.
Customer and broker transactions result in postings to the relevant accounts are entered on
DX.TRADE.
DX.EXCHANGE.MASTER
• Default rules and methods for trading on the exchange (margin calculations, premium posting
times etc.).
• Links to customers/portfolios/accounts that represent the exchange in T24 for the purposes of
posting fees and other account entries.
• Basic details about any relationships between the exchange and other entities, i.e. regulators.
Each exchange is uniquely associated with a REGION, since the module uses regions to represent
exchanges for the purpose of defining trading calendars in the HOLIDAY application.
DX.EXCHANGE.MASTER record
The EXCHANGE.TYPE field allows an exchange to be set up as Normal, i.e. a ‘real’ exchange, or OTC
for a pseudo-exchange defined by the Bank for the purposes of defining OTC contracts in
DX.CONTRACT.MASTER.
The PREM.POST.TIME and CHG.POST.TIME fields allow the payment of option premiums and
charges or commissions to be defaulted to trade or settlement (close-out) time for all contracts on the
exchange. In both cases the corresponding OFFSET field allows the postings to be delayed by the
number of days set in the fields.
Basic default margining parameters can be set for all contracts on the exchange. VAR.MARGIN.CALC
and INT.MARGIN.CALC define the default variation and initial margin calculation records in
DX.MARGIN.CALC, whilst NETT.GROSS is a parameter required by the margining algorithms on
certain exchanges.
For the most part, the valid days available for trading are read from the holiday record associated with
the exchange region, but unusual trading day rules (i.e. Monday to Thursday rather than Friday) may
be defined on the DX.EXCHANGE.MASTER record in TRADING.DAYS. The exchange’s specific
trading opening and closing times can be recorded in TRADING.OPEN and TRADING.CLOSE. These
fields may be multi-valued if certain ‘sessions’ during the exchange day are available for trading
certain products. If these sessions have particular titles they can then be named in the
EXCHANGE.SESSION field.
The MAX.MONTHS.FWD field constrains the set up of contracts on the exchange and sets the
maximum number of months forward that any contract may be traded.
DX.EXCHANGE.MASTER record
The fields MUTUAL.OFFSET to GEN.DATA.LIMIT allow entry of data about the exchange’s trading
arrangements with other exchanges, electronic trading tools and any regulatory reporting schemes
required. At this stage these fields are used for information purposes only.
The SETT.ALLOWED field defaults the behaviour of all contracts on the exchange with regard to
automated closeouts (settlements). If set to No, open positions in contracts on the exchange that
would otherwise be eligible for automatic close out during the End of Exchange processing will be kept
open.
If the Bank is a member of any exchanges, it may wish to record trades directly between customers
and the exchange. To allow this, customers may be associated with the exchange for the purpose of
holding trading positions. These customers must exist in DX.CUSTOMER and are input in one or
more of the fields EXCHANGE.CUSTOMER to HOUSE.CUSTOMER depending on local regulatory
requirements.
DX.GROUPING
DX.GROUPING is a simple application that allows Derivative customers to be grouped together for
commission calculation and margining/reporting purposes. The group is simply defined in
DX.GROUPING and the group id added to the DX.CUSTOMER record in question.
DX Grouping Record
In later stages of the Derivatives product development, the revaluation suite will support the
revaluation of hierarchical DX.GROUPING structure, i.e. performing a revalue on group AA will also
revalue customers in groups AA.BB, AA.CC etc. The MARGIN.LEVEL field exists to define an official
margining level in such a group hierarchy, but is not used at present.
DX.MARGIN.CALC
The function of the DX.MARGIN.CALC application is to allow entry/amendment of margin
calculation routines into the T24 derivatives module.
The Derivatives module is designed to use ‘black boxes’ to return information that may be obtained in
several different ways. In this way, the main applications need only worry about calling one ‘shell’
routine, which will select the correct algorithm, routine or interface to use to return the required data for
that margin calculation.
Margin calculations rely on this technique. The Derivatives module will call a single ‘grey box’ routine
that will determine the correct margin calculation to apply by examining the exchange and, if
necessary, the contract traded. The DX.MARGIN.CALC application holds descriptions of the
calculations that may be used, and points to the PGM.FILE record defining the actual routine to be
called as part of the revaluation process.
DX.MARGIN.RATES
Part of the functionality of the derivatives module is to calculate initial margin figures. The amounts are
actually calculated by “Black Box” Initial Margin routines that are controlled by the application
DX.MARGIN.CALC. However some of these routines require rates to be entered depending on
which calculations being performed.
The DX.MARGIN.RATES application will allow the entry of initial margin rates for various types of
trades. These rates will be used, as required, by various initial margin calculation routines. Further
applications will be developed as required for specific initial margin calculation routines, e.g. SPAN.
DX MARGIN.RATES record
This may optionally have an effective date at the end of the key in the form –YYYYMMDD. I.e. -19- -
100163-20010615, this margin rate will become effective on the 15 June 2001.
Only one of contract class and contract may be entered and only one of customer grouping and
customer may be entered.
For example:
The rates for contract 19 (3 Month Sterling) for customer 100163 (Model Bank) would be -19- - -
100163 or, the default for all 3 Month Sterling Contracts would be -19- - -
So that the system knows how to interpret the input, a 2-character prefix is used to identity each
element, the application also recognises mnemonics used by the source applications.
DX.PARAMETER
DX.PARAMETER is the main parameter control file for the Derivatives module. It should contain the
single record SYSTEM, which is read by other applications in Derivatives and their behaviour
controlled by the contents.
DX.PARAMETER Record
Details of the effect of the data in DX.PARAMETER can be found in the helptext for the application.
DX.PRICE.SET
The function of this application is for the entering/amendment of price sets in the Derivatives module.
These “Price Sets” are predominately used in the valuation of open positions (trades) using the
revaluation process.
These price sets can be used to set-up “what if” price sets, allowing an ad-hoc revaluation to take
prices from a notional price set. In this way the system can be used to answer the question, “What
would happen if the prices…?”
Derivatives
DX.PRICE.SET Record
The DX.PRICE.SET key is used to validate the key of the DX.MARKET.PRICE records.
The Module cannot function without at least one DX.PRICE.SET being set-up, as the Revaluation
and End of Exchange processing requires that a Price Set exist to revalue the open position.
DX.PRICE.SOURCE
The function of the DX.PRICE.SOURCE application is to allow entry/amendment of price sources
into the T24 derivatives module. A price source should be considered as an identifier for the entry
point of prices into the system. There are many different price sources:
DX.PRICE.SOURCE Record
A basic DX.PRICE.SOURCE record MANUAL is provided with the system to allow the entry of
prices using DX.MARKET.PRICE.
DX.STRATEGY
When trading derivatives, it is common to link individual transactions to form a strategy to achieve a
desired result. Examples are caps, collars and floors, where combinations of ‘simple’ derivatives
trades together allow risk and profit and loss characteristics of a portfolio to be constrained as required.
Individual banks may define their own “combination” products, e.g. Structured Deposits. This
application allows that strategy to be defined along with its own valuation methods.
DX.STRATEGY Record
The strategies defined here are used in the DX.TRADE application. A different strategy can be used
for each side of the trade in the PRI.STRATEGY and SEC.STRATEGY fields.
When transactions with a strategy are found as part of the revaluation process, these trades are
valued together using the margin routine, if specified, in the DX.STRATEGY record.
DX.TRADING.CONSTRAINT
The Derivatives module includes a method of applying constraints to which contracts and/or
exchanges customers or individual portfolios may trade in the module. This is accomplished through
the application DX.TRADING.CONSTRAINT and associated.
The application allows different data fields held on DX.TRADE and DX.ORDER to be tested alone
or in combination to determine whether the customer or portfolio is not allowed to trade based on the
details entered.
More than one constraint may be defined for a particular portfolio, as the ID of
DX.TRADING.CONSTRAINT contains a reference number that differentiates between multiple
constraints for the same portfolio.
DX.TRADING.CONSTRAINT Records
By setting up multiple constraints for a client or portfolio the system can apply special rules for
alternative products, for example if the exchange is offering a new contract and this is being offered to
the banks customers with constraints that normally would preclude the customer. To do this the
trading constraint fields, PRI.CONSTRAINT and SEC.CONTRAINT on each side of the trade in
DX.TRADE will manually have to be entered rather than relying on the default of constraint 01 or
SYSTEM being used.
Setting Up a Constraint
Setting up a constraint in DX.TRADING.CONSTRAINT allows you to constrain the system on only
fields in DX.EXCHANGE.MASTER and DX.CONTRACT.MASTER.
The following example is of a customer who is only allowed to trade options apart from options traded
on CBOT.
Best Rate
Under the existing functionality any debit or credit to the customer account is computed by applying
the middle exchange rate, if the derivative currency is different from the customer account currency.
This new application will provide the flexibility of applying the exchange rate that is most
advantageous to the Globus bank or the user defined exchange rate on the premium, charges and
commission involved in DX trades, besides retaining the existing functionality of applying mid rates.
However, it may be noted that:
• This new functionality is designed only for the Primary side of a DX.TRADE
• User defined rates can be applied to commission if the primary customer chooses the manual
commission type for the said trade
• System will default the best exchange rate from Globus bank perspective, for conversion of
commission/charges, based on the definition in relevant DX.COMMISSION record, as to
PAY or RECEIVE
• This new functionality is designed only for a scenario when a DX.COMMISSION record
does not have more than one multi-value set
• This best rate facility will be made available based on the class of the customers: Customers,
Brokers, Dealers, Counter Party and Exchange.
DX.PARAMETER
Field SPECIAL.RATE in DX.PARAMETER defines which class of customer will have special rates
applied, which if left blank will default the mid rates for calculations
DX.CUSTOMER
Field CUSTOMER.TYPE can accept input of “DEALER”
DX.TRADE
The rate at which conversion takes place will be populated in PRI.PREM.EXC and PRI.COMM.EXC
based on the definition in DX.PARAMETER. These fields can also be overwritten for user-defined
rates, if the primary side of the DX.TRADE involves manual commission.
Alternate Indexes
A standard T24 routine to generate the CUSIP number for options in DX has been introduced. This
routine which can be attached to a multi-value in the Derivatives alternate index fields will generate a
CUSIP for any option that has a CUSIP number assigned to an underlying securities contract.
The SECURITY.MASTER for the underlying Security must be setup with a CUSIP number in the
CUSIP.NO field, this linked to a derivatives DX.CONTRACT.MASTER record when the
UNDERLYING field has the SECURITY.MASTER record selected. The first 6 digits of that CUSIP are
then taken as the stem of the derivatives extended CUSIP number.
For example IBM has a CUSIP of 459200101 therefore the stem of any CUSIP number assigned to an
option in DX will begin 459200.
The extended CUSIP consists of a “stem” code (6 characters) plus 3 additional characters that identify
the underlying product. For options on IBM shares the suffix is changed to the pre–determined
characters for the appropriate option, making this an extended CUSIP.
The seventh digit is always 9 to indicate that it is an option. Except when it is a LEAP contract, when
the seventh digit may be an 8
The eighth character indicates the exercise month of the option and if it is a CALL/PUT option,
according to the following table.
Month Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
CALL A B C D E F G H I J K L
PUT M N O P Q R S T U V W X
The ninth character indicates the strike/exercise price of the option, according to the following tables.
Key A B C D E F G H I J
Strike Prices 5 10 15 20 25 30 35 40 45 50
105 110 115 120 125 130 135 140 145 150
205 210 215 220 225 230 235 240 245 250
305 310 315 320 325 330 335 340 345 350
… … … … … … … … … …
Key K L M N O P Q R S T
155 160 165 170 175 180 185 190 195 200
255 260 265 270 275 280 285 290 295 300
355 360 365 370 375 380 385 390 395 400
… … … … … … … … … …
Key U V W X Y Z
37 ½ 42 ½ 47 ½ 52 ½ 57 ½ 62 ½
67 ½ 72 ½ 77 ½ 82 ½ 87 ½ 92 ½
… … … … … …
Options contracts can trade as LEAPS. Long Term Equity Anticipation Securities (LEAPS) are option
contracts that expire more than 9 months in advance, and can last as long as 2 years. Normal options
tend to last no longer than nine months. Equity LEAPS usually expire in Jan, Index LEAPS expire in
Dec/Jan. Interest LEAPS expire in Dec.
If equity LEAPS are trading at the same time as a normal equity option, with the same expiry month
and strike prices, then the seventh digit of the extended CUSIP will be an ‘eight’.
When a trade has been assigned an extended CUSIP number it will keep the same extended CUSIP
number until the trade has been expired
As an aid to producing STP workflow the derivatives module provides the ability for orders and the
subsequent trades to be routed between T24 companies
Order routing
The application DX.ACC.MASTER allows you to set up inter-company routing information for a
portfolio in Derivatives. The fields RT.PORT.ID and RT.COMP.ID allow trades and orders to be
replicated to specific portfolios in different T24 companies.
This function would typically be used where one bank entity was taking customer orders, but for
regulatory reasons only a separate bank entity was allowed to trade the instrument in question with an
exchange/broker.
Deal/Transaction Processing
DX.TRADE capture
DX.TRADE is the main trade capture application for the Derivatives product. It is designed to allow
the maximum flexibility possible for trading on- and off-exchange futures and options. Trade entry in
DX.TRADE is double sided, and allows ‘bulk’ trading; many clients trading with one broker on a
single trade.
DX.TRADE is designed to handle all these cases, and so unlike SEC.TRADE, it allows the entry of
customers or brokers on either ‘side’ of a trade rather than having a ‘customer’ and a ‘broker’ side per
se. A Bank may of course choose to establish a convention that the secondary customer on the trade
will always be for example, a clearing broker.
The DX.TRADE record is rather large to allow a wide variety of trading information to be recorded. It
is recommended that users create a VERSION of the application to allow fast input where required.
DX.TRADE Record
Once the CONTRACT.CODE is entered, DX.TRADE defaults in all relevant information from the
DX.CONTRACT.MASTER record, including the exchange traded, type of contract (future, option or
stock) and contract currency.
The TRADE.DATE will default to the Bank system date, but may be backdated if required. Forward
trade dates are not allowed.
There are two basic types of maturity date entry, daily or monthly corresponding to MATURITY.TYPE
on the contract record. For a daily prompt the date would be in the format dd/mm/yy or mm/dd/yy
depending on the user setting for the date format. For a monthly period the date will be in the format
NNNYY or MM-YY, where NNN in the mnemonic for a month e.g. MAR and MM is the numeric month.
To avoid confusion if a numeric month is entered there must be a separator between the month and
the year.
The MATURITY.DATE field will accept input in any of these styles, and will preserve the exact input
date in MAT.DATE.INPUT for input checking purposes. The actual date stored in MATURITY.DATE
will always be in the format yyyymm for monthly contracts and yyyymmdd for daily maturity contracts.
The date entered will be subject to validation against the parameters set for the contract on
DX.CONTRACT.MASTER.
The EXECUTING.BROKER for a trade may be entered here if applicable and can then be used in
commission set-ups and for reporting purposes.
DX.TRADE Record
For option trades, extra input fields are enabled. The STRIKE.PRICE or exercise price must be
entered here, its format will be checked and an internal strike price calculated according to the rules in
Appendix “Price Calculation Overview”.
An error message is raised if neither or both sides are own book and the TREASURY.CUSTOMER field
is set to NO.
The broker/exchange profit produced by the different prices will be posted to an internal account. This
will be defined by the category on a new derivatives accounting event type (DX.EVENT.TYPE, BP
Broker/Exchange Profit).
This will be used in conjunction with the Account Officer defined on the trading application.
Depending on the type of customer entered (CUSTOMER.TYPE in DX.CUSTOMER), the system will
require the input of a SEC.ACC.MASTER portfolio number, or will default the first valid portfolio for
the customer if no input is given. This is not required for Broker type customers.
The customer account is defaulted using standard T24 utilities for customers and brokers, but is
displayed as an internal account taking the category from SEC.ACC.MASTER ASSET.CAT for Own
Book accounts. This is indicative, rather than the actual account/category code that will be used to
make own-book postings.
Per customer, trades may be flagged as opening or closing a position (OPEN.CLOSE), or as
speculative or hedge trades. If a trade is designated as a hedge for a customer, the user is obliged to
enter a description or reference of the hedged product or instrument in the LINK field.
The ALLOW.SETT field lets the user remove the particular trade from consideration for automatic
closeout of that customer’s position. The trade may of course still be closed out manually.
The STRATEGY field allows groups of trades to be linked for reporting or margining purposes and links
to the DX.STRATEGY application.
Strategy Linking
In order to allow the linking of complex trading strategies, new functionality has been put in place to
stamp trades with an automatically generated Strategy Link number. The field PRI/SEC.LINK on
DX.TRADE will generate a unique sequence number if left blank. If however a user-defined value is
entered, this becomes the key to a file DX.STRATEGY.LINK.
The file DX.STRATEGY.LINK holds a list of trade transactions associated with a particular
PRI/SEC.LINK. For example a group of trades marked with BUTTERFLY001 in the PRI.LINK field
would all have their transaction id’s held in a record BUTTERFLY001 in DX.STRATEGY.LINK.
Strategy Linking
This functionality can be used for multiple reasons, one of which is the initial margin calculation
Detailed information on other field inputs within DX.TRADE can be obtained from the application
helptext.
DX.TRADE Record
There are two main methods of entering trading commission for a customer.
Selecting the desired method in the PRI.AUTO.MANUAL or SEC.AUTO.MANUAL field’s controls the
commission collection method
Automatic commission
Once this option has been selected the commission fields are updated without intervention from the
user. All the defaulting of values is driven by information set-up within DX.COMMISSION.
In the example below, the commission system has matched a DX.COMMISSION record to this
transaction and applied both execution and clearing commission. Commission amounts are held in
PRI.COMM.AMT and have been calculated at $250 and $375. The ACCOUNT to post the
commissions to have been established (PRI.COMM.ACC). If the account currency is different from the
commission currency then the exchange rate used to calculate PRI.CACC.AMT will be shown in
PRI.COMM.EXC. The field PRI.COMM.TAX shows that there is no tax duty levied on this commission.
If the customer for whom commission and charges are being calculated is a broker, and another
broker is marked in EXECUTING.BROKER as the executing broker for the trade, then if any execution
fees are to be paid, the account/category for posting the execution fee only will be changed to the
executing broker’s account.
DX.TRADE Record
Because the values of the trade can ultimately affect the automatic commission calculations, the
commission fields are cleared whenever a change to a field on the trade is made. If a customer’s
details fail the selection criteria then no commission is calculated and an override message prompt is
displayed.
Manual commission
For manual input of customer commission, one of the four different commission types must be
selected. Each commission type can be input only once per customer. The fields PRI.COMM.CDE (or
SEC.COMM.CDE) allow either:
• A commission code from FT.COMMISSION.TYPE or FT.CHARGE.TYPE.
If “OVERRIDE” is entered instead of a commission code, then it is possible to enter the commission
currency, the amount and the posting account. The example below shows this method being used for
customer number, 100163, who is on the secondary side of the trade.
DX.TRADE record
DX.ORDER capture
The Order entry system will record individual orders from either internal traders or external clients; the
orders are entered either manually or by an interface from a front office system.
The derivatives module order entry allows the trader to check the validity of the order immediately, and
record the time and date when the order is given, input and executed. It checks the client‘s availability
of funds / limits, therefore enabling a trader / credit officer to determine if, as a result of the order being
executed, any limits would be breached. It will alert the user if there are constraints applying to that
particular client / portfolio.
After an order has been entered it can then be amended, deleted or executed, either manually or
automatically. Once fully or partially executed the order becomes a trade. Therefore one order may
create multiple trades.
In some cases the order may never be executed or maybe only partially filled. At the end of exchange,
all orders remaining unfilled will be checked for their validity. All orders will be reported and those that
have expired will be deleted.
Most of the fields are taken from or have been amended from DX.TRADE. Below are new fields,
which are required for DX.ORDER, but not sourced from DX.TRADE, these fields are replicated into
any trades that represent the fill of an order.
Title Mandatory/Optional Current Format Default
DX.ORDER record
Below is a display of the DX.ORDER filling entry, with only 20 lots allotted; hence the order will be
partially filled for the second primary customer.
Below is the DX.TRADE in HOLD status generated as a result of the partially filled order.
Note that the remaining lots can be filled either partially or fully later on.
In the above illustrated flow the presumption was that all filled orders would be parameterised to
create DX.TRADE(s) with their status set to IHLD, it is however possible to set these trades to be
created with their status set to INAU. This functionality can be activated via the STP.ENABLED.APP
field in DX.PARAMETER
The USER should designate the DX.ORDER application as a value in the field to activate the
straight through processing of filled DX.ORDER (s) such that the corresponding DX.TRADE (s) are
created with their status set to INAU. This activates the use of OFS, hence the TSA.SERVICE
manager TSM should be running, and corresponding OFS.MESSAGE.SERVICE and
OFS.RESPONSE.QUEUE set to AUTO
In case of any problem, the new enquiry, DX.MONITOR.STP.PROCESS, monitors the state of
DX.ORDER and DX.CLOSEOUT generated OFS transaction messages. It reports any transactions
that require operator intervention and if a timeout period is specified, it also reports on any
transactions that have not been handled within that time.
The enquiry reports the DX.TRADE ID, the error message, the date and time that the transaction was
generated, the length of time since the transaction was generated and whether it is a timeout related
issue.
The new field STP.TIMEOUT has been added to the DX.PARAMETER SYSTEM record. This
represents the number of seconds that a transaction can await processing before being deemed to
have timed out in the enquiry. This field is non-mandatory and if left empty, no timeout checking is
made in the new enquiry.
Data Take-on
Using the TRANSFER.TYPE field, the DX.TRADE application allows 3 types of data take-on,
TAKEON (for legacy trade entry), TAKEON-CONT (for legacy own-book trade entry), and RVPDVP (for
transfers of trades into a position without affecting account postings etc.).
Where TRANSFER.TYPE has been set to TAKEON-CONT, the system posts contingent entries for the
trade, so this is recommended for take-on of own book trades.
Data Take On
All other fields on the trade are entered as normal (though narrative and external reference fields may
be used to capture data about the transfer/legacy system).
The system will value all the portfolios during the revaluation process using a closing or “fair value”
price. For exchange-based contracts all the exchanges provide an official settlement price also called
EDSP (Exchange Delivery Settlement Price). For OTC options the prices are often manually input,
calculated or received from an external source. Throughout the day, when the contracts are being
traded, current (or last) prices might be received which, if stored, will allow on-line real valuations to
take place.
Additionally users may want to change prices based on what they think might occur in the market and
then revalue a portfolio based on these speculative prices.
The application is therefore required to accept and store prices in the following situations:
DX.MARKET.PRICE
The function of this application is to store the current prices for Futures/Stocks and Options within the
derivatives system. Each of these prices is related to a price set defined in DX.PRICE.SET.
Prices within the derivatives module are identified by a combination of factors e.g. their price set,
contract, the maturity date or strike price etc. of the contract.
For example:
The CLOSING price for a JUN04 LIFFE Short Sterling Future (FSS) would be identified as.
CLOSING*/19/GBP/200406//*
Where CLOSING is the price set, 19 is the contract, GBP is the contract currency and 200406 is the
maturity year and month.
Similarly the CLOSING price for a JUN04 LIFFE Short Sterling Option (FSO) would be identified as.
CLOSING*/20/GBP/200309/CALL/97.50*
Where CLOSING is the price set, 20 is the contract, GBP is the contract currency, 200406 is the
maturity year and month and 97.50 is the strike price.
Thus it can be seen that the DX.MARKET.PRICE transaction id string can be seen as a dynamic id
that is built to reflect the complexity of the underlying transaction.
Option Prices
To record the current price for an Option contract the system requires that Strike prices for that option
be updated as well as the Call Price and Put Price. There is also the opportunity for that strike price to
enter the DELTA, GAMMA and VEGA for the contract. Again there is the optional update of the
INTEREST.RATE and VOLATILITY of the contact. So a strike price of 106.00 on a March 2004
EuroBond Option (15) with a call of 3.74 would look as follows:
Option Prices
The DELTA of a contract represents the rate of change of the option price with respect to the
underlying asset.
The GAMMA of the contract represents the rate of change of the delta with respect to the underlying
asset.
The VEGA represents the rate of change of the value with respect to the volatility of the underlying
asset.
Futures/Stock Contracts
In order to change the December 02 price search through the record for a maturity of 200212, if the
maturity date does not exist then simply add a new multi-value set for the particular maturity date
(MAT.DATE).
Option Contracts
Again to record the current price for an Option contract the system requires that Strike prices for that
option be updated as well as the Call Price and Put Price. There is also the opportunity for that
STRIKE price to enter the DELTA, GAMMA and VEGA for the contract. Again there is the optional
update of the INTEREST.RATE and VOLATILITY of the contact. So the strike price of 150 on a March
2003 5 Year “T” note Option (2) with a call of 151 and a put price of 149 would be updated as follows
using DX.MARKET.PRICE
Option Contracts
The purpose of the automated price capture suite is to provide the system with a means to request
prices from one of any number of price sources without user intervention. This means that where a
price source such as Black and Scholes Garman Kohlhagen FX option prices can be update
automatically at the end of exchange.
DX.CONTRACT.MASTER Set-up
For contracts that the user wishes to have priced by a particular price source you will need to set this
up on the DX.CONTRACT.MASTER records.
DX.PRICE.SOURCE
When a price source is set-up, the follow fields will need to be set-up.
A PROGRAM, which generates the price or requests the price data from a price feed. This will required
to be set-up in DX.OBJECT.LIBRARY and the PGM.FILE.
UPDATE.AVAIL should also be defined. If for example an external price feed is deactivated, this
switch will stop the derivatives system from requesting information from it and will require a manual
update to take place in the DX.MARKET.PRICE file.
DX.PRICE.SET
The picture above shows an example of a DX.PRICE.SET that will only allow prices to be requested
from a DX.PRICE.SOURCE if they have not been updated in the last 30 minutes. It is possible to
leave these fields blank, which will ensure that for the price set, prices will always be requested.
End of Exchange
Prices are updated during the end of exchange processing using the routine DX.CHECK.PRICES.
This process should be run, as an EOE pre process to ensure that all prices are as up-to-date as the
system requires.
Online
Prices can be updated online using a verify application DX.RV.CHECK.PRICES. This basic
application checks the current position across the derivatives system and will request a price for every
open position that requires one. The normal validation rules apply.
Once the application has opened a PRICE.SET should be selected. This has three options ONLINE,
END OF EXCHANGE or OTHER. These are not linked to the DX.PRICE.SET application, these
relate to the price sets set-up in the DX.PARAMETER SYSTEM record which define which price set
should be used online and which end of exchange. If the user wishes to define which price set they
want to use, they should select OTHER then enter an ALT.PRICE.SET which links to the
DX.PRICE.SET application.
Once the request has been completed, the system will report the status of the update. If all prices
have been updated then the system will report “All Prices are available”, if not it will warn that “Errors
have been encountered whilst checking prices” and then list all of the prices/strike prices that have not
been updated.
To commit these updated prices to the database the record must be committed.
In order to have this contract level control, two new fields, AVERAGE.PRICE and AVERAGE.DPS,
have been added to the application DX.CONTRACT.MASTER. These new fields will be used for
average price calculation and the updating of fields AVG.PRICE, AVG.IPRICE in the file
DX.REP.POSITION.
NONE:
OPENING:
Average of buy prices of OPENING trades weighted by the number of lots traded.
Further, positional updates to SC.POS.ASSET can now be parameterised in by setting the field
SC.ASSET.UPD in DX.PARAMETER to BUY.SELL.POS this will then allow the illustration of the
long and short positions separately.
Besides, the module creates DX.TRADE(s) on multiple filling of DX.ORDER, at the average price of
different levels at which the order has been filled. By keeping the CREATE.TRADE flag on the
DX.ORDER set to “NO” until the final fill then set it to yes, and it should create 1 deal with the price
set as the average of all the fills for the order
Field CREATE.TRADE in DX.ORDER defaults its value from DX.PARAMETER, which however
should be set to YES for authorisation of DX.ORDER record
Every input to unauthorised DX.ORDER record on execution will create a new multi-value set of the
abovementioned new fields, which will be averaged to create the resultant DX.TRADE, on
authorisation of DX.ORDER.
Within the derivatives module there are two methods of closing out trades:
• The first involves matching opposing buy and sell positions within the same contract to
effectively close the open positions and realise any profit or loss due.
• The second form of closeout occurs when a position is held until maturity. This also
results in a position being closed and subsequent cash or physical delivery-taking place,
this is also known as a "cash" or "maturity" settlement. In this case the open trades are in
effect settled against a pseudo trade. For futures, this trade would be performed at the
EDSP (Exchange Delivery Settlement Price). For options, no pseudo trades are created.
For trades where premium was not paid at Trade Date, the trades/transactions are closed
out against each other on the same way as a manual closeout. Where the premium has
already been paid, these are cash settled against the Original Premium Price.
Closeouts can be performed manually, automatically or by the system. In the case of manual
closeouts, the user selects a customer and a unique contract. For futures, this would involve the
specification of a contract code and a delivery period. For options this would involve the selection of a
contract code, a delivery period, a strike price and the option type (call or put). Additionally, other fields
may be entered to further restrict the selection of trades. All the open trades matching these criteria
will then be displayed. The user may then select which trades and how many lots from each trade are
to be settled. As long as the total numbers of buy lots is the same as the total numbers of sell lots, the
close out may be confirmed.
DX.CO.MANUAL
Two DX.CO.MANUAL enquiries exist; one for options and the other used for stocks and futures.
DX.CO.MANUAL.OPTION.BRWS and DX.CO.MANUAL.FUTURE.BRWS are in essence the
same apart from validation and field layout differences. In order to process a new manual closeout,
run the relevant enquiry, for example ENQ DX.CO.MANUAL.FUTURE.BRWS.
The user selects a customer and a unique contract. For futures this would involve the specification of
a contract code and a delivery period. For options this would involve the selection of a contract code, a
delivery period, a strike price and the option type (call or put). Additionally other fields maybe entered
to further restrict the selection of trades. All the open trades matching this criterion will then be
displayed. Once the user is satisfied that the trades selected are those from which they want to
process the closeout, he selects which trades and how many lots from each trade are to be settled.
As long as the total numbers of buy lots is the same as the total numbers of sell lots, the record maybe
committed. The user will then be presented with the screen below which will illustrate the total
profit/loss on the trades being “closed out” and presenting them with the option to create an authorised
or unauthorised DX.CLOSEOUT record.
Should the user select to create an unauthorised DX.CLOSEOUT record they will subsequently
need to authorise the record to generate realised profit and loss entries. However, an authorized
record will automatically generate these entries.
Once the settlement is confirmed the closeout engine will report back the current closeout id, profit
and loss of this closeout, and any commission charged as part of this closeout.
The closeout key reported is a key to the master closeout record held in DX.CLOSEOUT. The lots
chosen to be closed and be processed and the DX.TRANSACTION TRA.PND.SETT and
TRA.PND.LOTS fields will hold the closeout key and the number of lots pending to closeout. On the
trade the PRI.PND.SETT/SEC.PND.SETT and PRI.PND.LOTS /SEC.PND.LOTS will also be
updated to show how many lots are pending to be settled.
It is worth noting that you cannot directly input into the DX.CLOSEOUT application using function I,
you can only Authorise, Delete, or Reverse a Closeout. After authorising the closeout the number of
open lots on the DX.TRADE and DX.TRANSACTION records will be decremented and the
closeout details moved to DX.TRANSACTION TRASETTNOS and DX.TRADE PRI.SETTNOS
/SET.SETTNOS fields.
Any Commissions, Profit or loss for the closeout will be posted at authorisation.
Automatic Closeout
The automatic closeout by the System depends on whether the Closeout is allowed for the contract or
the customer or the trade or the exchange.
DX.EXCHANGE.MASTER
Field SETT.ALLOWED may be set to YES to allow settlement or closeout on this exchange, or NO to
disable or Blank defaulting to YES.
DX.CUSTOMER
Field AU.CT.CLASS may be set to FUTURES, OPTIONS, BOTH OR NONE.
Field AU.SETT.TYPE may be set to FIFO (first in first out), LIFO (last in first out) or FIFO.DAY (today
trades take precedence).
Field AU.SETT.DELAY may be set to the no of days after trade when settlement/closeout can occur.
DX.CONTRACT.MASTER
Field SETT.ALLOWED may be set to YES to allow settlement or closeout, NO not to allow or Blank to
default to the Exchange Master setting.
DX.TRADE
Field XXX.ALLOW.SETT may be set to YES to allow settlement or closeout, NO to prohibit auto or
system settlement for this trade out. Note this may be overridden by Manual closeout, and also note
that for a Hedge trade it is always NO.
Automatic closeouts are initiated through the selection criteria from DX.CO.AUTO.INPUT.
The closeout is part of the End of Exchange or End of Day process. Note that if done through an End
of Exchange process, only trades for that exchange are considered for settlement. The system will
select all the customers who have automatic settlement enabled for either Futures or Options
positions. For each unique contract (position) that also has auto settlement enabled, the system will try
to match any trades following the rules specified for auto closeout.
DX.CO.MATURITY
Two DX.CO.MATURITY enquiries exist, one for options and the other used for stocks and futures.
ENQ DX.CO.MATURITY.OPTION.BRWS and ENQ DX.CO.MATURITY.FUTURE.BRWS like
the DX.CO.MANUAL enquiries are in essence the same apart from validation and field layout
differences. In order to process a new maturity/cash settlement closeout, run the relevant enquiry - for
example ENQ DX.CO.MATURITY.FUTURE.BRWS
The user selects a customer; unique contract and maturity date, and for options, a strike price and
option type (Call/Put). Additionally other fields may be entered to further restrict the selection of trades.
All the open trades matching these criteria will then be displayed.
The closeout application is essentially the same as the one used for manual closeouts, however the
number of buy and sell lots need not match, and a maturity price field is present. The user may then
select which of the trades and how many lots from each trade are to be settled before committing the
record.
Once a maturity price has been entered, the settlement may be confirmed as either to produce an
Authorised or Unauthorised Closeout record.
Once the settlement is authorised the closeout engine will report back the current closeout id, profit
and loss of this closeout, and any commission charged as part of this closeout.
Cash / Maturity settlements are not closed out against other “live” trades within the system, but are
closed out against notional pseudo trades created by the closeout engine; these transactions and
trades will not appear on the live files. These pseudo trades are only created for futures and stock’s
but not for options.
In the example you wish to close out a transaction of a Sell of 25 Lots of Dec00 (CME) GBP Currency
Futures @ 1.4245
The original transaction is then Cash Settled against a Buy 25 Lots of Dec00 (CME) GBP Currency
Futures on 13/12/00 @ 1.4400. This transaction is automatically created as a pseudo transaction; it
does not physically exist as a position within T24.
The Short Position of 25 Lots is then Cash Settled against a Long Position of 25 Lots.
The Profit and Loss is calculated as the sum of the Sell values minus the sum of the Buy values:
The processing/authorising of Pending Lots and Settled Lots is the same as the Manual Closeouts
discussed earlier in the DX.CO.MANUAL section.
It is important to note that for options contracts there will be no maturity price field available in the
closeout application. Unlike manual closeouts, the number of lots closed out for buys and sells does
not have to be equal.
The profit and loss figure for this closeout is in fact the amount of option premium for this contract
remaining outstanding to be paid at settlement.
The screenshot above shows the number of lots pending and the closeout for which they are pending;
it also shows what the Charge Date was at Trade time, which means that for this transaction, there is
no profit and loss to post.
The processing/authorising of Pending Lots and Settled Lots is the same as the Manual Closeouts
discussed earlier in the DX.CO.MANUAL section.
DX.CLOSEOUT
The DX.CLOSEOUT application is the central application for the processing of closeouts within the
T24 derivatives module. Once a closeout has been passed to the closeout engine from one of the
closeout enquiries, a DX.CLOSEOUT record is created; this record holds all of the details of the
closeout.
Users cannot directly input closeouts into the DX.CLOSEOUT application; this must be done from an
external source. Once a closeout has been created in the DX.CLOSEOUT application, it can be
authorised, deleted or reversed in the same way as any normal T24 application function. Because of
the nature of closeouts you cannot rerun a history record closeout; a new closeout must be run.
From the closeout application you have access to information regarding that specific closeout. A
closeout marked as RUNNING in the STATUS field identifies that the closeout has been created and
processing is still running. An ACTIVE is a closeout that has occurred, i.e. the trades have been
matched and the closeout is now waiting for authorisation. STATUS DELETED closeouts have been
reversed.
The closeout type identifies what style of closeout this closeout is. SETTLMENT closeouts are basic
manual closeouts performed by the system. MATURITY closeouts are cash maturity settlements.
Exercise, Expiry and Assignment are Option Actions, which are to be handled by the closeout suite.
The creation of the DX.CLOSEOUT record identifies how the closeout was created/requested. Using
ENQ DX.CO.MANUAL.BRWS & ENQ DX.CO.MATURITY.BRWS is considered a MANUAL
CREATION. AUTO (Automatic) will be run, by a user, when they wish the system to automatically
close out a position, available in later phases of implementation. The SYSTEM closeouts are
closeouts generated by the system under a specific set of circumstances
The ACCOUNT identified on the record is the account where the profit and loss/option premium will be
posted for this closeout.
Option exercise, expiry, and assignment can either be a manual process, where the user selects the
trades and lots to be processed, or an automatic process where the system does the selection.
Regardless of the method used to select the transactions, the underlying processing will be identical. If
the options are being exercised or assigned, the appropriate underlying transaction will also be
created (note - automatic assignment is not supported as T24 cannot intuitively understand how many
lots have been assigned – this can only be done manually).
Once the functionality has been activated for a contract, any DX.TRADE(s) that remain ACTIVE past
the defined contracts DEC.DATE will be exercised / expired in the next COB.
Example 1
3. No manual actions are performed against the DX.TRADE during its life and the DEC.DATE for
the contract is reached
4. Assume the DX.MARKET.PRICE for the UNDERLYING Futures contract is defined as 96.00
(meaning the trade is in-the-money by the defined tolerance)
5. During the next COB the system will automatically exercise the option and create a
DX.TRADE for the underlying FUTURES contract.
Example 2
3. No manual actions are performed against the DX.TRADE during its life and the DEC.DATE
for the contract is reached
4. Assume the DX.MARKET.PRICE for the UNDERLYING Futures contract is defined as 95.50
(meaning the trade is NOT in-the-money by the defined tolerance)
5. No processing will occur in the next COB and the DX.TRADE will remain ACTIVE.
If the underlying product is a futures contract, the appropriate derivatives trade will be automatically
created by the system. If the underlying is a stock, a system call to the SECURITIES module will be
made to create the underlying stock transaction. If the option exercises to CASH, a system call to the
FOREX module is made to create a Spot FX transaction.
Manual Processing
This involves the selection of a Portfolio or Customer Id, a Contract Code, a Maturity Date, an Option
type (Call or Put) and a Strike Price. As this is a standard T24 enquiry, other fields may be added to
restrict the trades’ selection. All the open trades matching the selection criteria will be displayed for the
user to select, which trades and how many lots from each are to be processed.
Note that this process may take place at any time of the day with the restriction that only one session
is in progress.
DX.CO.MANUAL.EXPIRE.BRWS
Using the above enquiry, the user can manually choose which options to expire.
From the screen displayed, the user can select the transactions and the number of lots to be expired,
and then commit the selection.
On authorisation will remove these options from the open position and make any necessary postings.
Note these postings include premiums for contracts with posting at settlement time.
DX.CO.MANUAL.EXERCISE.BRWS
Using the above enquiry, the user can manually choose which options to exercise.
The user can select the transactions and the number of lots to be expired before committing the
selection.
The Closeout process, on authorisation, will remove these options from the open position and make
any necessary postings. Note these postings include premiums for contracts with posting at settlement
time. Furthermore, depending on the nature of the underlying product, a corresponding transaction in
HOLD status, in its related module will be generated.
If a DX.CLOSEOUT record resulting from an exercise option with an underlying future is reversed,
the child record for the underlying future in IHLD is deleted, or if it has already been authorised it is set
as RNAU. Refer to the ENQUIRY DX.MONITOR.STP.PROCESS if there is any problem.
DX.CO.MANUAL.ASSIGN.BRWS
Using the enquiry below, the user can manually choose which options to assign.
DX.CO.MANUAL.ASSIGN.BRWS Enquiry
According to the selection criteria, the trades are displayed, and the number of lots assigned before
commitment.
The Closeout process, on authorisation will remove these options from the open position and make
any necessary postings. Note these postings include premiums for contracts with posting at settlement
time. Furthermore, depending on the nature of the underlying product, a corresponding transaction in
HOLD status, in its related module will be generated.
Automatic Processing
Automatic Closeouts may be performed on line. The process enables the system to automatically
select all the trades for the specified contract, which are due to expire or exercise. The input programs
DX.CO.EXPIRE.AUTO or DX.CO.EXERCISE.AUTO are used to select eligible trades by:
PORTFOLIO, CUSTOMER, CONTRACT, MATURITY.DATE, STRIKE and CALL.PUT and then initiate the
processing. Processing is similar to the equivalent manual application, except that the user may wish
to automatically authorise the closeout. Authorisation of DX.CLOSEOUT is needed for the
processing to continue if Unauthorised was selected.
DX.CO.EXPIRE.AUTO
DX.CO.EXERCISE.AUTO
Automatic Assignment
This differs from Exercise and Expiry in that, as well as specifying the unique contract the user has to
indicate the total number of lots to be allocated.
The system, using the assignment method stated on the contract master record, assigns the lots to
the selected trades. The trades and lot details are then passed to the assignment process in the same
way as the manual process.
DX.CO.ASSIGN.AUTO
Automatic Assignment
System Processing
This method is identical to the automatic Option Exercise and Expiry process except it initiates the end
of exchange process rather by the user.
The system selects which options need processing by checking the last trade or declaration dates in
the open trades, i.e. DEC.DATE = “TODAY”. It also checks that the client or trade has not been set up
to hold options open for a certain number of days. Then based on the strike price, the underlying price
and the price differences defined in the DX.CONTRACT.MASTER, the system determines if each
option trade should be exercised, expired or “left alone”.
Note that System assignment of Options is not supported, as it cannot automatically determine
accurately the number of lots that the bank has been assigned.
Whenever a primary customer’s position is closed out the corresponding opposite position, of the
secondary customer, is also closed out automatically, which does not require any separate
authorisation by the user.
Whenever an automatic secondary closeout cannot be performed for various reasons, there is a
warning message to that effect.
However, a secondary closeout will not result in a back-to-back closeout for the corresponding primary
customer.
For this purpose, the field B2B.ACTIVE in DX.PARAMETER is used, while field B2B.CO.OK in
DX.CONTRACT.MASTER, is used to activate the back to back closeout process.
Trade Transfer
Derivatives module allows the transfer of trades between portfolios and customers, both internally and
externally. These transfers can be performed with or without account postings or any confirmations
being generated, which can be parameterised on a transfer-by-transfer basis.
For this purpose, there are appropriate fields in the applications DX.TRADE, DX.TRANSACTION
and DX.CLOSEOUT. Further, on authorization of the DX.CO.XFER.MANUAL or
DX.CO.EXT.XFER.MANUAL records, DX.CLOSEOUT record is created to reflect the trade
transfers.
In this connection, new DX.EVENT.TYPE records will need to be setup;
• CN – Internal Transfer (Transferor Side)
• II – Internal Transfer (Transferee Side)
• CO – External Transfer (Outgoing)
• CT – External Transfer (Incoming)
Internal Transfers
To run an Internal transfer use application DX.CO.XFER.MANUAL
DX.CO.XFER.MANUAL
It is possible to transfer deals from one customer to another or from one customer’s portfolio to
another.
A new DX.TRADE “TRANSFER” deal will be automatically generated between the transferor and the
transferee for the number of lots defined in the DX.CO.XFER.MANUAL record at the price defined
in PRICE.TRADED.
On committing the transfer a new DX.CLOSEOUT record will also be generated which when
committed removes the position on the Transferors side. To action the transfer the DX.CLOSEOUT
record generated must be authorised by another user.
External Transfers
In order to perform an external transfer of a transaction use DX.CO.EXT.XFER.MANUAL
DX.CO.EXT.XFER.MANUAL Record
The method followed is the same as for and internal transfer, including the creation of a new
DX.CLOSEOUT record which must be authorised. On authorising the DX.CLOSEOUT record the
system will remove the internal position for the transferor and generate an delivery message setup in
DX.EVENT.TYPE CO and generate a message/payment.
The derivatives entitlement application DX.ENTITLEMENT acts in much the same way as the
Securities ENTITLEMENT application. DX.ENTITLEMENT shows Customer/portfolio entitlements
per DX.DIARY event. Each maturity and strike is shown with the new strike, contract size and
number of lots. Records are created via DX.DIARY. They will be created as unauthorised. The
authorisation of these records is controlled by DX.ENT.ACTION.
Once the EX.DATE has arrived or passed then DX ENTITLEMENT records can be authorised.
DX Entitlement Authorisation
For certain stock markets, when processing corporate actions affecting the strike price of an option
(e.g. dividends) the resulting strike price can be rounded a specific way to suite the exchange.
After the normal calculation of the strike price, a routine to round up or down or no rounding will be
called if required.
There can also be a need when the contract size changes as a result of the Corporate Action, that a
new contract for the new option series needs to be created to trade in the future, as the contract size
is likely to be different for the original option series.
The keeping of the original series and creating a new one will eliminate the problem of not being able
to do closeout because of the two different contract sizes.
If this option is chosen a new DX.CONTRACT.MASTER record based on the old one but with the
new contract code will be generated.
DX.CONTRACT.MASTER
Fields used for this process are ROUNDING, RND.FACTOR, LINK.CONT.ID and
LAST.VALID.DATE.
DX.DIARY
When processing Corporate Actions in the Derivatives Module, the user creates one record in
DX.DIARY per Corporate Action, in which the parameters defining the Corporate Action are set. This
includes ratios describing changes in Contract Size, Strike Price and Number of Lots.
The option to create a new contract is also chosen here.
On authorisation of the DX.DIARY record, if a new contract is to be created it is written at this stage,
calculating the new contract size (if the ratio for Contract Size has been set). At the same time, the
DX.ENTITLEMENTS records are set up.
Finally, the corporate action is run using the process DX.ENT.ACTION, in which the DX.DIARY
key(s) for the corporate action(s) to be run are given.
DX.ENTITLEMENT
On Authorisation of these records created from the DX.DIARY the individual DX.TRADE’s and their
underlying DX.TRANSACTION records are picked up from the DX.ENTITLEMENTS records and
are then amended with respect to changes in contract size, strike price and number of lots.
Fields ROUNDING and RND.FACTOR display the values that were used and specified in the
DX.DIARY.
• Kick In or Knock In
A latent option contract that begins to function as a normal option ("knocks in") only once a certain
price level is reached before expiration.
• Knock Out
An option with a built in mechanism to expire worthless should a specified price level be exceeded.
• No Touch
An option which gives an investor an agreed upon payout if the price of the underlying
asset does not reach or surpass a predetermined price level
• Double No Touch
A type of exotic option that gives an investor an agreed upon payout if the price of the underlying
asset does not reach or surpass one of two predetermined barrier levels. An investor using this type
of option pays a premium to his/her broker and in turn receives the right to choose the position of the
barriers, the time to expiration, and the payout to be received if the price fails to breach either barrier.
With this type of option, the maximum possible loss is just the cost of setting up the option.
• One Touch
A type of exotic option that gives an investor a payout once the price of the underlying asset
reaches or surpasses a predetermined barrier. This type of option allows the investor to set the
position of the barrier, the time to expiration and the payout to be received once the barrier is
broken. Only two outcomes are possible with this type of option: 1) the barrier is breached and the
trader collects the full payout agreed upon at the outset of the contract, or 2) the barrier is not
breached and the trader loses the full premium paid to the broker
• European Digital
Can be exercised only at maturity date. Pays out fixed amount of asset or cash if the
option is in the money at maturity date (regardless of how deep in the money the option is),
otherwise worthless.
There are 3 tables associated with the processing of Exotic Options - DX.EVENT.TYPE,
DX.OPTION.TYPE and DX.USR.FLD.OPT.
There must be a minimum default DX.EVENT.TYPE record with the key XO with a
DX.OPTION.TYPE record defining the exotic event.
DX.EVENT.TYPE table can also contain specific exotic event, where the key starts with ‘XO-‘ which
is created by prefixing XO- to the ID of the corresponding DX.OPTION.TYPE record. This allows the
specification of differing P&L categories, transactions etc for each exotic event.
Finally, the DX.USR.FLD.OPT table allows the definition of re-usable user defined fields for the
DX.OPTION.TYPE record. For example, an upper limit are used in many types of exotic options . A
DX.USR.FLD.OPT record could specify the text, validation and field name for storing this upper
limit, and DX.OPTION.TYPE records set up for each type of exotic option would only need to
reference this record. The User-defined fields would then appear on the DX.TRADE or DX.ORDER
record.
The DX.OPTION.TYPE record includes the field CO.PGM, which can specify an API or user-
defined routine to be launched when the EXOTIC.EVENT flag on the DX.TRADE is triggered. This
routine can be fed any data it requires from the user-defined fields mentioned.
Additionally, if the flag USR.FLD.PRICE is set, the user-defined field(s) against which the flag is set,
form part of the positional and pricing record keys for options of this type in T24.
Following Black Box routines have been introduced for downstream processing of Exotic Options. This
routine requires to be attached to the field CO.PGM of DX.OPTION.TYPE.
DX.XO.CREATE.FX
To create the underlying FX deal; no user fields required.
DX.XO.CREATE.SEC
To create the underlying SEC.TRADE; no user fields required.
DX.XO.FWDCASHPAYOUT
To post accounting entry for settlement on closeout, value maturity date of option adjusted for number
of offset days; Amount & Currency user fields required.
DX.XO.INSTANT.CASHPAYOUT
To post accounting entry for settlement on closeout, value closeout date adjusted for number of offset
days; Amount & Currency user fields required.
DX.XO.CREATE.FX.KNOCKOUT
To create underlying FX deal in case of knockout options; no user fields required
DX.XO.CREATE.SEC.KNOCKOUT
To create underlying SEC.TRADE in case of knockout options; no user fields required
DX.XO.CREATE.FX.REBATE
To post accounting entry for the rebate amount in case of Knock out options with rebate;
Amount & Currency user fields required.
DX.XO.KNOCKOUT
Create underlying of whichever type unless the exotic event flag is set when the Knock out level is
reached, then the option is expired.
DX.XO.KNOCKIN
Create underlying of whichever type if the exotic event flag is set when the Knock in Level is reached.
DX.USR.FLD.OPT
DX.USR.FLD.OPT examples
DX.OPTION.TYPE
DX.OPTION.TYPE examples
DX.EVENT.TYPE
Examples of DX.EVENT.TYPE
DX.CONTRACT.MASTER
The contract master for the Credit Default Swap needs to be set up with the option type
CRED.DEFAULT associated to it, before we can trade on this exotic option.
DX.TRADE
Once the set up mentioned has been done, we are now ready to trade on this exotic option contract .
DX.CONTRACT.MASTER
DX.OPTION.TYPE
DX.TRADE
A Trade is input against the exotic option contract, specifying the ccy and amount to be paid on
closeout when the knock out level is reached.
When the knock level is reached, the transaction is exercised manually as below to generate a
closeout which upon authorisation produce a rebate.
Statement entries
Example Version to fill knock in orders - note exotic event flag automatically set
Reports
DX.TRANSACTION
DX.TRANSACTION is the main transaction reporting and logging file for Derivatives. Transactions
are stored using the key of the parent trade or other entity, a portfolio/customer number to identify the
‘side’ of the parent transaction it is associated with, and a version number to keep track of changes to
the transaction. Old versions are retained.
The main principle of the suite is that all transactions in the Derivatives module are recorded in
DX.TRANSACTION. When recording trades, most of the customer dependant data in the trade
record is reproduced in DX.TRANSACTION for reporting purposes.
DX.TRANSACTION record
As a general example, the initial entry and validation of a derivative trade involving three customers
and one broker would produce entries in DX.TRANSACTION as follows:
If the trade were deleted before authorisation, all the DX.TRANSACTION records raised would also
be deleted.
The transactions remain unaltered on authorisation of the trade. If the trade were then amended,
on validation of the amendment a new set of transactions would be created as follows:
Note that new transactions are created for all participants in a trade with consistent sequence
numbers, even if the ‘side’ of the trade associated with a particular customer/portfolio has not changed.
The ‘old’ set of transactions on the trade would have REVERSAL.DATE set to the current bank date
and would remain in the file.
If the amendment were to add a further portfolio to the customer side of the trade, a new transaction
would be created as follows:
i.e. a portfolio added to a trade generates a new transaction with the same version number as the rest
of the trade’s transactions.
If an authorised trade is amended, but the unauthorised amendment is itself deleted, only the new
transactions that have been raised for the unauthorised amendment should be removed from the
transaction files. The set of transactions ‘belonging’ to the authorised (unchanged) version of the trade
should be reinstated – that is REVERSAL.DATE and REVERSAL.TIME should be set to null.
In the case of the reversal of an authorised trade (or settlement, etc.), updating of the transaction file
and the associated routines occurs only at authorisation of the reversal. When this happens, the
current set of DX.TRANSACTION records associated with the parent trade have their
REVERSAL.DATE fields updated with the current bank date and REVERSAL.TIME fields set to the
current time, but are NOT removed from the DX.TRANSACTION file.
If a reversed record is restored from history (goes into status HNAU in unauthorised file on verification
of history restore), the latest set of transactions belonging to the transaction should have
REVERSAL.DATE and REVERSAL.TIME set to null.
DX.REP.POSITION
DX.REP.POSITION Record
DX.REP.POSITION is updated online when trades are verified, deleted or reversed. It is keyed in
by: customer or portfolio number, contract number, currency, maturity date, option type (if applicable)
and price in internal format. It holds details of the summary trading position for the
customer/contract/date including net lots open and separate buy and sell lot figures. Futures and
options occupy separate sets of fields within the position record, to allow further analysis of the option
position by option type (call or put) and strike (exercise) price.
DX.REP.POSITION is a useful starting point for many enquiries, since it holds lists of the
DX.TRANSACTION records that make up the future or option positions in the fields
FUTURE.TRANS.ID and OPT.TRANS.ID. These can be used in drilldown fields to allow access to the
underlying transactions and hence the original trade record if required.
The average price of the position is also calculated and held on the DX.REP.POSITION record,
using the calculation specified in DX.PARAMETER AVE.PRICE.METHOD (see help text for details).
DX.ITEM.STATUS
This is file is designed to record activity against derivative transactions and shows both the current
and all previous status’s of the transaction. The ID for each record on this file corresponds to the
underlying DX.TRADE that is being recorded i.e. DXTRA060101234.
Each activity that reports to DX.ITEM.STATUS creates a new multi valued data set on the record.
The activity corresponds to a defined DX.ITEM.STATUS.TYPE where enrichments can be added to
describe the status
DX.ITEM.STATUS.TYPE(s)
With each new status update (e.g. NEW, AUT, AMD), the application also records the DATE, TIME,
USER and APPLICATION (DX.TRADE, DX.ORDER or DX.CLOSEOUT) associated to the
activity. The CURR.STATUS is shown in the first multi valued set with previous activities shown in
chronological order thereafter by STATUS.
The above is a NEW trade entered and kept in INAU status and the same can be viewed using
DX.ITEM.STATUS.
When the trade is in INAU the
Curr Status: This field denotes the last status of the application e.g. NEW, AMD, AUT, REV, AUR
Curr Date: Denotes the date when the trade is punched
Curr Time: Denotes the time of the trade
Curr User: The user who input the trade
Curr application: Denotes which application has been used.
DX.ITEM.STATUS Record for a trade after a number of changes to the underlying transaction
DX.COMMISSION.DIAGS
This is a live file, which holds a full diagnostic breakdown of how the trading commission figures
charged are paid to customers or brokers. The code to DX.COMMISSION.DIAGS is a combination
of the key to DX.TRADE suffixed with the customer number. The respective commission records are
updated every time a trade is input or amended by DX.TRADE. No history of individual changes is
maintained so once a change to commission is saved on the trade, the new diagnostics will overwrite
the previous details for that customer.
The live file holds commission irrespective of whether the commission was input manually into the
trade or generated automatically by matching criteria on DX.COMMISSION. In the latter case, the
field COMMISSION.CODE is filled with the key from DX.COMMISSION.
To make reporting easier the commission is displayed by each of the different commission types.
COMMISSION COMM…
EXECUTION EXFE…
CLEARING CLFE…
REGULATORY RGFE
MISC MISC…
• Commission currency.
• Exchange rate (if commission currency is different from the account currency).
This example shows the commission charges relating to customer number 110018 for trade
DXTRA0324100001 Field names beginning with “EXFE…” indicate that these charges were
categorised as commission type EXECUTION. The commission was automatically generated for this
customer with charges taken from a customer group DX.COMMISSION record, --DEALERS-.
The following customer, 100163, from the same trade, has 3 different types of commission charges
entered: EXECUTION, CLEARING and REGULATORY. These were input manually into the trade.
DX.REVALUE.SUMMARY
Part of the functionality of the derivatives module is to re-calculate the value of clients or portfolios
after the exchanges have closed. This can either be done as part of the overnight batch utility or as an
on-line process. This file details the total margin amounts for a client, portfolio or group. This is
dependent on what event has triggered the revaluation:
• For a standard ad-hoc revaluation this key can be the revaluation followed by a
Customer/Portfolio or Group depending on the revaluation level RE.VALUE.LEVEL set
in DX.REVALUE.
• For an end of exchange the key is structured using a customer id.
Therefore Customer 110018’s margins for all contracts are detailed above.
It details figures held in the currencies in which they were calculated and in the BASE.CURRENCY for
that customer held in DX.CUSTOMER REPORTING.CCY. It also holds the exchange rates used to
convert these amounts.
Detailed in the record is also a link down to the next level of reporting. EXCHANGE.KEYS holds all the
keys of the records DX.REVALUE.EXCHANGE records that combined to make this
DX.REVALUE.SUMMARY record.
DX.REVALUE.EXCHANGE
Part of the functionality of the derivatives module is to re-calculate the value of clients or portfolios
after the exchanges have closed. This can either be done as part of the overnight batch utility or as an
on-line process. This file details the total margin amounts for a client, portfolio or group in a currency
on an exchange. This key is dependent on which event has triggered the revaluation:
• For a standard ad-hoc revaluation, this key can be the revaluation followed by a
Customer/Portfolio or Group depending on the revaluation level RE.VALUE.LEVEL set
in DX.REVALUE. For example, DXRVL003644*4*GBP*50030-1,
DXRVL003644*4*GBP*AA.BB or DXRVL003644*4*GBP*50030
• For an end of exchange, the key is structured using a customer id. E.g.
DXEOE003644*4*GBP*50030
Therefore Customer 110018 Margins on Exchange 2 (CME) for his USD contracts is detailed above.
• A link to the revaluation detail files, the keys of and the application names relating to
those keys.
• The total margin figures for this currency and exchange.
• The combined commodities used and there constituent DX.CONTRACT.MASTER
contracts.
• The margin totals on a contract-by-contract basis, and a list of the transactions of that
contract.
DX.REVAL.DET
The lowest level files within the revaluation derivatives module’s revaluation suite are the revaluation
detail files. For each record on the DX.MARGIN.CALC application, an application DX.REVAL.DET
should exist. These files detail the data and calculations used to create the totals in the
DX.EXCHANGE.MASTER file. For a SPAN DX.MARGIN.CALC record there must be a live file
application called DX.REVAL.DET.SPAN existing in the system. Without this, revaluation cannot
complete.
There are currently two standard margin routines provided with the derivatives module: STAND.VM
and STAND.IM; their detail filenames are DX.REVAL.DET.STAND.VM and
DX.REVAL.DET.STAND.IM.
DX.REVAL.DET.STAND.VM
This detail file holds the data required to calculate the standard variation margin on a transaction in the
derivatives system. The constituent transactions are grouped in batches by exchange, by strategy, by
contract, and by customer/group/portfolio.
DX.REVAL.DET.STAND.VM Record
This information is held on a contract-by-contract basis, with a total variation margin and unrealised
option profit and loss. The figure for each transaction is shown along with its transaction reference and
a pointer to the version of transaction copied to the DX.REVAL.TRANSACTION file as a historical
record. For each transaction the record details the number of lots and the traded price and the current
market price for that contract.
DX.REVAL.DET.CHREG.VM
A Variation Margin (revalue P&L) calculation ‘black box’ CHREG.VM has been released. This behaves
in a similar way to the original STAND.VM calculation, except that P&L is now calculated on options
where the premium has already been paid, rather than the ‘Unrealized Option Value’ calculated by
STAND.VM.
CHREG.VM is available for selection in the VAR.MARGIN.CALC field of DX.CONTRACT.MASTER.
DX.REVAL.DET.STAND.IM
This detail file holds the data required to calculate the standard initial margin on a group of
transactions in the derivatives system; these transactions are grouped by exchange, by strategy, by
contract, and by customer/group/portfolio.
The information held is predominately held on a contract by contract basis, apart from the total initial
and maintenance margins, and whether this exchange NETT’s its transaction against each other or is
a GROSS(ing) exchange. The contract based information details the Initial Margin, Maintenance
Margin. For each contract, the Rates found by the derivatives module to apply to this position, the type
of rate, and data extracted from the DX.MARGIN.RATES record, such as the FULL.RATE,
SPREAD.RATE, STRADDLE.RATE, are stored. The number of lots to be charged at a specific rate is
also detailed. For example 25 Lots at 3000 per lot, gives an initial margin figure of 75000.
The details will be grouped within the revaluation or the end of exchange run, in their respective
strategies for the customer.
The calculation’s used by these black box routines are defined by the exchanges that use them, for
example the AEX exchange uses the EURONEXT method as do a number of other exchanges
throughout the world.
As with the previous methods the DX.REVAL.DET (NNN) application files provide the user with
details of which values are used in the calculation of the margin, therefore if there are any
discrepancies the user can do a manual check back to ensure the validity of the figures.
The revaluation module has been developed to allow the valuation, accounting and reporting of
futures/stock and options held in the T24 derivatives system. The revaluation process maybe called
for three different reasons:
In all three cases the revaluation calculations performed are the same. The differences are the
products to be valued, the prices they should be valued against, and the resultant accounting
treatment of the figures produced. Therefore along with the core revaluation process additional
modules will be written around it, which will be called as required.
The core revaluation process consists of two major functions: initial margin and variation margin
allocation. Additional processes include retrieval/calculation or prices, retrieval of trades, posting of
accounting entries and reporting of results. These additional processes can be added into close of
business (DX.COB.WORKFILE) as required.
A full technical overview of the revaluation process and the information required to create a new
margining algorithm is:
Full reporting functions, based on the exchanges own reports if applicable, will be included in all initial
margin calculations. This will allow the user to easily check all the margin figures including SPAN,
spreads and hedges.
Calculations performed by the system will follow one of the following methods;
• Standard IM
Naked (FULL) positions are margined Rate Per lot from DX.MARGIN.RATES
Spread (SPREAD) positions are margined Rate Per lot from DX.MARGIN.RATES
Straddle (STRADDLE) positions are margined Rate Per lot from DX.MARGIN.RATES
Spot (SPOT) positions are margined Rate Per lot from DX.MARGIN.RATES
(Where percentage is selected the system calculates the average price for the positions being
margined then takes a percentage of the total value based on the parameters in
DX.MARGIN.CALC)
• Enhanced IM
As above except it does not include bought positions in the Naked calculation.
• NO IM
IM = 0
In the case of options the separate figures will be produced depending when the premium for each
contract is paid. If the premium is paid at settlement time then Option variation margin is calculated
using the market price or a fair value price. If the premium on the contract has already been paid then
the figure is classed as unrealised option profit/loss. This unrealised profit/loss will be reported
separately and can often be used in the initial margin calculations, e.g. SPAN to reduce the initial
margin requirements. Therefore the variation/unrealised option value calculations must be performed
before the initial margin calculations.
Calculations performed by the system will follow one of the following methods;
• Standard VM
For transactions with premium paid (Options)
VM = No Lots * Market Price
Otherwise
VM = (Market Price – Transaction Price) * No. Lots
• Ch Reg
VM = (Market Price – Transaction Price) * No. Lots
• NO VM
VM = 0
DX.REVALUE
Part of the functionality of the T24 derivatives module is to re-calculate the value of clients or portfolios
after the exchanges have closed. This can either be done as part of the overnight batch utility or as an
on-line process. This application allows the user to initiate an ad-hoc “what if” revaluation.
The DX.REVALUE application allows the entry of the selection criteria defining the trades/positions
to be revalued. Once the entries have been input and authorised, the revaluation process passes
control to the “Grey Box” processes.
DX Revaluation
The selection criteria is broken down into four sections, “who”, “by who”, “which trades”, and
parameters.
To set-up a revaluation, hit F3 to get the next available record id, and then define which
customers/trades wish to be revalued. Revaluation records cannot be re-used.
In order to start a revaluation process, the record must be input. The processing will begin when the
record is authorised.
End of exchange forms part of the core functionality within the module, when a derivatives exchange
closes, there is no reason why the derivatives module cannot run its close of business routines that
relate directly to that exchange. Therefore the derivatives module includes an End of Exchange utility.
This application provides the definition and trigger for processes directly relating to the closing of an
exchange
.
The End of Exchange application is part of the revaluation suite and therefore uses the “black-box”
design detailed in The Revaluation Black Box Technology section. This will allow flexible local and
client-driven development of new routines without core development involvement.
The end of exchange application provides tags for processes to be run, before (pre) and after (post)
the End of Exchange revaluation. These routines will initially be defaulted from the DX.PARAMETER
SYSTEM record, but new/ad-hoc routines can be added prior to any end of exchange run.
DX.COB.WORKFILE
This is the controlling mechanism for the Close of Business routines. This application will provide an
access point for starting online valuations as well as a work file for the Close of Business to process
the end of day valuations.
This End of Exchange processing will be multi-threaded to a lower level than before with the
Customer/Exchange being the valuation level.
Most of the processing work will be passed to an online revaluation engine, designed to process both
online and during the Close of Business.
This means that both the Close of Business and Online Valuations will be Multi-Threaded, by using
the TSA services developed for T24.
Close of Business
For example, a System with two exchanges and three customers would result in six discrete threads
being processed, one for each Customer/Exchange combination.
The possibility of one customer’s valuation failing and requiring a re-run of an entire exchange is
removed, as only part of the customers position would have to be re-visited online.
This increase in the number of threads is most noticeable on systems with large numbers of
customers, thus has the effect of shortening the time taken for any close of business processing.
Revaluation
An On-line revaluation for one or more such combinations has to be requested while the COB
revaluation is done automatically during the close old business processing. In order for the revaluation
to process, the tSA service manager must be running.
An exchange is no longer blocked whilst the valuation processes online, instead its processing is only
blocked if one of the customers on a transaction is doing something that may impact the valuation for
them on the exchange being processed.
Similarly, if a user chooses to enter a trade, close a position, or run a corporate action whilst the Close
of Business is running the system will report that Service is not running, and/or the following
”An ‘&’ valuation is being run by ‘&’ for customer ‘&’ on exchange ‘&’,
please try again later”.
COB revaluation
This process does not require any request. Note if a new price change has occurred after an on-line
revaluation, any Customer/Exchange affected needs to be manually requested again.
The COB will check the status of the DX.COB.WORKFILE see diagram below, to decide which
combination to revalue. In day-to-day processing the status should only ever be “Completed” or
“Running". Any Combination of Customer/Exchange with the following status will be revalued in the
close of business – New, Ready, Re-Run, and Completed with next run date less or equal today.
Again the Dialog section of the work-file will contain any messages, errors or warnings generated
during the process.
FAILED
COMPLETED
The item is currently being processed,
no actions can take place for the
customer on the exchange being
processed.
As part of the end of exchange processing a revaluation takes place across all positions held on a
particular exchange. The details of the revaluation are kept in the same files as the on-line ad-hoc
revaluation, but are identified by their record id.
Records prefixed with DXEOE… are revaluation records that relate specifically to an end of exchange
run. For example, DXEOE010024*… is an end of exchange run (DXEOE) on the second day of 2001
(01002), for exchange 4 (4).
Interfaces
Limits
The inclusion of Derivatives within the T24 LIMIT module adds an extra element of risk control for
clients trading in derivatives instruments.
The application of Limits within the Derivatives operation applies to all products handled by the module.
The LIMIT module provides a control mechanism for the DX.TRADE module and when called at the
time of input will check the availability of an authorized credit line for the customers involved with the
trade. The LIMIT system is designed to monitor, in real-time, the availability and utilization of
customer limits. Back end reports are available to allow the monitoring of limits for commodities,
countries, country group and currencies. The word limit describes a facility or credit Line available to a
customer or group of customers, while the term LIMIT.REFERENCE describes a type of LIMIT,
e.g. Futures and Options Limit.
As well as allowing for different products, Limits also allows fine-tuning of products into sub-products.
Therefore limits can be set up for different classes of contracts, e.g. Bonds, Shares, Currencies or
Commodities.
The Limit Reference conditions for DX.TRADE are defined using LIMIT.PARAMETER, for
example Currency Futures can be set a different limit reference to Currency Options. Whenever a
trade takes place for a relevant derivative product and portfolio then a limit check will take place, which
will generate an override if a limit has been exceeded.
• Contingent
Calculates a value based on the amount specified in CONTINGENT.VALUE on
DX.CONTRACT.MASTER
Number of lots x contingent value
• Value
Calculates a value based on the following principles:
Future: Number of lots x internal price.
Option Buyer: Number of lots x internal price.
Option Seller: Number of lots x internal strike price.
DX.TRADE links a limit reference to each customer on both ‘primary’ and ‘secondary’ sides of the
trade - PRI.LIMIT.REF and SEC.LIMIT.REF respectively.
Before any derivatives trades can be entered, all the proposed types of limit (global, product and sub-
product) must first be defined in LIMIT.REFERENCE. The following two screens show a basic limit
structure for Bond Futures linked under a more general product definition of Futures. For fuller
analysis of limit structures, please see chapter on LIMIT(s).
Sub-product LIMIT.REFERENCE
Product LIMIT.REFERENCE
The choice of which limit reference is selected for a customer is controlled from the criteria established
in LIMIT.PARAMETER. The Task below shows how different limits can be set for Currency Futures,
Bond Futures and Currency Futures by testing values from TRADE.TYPE and CONTRACT.CLASS
fields in DX.TRADE.
Using one set of tests for both primary and secondary side customers can lead to problems where
differences between sides need to be taken into account. This would typically apply when applying
tests on any fields identified with PRI. or SEC. from DX.TRADE. The solution here is to create
another set of criteria in LIMIT.PARAMETER with APPLICATION defined as “DX.TRADE-SEC”.
The application suffix “-SEC” will relate tests solely to customers on the secondary side of the trade. In
the Task below, the field PRI.HEDGE.TRADE equal to “HEDGE” will default the limit reference to 4554
for a customer on the primary side of DX.TRADE. The field SEC.HEDGE.TRADE not equal to blank
will default limit reference to 4555 for a customer on the secondary side of DX.TRADE.
Once the LIMIT has been established for a particular customer, the system is then able to use this
information to ensure that the limit is not exceeded. If the transaction will cause excess, the user must
decide whether the excess is to be allowed. Likewise if a credit line has not already been set up, an
override is raised to allow a system generated limit to be created.
The following is a basic example to show updating of a LIMIT input for customer 50027, Hewlett
Packard, linked to LIMIT.REFERENCE 4552 for Bond Futures up to USD 3 Million:
Therefore amount to update limits = internal price x No. Of lots = USD 1,627,500.00.
Trade 1 is amended to 4 lots. When the original version of the trade is removed from the position, the
first limit updates are backed out and replaced with the revised amount.
Trade 1 is matured: limit utilisation is restored by the relevant amount for that trade,
i.e. USD 1,302,500.00.
Trade 2 is partially closed out against an opposing buy trade, where 2 out of the original 5 lots are
closed.
Limit utilisation is restored on a “pro-rata” basis of actual lots closed
i.e. 2 / 5 * 1643750.00 = USD 657,500.00.
If more than one LIMIT of the same type exists the Derivatives module will default to the first LIMIT
(i.e. the LIMIT with serial number 01), unless the user specifically indicates otherwise by input of a
LIMIT.REFERENCE number in the field LIMIT.REFERENCE.NO provided for this purpose on the
Trade record.
Occasionally the required LIMIT does not exist or is already fully utilized. If it does not exist the user
must make a decision as to whether or not to generate a default LIMIT.
At the maturity of a Derivatives transaction the module will provide notification of the event to the
LIMIT System, which will then reset the utilization figures.
The derivative module maintains the input and storage of historical prices, thus enables the valuation
of historical positions by Asset Management module. The historical values so calculated for the given
positions are updated in the Asset Management history files for its downstream processing.
For this purpose, existing live file DX.MARKET.PRICE.HISTORY allows direct input of historical
prices. However, records in DX.MARKET.PRICE.HISTORY file can be changed or created only if
the price set is defined in the DX.PARAMETER and date stamp is within the period defined in
DX.PARAMETER to store historical prices
The event type BV is used for the back valuation of derivatives positions. Whenever, a back valuation
happens, new DX.TRANSACTION record gets created with id ‘DXBV…’
Customer Positions
The standard CUSTOMER.POSITION has been amended to now include derivatives transactions
where the Derivatives module is installed. There are three types of entry into the
CUSTOMER.POSITION file - DX, DXVM and DXIM, these being the transaction values, the
variation margin values for the transaction and the initial margin value for the customer, respectively.
Plain DX items report the contingent value of a transaction, the maturity date, the value date, and
category along with many other data.
The DXVM items report the Variation Margin figure generated by the end of exchange revaluation
process, along with other data.
The DXIM items report the Initial margin figures for that client, there will only be one of these items per
client as Initial Margin cannot be broken down into transaction by transaction based figure as it relies
on a group of trades.
It is important to remember that the DXVM items will only be available after an end of exchange
revaluation has taken place and the DXIM figures will not take into account any transaction not
included in the last end of exchange revaluation.
The replacement cost of the derivative is the actual market value of the contract whereas add-on is a
certain percentage of the nominal or underlying contract amount. For Derivative trades, this
percentage depends on the sub asset type and remaining time to maturity of the contract. However in
case of interest rate derivatives alone, original life of the underlying applies.
Fields on SC.POS.ASSET record reflect the credit exposure amounts calculated for regulatory
reporting and credit monitoring separately.
So, whenever SC.POS.ASSET record is built/rebuilt, new black box routine
‘DX.BB.CREDIT.EXPOSURE’ is called and credit exposure amounts are updated in SC.POS.ASSET
record of the respective portfolio
Processing Overview
DX.PARAMETER
Field CR.EXP.CALC.API denotes the new API ‘Black box’ routine DX.BB.CREDIT.EXPOSURE
created for calculating credit exposure.
DX.CONTRACT.MASTER
In order to identify an interest rate derivative field INT.RATE.CONTRACT is used, if it is set to “YES”
input to field LIFE.UNDERLYING is mandatory
REVAL.ADDON.PERCEN
Add on percentage applicable for regulatory and credit reporting needs to be defined in a
REVAL.ADDON table record, based on the sub asset type
Margin requirements for written (sold) option trades can be reduced if the counter party, selling the
option, is in possession of the underlying asset
This is achieved using OFS to drive the main Securities position blocking utility
(SC.BLOCK.SEC.POS).
In order to block a securities position on short covered call position HEDGE.TRADE on DX.TRADE
must be set to COVERED.
If the requirement cannot be met the deal will be marked as UNCOVERED in HEDGE.TRADE and the
user informed.
Outward Delivery
The Derivatives module in T24 uses ‘Soft Delivery’ which enables the user to define the output of the
delivery messages (in S.W.I.F.T. or printed output) by calling a core routine (EB.HANDOFF) to initiate
and pass information to the Delivery system.
Delivery messages are generated whenever a derivatives DX.EVENT.TYPE event is processed, i.e.
DX.TRADE is entered, amended or reversed. Delivery messages are also generated when a
DX.CLOSEOUT is performed. The content of all delivery messages will be based on the
DX.TRANSACTION file.
Messages can be produced for any action including corporate actions/option exercise/ assignments
etc… Any new event added to the module will therefore be automatically available as having a
possible link into the deliveries module.
Until the DX.EVENT.TYPE field EB.ACTIVITY field is populated with a delivery activity to perform,
the system will not generate any delivery messages. Once a selection of a DX.EVENT.TYPE has
been populated within EB.ACTIVITY then processing can take place for those events.
EB.ACTIVITY Record
The DX.TRADE and DX.ORDER applications include delivery instructions fields used for FX
options. These fields take the form of the field held on the T24 FOREX application and are associated
with each possible side of the trade. These fields include beneficiary information; counter party
information, inter-bank information, using the same basic defaulting as the FOREX application. This
information is used as part of the derivatives originated Swift Messages.
Note that it allows the customization of which messages are sent and when they are sent locally. Any
messages not currently provided can be added locally by setting up an activity on a particular event
(DX.EVENT.TYPE); whenever this event is raised a message will be passed to the T24 delivery
suite.
EB.ACTIVITY
For each event to send a Delivery message, an EB.ACTIVITY record must exist. Each record
determines the various lifecycles that may exist.
For basic a basic set the following EB.ACTIVITY records should be created.
Activity ID Description DX Event
DX-4000 Trade Confirmation CI
DX-4010 Trade Amendment CA
DX-4020 Trade Reversal CR
DX-4040 Closeout confirmation CS
Once these have been created they should be assigned to the relevant DX.EVENT.TYPE records in
field EB.ACTIVITY.
Every time that the event is processed in the central DX transaction processing a message will be
produced in the delivery module.
DE.MESSAGE
This application holds the contents of each basic message type. It lists the available fields, whether
the fields can be multi-valued and states whether the fields are mandatory or optional. Some basic
example DE.MESSAGE records have been released as follows:
DE.MAPPING
This application defines where the data for outward messages and message headers are located
within the raw message passed to Delivery from the banking applications.
All the fields from DX.TRANSACTION and fields common to both customers in DX.TRADE are
mapped in records 4000.DX.1 to 4040.DX.1. These example records have been released as follows:
Additionally to fully support all the mandatory SWIFT messages required for Futures & Options
processing it is possible to structure and configure other messages by capturing the data record
passed to DE.MAPPING.
The data records that can be captured (as described in the illustration above as “EXTRA.FIELDS”) are
all pre-formatted for use within a SWIFT message and are as follows:
* Field 1 - Final Settlement Date
* Field 2 - Premium Date
* Field 3 - Buy Currency
* Field 4 - Buy Amount
* Field 5 - Sell Currency
* Field 6 - Sell Amount
* Field 7 - Related Reference
* Field 8 - Code
* Field 9 - Option Style
* Field 10 - Earliest Exercise Date
* Field 11 - Option Time
* Field 12 - Location
* Field 13 - Premium Pay/Receive
* Field 14 - Settlement Type
* Field 15 - Beneficiary Customer No.
* Field 16 - Beneficiary Address
* Field 17 - Counterparty No
* Field 18 - Counterparty Address
* Field 19 - Counterparty Account
* Field 20 – Intermediary No.
* Field 21 – Intermediary Address.
* Field 22 - Confirmation Narrative
* Field 23 - Payment Narrative
* Field 24 - Record Advice Narrative
* Field 25 - Bank To Bank Info
* Field 26 - Delivery Currency
* Field 27 - Delivery Amount
* Field 28 - Trade Amount
* Field 29 - Common Reference
* Field 30 - Swift Customer
* Field 31 - Lots Transfer
* Field 32 - Destination Customer
* Field 33 - Destination Portfolio
* Field 34 - Destination Customer or Portfolio
* Field 35 - Bank Name
* Field 36 – Bank Address
* Field 37 – Bank Sort Code
* Field 38 - Advice
* Field 39 - Fee
* Field 40 - Customer Counterparty
EB.ADVICES
The EB.ADVICES application holds the MESSAGE.TYPE, MESSAGE.CLASS and MAPPING.KEY. By
defining the records on this file, the user may control the type and format of the eventual output.
Users are also able to use their own mapping records instead of the standard records supplied with
T24.
DE.FORMAT.PRINT
This application uses information from DE.MESSAGE and DE.MAPPING to format messages that
are to be sent.
DE.FORMAT.PRINT Record
Accounting Process
T24 Derivatives accounting is event-based. All significant events that may occur in the life of a
contract are assigned an event code. Accounting details are associated with these event codes,
allowing the Derivatives account entry routines to make the appropriate postings to the appropriate
accounts, categories or CRF types at the appropriate times.
As part of tax requirement, there are tax related fields in DX.ORDER, DX.TRADE and DX
CLOSEOUT applications. The tax fields accept manual input or usage of API (in case of DX
CLOSEOUT), core will raise appropriate accounting entries for the tax amount depending on the
nature of the trade.
Taxes in Derivatives
It is possible to capture tax for derivative trades, there are four associated multi-value fields in
DX.ORDER and DX.TRADE application i.e. TAX.CODE, TAX.TYPE, TAX.AMT.ACY and
TAX.AMT.LCY.
The tax details are also registered in DX.TRANSACTION file for reporting purposes.
The field TAX.AMT.TCY is a no-input field that shows the equivalent amount in trade currency.
In case of customers:-
Four set of entries are generated. Customer account is debited with the tax amount and an internal
account is credited, with the help of wash though entries.
For a dealer-book:-
As a part of set-up a DX.EVENT.TYPE (TT) is required with a PL category code linked
A CATEG.ENTRY is raised to debit the PL category defined in DX.EVENT.TYPE (TT) for tax
payable and a corresponding entry is raised to credit the internal account. This process also raises
two wash through entries.
STMT.ENTRY
CATEG.ENTRY
The same set of fields provided in DX.ORDER application to capture tax at the time of order-
execution. The DX.TRADE record generated through order filling will carry those details.
It is also possible to compute taxes at the time of closeout with the help of an API to populate tax
details in DX.CLOSEOUT application.
Accounting Events
Contingent Asset/Liability
Own Book portfolios only. On contract initiation (DX.EVENT.TYPE CI) a CRF posting is made
representing an off-balance sheet asset/liability active during the contract’s life.
On reversal or complete close-out/maturity of the trade the postings are backed out. For partial
closeouts, a pro-rata amount based on the ratio of lots closed to total lots on the trade is backed out.
For Own Book portfolios, commissions and charge postings are handled differently. The flag
USE.FT.TXN.CODE on DX.EVENT.TYPE is crucial, since this decides whether the P&L should be
posted using the category and transaction codes set on the commission posting event type, or
whether the category and transaction codes assigned by the T24 standard charge routine
CALCULATE.CHARGE should be used.
It is also possible to introduce the concept of a treasury rate whereby the rate applied to the customer
side of the transaction may vary to that incurred by the bank. This is achieved by setting the treasury
customer flag to “NO” and applying the differing rates to the primary and secondary sides of the
transaction. Appropriate accounting entries are then passed by the application to reflect the resultant
profit/loss due to the bank.
As part of tax requirement, there are tax related fields in DX.ORDER, DX.TRADE and DX
CLOSEOUT applications. The tax fields accept manual input or usage of API (in case of DX
CLOSEOUT), core will raise appropriate accounting entries for the tax amount depending on the
nature of the trade.
Revaluation P&L
For all external customers, revaluation P&L (variation margin) will be posted to the account input for
that customer on DX.TRADE.
For Own Book portfolios unrealised P&L calculated by the Derivatives revaluation process will be
posted using the P&L category and transaction codes specified on the appropriate DX.EVENT.TYPE
record.
Posting of revaluation P&L for Own Book portfolios is controlled by the MARGIN.DIFFERENCE
parameter in DX.PARAMETER. If this field is set to YES then when a new margin figure has been
calculated, the difference between the previous margin amount and the new amount will be posted. If
this field is set to NO then the previous margin amount will be reversed and the new margin amount
will be posted.
Initial Margin
Initial margin is posted in a similar fashion to revaluation P&L – to the customer/broker account for
external customers, and to an internal account specified by the category code in DX.EVENT.TYPE
for Own Book portfolios.
Closeouts
Closeouts are posted for Own Book portfolios using the category and transaction codes specified
in DX.EVENT.TYPE. For customer or broker closeouts, a choice of account for posting must be
confirmed at closeout time.
Forex Derivatives
CONT.ULYIN (DX.CONTRACT.MASTER
G.VAL Description DELIVERY.METHOD = ‘CASH’) Other Derivatives
NO Existing style CR or DB CRF asset type CR or DB CRF asset type
Only for futures and Amount – cost of position or contingent Amount – cost of position or
options with premium value contingent value
un-posted
Currency – contract currency Currency – contract
currency
YES New style CR CRF asset type CR and DB CRF asset type
All trades Amount – underlying receivable ccy Amount – cost of position
amount
Currency – contract
Currency – receivable currency currency
To allow more detailed analysis of the off-balance sheet postings, product categories may now be
assigned to sub-classes of Derivatives instrument using the DX.CONTRACT.CLASS application.
Product categories can be defined for bought or sold futures, or bought or sold call/put options. They
may be further subdivided into payable and receivable.
For most purposes a value of “YES” in the CONT.ULYING.VAL is expected as this takes the price into
consideration.
Where P&L is calculated and is to be posted, the new field VM.POST.STYLE allows the bank to select
how they wish the posting to be made for the bank’s own book.
The effect of setting the TRANSFER.TYPE flag to one of the above values is as follows:
Postings to accounts that would normally be made at trade time will NOT occur. These include:
• Option premiums (if premium post time set to ‘TRADE’)
• Commissions and fees (if charge post time set to ‘TRADE’)
• Contingent entries for own-book portfolios (unless TRANSFER.TYPE is set to TAKEON-
CONT).
•
• Contingent entries for own-book portfolios
• No update to LIMIT will be performed.
• No DELIVERY messages will be produced.
Apart from these changes, the trade will behave as a normal derivatives trade, i.e. will be subject to
revaluation during DX.COB.WORKFILE processing, and any postings that are due when the trade
is closed out or matured will also be made.
Appendix
Derivatives Events Types
A full list of the current DX.EVENT.TYPE records required for system processing has been included.
You may require all or some of these depending on which products you are trading/processing.
ID Event Requires Generated By.
Description CATEG.CODE
BV Back Valuation NO Back Valuation
BP Broker Profit YES Trade
FL Clearing fee/csn posting YES Trade
PC Closed position YES Trade
FC Commission posting YES Trade
CA Contract Amendment YES Trade
CR Contract Amendment (Reversal) YES Trade
AS Contract Assignment NO Closeout
AR Contract Assignment (Rev) NO Closeout
CC Contract Cancellation YES Trade
EX Contract Exercise NO Closeout
ER Contract Exercise (Rev) NO Closeout
XP Contract Expiry NO Closeout
XR Contract Expiry (Rev) NO Closeout
CI Contract Inception YES Trade
CM Contract Maturity YES Trade
CS Contract Settlement YES Closeout
CP Corporate Action NO Corporate Actions
CX Corporate Action (Rev) NO Corporate Actions
FE Execution fee/csn posting YES Trade
CO External Transfer NO Tr/Pos Transfer
CT Incoming Transfer NO Tr/Pos Transfer
IM Initial Margin YES Re Valuation
II Internal Incoming Transfer NO Tr/Pos Transfer
CN Internal Transfer NO Tr/Pos Transfer
FM Misc fee posting YES Trade
PO Open position YES Trade
OM Option Variation Margin YES Re Valuation
OX Order Abandon YES Order
Various factors are used in the calculation of prices and premiums to ensure, given the quoted prices
of a contract; the correct cash value is generated. These factors are usually published by exchanges
on a contract-by-contract basis. In the T24 system they are stored in the application
DX.CONTRACT.MASTER.
Price/Premium Terminology
Tick Size
This is the amount that the exchange has defined as being 1 tick. A tick used to be the minimum
movement in the price of a contract. This is no longer the case as half tick (and other) contracts have
been modified or introduced.
Tick Value
This is the resultant change in the value of a contract by a movement of 1 tick in the price.
Minimum Movement
This is a field added to T24 to allow for the validation of prices when a contract’s minimum movement
is no longer a tick. For example, some contracts are quoted having half tick prices. In this case the tick
size maybe 0.01 and the minimum movement would be 0.005.
Price Scale
This is the divisor of the digits after the “decimal” point. For currencies and most futures and options
contracts this is 100, i.e. decimal. Certain contracts trade in other units such as 32nd’s i.e. A price of
118.20 means 118 and 20/32 units. As a decimal this would be 118.625. To help distinguish the
difference, the decimal point normally referred to as “spot”, i.e. “One hundred and eighteen spot six
two five”.
Multiplication Factor
Also known as an “adjustment” factor. This accounts for that fact that many prices are quoted
differently to the actual value. For example a price maybe be quoted as £5.24 or 524 pence. This
factor converts the quoted price to the real value.
Contract Size
This is the amount of the underlying product that is being purchased. For futures this could be, for
example, 40,000lbs of frozen pork bellies, or 500,000 dollars. For most exchange traded options the
contract size is one futures contract.
Definitions
In the calculation section of this document the following abbreviations are used:
CV Contract Value. This is the total amount that will be payable for a futures contract.
However as futures contracts are marked-to-market. As the price varies daily some of the
contract amount will be paid or received throughout the life of the contract. These
payments are known as variation margin.
LOTS The number of contracts bought or sold in a transaction. For calculation purposes this is
signed, with buys being positive and sells being negative.
MF Multiplication Factor
OV Option Value. Also known as unrealised option profit/loss. This is the “contract value” of
an option when the premium has been paid at trade time.
PA Premium Amount. This is the actual cash amount paid or received for buying or selling an
option.
PR The premium rate quoted for an option. This is the traded price of an option and is
normally just called the premium.
QP Quoted price. This is used internally as the price as which to calculate the internal price.
See next section.
TP Trade Price. This is the price agreed with the counter party when a transaction was
performed.
TS Tick Size
TV Tick Value
VM Variation Margin. The profit or loss on the contract due to the change in the value price.
This is calculated (normally daily) for futures and options where the premium is not paid at
trade time.
VP Value Price. This is the price at which a position should be valued. For exchange traded
contracts this would normally be the market price. For other contracts this could be
calculated by a recognised formula such as the Black and Scholes theoretical option value
model.
Calculations
The basic calculations required by the system are:
CV = TP / TS * MF * TV * LOTS
OV = VP / TS * MF * TV * LOTS
PA = PR/TS * MF * TV * LOTS
As most of the calculations are similar for every transaction and price, T24 holds a figure called the
“Internal Price”. This is:
IP = QP / TS * MF * TV.
This greatly simplifies and speeds up the calculations of the other figures. QP (the Quoted Price) may
be the TP, the VP or the PR.
Examples
LIFFE Long Gilt Futures Contract
Decimal Places 2
Price Scale 32
Price Scale 64
The Derivatives module provides as much flexibility as is practical in the main contract set-up
application DX.CONTRACT.MASTER when it comes to setting up pricing information. However this is
limited to the case where the tick size and/or value for a contract is constant within a price band. The
module provides an API hook for routines that will use exchange- or client-sourced algorithms to
calculate internal prices in the Derivatives module for ‘non-standard’ contracts. Typically these would
be contracts where the tick size and/or value vary continuously with the external price according to the
algorithm used.
SFE’s interest rate contracts, are traded on the basis of yield, with the futures price quoted as 100
minus the yield to maturity is expressed in percent per annum. This means that the tick value on
these products does not remain constant but rather changes with movements in the underlying
interest rate. The tick value decreases as interest rates rise and increases as interest rates fall.
Unlike its best known equivalent in the United States, the Eurodollar time deposit, the value of a
physical 90-Day Bank Bill is calculated according to a yield to maturity formula that discounts the face
value to establish the appropriate interest cost over the 90 days.
The formula for the present value (P) of a bank bill is:
The face value represents the bill's future value, i.e. its value at the end of its 90-day term. Please note
the Australian convention is to use a 365 rather than a 360-day year. In order to calculate the present
value (P) of a 90-Day Bank Bill, which has a face value of $100,000 and is trading at a yield to
maturity of 5.50%, the following calculations are performed:
This same formula can be applied to value Bank Bills with varying maturities (i.e., 30, 60, 90, 180
days) and face values (i.e. $100,000, $500,000, $1,000,000). These values would simply be inserted
into the formula where appropriate.
This can be achieved by having different records with different parameters calling the same basic
algorithm in the new ‘internal price calc’ application.
For SFE 90-Day Bank Bill Futures, where the contract value is always $1,000,000, and the term to
maturity is exactly 90 days, the bank bill formula can be rewritten as:
Therefore if a Bank Bill futures contract were trading at 95.00 (i.e. a yield of 5%), the value of the
contract would be:
This value is in fact the Derivatives module internal price for the contract.
The dollar value of a 0.01% change (the tick size) in yield does not remain constant but rather varies
in accordance with changes in the underlying interest rate.
Accordingly, to establish what the dollar value of a futures tick will be at a given price, the following
calculations are made:
1. Use the contract valuation formula (as described above) to calculate the underlying value of the
contract at the nominated futures price.
2. Apply the same formula to that same futures price minus 0.01 (i.e., increase the yield by 0.01%).
3. The difference between the two contract values represents the dollar value of the tick at the
nominated futures price.
To determine the dollar value of a 0.01% change in yield of a Bank Bill futures contract, which is
trading at a price of 95.00 (i.e. a yield of 5.00%), the following calculations are performed:
1. Futures contract value at 95.00 (5.00%) = $987,821.38. (Rounded to two decimal places)
2. Futures contract value at 94.99 (5.01%) = $987,797.32. (Rounded to two decimal places)
3. Difference (value of 0.01% of premium)= $24.06
For TEMENOS T24™ purposes, the tick size will be returned as 0.01 and the tick value as whatever
the above calculation yields.
Premiums for options on 90-Day Bank Bill futures are quoted in terms of annual percentage yield (e.g.
0.60% pa or 1.05% pa) with the value of a single point of premium (i.e. 0.01% pa) calculated by
comparing its contact value at the exercise price (expressed as 100 minus annual yield) and its value
at that same exercise price less one point (0.01%).
For example, a 90-Day Bank Bill option with an exercise price of 95.00 and a premium of 0.065% pa
would be valued as follows:
1. Futures contract value at 95.00 (5.00%)= $987,821.38 (rounded to two decimal places)
2. Futures contract value at 94.99 (5.01%)= $987,797.32 (rounded to two decimal places)
3. Difference (value of 0.01% of premium)= $24.06
Since we have 6.5 points of premium, the final premium in dollars is calculated as: $24.06 x 6.5 =
$156.39
The premium and strike price will both be passed into the subroutine, allowing the above calculation to
be made.
The convention adopted with Commonwealth Treasury Bonds is that interest is paid on the fifteenth
day of the appropriate month with the last interest payment made at maturity.
Using the Reserve Bank pricing formula, the calculations that would be performed to value a
Commonwealth Treasury Bond with a maturity of 15 October 2007, a coupon rate of 10.00%, a market
yield of 5.70% and a settlement day of 7 April 1998 would be:
i = 0.02850000
v = 0.97228974
f = (2/4/98 + T3 business (7/04/98) to 15/4/98) = 8
d = 182
g=5
n = 20
f/d = 0.04395604
c=5
Using the above inputs, the bond would have a value of A$136.04095670 per $100 face value
(inclusive of accrued interest). This figure consists of a capital price of $131.26073690 and accrued
interest of $4.78021978.
For SFE Treasury Bond futures, the pricing formula can be simplified because there is always an
exact number of half years to maturity and hence there is no requirement to calculate accrued interest.
The formula for the value (P) of a 10-Year Bond futures contract on SFE is written as:
When these inputs are included in the formula, the contract value for the above contract will be
A$119,972.78.
Note that the mathematical convention is that multiplication and division take precedence over,
addition and subtraction. In the futures formula, this means that the division by 1 is performed before
the addition of 100v20.
To exactly match the contract value as calculated by Sydney Futures Exchange Clearing-house
(SFECH), steps C, D and G must be rounded to exactly eight decimal places, with 0.5 being rounded
up. No other steps are rounded except K, which is rounded to 2 decimal places. The Clearing-house
makes the calculation in the following manner:
The value calculated is used as the internal price in the TEMENOS T24™ Derivatives module.
The methodology used to calculate tick values for the 10-Year Treasury Bond Futures is identical to
that outlined in the previous example for 90-Day Bank Bill Futures.
For example, to determine the dollar value of a 0.01% change in yield on a 10-Year Bond contract
trading at a price of 94.360 (i.e. A yield of 5.64%), the following calculations are performed.
1. Futures contract value at 94.360 (5.64%) = $102,723.06023 (rounded to eight decimal places)
2. Futures contract value at 94.350 (5.65%) = $102,646.18658 (rounded to eight decimal places)
3. Difference (value of 0.01% of premium) = $78.87365 or $78.87 rounded to two decimal places.
Like Bank Bill options, 10-Year bond options are quoted in terms of annual percentage yield (E.g.
0.410% or 0.525%), with the value of a single point of premium (i.e. 0.01%) calculated as the
difference between the contract value at the exercise price (expressed as 100 minus the annual yield)
and its value at that exercise price less one point (0.01%).
Please note that when making these calculations, contract values are not rounded to the nearest cent
before calculating this difference. Accordingly, the dollar value of an option on a 10-Year Treasury
bond option with an exercise price of 94.000 and a premium of 0.140% would be calculated as follows:
DX.CONTRACT.MASTER allows the Bank to set up maturity validation rules for trading using
specifications distributed by exchanges. This appendix contains some ‘real-world’ examples of how
this is done.
Number
AVAIL.MONTHS
1 MONTHS.FORWARD 60
MATURITY.MONTHS MARCH
JUNE
SEPTEMBER
DECEMBER
MATURITY.DAYS
Six consecutive months, plus two quarterly months on a March, June, September, December rotation
MV Field Contents
Number
AVAIL.MONTHS 8
1 MONTHS.FORWARD 6
MATURITY.MONTHS ALL
MATURITY.DAYS
2 MONTHS.FORWARD OPEN
MATURITY.MONTHS MARCH
JUNE
SEPTEMBER
DECEMBER
MATURITY.DAYS
Number
AVAIL.MONTHS 10
1 MONTHS.FORWARD OPEN
MATURITY.MONTHS MARCH
MAY
JULY
SEPTEMBER
DECEMBER
MATURITY.DAYS
MV Field Contents
Number
AVAIL.MONTHS
1 MONTHS.FORWARD 6
MATURITY.MONTHS ALL
MATURITY.DAYS MO
2 MONTHS.FORWARD 60
MATURITY.MONTHS JANUARY
APRIL
JULY
OCTOBER
MATURITY.DAYS +1MO
• Last trading date is the second business day preceding the third Wednesday in the maturity month.
(DX.CONTRACT.MASTER LAST.TRADE = “FCD,+3WE,-2BD”).
• Delivery date is the third Wednesday in the maturity month. If not a business day, step forward
until a business day is found. (DX.CONTRACT.MASTER DELIVERY.DATE = “FCD,+3WE,MF”).
June 2000 is a valid maturity month for the contract, but the last trading day in June 2000 (using the
formula given) is the 19th. Take reference date to be 01/07/00.
Using reference date (01/07/00) calculate which month/year combinations are available for trading.
The system then loops through valid trading months applying key date formulas. If a formula for a
particular key date is not defined, the system assumes “LBD” (last business day of the month in
question).
For the sake of this example, we will assume that the third Wednesday in December 2000
(20/12/2000) is a non-business day.
Using the formulas set in DX.CONTRACT.MASTER, the Last Trading Date for the contract maturing
in September 2000 is 18th September. The First Delivery Date is 20th September.
Examples of widely used pricing models would be ‘Black and Scholes’, ‘Black76’, ‘Cox, Ross and
Rubenstein’, Binomial and Garman Kohlhagen.
Values for option contract ‘Greeks’ generated by the models would be automatically uploaded into the
relevant DX.MARKET.PRICE records.
Using the derivatives pricing infrastructure the prices can be generated for any price set, at any time
using DX.RV.CHECK.PRICES to generate the prices online.
Garman-Kohlhagen
Garman-Kohlhagen is a price calculation for options. The Garman-Kohlagen option pricing routine
obtains all the required parameters from the relevant DX.MARKET.PRICE record. This data can
either be input manually of via one of the supplied “build” routines. The following is a user guide to
show how to use and implement the Black-Scholes Garman-Kohlagen method of price calculation.
Initial Set-up
DX.PRICE.SOURCE
For the initial SET-UP the user needs to enter which price sources are available by using the
application DX.PRICE.SOURCE.
The constant name “INTSEQ” is required by the module and must not be changed.
The constant data item to use to identify the first two digits from PERIODIC.INTEREST will be fields
5.1 and 6.1.
The routine that has been designed to fill in the Data in DX.MARKET.PRICE if required
DX.PRICE.SOURCE Record
DX.CONTRACT.MASTER
Next the contracts and price sets that use this source should be entered. Within the application
DX.CONTRACT.MASTER field PRICE.SET, which is a multi-value field, needs to be defined as
either Current, Closing or both. The user must link the price source to the contract (PRICE.SOURCE).
DX.CONTRACT.MASTER Record
The price source, set and contracts have now been defined.
Data Required
The data required using the option-pricing model Garman Kohlhagen is held in DX.MARKET.PRICE.
The Garman-Kohlhagen Routine uses the following fields to calculate the theoretical option value. The
fields need to be updated before the routine is run (as part of the end of exchange processing). Note
that a build routine has been included to automatically populate this data (see section 4 below).
DX.MARKET.PRICE Record
The build routine extracts information from the following applications and automatically fills the
relevant fields in DX.MARKET.PRICE.
The user would have to fill in DX.MARKET.PRICE manually if no routine was in place.
PERIODIC.INTEREST
PERIODIC.INTEREST Record
DX.VOLATILITY
The new application DX.VOLATILITY is used to input the volatilities to be used by the option pricing
models.
Example contract 43 and the maturity 1st May 2001 would be 43-20000501
Then enter the volatility rate for the Call and the Put: 1
FX. Rate
Time To Expiry
Strike Price
effort. As well as simplifying Temenos development of future margining algorithms this will allow
flexible local and client-driven development of new routines without core development involvement.
For all margining algorithms used, diagnostic information will be created and stored to allow easy
justification of the figures produced.
AEX Euronext
Margin requirements apply to investors who write uncovered options. No margin is required for the
writing of covered call options or the purchase of options.
Amsterdam Exchanges option market (Euronext) prescribes minimum margin requirements for
uncovered writing of options. Margin requirements are calculated daily. If the outcome of this
calculation rises, an additional deposit may be required.
Options can be bought or written. Buying options creates a long position, while writing options results
in a short position.
Writing call options (short call) means that the writer may be assigned to deliver the underlying value
at the option’s exercise price. This exercise price will generally be lower than the market price of the
underlying value. If the writer of the call option has deposited the underlying value with the bank, this
is referred to as covered writing because the writer is at all times able to meet the obligations. When
the underlying value is not deposited with the bank, this is known as uncovered writing and the writer
must therefore satisfy the minimum margin requirements.
Writing put options (short put) means that the writer may be assigned to accept delivery of the
underlying value at the option’s exercise price. This exercise price will generally be higher than the
market price of the underlying.
A margin percentage is generally used to calculate the margin requirements. The margin percentage
is related to the volatility of the underlying value. Margin percentages are published monthly in the
Euronext Bulletin. Margin percentages and initial margins are calculated monthly. Therefore monthly
changes are possible. However, Euronext may decide to change margin percentages at other times.
In this event Euronext will publish details via a Euronext announcement.
4. DX.MARGIN.RATES for using Futures Rate and for using Options Percentage.
DX.MARGIN.RATES for using Futures Rate and for using Options Percentage
6. DX.TRADE remember to input the Strategy and note the PRI.LINK number to link strategies
together.
DX.TRADE remember to input the Strategy and note the PRI.LINK number to link strategies together
8. DX.REVALUE
DX.REVALUE
OCC/TIMS Margining
The Options Clearing Corporation (OCC) is responsible for clearing the trades performed on the
following exchanges:
The main function of the clearing organisation is to guarantee any confirmed trades by assuming the
role of the counter party to all the transactions. In order to be able to fulfil this role, the clearing
organisation requires an initial margin or deposit. In the case of default by any member, the clearing-
house can close out any open positions and the initial margin held by the clearing-house should cover
any losses incurred.
The clearing-house therefore calculates, at least once a day, an initial margin amount for each
clearing member. This figure is based on each member’s open positions and does the clearing-house
define calculated using the methodology.
It is also a requirement of any exchange member to charge their customers (including other non-
clearing brokers) at least the amount charged by the clearing-house. It is also a requirement for non-
clearing firms and brokers to charge their customers at least the amount charged by the clearing
OCC.TIMS Margin set up
DX.CONTRACT.MASTER
DX.CONTRACT.MASTER
NOTE input values for Gen Data Code = STOCK, STOCKINDEX, FOREX, or INTEREST
DX.MARGIN.RATES
STOCK CONTRACT
Stock Contract
FOREX CONTRACT
FOREX Contract
INTEREST CONTRACT
Define T-BILL, T-NOTE and US T BOND contracts respectively by percentage e.g. 0.35, 3
and 3.5 and minimum e.g. 0.05, 0.5 and 0.5
Interest Contract
Derivatives
LINKING OF TRANSACTIONS
This is done by first noting the link number generated from the first transaction for the strategy being
used. Then for the other transaction that is being strategically linked to the first one, the same link and
strategy must be input. This is the way the system identifies the strategy linkage.
When creating new margining routines it is important to note that you cannot create a new record until
you have created a revaluation detail file. See 1.2.3.7 DX.REVAL.DET and also a
DX.RV.DET.HIST file. You should use the standard T24 live file template, TEMPLATE.L.
For example:
In order to enter a record called SPAN.IM you will need an application called.
DX.REVAL.DET.SPAN.IM and a history application of the same file layout called
DX.RV.DET.SPAN.IM.HIST. The existence of these files is vital for the correct function of the
derivatives revaluation process, without them the process cannot complete.
The revaluation suite has a “black-box” design, which allows new variation and initial margin
calculations to be developed easily to a published standard and added to the Derivatives module with
the minimum of effort. This will allow flexible local and client-driven development of new routines
without core development involvement.
• End of Day, where End of Exchange has not been run for exchanges traded today, using the
multi-threaded T24 end of day.
Once the trigger applications have been authorised or verified one of the Grey Box Control Process is
called. These grey box processes act as the main controlling mechanism for the revaluation.
The Grey Boxes ensure the integrity of data within the process and ensures that each black box
receives the information it requires to complete successfully. The Grey Boxes also deal with errors
generated by the Black Boxes and act accordingly.
DX.RUN.EOE is a control process that is called exclusively by the end of exchange processes.
• Initially the box controls the processing of a set of pre-defined “pre” processes that are called
before the closing revaluation is called.
• It then calls for a revaluation to be completed for all contracts traded on that exchange that is
currently held within the system, by making a revaluation request to DX.RUN.REVALUE.
• After this has completed, the pre-defined “post” processes are called by the control process
and errors dealt with.
DX.RUN.REVALUE is the main control process for the revaluation, it does nothing else but process
the data required for the Margin Routine Black Boxes. Using the information it has collected about the
Client, Trade, etc… then it chooses the relevant Black Box routine to process the information and
return either a Initial Margin figure of Variation margin figures for all the constituent transactions. After
this has completed it also produces diagnostic data for the revaluation. See
DX.REVALUE.SUMMARY and DX.REVALUE.EXCHANGE
This section details the information passed into the Black Box routines for variation margin and the
data that is required back from the box.
In order to access data passed to the common block the black box routine must have the
DX.REVAL.COMMON included. In order to access a piece of data reference DX$R.RVC.PROCESS
(???), for example, in order to access the current list of client positions, use DX$R.RVC.PROCESS
(DX.RVP.MR.CUST.GRP.PORT).
See. DX.RVP.MR.RVLVL.KEY
i.e. F.DX.REVAL.DET.STAND.VM
The id of the
DX.REVALUE.TRANSACTION record
created and returned by T24 subroutine
F.DX.TXN.READ
i.e. DX.REVAL.DET.STAND.VM
Note:
Fields 100-200 can be used for user-defined variables in the common block.
And:
F.DX.TXN.READ should be the only routine used to read transactions into the revaluation suite.
In order to access data passed to the common block, the black box routine must have the
DX.REVAL.COMMON included. In order to access a piece of data reference DX$R.RVC.PROCESS
(???), for example, in order to access the current list of client positions, use DX$R.RVC.PROCESS
(DX.RVP.MR.CUST.GRP.PORT).
See. DX.RVP.MR.RVLVL.KEY
i.e. F.DX.REVAL.DET.STAND.IM
i.e. DX.REVAL.DET.STAND.IM
Multi-valued by Currency
Multi-valued by Currency
Multi-valued by Currency
Sub-Valued by Contract.
Multi-valued by Currency
Sub-Valued by Contract.
Multi-valued by Currency
Sub-Valued by Contract.
Multi-valued by Currency
Sub-Valued by Contract.
Multi-valued by Currency
Sub-Valued by Contract.
Multi-valued by Currency
Sub-Valued by Contract.
Fields 100-200 can be used for user-defined variables in the common block.
Note: Wherever the RETURN.CODE argument is specified for these routines (apart from where
specifically stated), it is used to return information for debugging purposes only. Errors should be set
within routine via standard methodology.
Accounting Entries
Description
Creates any additional accounting entries required beyond those automatically generated by the
system. Local routine attached at this point should insert accounting entries required into the existing
list, based on the DX.EVENT.TYPE passed in. Used whenever accounting entries are posted by
applications or COB processes in DX.
Insertion Point
Application Record Key Field
Arguments
Argument List Direction Description
PGM In T24 product code – always DX
TYPE In Type of entry - CHG, DEL, VAL, VALAUT, REV, SAO,
SNP, SSS, RSAO,
SNP, ADD, AUT or ADD.AUT
ENTRIES In / Out Dynamic array of accounting entries*
FORWARD In Dynamic array of Forward entries*
EVENT.TYPE In DX.EVENT.TYPE being processed.
Description
Performs validation or defaulting of alternate indices, e.g. CUSIP number. If the alternate index is
present, it will set the rest of the option series. If the option series is present, the alternate index will
be defaulted or validated against it. Used in DX.CONTRACT.MASTER, DX.MARKET.PRICE,
DX.TRADE and DX.ORDER.
Insertion Point
Application Record Key Field
DX.PARAMETER SYSTEM ALT.IND.VAL
Arguments
Argument List Direction Description
ALT.IND.ID In / Out Alternate index id to be validated (e.g. CUSIP.NO)
CONTRACT.CODE In / Out Contract Code – DX.CONTRACT.MASTER id
MATURITY.DATE In / Out Maturity Date as yyyymm{dd}
STRIKE.PRICE In / Out External Strike Price (options only)
CALL.PUT In / Out CALL or PUT (options only)
OTHER.DATA In / Out field<2> = Alternate Index name from DX.PARAMETER,
ALT.IND.NAME
RETURN.CODE Out Returned error codes/warnings for debugging purposes
Description
Set rules for matching deals against a position to be exercised, i.e. First In First Out, Last In First Out
etc.
Multiple deals against the same positions are matched short against long and closed out.
The routine takes a list of transaction ids to be matched, along with the DX.TRANSACTION records
held within a dimensioned array. The routine then returns a list of matched transaction ids along with
the number of matched lots per DX.TRANSACTION record.
Used in closeout processing.
Insertion Point
Application Record Key Field
Arguments
Argument List Direction Description
IN.LIST In List of DX.TRANSACTION @IDs for matching
IN.RECORDS In Dimensioned array of the DX.TRANSACTION records
OUT.LIST Out List of matched DX.TRANSACTION @IDs
NO.LOTS Out List of matched lots for each DX.TRANSACTION record
Description
Set rules for allocation of lots to transactions from multiple deals against that position.
The routine takes an array containing multi-valued list of transaction ids to be matched against the
number of unassigned lots for each, together with the total number of lots to be assigned. The routine
returns an array containing a list of a subset of these transaction ids which have been matched
against the number of lots assigned for each.
Insertion Point
Application Record Key Field
Arguments
Argument List Direction Description
UNASSIGNED.LIST In field<1> Unassigned Transactions; field<2> Unassigned lots
TOT.ASSIGN.LOTS In Total number of lots to be assigned
ASSIGNED.LIST Out field<1> Assigned Transactions; field<2> Assigned lots
ASSIGNED.ERR Out Returned errors / warnings
Calculation of Exposure
Description
Routine performs calculation of Credit Exposure for Derivatives. The routine takes the record for the
transaction being evaluated along with elements of the option series, and returns delta, time period,
REVAL.ADDON.PERCEN id, replacement cost, regulatory add-on percentage and calculated
regulatory credit exposure. The T24 infrastructure then populates this data into the portfolio valuation.
Insertion Point
Application Record Key Field
DX.PARAMETER SYSTEM CR.EXP.CALC.API
Arguments
Argument List Direction Description
APPL In T24 product code (always DX)
R.DX.TRANSACTION In DX.TRANSACTION record
LOTS In Total number of lots
TRADE.TYPE In Future or Option
CALL.PUT In Call or Put (options only)
BUY.SELL In Buy or Sell
INST.STK.PRICE In Strike price in internal T24 format
DELTA Out Delta value from DX.MARKET.PRICE record
TIME.PERIOD Out Remaining period
ADDON.ID Out REVAL.ADDON.PERCEN id
REPLACEMENT.COST Out Calculated replacement cost
REG.PERCENT Out Regulatory add-on percentage
REG.CR.EXPOSURE Out Calculated regulatory credit exposure
INT.PERCENT Out Add-on percentage in internal T24 format
INT.CR.EXPOSURE Out Calculated credit exposure in internal T24 format
RETURN.CODE Out Returned errors – can set here or via standard methodology.
Description
Routine to calculate the Initial Margin to post against the exchange, by taking for each position
reported, and for each position, each transction within that position. For each of these transactions,
the relevant detail file (DX.REVAL.DET.CALC_METHOD where CALC_METHOD is the
DX.INT.PRICE.CALC id) will need to be updated with respect to CONTRACT, CONTRACT.FACTOR,
RATE.KEY, RATE.TYPE, FULL.RATE, SPREAD.RATE, SPOT.RATE, STRADDLE.RATE, MINIMUM,
FULL.LOTS, SPREAD.LOTS, STRADDLE.LOTS, SPOT.LOTS, SPREAD.PAIR, SPREAD.MNTHS,
EXCH.FACTOR, INITIAL.MARGIN, CONTRACT.IM, MAINT.MARGIN and MAINT.FACTOR. The
outgoing array DX$R.RVC.PROCESS will need to be updated with respect to MR.CURRENCY,
MR.IM.FACTOR, MR.INIT.MAR, MR.MAINT.MAR, MR.COLL.ALLOC, MR.COMB.CDY,
MR.COMB.CDY.CONTRACTS, MR.CONTRACT, MR.CONTRACT.FACTOR, MR.CONTRACT.IM and
MR.CONTRACT.CCY (for each subvalue).
Insertion Point
Application Record Key Field
Arguments
Argument List Direction Description
n/a n/a Routine must include common block I_DX.REVAL.COMMON
This insert also defines field equates for the arrays mentioned
below.
[DX$R.RVC.SETUP] [in] Parameters passed in via common block
[DX$R.RVC.PROCESS] [in / out] Data to process
Description
Calculation of the net cost of a future or option trade after deduction of commissions, charges and tax.
Insertion Point
Application Record Key Field
Arguments
Argument List Direction Description
CONTRACT.CODE In Contract code
MATURITY In Maturity Date as yyyymm{dd}
CALL.PUT In CALL or PUT (options only)
STRIKE In External Strike Price (options only)
BUY.SELL In Buy or Sell
CCY.MARKET In Currency Market (defaults to 1 if not set)
NET.COST.CCY In Currency in which net cost is to be expressed (defaults to local
currency if not set)
LOTS In Quantity (defaulted to zero)
PRICE In Price expressed as input into T24
INT.PRICE In Price expressed as internal T24 format
CUST.PORT.ID In Customer number or Portfolio number if appropriate
CUSTOMER.TYPE In CUSTOMER, COUNTERPARTY, BROKER, EXCHANGE or DEALER
COMM.CCY In Array of currency codes against commissions/charges
COMM.AMT In Array of commissions/charges – expressed in COMM.CCY
TAX.AMT In Tax payable
NET.COST Out Net cost expressed in local currency or NET.COST.CCY
RESERVED01 n/a Reserved for future use
RESERVED02 n/a Reserved for future use
RESERVED03 n/a Reserved for future use
RETURN.CODE Out Returned error codes/warnings for debugging purposes
Description
Calculates theoretical prices based on pricing models such as Garman Kohlhagen or Black & Scholes.
The pre-load routine(s) will need to populate the C$DXPR.PRICE.RECORD array with respect to
SEC.INT.RATE, INT.RATE, INTEREST.BASIS, VOLATILITY, UND.PRICE and UND.INT.PRICE.
The calculation routine will then need to populate the C$DXPR.PRICE.RECORD array with PRICE,
DELTA, GAMMA, VEGA and RHO.
Description
Routine will need to calculate variation margin by taking each position reported, and for each position,
each transaction within that position. For each of these transactions, the relevant detail file
(DX.REVAL.DET.CALC_METHOD where CALC_METHOD is the DX.INT.PRICE.CALC id) will
need to be updated with respect to CONTRACT, CONTRACT.VM, CONTRACT.UNOPT, TRANSACTION,
REVAL.TRANS, TRANS.VM, TRANS.UNOPT, MKT.PRICE, TRD.PRICE and NO.LOTS. The outgoing
array DX$R.RVC.PROCESS will need to be updated with respect to MR.VAR.MAR, MR.UNOPT.PL,
MR.UNOPT.PL.LONG, UNOPT.PL.SHORT and REVAL.TXN (for each subvalue).
Insertion Point
Application Record Key Field
Arguments
Argument List Direction Description
n/a n/a Routine must include common block I_DX.REVAL.COMMON
This insert also defines field equates for the arrays mentioned
below.
[DX$R.RVC.SETUP] [in] Parameters passed in via common block
[DX$R.RVC.PROCESS] [in / out] Data to process
Description
Routine performs processing of all events that occur on exercise of exotic option, performed instead of
standard processing for vanilla options. The routine is called in two modes:
• CONTROL.VAR has flag set to check down-date of lots. Routine should return DOWNDATE flag
set to true if the number of lots are to be reduced as part of the processing (i.e. if a closeout has
truly taken place or not).
• CONTROL.VAR does not have down-date of lots flag set and does not have flag to indicate that
this event has already been processed. Depending on the EXOTIC.EVENT flag on the
transaction passed in, any underlying instrument(s) are created by the routine, adding the exotic
option record key to the field LINK.REFERENCE.
Insertion Point
Application Record Key Field
Arguments
Argument List Direction Description
PRI.TXN.ID In List of primary DX.TRANSACTION ids
SEC.TXN.ID In Secondary DX.TRANSACTION id
R.PRI.TXN In Primary transaction format record
R.SEC.TXN In Secondary transaction format record
R.TRADE Out DX.TRADE record generated
CONTROL.VAR In Check downdate of lots if field<1> = ‘D’ ; post accounting if
field<2> = ‘A’
TRADE.ID Out ID(s) of record generated
DOWN.DATE Out Set to true (1) or false (0)
RESERVED01 Out Reserved for future use
RETURN.CODE Out Returned errors – can set here or via standard methodology.
Description
Validation of user fields added to DX.TRADE and DX.ORDER applications for exotic options. This
insertion point is used to specify standard T24 IN2 validation routines only.
Insertion Point
Application Record Key Field
Description
Rules for assignment of lots to multiple customers on partial fill of a DX.ORDER record, e.g. first
come first served, pro-rata assignment etc.
Routine takes in a list of candidates in the format customer.account_number together with a
corresponding list of open lots against each within the current DX.ORDER record, and the total
number of lots being filled. The routine should then determine which candidates to fill and decrement
the open lots for each, at the same time reducing the total number of lots to fill by the same amount.
Insertion Point
Application Record Key Field
DX.PARAMETER SYSTEM ORD.ASSIGN.PGM
Arguments
Argument List Direction Description
CANDIDATE.LIST In / Out List of candidates for assignment
CANDIDATE.LOTS In / Out Number of lots per candidate
ASSIGN.LOTS In Number of lots to assign
RESERVED01 n/a Reserved for future use
RESERVED02 n/a Reserved for future use
RETURN.CODE Out Returned error codes/warnings for debugging purposes
Description
Conversion of price (as input) to internal format used by T24. Overrides normal processing of price
calculation.
Insertion Point
Arguments
Argument List Direction Description
EXTERNAL.PRICE In Price as input to T24
EXTERNAL.STRIKE In Strike price as input to T24
R.DX.CONTRACT.MASTER In DX.CONTRACT.MASTER record as dimensioned array
R.DX.INT.PRICE.CALC In DX.INT.PRICE.CALC record as dimensioned array
PRICE.TYPE In Type of price input – F (futures price), C (Call Option
Premium), P (Put Option Premium), S (Option Strike Price)
PS (Put and Strike together) or CS (Call and Strike
together)
TICK.SIZE In Contract Tick Size
TICK.VALUE In Contract Tick Value
INT.PRICE Out Price in internal format for T24
INTERNAL.STRIKE Out Strike Price in internal format for T24
DX APIs
DX.AI.CUSIP
CUSIP No. Alternate Index
Description Defaulting and validation of CUSIP numbers held as alternate index for deal.
Used In Contract definition; Trade, Order and Price Entry.
Insertion Point Alternate Index Validation
DX.BB.CREDIT.EXPOSURE
Credit Exposure for Derivatives.
Description This routine will return the calculated Replacement.Cost, and Credit.Exposure
values, based on the Add-On rates returned from the core routine
GET.REVAL.ADDON. These returned values has to be populated in
SC.POS.ASSET file by the calling program.
Used In Portfolio valuation
Insertion Point Calculation of Exposure
DX.CALC.NET.COST
Calc Net Cost of the Trade/Order
Description Subroutine attached to DX.PARAMETER to calculate the COST of Order/Trade
from which this routine will be invoked.
Used In
Insertion Point Calculation of Net Cost
DX.CO.AM.FIFO
First In First Out Processing
Description Auto matching of exercise closeouts – matches selected transactions against
least recent opposite positions first.
Used In Closeout processing
Insertion Point Automatic Closeout Matching
DX.CO.AM.FIFO.DAY
Day Trade - First In First Out
Description Auto matching of exercise closeouts – matches selected transactions against
today’s opposite positions first and then least recent opposite positions.
Used In Closeout processing
Insertion Point Automatic Closeout Matching
DX.CO.AM.LIFO
Last In First Out Processing
Description Auto matching of exercise closeouts – matches selected transactions against
most recent opposite positions first.
Used In Closeout processing
Insertion Point Automatic Closeout Matching
DX.CO.AM.LIFO.DAY
Day Trade – Last In First Out
Description Auto matching of exercise closeouts – matches selected transactions against
today’s opposite positions first and then most recent opposite positions.
Used In Closeout processing
Insertion Point Automatic Closeout Matching
DX.CO.AS.FCFS
First Come First Served
Description This black box takes transaction as passed and assigns the maximum number of
lots possible to the transactions on a first come first served basis.
Used In Closeout processing
Insertion Point Automatic Trade Assignment
DX.CO.PGM.NOACTION
No action on option closeout
Description ‘Dummy’ routine to be called on option closeout/exercise, suppressing the
generation of any underlying asset.
Used In Closeout Processing where EXOTIC.TYPE is set on DX.TRADE
Insertion Point Exotic Option Closeout Processing
DX.ORD.ASSIGN.FIFO
FIFO Order Assignment
Description Assigns partial fills to multiple customers on an order as first customer first then
subsequent customers.
Used In Order entry (partial fill)
Insertion Point Order Lot Assignment
DX.ORD.ASSIGN.PRO.RATA
Pro-Rata Assignment of filled lots
Description Assigns partial fills to multiple customers on an order on a pro-rata basis.
Used In Order entry (partial fill)
Insertion Point Order Lot Assignment
DX.PR.BINOMIAL
Cox, Ross & Rubinstein Binomial Pricing Routine
Description Black box routine to return theoretical price based on previous closing price and
the greeks.
Used In Revaluation of derivatives positions for theoretical price calculation.
Insertion Point Calculation of Theoretical Prices
DX.PR.BLACK.SCHOLES
Black Scholes Pricing Routine
Description Black box routine to return theoretical price based on previous closing price and
the greeks.
Used In Revaluation of derivatives positions for theoretical price calculation.
Insertion Point Calculation of Theoretical Prices
DX.PR.BUILD.BS
Pre-build for Black Scholes
Description This routine is part of preload process for BLACK SCHOLES "black box" pricing
routine. Values for currency rates, volatility and underlying price are passed back
in C$DXPR.PRICE.RECORD
Used In Revaluation of derivatives positions for theoretical price calculation.
Insertion Point Calculation of Theoretical Prices
DX.PR.BUILD.GK
Pre-build for Garman Kohlhagen
Description This routine is part of preload process for GARMAN KOHLHAGEN "black box"
pricing routine. Values for currency rates, volatility and underlying price are
passed back in C$DXPR.PRICE.RECORD
Used In Revaluation of derivatives positions for theoretical price calculation.
Insertion Point Calculation of Theoretical Prices
DX.PR.GARMAN.KOHLHAGEN
Garman Kohlhagen pricing routine
Description Black box routine to return theoretical price based on previous closing price and
the greeks.
Used In Revaluation of derivatives positions for theoretical price calculation.
Insertion Point Calculation of Theoretical Prices
DX.RV.CHREG.VM
Swiss Regulatory VM Calc
Description Black box routine to return Variation Margin calculation for Swiss Regulations.
Used In Revaluation of derivatives positions.
Insertion Point Calculation of Variation Margin
DX.RV.ENHANCED.IM
Enhanced Initial Margin Calculation
Description
Used In Revaluation of derivatives positions.
Insertion Point Calculation of Initial Margin
DX.RV.EURONEXT
Euronext Margin Calculation
Description Black box routine to return Initial Margin calculation for Euronext.
Used In Revaluation of derivatives positions.
Insertion Point Calculation of Initial Margin
DX.RV.FXOPT.VM
FX option Variation margin
Description Routine based on STANDARD.VM caters for alternative market price quotation
for forex options, i.e. allows exchange rate to be quoted as delivery ccy vs.
contract ccy rather than the other way round (which is the default)
Used In Revaluation of derivatives positions.
Insertion Point Calculation of Variation Margin
DX.RV.NO.IM
No Initial Margin Calculated
Description Dummy routine to return zero Initial Margin
Used In Revaluation of derivatives positions.
Insertion Point Calculation of Initial Margin
DX.RV.NO.VM
No Variation Margin Calculated
Description Dummy routine to return zero Variation Margin
Used In Revaluation of derivatives positions.
Insertion Point Calculation of Variation Margin
DX.RV.OCC.TIMS
OCC/TIMS Margin Calculation
Description Black box routine to return Initial Margin calculation for OCC/TIMS.
Used In Revaluation of derivatives positions.
Insertion Point Calculation of Initial Margin
DX.RV.STANDARD.IM
Standard Initial Margin Calculation
Description Black box routine to return standard Initial Margin calculation
Used In Revaluation of derivatives positions.
Insertion Point Calculation of Initial Margin
DX.RV.STANDARD.VM
Standard Variation Margin Calc
Description This is the "black box" routine that actually calculates the variation margin for a
given set of transaction. These trans are passed to the black box by the reval
suite. No other logic or processing should be done here.
Used In Revaluation of derivatives positions.
Insertion Point Calculation of Variation Margin
DX.STAND.AS.RANDOM
Standard Random Assignment
Description This “black box” routine randomly allocates lots for Option Assignment against a
given list of Trades (denoted by Transaction Id). The processing is based on
EUREX random assignment method.
Used In Closeout processing
Insertion Point Automatic Trade Assignment
DX.XO.CREATE.EURO
FX Option on exercise
Description Routine to create a FOREX trade on exercise of a Derivatives Exotic Option if
the EXOTIC.EVENT flag is set
Used In Closeout Processing where EXOTIC.TYPE is set on DX.TRADE
Insertion Point Exotic Option Closeout Processing
DX.XO.CREATE.FX
Create FX Option
Description Routine to create a FOREX trade on exercise of a Derivatives Exotic Option if
the EXOTIC.EVENT flag is set
Used In Closeout Processing where EXOTIC.TYPE is set on DX.TRADE
Insertion Point Exotic Option Closeout Processing
DX.XO.CREATE.FX.KNOCKOUT
Create FX deal on knockout.
Description Create FX deal for knockout if exotic event flag not set.
Used In Closeout Processing where EXOTIC.TYPE is set on DX.TRADE
Insertion Point Exotic Option Closeout Processing
DX.XO.CREATE.FX.REBATE
Create FX deal or Post Rebate
Description Create underlying FX deal for knockout option with rebate. Create FX deal if
exotic event flag not set, otherwise create rebate cash payment.
Used In Closeout Processing where EXOTIC.TYPE is set on DX.TRADE
Insertion Point Exotic Option Closeout Processing
DX.XO.CREATE.SEC
Create Sec Trade
Description Create underlying Security deal on exercise of a derivatives exotic option if
exotic event flag set.
Used In Closeout Processing where EXOTIC.TYPE is set on DX.TRADE
Insertion Point Exotic Option Closeout Processing
DX.XO.CREATE.SEC.KNOCKOUT
Create sec trade on knockout
Description Create underlying Security deal for knockout option if exotic event flag not set.
Used In Closeout Processing where EXOTIC.TYPE is set on DX.TRADE
Insertion Point Exotic Option Closeout Processing
DX.XO.FWDCASHPAYOUT
Forward Cashpayout
Description Create cash payout at settlement of a Derivatives exotic option if the exotic event
flag is set - value date of payment offset from the maturity date
Used In Closeout Processing where EXOTIC.TYPE is set on DX.TRADE
Insertion Point Exotic Option Closeout Processing
DX.XO.INSTANT.CASHPAYOUT
Instant Cashpayout
Description Create cash payout at settlement of a Derivatives exotic option if the exotic event
flag is set - value date of payment offset from the closeout date
Used In Closeout Processing where EXOTIC.TYPE is set on DX.TRADE
Insertion Point Exotic Option Closeout Processing
DX.XO.KNOCKIN
Knock in and create underlying
Description Prevent exercise of option before knockin event. Routine will kick off standard
exercise of underlying if exotic event is set. If exotic event is not set no exercise
will take place, and lots won't be down-dated.
Used In Closeout Processing where EXOTIC.TYPE is set on DX.TRADE
Insertion Point Exotic Option Closeout Processing
DX.XO.KNOCKOUT
Knock out or create underlying
Description Prevent exercise of option after knockout event. Routine will kick off standard
exercise of underlying if exotic event is not set. If exotic event is set no exercise
will take place, and lots won't be down-dated.
Used In Closeout Processing where EXOTIC.TYPE is set on DX.TRADE
Insertion Point Exotic Option Closeout Processing