Temenos T24 Derivatives: User Guide
Temenos T24 Derivatives: User Guide
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
Introduction.............................................................................................................................................. 4
Application Overview ........................................................................................................................... 4
Setting up the System.......................................................................................................................... 4
Derivatives Module........................................................................................................................... 4
Overview of Input and Processing ....................................................................................................... 7
Derivatives Applications ................................................................................................................... 7
Trade Capture ................................................................................................................................ 41
Order Capture ................................................................................................................................ 49
Reporting Files ............................................................................................................................... 53
Manual Price Capture..................................................................................................................... 66
Automated Price Capture ............................................................................................................... 71
Closing Out Trades ........................................................................................................................ 75
Revaluation and Margining .......................................................................................................... 101
End of Exchange Day Processing................................................................................................ 103
Requesting an on-line revaluation................................................................................................ 105
COB revaluation ........................................................................................................................... 106
Corporate Action Processing ....................................................................................................... 108
Interfaces To Other T24 Modules ................................................................................................ 111
Delivery ........................................................................................................................................ 117
Customer Positions ...................................................................................................................... 120
Securities Portfolio Valuation ....................................................................................................... 122
Batch Processing ......................................................................................................................... 123
Accounting.................................................................................................................................... 124
Customer Available Funds Checking ........................................................................................... 127
Alternate Indexes ......................................................................................................................... 127
Order and Trade Routing ............................................................................................................. 129
Strategy Linking............................................................................................................................ 131
Data Take-on................................................................................................................................ 131
Blocking of Securities Positions ................................................................................................... 132
Best Rate...................................................................................................................................... 132
Calculation of Credit Exposure..................................................................................................... 133
Back valuation of Derivatives in Asset Management ................................................................... 135
Average Price Positions ............................................................................................................... 135
Creation of average price orders.................................................................................................. 136
Trade Transfer.............................................................................................................................. 136
Strike Price Rounding and Creation of New Series for Corporate Actions .................................. 141
Introduction
Application 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 re-valued. 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).
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.
Static Data
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 identity 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 is 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.
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.
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.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.
The most basic contract information: name, mnemonic, exchange on which the contract is traded, type
of contract, is entered first. The CONTRACT.TYPE may be FUTURE, OPTION or STOCK, where
STOCK essentially behaves like a future but is present to allow the definition of the underlying product
on stock options before the Derivatives interface to the Securities product is implemented.
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.
Derivatives
When a derivatives trade is agreed, a maturity date must be set. For many contracts, this maturity
date is specified only as a maturity month, during which the contract will mature. These are known as
MONTHLY maturity contracts. Some other contracts specify a single day for maturity – DAILY maturity
contracts (e.g. FLEX options). A few contracts specify a single day up until a certain forward date, and
switch to a monthly maturity after this time (e.g. LME copper futures). MATURITY.TYPE hence allows
input of MONTHLY, DAILY or OTHER.
The fields MATURITY.TYPE and AVAIL.MONTHS and the multi-value set MONTHS.FWD to MAT.DAYS
allow the user to define which are 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, 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.
Derivatives
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.
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.
The CUSTOMER.TYPE field allows the customer to be classed as a 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 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.
OX Order abandon After at least one partial fill, remaining lots are
cancelled.
DX.EVENT.TYPE entries
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.
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.
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.
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.
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.
Two default margining routines are provided. STAND.IM and STAND.VM these are the Standard
Basic Initial Margin Calculation and the basic Variation Margin calculation routines. There are two
other Initial Margin Calculations currently available, namely Euronext-AEX and OCC-TIMS and more
may follow.
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.
The key is made from four separate elements separated by a “–“ (hyphen).
These elements are:
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.
Details of the effect of the data in DX.PARAMETER can be found in the helptext for the application.
Derivatives
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…?”.
The DX.PRICE.SET key is used to validate the key of the DX.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.PRICE and/or DX.PRICE.INPUT.
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.
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.
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.
If the SYSTEM record in the DX.TRADING.CONSTRAINT application exists then this will be applied to
all sides of the trade in the system, unless alternative trading constraints have been set up for the
client or portfolio. This can be used to close the system to all customers apart from those specified in
the DX.TRADING.CONSTRAINT application, or to open the system under a specific constraint, such
as customers can only trade contracts of LIFFE. You also could set up constraints which allow brokers
to trade on any exchange they wish, whilst customers remain constrained by the SYSTEM constraint.
Setting Up a Constraint
The following example is of a customer who is only allowed to trade options apart from options traded
on CBOT.
This shows that single constraints can be linked together using AND/OR to produce a complex
constraint. There is no limit to the number of constraints that can be held this way within the record.
Trade Capture
DX.TRADE
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.
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.
Derivatives
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.
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”.
In order to provide treasury rate functionality the Customer (Primary) and Broker (Secondary)
prices/premiums on the derivatives trading application can now be decoupled. This will allow the user
to enter a Customer rate and an internal rate for the trade.
The field TREASURY.CUSTOMER will control the decoupling of the rates, if set as “NO” to denote that
Customer Price (usually PRI.PRICE) and the Bank/Broker Price (usually SEC.PRICE) are different,
thus allowing SEC.PRICE to be input, then Bank/Broker customer must be an own book.
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.
Although more than one customer can be entered on the primary side of a DX.TRADE record, the
price traded and buy/sell flag is the same for all customers. Because all fields are effectively the same
on the primary and secondary sides of the trade, in the following descriptions the ‘stem’ field name is
used without the preceding ‘PRI.’ Or ‘SEC.’
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.
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.
Detailed information on other field inputs within DX.TRADE can be obtained from the application
helptext.
The commission fields in DX.TRADE show a summarised form of the commission data. Once a trade
has been committed, more detailed analysis of trading commission can be viewed in
DX.COMMISSION.DIAGS.
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, commission, PRI.COMM.AMT, has been calculated as –425.01 Euros for
customer number 110018. The ACCOUNT 1 to post the commission to, PRI.COMM.ACC, is 56002.
This account also stores amounts in Euros, PRI.CACC.CCY, and there is no need for a currency
conversion. 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.
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.
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.
DX.ORDER
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.
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.
Reporting Files
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 holds trade details on a customer-by-customer basis i.e. a simple trade between
two customers will generate two DX.TRANSACTION records, whilst a bulk trade between ten
customers and one broker will build 11 DX.TRANSACTION records.
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.
Derivatives
DX.REP.POSITION
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.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 110019 for trade
DXTRA0300200003 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, 10063, 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 50030 ’s (Fred Blogs) margins for all contracts is 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 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 example, DXRVL003644*4*GBP*50030-1, DXRVL003644*4*GBP*AA.BB or
DXRVL003644*4*GBP*50030
Derivatives
• For an end of exchange, the key is structured using a customer id. E.g.
DXEOE003644*4*GBP*50030
Therefore Customer 50030’s (Fred Blogs) Margins on Exchange 3 (EUREX) for his EUR 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.
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 (reval 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.
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.
There are two other initial margin routines currently available with the derivatives module:
EURONEXT-AEX and OCC.TIMS; their detail filenames are DX.REVAL.DET.EURONEXT and
DX.REVAL.DET.OCC.
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 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 re-value a portfolio based on these speculative prices.
The application is therefore required to accept and store prices in the following situations:
The sources of the prices are set-up using the application DX.PRICE.SOURCE Initially only MANUAL
prices will be entered, additional feeds can be added. The prices that need to be updated are known
as price sets, and are defined using the application DX.PRICE.SET.
DX.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 their price set contract and the maturity date of
that contract.
For example:
The CLOSING price for a MAR01 LIFFE Short Sterling Future (FSS) would be identified as.
The application details the previous source of the price data, the date on which it was update and the
time of update.
To record the current market price for a Future or Stock contract the system requires simply that the
price be entered into the contract record, with the optional update of the INTEREST.RATE and
VOLATILITY of the contact. Therefore the closing price of 95.60 for a March 03, Three Month
EURIBOR Future (12) would look as follows:
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 the a strike price of 106.00 on a March 2003
EuroBond Option (15) with a call of 3.74 and a put price of 4.05 would look as follows:
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.
DX.PRICE.INPUT
The function of DX.PRICE.INPUT is to provide an entry point for prices into the system that does not
require the update of one record per price. As with DX.PRICE, prices are identified by their Contract
(CONTRACT.CODE) and Price Set (PRICE.SET). The difference between this application and
DX.PRICE is that once entered the application will list all of the currently available price data for a
CONTRACT.CODE and a PRICE.SET. The data is listed by Maturity Date (MAT.DATE), which allows
the user to easily target a price and alter it accordingly. The application also details the previous
source of the price data, the date on which it was updated and the time of update for each DX.PRICE
that is available.
As with DX.PRICE to record the current market price for a Future or Stock contract the system
requires simply that the price be entered into the contract record, again with the optional update of the
INTEREST.RATE and VOLATILITY of the contact. Therefore the closing price of 10.00 for a March 01
5 Year “T” Note Future (1), the CONTRACT.CODE and PRICE.SET should be entered, the application
will then select all of the prices for that contract and price set.
In order to change the March 01 price search through the record for a maturity of 200103, 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
2001 5 Year “T” note Option (2) with a call of 151 and a put price of 149 would be updated as follows.
The CONTRACT.CODE and PRICE.SET should be entered, the application will the select all of the
prices for that contact and price set.
In order to change the March 01 price search through the record for a maturity of 200103, if the
maturity date does not exist then simply add a new multi-value set for the particular maturity date
(MAT.DATE). For each Maturity Date there is a list of strike prices, so search through the strike
(OPT.STRIKE) prices for 150, if that strike does not exist then add a sub-valued set, adding the call
(OPT.CALL) and put (OPT.PUT) prices.
Purpose
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.
Set-up
DX.CONTRACT.MASTER
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.
This example shows that for the CLOSING price set the Garman Kohlhagen PRICE.SOURCE will be
used to generate a price.
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.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.
When
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.
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 a trade, 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.
Enquiry DX.CO.MANUAL
Two DX.CO.MANUAL enquiries exist; one for options and the other used for stocks and futures.
DX.CO.MANUAL.OPTION and DX.CO.MANUAL.FUTURE 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.
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 to create an unauthorised DX.CO.MANUAL.INPUT record; the id is displayed.
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
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.
Enquiry 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 and ENQ DX.CO. MATURITY.FUTURE 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.
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.
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.
An example of a Futures / Stock maturity closeout in T24, the example identifies what constitutes a
pseudo transaction/trade.
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.
Pseudo transactions and trades are not created for option maturity closeouts. Like the manual
closeout, the profit and loss is calculated as the total sell value less the buy value for all of the
transactions to be closed out.
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 functions. Because of
the nature of closeouts you cannot history record closeouts, a new closeout must be run.
Derivatives
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 in
later phases of development.
The CREATION of the DX.CLOSEOUT record identifies how the closeout was created/requested.
Using the DX.CO.MANUAL & DX.CO.MATURITY enquiries 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, these will be available in later phases of
implementation.
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. 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 Desktop
session is in progress.
DX.CO.EXPIRE.MANUAL
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.EXERCISE.MANUAL
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 exercised 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. i.e.
DX.CO.ASSIGN.MANUAL
Using the enquiry below, the user can manually choose which options to assign.
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 are performed on line. The process enables the system to automatically select all
the trades for the contract specified that are due to expire or exercise. The input programs
DX.CO.EXPIRE.AUTO or DX.CO.EXERCISE.AUTO to process the trades for each customer or
portfolio initiate these. Processing is similar to the equivalent manual application, except that the user
may wish to automatically authorise the closeout.
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
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.
The re-valuation module has been developed to allow the valuation, accounting and reporting of
futures/stock and options held in the T24 derivatives system. The re-valuation process maybe called
for three different reasons:
In all three cases the re-valuation 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 three major functions: initial margin, variation margin and
collateral 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.
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.
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 re-valued. Once the entries have been input and authorised the revaluation process passes control
to the “Grey Box” processes.
Figure 94 - DX Revaluation
The selection criteria is broken down into four sections, “who”, “by who”, “which trades”, and
parameters.
• The “Who” consists of ALL.CUSTOMERS, GROUP, CUSTOMER and PORTFOLIO. If all customers are
to be re-valued, the further “Who” selection fields are not available. For selection of individual
Customers, Groups or Portfolios, set ALL.CUSTOMERS to “NO”. One can then identify a GROUP,
CUSTOMER(s) or PORTFOILO(s). One can choose only one field to populate.
• The “By Who” section allows you to specify any number of DEALER.DESK(s)and/or
DEPT.ACCT.OFFICER.
• The “Which Trades” allows the user to choose which kinds of trades from the customers selected
to revalue. Either all, a particular CURRENCY, EXCHANGE, CONTRACT.CLASS or CONTRACT.
• The parameters allow the user to define which PRICE.SET is to be used during revaluation.
RE.CALCULATE.IM asks whether or not to calculate initial margin and is used to speed up the
processing if only variation margin figures are needed. It is impossible to only calculate initial
margin without running the variation margin routines, as initial margin often requires variation
margin figures to be present. RE.VALUE.LEVEL asks at which level the top-level summary
information in DX.REVALUE.SUMMARY and DX.REVALUE.EXCHANGE is to be stored.
This allows the system to calculate the total margins for either a PORFOLIO, a CUSTOMER, or a
CUSTOMER group .
To set-up a revaluation, hit F3 to get the next available record id, and then define which
customers/trades wish to be re-valued. 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 end of day 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”.
The above screen shows a request to revalue Customer 50013 and Exchange 2.
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 re-valued 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).
From G13.1.00 onward corporate action processing has been added to the range of functionalities in
T24 derivatives.
As per the Securities module, new corporate actions are defined in the DIARY.TYPE application. If an
event effects contracts is defined in the derivatives module then it can be setup as an event in the
DX.DIARY application, this is defined by setting the DERIVATIVES flag on the DIARY.TYPE record.
The function of the DX.DIARY application is essentially the same as the Securities DIARY application,
but is tailored for Derivatives corporate actions. This includes options to alter the lots/strike
price/contract size/contract number etc…
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.
Entitlement authorisation takes place, using DX.ENT.ACTION, which runs an automated authorisation
of DX.ENTITLEMENTS as per DX. DIARY event.
Once the EX.DATE has arrived or passed then DX ENTITLEMENT records can be authorised.
Limits
The inclusion of Derivatives within the T24 Limits 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.
Choosing an option from LIM.AMT.VAL.CONT on DX.PARAMETER sets the amount used to update
limit utilisation.
• 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 LIMITS.
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.
Derivatives
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.
Delivery
Delivery messages are generated whenever a derivatives DX.EVENT.TYPE event is processed, i.e.
DX.TRADES are 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.
As part of this enhancement the DX.TRADE and DX.ORDER applications have been enhanced to
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 this enhancement has been designed to allow 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.
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:
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.
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 SC.POS.ASSET records will now include items relating to transaction-based deals within the
Derivatives module. Every trade relating to a portfolio requested will be included, only portfolio trades
will be included.
The data returned from the DX module will be the latest up-to-date data from the last end of exchange
process, therefore transactions will only be included once they have been re-valued by the system.
The update to this enquiry/file can be done on a Positional or Transaction basis; this is defined in the
DX.PARAMETER record SC.ASSET.UPD field.
Batch Processing
The Derivatives product has been designed so that the minimum amount of processing possible has
to be carried out in the main T24 batch run. Most business-related end-of-day functionality is
contained in DX.COB.WORKFILE which may be run online as and when exchange business days
close.
Accounting
Concept
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.
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.
Commissions and charges payable by customers or to brokers are simply posted to the customer
account specified in the commission fields for that customer on DX.TRADE.
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.
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
Forex Derivatives
CONT.ULYIN (DX.CONTRACT.MASTER
G.VAL Description DELIVERY.METHOD = ‘CASH’) Other Derivatives
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.
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 has been enhanced to provide the ability
for orders and the subsequent trades to be routed between T24 companies.
The new application can be set up for each DX.CONTRACT.CLASS on the system. The purpose
of the application is to allow the bank to set which portfolio they want to be the default secondary
customer on orders entered in a particular company for a particular group of products.
Within each record are slots to allow the bank to set defaulting secondary portfolios for the following
conditions:
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.
Figure 138 - Derivatives Trade Record (partial extracts from application shown)
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.
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.
This functionality can be used for multiple reasons, one of which is the initial margin calculation.
Data Take-on
The DX.TRADE application has been amended to allow the use of the TRANSFER.TYPE field
(previously for information only) to enter two new values, TAKEON (for legacy trade entry) and RVPDVP
(for transfers of trades into a position without affecting account postings etc.).
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 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
• 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.
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 has all been achieved using a new development of OFS to drive the main Securities position
blocking utility (SC.BLOCK.SEC.POS).
In order to activate this functionality a valid OFS.SOURCE should be entered in the DX.PARAMETER
OFSSOURCE field.
In order to block a securities position on short covered call position HEDGE.TRADE on DX.TRADE
must be set to COVERERD.
If the requirement cannot be met the deal will be marked as UNCOVERED in HEDGE.TRADE and the
user informed.
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.
• 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.
Processing Overview
DX.PARAMETER
New data field SPECIAL.RATE in DX.PARAMETER has been added to define which class of
customer will have special rates applied, which if left blank will default the mid rates for calculations
DX.CUSTOMER
Existing field CUSTOMER.TYPE has been amended to accept input of “DEALER”
DX.TRADE
New data field PRI.PREM.EXC has been added to DX.TRADE and the rate at which conversion has
to take place will populate 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.
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.
New fields have been added to SC.POS.ASSET record in order to 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’ will be called and credit exposure amounts will be updated in
SC.POS.ASSET record of the respective portfolio
Processing Overview
DX.PARAMETER
A new field CR.EXP.CALC.API has been added to which the new API ‘Blackbox’ routine
DX.BB.CREDIT.EXPOSURE created for calculating credit exposure, requires to be attached
DX.CONTRACT.MASTER
In order to identify an interest rate derivative a new field Int.Rate.Contract has been added, if it is
set to “YES” input in another new 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
For this purpose, existing live file DX.PRICE.HISTORY has been enabled to allow direct input of
historical prices. However, records in DX.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
Besides, another table DX.BV.PRICE.CHANGE.TODAY has been introduced to hold the id’s of
DX.PRICE.HISTORY records whose values are changed on any given day. Again, this record will be
held will only in the system up until the greatest of the PRICE.DAYS from DX.PARAMETER.
To enable back valuation of derivatives positions, a new event type BV has been introduced.
Whenever, there happens back valuation, new DX.TRANSACTION record gets created with id
‘DXBV…’
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
Derivatives
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 has been enhanced to create DX.TRADE (s) on multiple filling of DX.ORDER, at
the average price of different levels at which the order has been filled.
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.
Trade Transfer
Derivatives module is now enhanced to allow 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, few new fields have been added to the applications DX.TRADE, DX.TRANSACTION
and DX.CLOSEOUT. Further, new applications DX.CO.XFER.MANUAL and
DX.CO.EXT.XFER.MANUAL have been introduced on authorization of which DX.CLOSEOUT record
is created to reflect the trade transfers.
Internal Transfers
To run an Internal transfer use application 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.
The positions held will now be between the Transferee and the original counterparty.
External Transfers
In order to perform an external transfer of a transaction use DX.CO.EXT.XFER.MANUAL.
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.
Strike Price Rounding and Creation of New Series for Corporate Actions
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.
The fields ROUNDING and RND.FACTOR take defaults from DX.CONTRACT.MASTER record.
The field NEW.CONT.MNE is the trigger for a new options series to be created and accepts a value of
YES or NO. The generation of a new option series will depend on whether the original contract size of
the option is changed as a result of the corporate action.
• Use OFS to generate a Contract record with the new Contract code, Mnemonic Exchange
code and new Contract size if any, with all other fields defaulted from the original contract
record
DX.ENTITLEMENT
On Authorisation of these records created from the DX.DIARY the individual DX.TRADES 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 where used and specified in the
DX.DIARY.
For this purpose, new field B2B.ACTIVE has been added to the application DX.PARAMETER and
another field B2B.CO.OK has been introduced in DX.CONTRACT.MASTER, to activate the back to
back closeout process on.
• Kick In or Knock In
• Knock Out
• Knock Out With Rebate
• Double Knock Out
• No Touch
• Double No Touch
• One Touch
For this purpose, a new field has been added to DX.TRADE to denote whether the exotic event
deciding the existence of the option has happened or not.
Further, new DX.EVENT.TYPE records have also been added for downstream processing of exotic
options. However, there is no hard coded event type but is created by prefixing XO to the ID of the
corresponding DX.OPTION.TYPE record.
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
DX.XO.CREATE.SEC
To create the underlying SEC.TRADE
DX.XO.FWDCASHPAYOUT
To post accounting entry for settlement on closeout, value maturity date of option adjusted for number
of offset days
DX.XO.INSTANT.CASHPAYOUT
To post accounting entry for settlement on closeout, value closeout date adjusted for number of offset
days
DX.XO.CREATE.FX.KNOCKOUT
To create underlying FX deal in case of knockout options
DX.XO.CREATE.SEC.KNOCKOUT
To create underlying SEC.TRADE in case of knockout options
DX.XO.CREATE.FX.REBATE
To post accounting entry for the rebate amount in case of Knock out options with rebate
Appendices
Accounting Set-up
In order for the application accounting 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:
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.CLASSs 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
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.
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
DX.CONTRACT.CLASS
DX.CONTRACT.CLASS defines groups of contracts for margining and reporting purposes. It also
stores the product category relating to the contract class that is passed through to the accounting suite.
DX.EVENT.TYPE
See main section for details on the set-up of DX.EVENT.TYPE. Please note that event types where
the category field is not used directly should still have a ‘dummy’ category code entered.
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.
Overview
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 Notes
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.
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
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
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.
The SFE publishes an algorithm for the calculation of the value of one of their standard futures
contracts on this instrument. This value will be used as the TEMENOS T24™ internal price. In the
following section, Temenos comments are highlighted, as is this paragraph.
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.
Although the algorithm and parameters required to produce the internal price for this contract are
different from those seen in Example 1, the principle is exactly the same, i.e. the value of the future is
the TEMENOS T24™ internal price for the future, etc.
The formula for calculating the price per A$100 of an Australian Commonwealth Treasury Bond as
supplied by the Reserve Bank of Australia is:
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 I 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:
MV Field Contents
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
Derivatives
MV Field Contents
Number
SEPTEMBER
DECEMBER
MATURITY.DAYS
March, May, July, September, December cycle such that 10 trading months are available
MV Field Contents
Number
AVAIL.MONTHS 10
1 MONTHS.FORWARD OPEN
MATURITY.MONTHS MARCH
MAY
JULY
SEPTEMBER
DECEMBER
MATURITY.DAYS
A Contract can be traded every Monday for 6 consecutive months, then every first Monday in a
January, April, July, October cycle for a 5-year term.
MV Field Contents
Number
AVAIL.MONTHS
1 MONTHS.FORWARD 6
MATURITY.MONTHS ALL
MV Field Contents
Number
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.PRICE records.
The derivatives price application (DX.PRICE) holds a list of “Greek” values required/generated as part
of the option pricing. Delta, Theta, Gamma, Vega and Rho values are available, as well as volatility.
Values are available for both call and put positions.
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.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.PRICE if required
DX.CONTRACT.MASTER
Next the contracts and price sets that use this source should be entered. Within the application
DX.CONTRACT.MASTER field 25.1 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).
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.PRICE.
DX.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).
The build routine extracts information from the following applications and automatically fills the
relevant fields in DX.PRICE.
The user would have to fill in DX.PRICE manually if no routine was in place.
PERIODIC.INTEREST
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 brought 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.
Figure 126 - 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.
Derivatives
Figure 128 - DX.TRADE remember to input the Strategy and note the PRI.LINK
number to link strategies together
8. 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
NOTE input values for Gen Data Code = STOCK, STOCKINDEX, FOREX, or INTEREST
DX.MARGIN.RATES
STOCK 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
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.
Derivatives
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
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).
P.PORT valued.
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.