GB2417576A - Algorithmic trading system - Google Patents

Algorithmic trading system Download PDF

Info

Publication number
GB2417576A
GB2417576A GB0417803A GB0417803A GB2417576A GB 2417576 A GB2417576 A GB 2417576A GB 0417803 A GB0417803 A GB 0417803A GB 0417803 A GB0417803 A GB 0417803A GB 2417576 A GB2417576 A GB 2417576A
Authority
GB
United Kingdom
Prior art keywords
trading
algorithmic
algorithm
encoded
system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB0417803A
Other versions
GB0417803D0 (en
Inventor
Wayne Stuart Akers
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LATENTZERO Ltd
Original Assignee
Latentzero Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Latentzero Ltd filed Critical Latentzero Ltd
Priority to GB0417803A priority Critical patent/GB2417576A/en
Publication of GB0417803D0 publication Critical patent/GB0417803D0/en
Priority claimed from US11/202,384 external-priority patent/US20070083456A1/en
Publication of GB2417576A publication Critical patent/GB2417576A/en
Application status is Withdrawn legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Exchange, e.g. stocks, commodities, derivatives or currency exchange

Abstract

An algorithmic trading system in which the trading algorithms 3, the operation of which is variable based on values input by a user of various trading algorithm parameters 2, 9, are encoded and stored within a file structure is described. A method of updating the trading algorithms and trading algorithm parameters is also described.

Description

24 1 7576

ALGORITHMIC TRADING

This invention relates to automated execution algorithms, in particular those used by buy-side trading desks in financial trading situations.

Increasingly, brokers are offering automated execution algorithms ("Algorithmic Trading") to their clients' buy-side trading desks. These algorithms may use large amounts of historical data to aid the prediction of trading patterns, and complex real-time data to assess current trading conditions. For example, stock price correlations between many thousands of stocks need to be re-calculated on a regular basis. The trading algorithms are intended to deliver price benefits and trading efficiencies, combined with different statistical analysis techniques and complex scheduling patterns, to avoid other market participants identifying trading patterns.

There are many possible approaches to algorithmic trading, for example using a "Benchmark" algorithm such as VWAP (Volume Weighted Average Price) (available from CSFB). Each counterparts with which a broker trades will offer and support a different set of algorithms. When requesting an algorithmic trade, buy-side traders have the option of controlling various parameters, such as participation rates, time and pacing controls, start and end times, aggression settings, price thresholds and limits and others.

Algorithmic trading instructions are often passed from the buy-side trader to the counterparts via FIX (Financial Information exchange) and the various algorithm parameters are defined in the FIX custom tags. FIX contains a delimited string of data that is a dedicated communication between brokers (or other sell-side personnel) and buy-side personnel, and is a messaging protocol for the exchange of financial information. FIX comprises a Session layer and an Application layer. The Session layer handles the actual connection between two counterparties, typically an Asset Manager (known as Buy Side) and Investment Bank (known as Sell Side) . The Application layer deals with orders (for example BUY 100 IBM @ 105. 4), executions (used to signal status or a fill, for example, partial fill 50 IBM 105.4), and allocation (once the trade is complete, an allocation to an account). The Application layer also encompasses amendments to orders, corrections to fills, cancellations, etc. Versions 4.0 and 4.2 of FIX are a tag=value message format, for example, 10=5135=Al22=2l55=lBM.Ll102=105.4, with the message structure having a header, body and tail.

Known software applications dealing with algorithmic trading have the FIX destinations for each counterparty/algorithm/parameter combination that a user wishes to use hard coded into the software itself. However, these algorithms are not supported at the trader front end of the system. The main disadvantage of this is that if an additional algorithm is introduced by a counterparts, or required by a user, the entire software system must be updated as there is no means by which the additional algorithms and FIX destinations can be added to existing software. This is time consuming and costly, and results in there being a period of time where required algorithms cannot be used.

There is therefore a need to produce software which enables a trader to indicate for a release, or set of releases, that they wish to trade with a selected counterparts using a specific algorithm, and which can be updated when the algorithms issued by a particular counterparts are changed, or when a new counterparts that the trader wishes to trade with issues an algorithm or set of algorithms. The present invention aims to address that need.

The present invention provides an algorithmic trading system comprising a file structure for storing encoded trading algorithms selectable by a user, each encoded trading algorithm having at least one encoded trading algorithm parameter associated therewith to vary the operation of the algorithm on input of algorithm parameter values, input means to allow a user to select an encoded trading algorithm from the file structure, to input trading information and to enter algorithm parameter values into the system, for the selected encoded trading algorithm, and communication means to allow the trading information and algorithm parameter values to be communicated to a third party in accordance with the selected encoded trading algorithm.

The invention also provides a method of updating the algorithmic data available to an algorithmic trading system, comprising the steps of encoding the algorithmic data, storing the encoded algorithmic data in a file structure, retrieving the algorithmic data from the file structure and uploading it into the algorithmic trading system.

The invention further provides an algorithmic trading method comprising the steps of encoding algorithmic data, selecting an encoded trading algorithm via a user input device, the operation of the encoded trading algorithm being variable based on algorithm parameter values input to at least one algorithm parameter associated with the encoded trading algorithm, storing the algorithmic data in a file structure, selecting an encoded trading algorithm via a user input device accessing the encoded trading algorithm from the user input device, inputting algorithm parameters values for the selected encoded trading algorithm and inputting trading information, and communicating the trading information and algorithm parameter values, in accordance with the algorithm parameters, to a third party.

The invention also provides a computer program product, for updating the algorithmic data available to an algorithmic trading system, wherein the algorithmic data comprises at least one trading algorithm associated with at least one trading algorithm parameter, the operation of the algorithm variable by algorithm parameter values input by a user, having program code stored thereon which when executed on a computer causes the computer to perform the steps of encoding the algorithmic data, storing the encoded algorithmic data in a file structure, retrieving the algorithmic data from the file structure and uploading it into the algorithmic trading system.

The invention yet further provides a computer program product for an algorithmic trading system, having program code stored thereon which when executed on a computer causes the computer to perform the steps of encoding algorithmic data, storing the algorithmic data in a file structure, selecting an encoded trading algorithm via a user input device, accessing the encoded trading algorithm and at least one associated encoded algorithm parameter, the operation of the algorithm variable by algorithm parameter values input by a user, from the user input device, inputting algorithm parameter values for the selected encoded trading algorithm and inputting trading information, and communicating the trading information and algorithm parameter values, in accordance with the algorithm parameters, to a third party.

The invention yet further provides a system for arranging algorithms to create an algorithmic trading system, the system comprising input means for receiving trading algorithms, the operation of each trading algorithm variable by one or more trading algorithm parameters, input means for receiving one or more trading algorithm parameters, and a file structure, arranged to store the trading algorithms and trading algorithm parameters in a manner accessible to a user to create an algorithmic trading system.

Preferably, the algorithmic data comprises at least one trading algorithm and/or at least one trading algorithm parameter.

Preferably, the algorithmic data is encoded in XML.

Preferably, the file structure is a database.

The invention gives the advantages that encoding the algorithmic data and storing it in a file structure enables the algorithmic data to be updated, for example, by the addition or removal of trading algorithms or trading algorithm parameters, without the need to alter the software or structure of the algorithmic trading system.

In addition, the encoding and storing of the algorithm data enables the user to name, store and retrieve, under a user-defined file name, frequently used algorithm parameters or algorithm parameter values.

Embodiments of the invention will now be described by way of example only, and with reference to the accompanying drawings in which: Figure 1 is a screen shot of a release screen; Figure 2 is an example of an algorithm trading window; Figure 3 is an illustration of a tool tip used in connection with the screen of Figure 1; Figure 4 shows a custom algorithm maintenance menu; Figure 5 illustrates saving an algorithm with a public/private visibility; Figure 6 shows a delete prompt; Figure 7 is a screen show of a multi release edit window; Figure 8 shows a warning prompt for invalid algorithm selection; Figure 9 is a screenshot of a trade screen; Figure 10 is a screen shot of an algorithm permission tree; and Figure 11 is a screen show of a custom algorithm permissions tree.

As discussed above, brokers and banks are constantly introducing new trading algorithms with different parameters. In order to accommodate such changes, embodiments of the present invention provide a dynamic software system for algorithmic trading, in contrast to the static, hard- coded systems currently available. This is achieved by implementing the trading algorithms in a generic manner in three stages: 1. For each trading algorithm, the parameters available for that trading algorithm, the associated trading algorithm parameters and the format is defined in an XML (extensible Markup Language) schema, and stored in a database. The XML syntax describing the trading algorithms also includes the graphical user interface (GUI) control to be used for each parameter associated with the trading algorithm and their available values.

2. The screen display used by the trader to choose the trading algorithm and set the parameters is soft coded to read the XML schema and display the appropriate trading algorithms and parameters dependent upon the selected counterparts.

3. The FIX custom tags used to set the various parameters for each counterparts and trading algorithm are configured in the data transformation XML that is used by adapter software that allows the FIX data to be transmitted.

FIX data may be written using FIXML, an XML version of FIX. The tag=value structure of the original FIX format is retained, but the use of XML enables a more descriptive structure: <fi x m es sag e > <header><fixversion>4.2<fixversion><header> <body><qty> 1 OO<qty><side>B<side><symbol>l BM. I</symbol></body> </fixmessage> which represents trading of IBM data as on page 1.

The software system may be part of a buy-side trading system, such as that known as Minerva_, provided by LatentZero Limited, of London, England.

The adapter software may be the LatentZero FIX Out Adapter, also provided by LatentZero Limited.

The advantage of coding the trading algorithms into an XML schema, stored in a database and accessed by the trading system, is that only the XML files in the database and the FIX custom tags need to be updated to support new trading algorithms. Although the invention is described in terms of accessing algorithmic data (trading algorithms and algorithm parameters) from a database, it is also possible to store the data in any suitable file structure format. Such a file structure format may be part of the system, remote from the system or networked to the system.

Various features of the invention necessary to support algorithmic trading will now be described.

Releasing Algorithmic Trades When releasing orders to be executed as algorithmic trades, the trading algorithms available for trading are determined by the counterparts. Each counterparts supports a number of trading algorithms and requires a different set of parameters. When making a trading algorithm release, users must select the counterparts, trading algorithm and the parameters associated with the selected trading algorithm. Custom trading algorithms enable traders to store frequently used pre-defined parameter values under custom trading algorithm names. Each trading algorithm will have at least one algorithm parameter associated with it. In order to use the trading algorithm, a user will need to insert algorithm parameter values into the various prompts. Of these parameter values, some will be required (the trade cannot take place without the information) and some will be optional. If the optional values are not provided by the user, the system uses a pre-saved set of default values.

Other trading information must also be provided by the user, such as quantities.

The release screen (the screen display seen by a user which details the sale being made and the options available) is shown in Figure 1. Figure 1, in common with Figures 2, 4, 7, 9, 10 includes generic representations of dealer/broker names.

A counterparty list control 1 includes both standard trading algorithms and custom trading algorithms for each counterparty. Custom trading algorithms are algorithm parameter combinations saved by the user under a specific name for future reuse. Custom trading algorithms are described in more detail below. The counterparty list control 1 in Figure 1 shows that the counterparty "Boston Shaw" offers three types of trading algorithms: "Float", "Tex" and "\/\NAP", and two custom trading algorithms: "My \/\NAP1" and My \ANAP2". The following items are shown in a tree structure under each counterparty: standard trading algorithms supported by the counterparty, and nested under each trading algorithm: custom trading algorithms defined as private by the current user; custom trading algorithms defined as public.

Only trading algorithms defined as valid for the base type and market of the selected order are displayed. These restrictions are specified in the XML trading algorithm definition.

The counterparty control list 1 shows the trading algorithms in alphabetical order. The trading algorithms supported by each counterparty are saved in a table "trading_algorithm". Custom trading algorithms available to each user are stored in a table "trading_algorithm_custom". Both of these tables are described in more detail below.

Figure 1 also shows a release strip 2. If the counterparty selected (via the counterparty list control or using a counterparty walker (not shown)) supports algorithmic trading, the trading algorithm is inserted into the strip in trading algorithm column 3.

If a trading algorithm node was selected in the counterparty list control 1, the trading algorithm is shown in the column 3. The counterparty column 4 will be populated with the counterparty name and the system column 5 will be pre populated with the value corresponding to the FIX version used by the counterparty (for example, FIX4.2). Users are able to change this value from the list of valid systems for the selected counterparty.

If the counterparty node was selected (in the counterparty list control 1 or counterparty walker (not shown)) then the trading algorithm column 3 is blank.

A drop-down combination box lists the trading algorithms for that counterparty as defined for the counterparty list control and in the same order. The combination box also includes a "blank" option to allow a nontrading algorithm release.

If a subsequent release is made to another counterparty that does not support algorithmic trading, the trading algorithm column 3 will still be displayed with the text <disabled>.

In subsequent releases, until a counterparty is selected, the trading algorithm column 3 will be set to blank, with no other option in its combination box.

When a standard trading algorithm is selected in the counterparty list control 1 by the user, default values (already stored or entered into the system) are assigned to the trading algorithm parameters. These default parameters are part of the XML trading algorithm description, stored in the database. If the user selects a custom trading algorithm from the counterparty list control 1, the trading algorithm name appears in the trading algorithm column 3 in the release strip 2, and the parameter values are set to those stored in connection with that particular custom trading algorithm.

The parameters of either standard or custom trading algorithms are editable in the same manner. A clickable button 6, shown as "a triangle" in trading algorithm column 3 in Figure 1 invokes a trading algorithm parameters control. This is shown in more detail in Figure 2.

When the user hovers the cursor over the trading algorithm field for a particular chosen trading algorithm release, a tool tip 7 is visible, as shown in Figure 3. This tool tip 7 shows the parameter names and values associated with that trading algorithm, based on the data entered into the trading algorithm parameters control in Figure 2. The tool tip is represented by a coloured triangle visible in the upper right corner of trading algorithm column 3.

The selected trading algorithm may support different order types, (for example, Limit orders), which are defined in XML for each trading algorithm, and stored in the database. If this is the case, the supported order types available are shown in the condition field 8 in the release strip 2. If the trading algorithm does not support different order types, then the condition field 8, limit 9 and stop 10 fields are blank and noneditable.

It is also possible for the user to select a trading algorithm where there are values already set at the condition and limit fields. If the trading algorithm supports the condition already set, then the condition and limit fields are left unchanged. If the trading algorithm supports different condition types, but does not support the condition currently set, the condition and limit fields are cleared down and are editable (such that a supported condition can be selected). If the trading algorithm selected does not support different order types, the condition and limit fields are cleared down and are non-editable.

Once an algorithmic release is created on the system, users are able to change the value of the trading algorithm from a combination box control.

Valid trading algorithm control values in the combination box control follow the same rules as described in the counterparts list control 1. For example, if the entry in the "System" box is FIX, users can only modify the trading algorithm or its parameters if the selected counterparts supports Cancel/Replacement messages.

This functionality is indicated in the field

"counterparty_params.order_replace supported". If the counterparts does not support these message types, the parameters are read-only fields.

Algorithmic Parameters Control.

Figure 2 shows an example screen shot of the algorithmic parameter control window 11. The example shown is for a \/\NAP trading algorithm.

The title region 12 shows the counterparts name followed by the trading algorithm name. The trading algorithm name is in a drop down combination box that contains the names of all of the trading algorithms supported by the displayed counterparts. If the trading algorithm selected in the combination box is changed by the user, the input parameters and default values displayed in the window will change according to the trading algorithm selected by the user.

The window 11 displays two columns: a parameter name column 13 and a value column 14. The parameter column 13 displays the parameter names relevant for the trading algorithm selected, which are part of the XML definition. The value column 14 shows default values as defined for each trading algorithm. In the case of custom trading algorithms the values column 14 shows the saved parameter values. Users have "save", "save as" and "cancel" options on the parameter input window 11: selecting "save" causes the parameters input into the window to be accepted.

Once the button is pressed, the input process is complete and the window 11 is closed.

Selecting "save as": allows users to save the parameter values entered under a different trading algorithm name.

Selecting "cancel" closes the window once the button is pressed. The process resumes its previous state, as the user has interrupted this particular release.

Custom Trading Algorithms Figure 4 shows a custom trading algorithm maintenance menu 15. This menu may be invoked from the counterparts list control 1 using the right-click control on an existing trading algorithm on the list. A custom trading algorithm has associated with it the options save as, delete and edit, whereas only a save as option is available with standard trading algorithms. A custom trading algorithm comprises a set of algorithm parameters for a particular trading algorithm, saved under a user-defined name in the database, and retrievable from the database.

When users select the save as option, the "Algorithm Trading" window 11, which allows a user to update trading algorithm details within the window is displayed. The user is then prompted to enter the name of a trading algorithm. If the user has permission to create public trading algorithms (those available to any other user) then the "Public" box is clickable to mark the trading algorithm public as shown in Figure 5. If this permission is denied or the "Public" box is not ticked, the window shows the text "Private". The trading algorithm is saved in a table "trading_algorithm_custom".

If a user types a trading algorithm name that already exists under his user ID or under the public domain, the system will inform the user that a trading algorithm with that same name already exists. The system simultaneously prompts the user to enter a different name or cancel an action. A duplicate name situation will arise in either of the following case: If public status = "private" and an entry with the same trading algorithm name already exists in the table "trading_algorithm_custom" for the selected counterparts and current user, or the name already exists as "public" of the same counterparts; if the current user selects the privacy status = "public" then an entry with the same already exist in the table "trading_algorithm_custom" will select a counterparty under any user ID.

When users select the option "delete", the custom trading algorithm from which the maintenance menu was invoked will be deleted. This system will prompt the user for conformational cancellation of the delete action. An example of a window used for this prompt is shown in Figure 6. If the user confirms the action, the entry corresponding to the user ID, counterparts in trading algorithm will be deleted from the "trading_algorithm custom" table.

When a user selects the option "edit", the "algorithm trading" window will be presented with pre-populated parameter values as to find and accustomed trading algorithm selected. The options available are those of the "algorithm trading" window, as illustrated in figure 5, except the "save as" option. An "OK" option result from the saving of the trading algorithm details.

Multi-release Editor Traders can use the multi-release screen shown in Figure 7 to release a group of orders as a list order. An example of such screen is shown in Figure 7. The multi-release screen incorporates the trading algorithms in the counterparts list control 1 and also shows an "trading algorithm" column that contains details of the trading algorithms available. Both "copy/paste" and "copy to all" functionalities are available on this column, as well as on the other columns visible on the multi-release screen. If these two functions are used when copying from the counterparts column on a multi- release strip/grid containing trading algorithms, the trading algorithms, if any, in the destination rows are set to blank. However when copying from a trading algorithm on a multi-release strip/grid, data is only copied into rows in the grid where the counterparts is the same, and the trading algorithm restrictions are valid. If this is not the case, the destination trading algorithm is set to blank.

However when releasing orders as a Market List, normal orders and trading algorithms cannot be mixed, as there is only one FIX destination. The dropdown trading algorithm combination box in the multi-release strip/grid can only contain options that are valid on the entire set of orders displayed. If a user selects a trading algorithm from the counterparts list control 1 it is not valid for all the orders in the list, the user will receive a warning message and will be prompted to make a different selection or to reduce the list. This would be the situation where some of the orders do not pass all of the trading algorithm restrictions. An example of the window display to the user in this situation is shown in Figure 8.

Release Reviewer The release reviewer as shown in Figure 9, is used to review details of the existing releases, and also contains a column relating to the trading algorithm available.

Algorithm Permissions The user permission for each trading algorithm is managed from a central administration application. This may be an existing application such as the LZ Administration application, as available from LatentZero Limited. A trading algorithms node appears in the user permissions pane on the user maintenance screen. This node may be placed in alphabetical order in the users permissions tree structure. The node has two sub-nodes; "trading algorithms" and "customization".

The first sub-node trading algorithm in its expanded state will show the list of all available standard trading algorithms nested under their corresponding counterparts names and the current permissions of the selected user. A trading algorithm is selected when its corresponding tick box is ticked. The second sub-node customization, has two sections detailing the current user permissions accustom trading algorithms; public and private. Both public and private sections have permission options for the actions: create, amend and delete. Figure 10 illustrates the trading algorithm trading permissions tree.

The window is split into four panes: a user list 16 a trading algorithm list 17, a trading desk list 18 and a user information input panel 19. In order to use the administration application, and access the trading algorithm permissions, the user must provide ID and a password. The trading algorithm permission tree is used for managing both standard and customer trading algorithms.

A custom trading algorithm administration tree structure is shown in Figure 11. This tree structure comprises the list of all available trading algorithms nested under their corresponding counterparts names (from the data table trading-algorithm table, discussed below) and associated custom trading algorithms (from the data table trading-algorithm-custom table as discussed below).

If a user right-clicks on a trading algorithm, a context menu 20 is displayed, containing 3 options, as appropriate for the selected user permission of the selected trading algorithm: "create Like/Edit": authorised users are able to create new custom trading algorithms from an existing standard or custom trading algorithm. The right had side of the screen displays the trading algorithm parameter control 21.

Users can update parameter values (except for the trading algorithm name) and click the "save" button on the administration tree structure.

"Delete": if permissions allow, the selected trading algorithm may be deleted.

Restrictions The order flow within the system is restricted. Each trading algorithm is only available on specified base types and markets, which are defined in the trading algorithm XML description. Traders can only save standard trading algorithms with other names in order to create custom trading algorithm for their own use. However standard trading algorithms cannot be deleted, changed or renamed. A standard trading algorithm is one defined by the offering counterparts. Traders can delete, change or rename the trading algorithms defined by them, but not those defined by other traders. This is a case even if the trading algorithms are defined aspublic domain. The "copy/paste" and "copy to all" option at the multi-release screen is not available for the field trading algorithm. In market lists, a change of counterparts in a release element sets the trading algorithm value to blank, wherever the trading algorithm field is set to a different value. A change of counterparty/trading algorithm in one of the components from the counterparts list control 1 will result in the same pair being assigned to the remaining list components. Market lists also cannot mix trading algorithms and non trading algorithms.

The data table "trading-algorithm" table contains details linking counterparties with supported trading algorithms, as shown in Table 1 below:

_

I_ _ -_

counterparty_id VarChar(16) Foreign key Algorithms VarChar(4000) XML description of trading algorithms supported by counterparts

Table 1

An example of this table populated for two counterparties is shown in Table 2: 1' Broker1 <IzCounterparty na = _ <parameters> <parameter name="Risk" dsplayname="Risk" type="char" format="{LOW, MEDIUM, HIGH}" default="MEDIUM" control="combo box"/> <parameter name="Expiry" displayname="Expiry" type="time" format="UTC" control="date/time control"/> </parameters> <restrictions> <markets> market name="*"/> </markets> <basetypes> <!-- Security --> <basetype id="1"/> <!-Denvatves--> <basetype id="4"/> </basetypes> <conditions> <condition name="M"/> <condition name="L"/> </conditions> </restrictions> <algorithm name="MTC_VWAP" value="]"> <parameters> <parameter name="Risk" required="Y"/> <parameter name="Expiry " required="Y"/> </parameters> <exclusions> <markets> <market name="UK"/> </markets> </exclusions> </algorithm <algorithm name="PRICE" value="2"> <parameters> <parameter name="Riskr" required="Y"/> </parameters> </algorithm> </IzCounterparty> __.

Broker 2 <IzCounterparty name="Broker2 "> Parameters <parameter name="start" displayname="Start time" type="time" format= UTC" default="current" control="date/time"/> <parameter name="end" displayname="End time" type="time" format="UTC" default="16:00" control="date/time"> <dependency minervaattribute="N" name="Starttime" condition="="/> </parameter </parameters <restrictions <markets <market name="US"/> </markets <conditions <condition name="M"/> <condition name="L"/> </conditions <basetypes <!-- Secunty --> <basetype d="1"/> </basetypes </restrictions <algorithm name="VWAP" value="]"> <parameters <parameter name="start" required="N"/> <parameter name="end" required="N"/> </parameters </algorithm <algorithm name="Automatic5" value="2"> <parameters <parameter name="aggr" required="N"/> </parameters </algorithm <algorithm name="aggress" value="3"> <parameters/> </algorithm </IzCounterparty Broker 3 <IzCounterparty name="Broker3 "> <parameters> <parameter name="1" displayname="Start" type="time" fo rm at=" UTC" defa u lt="bla n k" co ntro l ="date/time control"/> <parameter name="2" displayname="End" type="time" format="UTC" default="blank" control="date/time control"> <dependency minervaattribute="N" name="Starttime" condition="≥"/> </parameter> <parameter name="3" displayname="Pct " type="int" format="blank,O..99" default="blank" control="combo box" step="5"/> <parameter name="4" displayname=''Style''type="char" format="1..9" default="5" control="combo box" step="1"/> <parameter name="5" displayname="Min Pct Volume" type="int" format="blank, 0..25" default="blank" control="combo box"/> </parameters> <restrictions> <markets> <market name="US"/> <market name="UK"/> </markets> <conditions> <condition name="M"/> <condition name="L"/> </conditions> <basetypes> <!-- Secunty --> <basetype id="1"/> </basetypes> </restrictions> <algorithm name="TWAP" value="3"> <parameters> <parameter name="Starttime" required="N"/> <parameter name="Endtime" required="N"/> <parameter name="Pct " required=''N''/> </parameters> </algorithm>

Table 2

The data table "trading_algorithm_custom" table contains details of the user that created the trading algorithm, the values assigned for each parameter and the privacy status assigned:

-

I_ 87,7;R ;.'', User_id VarChar(10) Composite key Counterparty_id VarChar(16) Composite key Algorithm_name VarChar(20) Composite key Custom name VarChar(20) Name assigned to the custom trading algorithm Privacy_status VarChar( 10) "Public" or "Private" Algorithm_values VarChar(600) XML definition of trading algorithm parameters & values

Table 3

An example of this table populated for two users is shown in Table 4:

_

__

Tinvestor1 SS VWAP _ MyVWAP 1 Private <parameters> <parameter name="Risk Factor" value="MEDIUM"/> <parameter name="Expire Time" value="2004052916300 000/> </parameters> Tinvestor1 SS ARRIVAL Aggressive1 Public <parameters> PRICE <parameter name="Risk Factor" value="HIGH"/> </parameters> Tinvestor2 BS TWAP MyTWAP 1 Private <parameters> <parameter name="Starttime" value="2004052909300 000/> <parameter name="Endtime" value="2004052916150 000/> <parameter name="MaxPctVolume" value="50"/> </parameters>

Table 4

XML Schema The trading algorithm details provided by the sell-side counterparties are defined in the form of a XML schema. As brokers support new trading algorithms, these can be added easily to the schema.

As discussed above, the release table includes a trading algorithm column, which when stored in XML format has the characteristics shown in Table 5 below:

_

_.;_,' _ _

_ __

alga Lithe VarChar(200) Algorithm Example: <algorithm name and name="Vwap" Starttime="090100" parameter Endtime=" 150000" values MaxPctVolume="50"/>

Table 5

The fix adapters pause and insert the trading algorithm parameters into the correct tags in the release table.

Users may wish to set various counterparts parameters differently depending on whether FIX releases are algorithmic or non-algorithmic. In order to enable this an additional Algorithmic column is added to the counterparty_parameters table. !-

algorithmic Char Yl blank Indicates th a parameter relates to trading algorithmic releases

Table 6

A counterparts parameter where Algorithmic="Y" will override a parameter of the same name where Algorithmic=blank.

A new parameter_name, valid only for trading algorithms, is added to this table: Parameter_name:"parameters_amended_supported"; Possible values: "YIN"; Comment: set to "Y" indicates that the counterparty supports trading algorithm parameter amendments.

Algorithmic parameters are shown in Table 7 below: ' ' ' 1. - _ _. By. 3

"tif_values_sup VarChar(1 List of valid TlFs supported on algorithmic ported" 00) Tl F trades separated by commas "order_cancel_r Char YIN Cancel/replace messages eplace_support supported for algorithmic trades ed" "parameters_a Char YIN Whether counterparty supports mendment sup amendments on their algorithm ported" parameters.

"fix_version_id" VarChar(5 Fix protocol Fix protocol version for ) version counterparty (i.e FIX.4.2) "new_order_sin Char YIN I ndication of counterparty gle_supported_f supporting releases by file ile

Table 7

The XML Schema Below is a guide to the Trading algorithms XML schema as listed in Table 4.

Counterparty level definitions: Parameter default values: The "parameters" tag following a counterparty name describes all trading algorithm parameters for that counterparty. The "default" tag in the parameters section will define the default values. For instance, default="MEDIUM".

Parameter GUI control: The "control" tag in the parameters section will define the parameter GUI control such as combo box or time control.

Separators used in Format tag: Multiple values will be separated by commas, for instance format="Low, Medium, High". An ellipsis will indicate a range of values, for instance format="1.9".

Dependencies: Certain parameter values may be dependent on other parameters or Minerva order or release attributes, for instance, the parameter "EndTime" must be greater than parameter "StartTime". Dependencies are expressed with 3 different tags grouped under the "dependency" tag: "Minervaattribute": Set to 'Y' indicates a dependency on a Minerva attribute when used in conjunction with the Minerva application available from LatentZero Limited. Set to "N" indicates a dependency on another parameter; "Name": name of the parameter or attribute on which the parameter value is 1 5 dependent; "Condition": expresses the nature of dependency with standard relational operators. Multiple operators will be separated by ";" (e.g. "&It;=" indicates "less than" or "equal to").

Counterparty support restrictions The "restrictions" tag describes combinations of order and release attributes restricting the algorithmic support by any given counterparts. For instance, the example in table 2 indicates that Broker 2 supports trading algorithms only in US and UK markets (<restrictions><markets><market name="US"/><market name="UK"/> </markets>).

There are three types of restrictions defined by the corresponding tag names: Market: specifies instances of orders.market_id where the counterparts offers trading algorithms (e.g. "US") ("*" will mean all markets); Base types: specifies instances of orders. Minerva_instrument_type for which the counterparts offers trading algorithms (e.g. "1")("*" will mean all types); Condition: specifies instances of releases.condition for which the counterparts offers trading algorithms (e.g. "M").

Algorithm level definitions Algorithm exclusions The "exclusions" tag describes combinations of order and release attributes for which algorithm level settings will override counterparts level settings. For instance, the example in table 2 indicates that Broker 1 offers the algorithm "MTC_VWAP" in all markets except the UK (<restrictions><markets><market name="*"/></markets></restrictions>;..;<exclusions> <markets><market name="UK"/> </markets></exclusions>).

There are three types of restrictions defined by the corresponding tag names: Market: specifies instances of order.market_id where the counterparts does not offer a specific trading algorithm (e.g. "UK") ("*" will mean all markets); Base types: specifies instances of order. Minerva_instrument_type for which the counterparts does not offer a specific trading algorithm (e.g. "1")("*" will mean all types); Condition: specifies instances of releases.condition for which the counterparts does not offer a specific trading algorithm (e.g. "L").

Required parameters: When parameters are mandatory for a trading algorithm the "required" tag will be set to "Y".

Various other modifications are possible and will occur to those skilled in the art without departing from the scope of the invention, which is defined by the following claims.

Claims (54)

  1. CLAIMS: 1. An algorithmic trading system comprising: a file structure for
    storing encoded trading algorithms selectable by a user, each encoded trading algorithm having at least one encoded trading algorithm parameter associated therewith to vary the operation of the algorithm on input of algorithm parameter values; input means to allow a user to select an encoded trading algorithm from the file structure, to input trading information and to enter algorithm parameter values into the system, for the selected encoded trading algorithm; and communication means to allow the trading information and algorithm parameter values to be communicated to a third party in accordance with the selected encoded trading algorithm.
  2. 2. The algorithmic trading system of claim 1, wherein the file structure is a database.
  3. 3. The algorithmic trading system of claim 1 or 2, wherein the input means comprises at least one of a keyboard, mouse or tracker ball.
  4. 4. The algorithmic trading system of claim 1, 2, or 3, wherein the input means further comprises a visual display for displaying the trading information and algorithm parameter values.
  5. 5. The algorithmic trading system of any preceding claim, wherein the communication means is a wireless network.
  6. 6. The algorithmic trading system of any of claims 1 to 4, wherein the communications means is a wired network.
  7. 7. The algorithmic trading system of claim 6, wherein the wired network comprises a telecommunications line.
  8. 8. The algorithmic trading system of any preceding claim, wherein trading information and algorithm parameter values are communicated to a third party using a FIX (financial information exchange) messaging protocol.
  9. 9. The algorithmic trading system of any preceding claim, wherein the file structure is remote from the trading system.
  10. 10. The algorithmic trading system of any preceding claim, wherein the encoded trading algorithm parameters associated with each encoded trading algorithm are stored in the file structure.
  11. 11. The algorithmic trading system of any preceding claim wherein the trading algorithms and trading algorithm parameters are encoded in XML (extensible mark-up language).
  12. 12. The algorithmic trading system of claim 11, wherein the file structure is
    updatable.
  13. 13. The algorithmic trading system of claim 12, wherein the file structure is updated by the addition or removal of trading algorithms.
  14. 14. The algorithmic trading system of claim 12 or 13, wherein the file structure is updated by the addition or removal of trading algorithm parameters.
  15. 15. The algorithmic trading system of any preceding claim, wherein the algorithm parameter values are required values or optional values.
  16. 16. The algorithmic trading system of claim 15, wherein required values and optional values are stored in and retrieved from the file structure.
  17. 17. The algorithmic trading system of claim 16, wherein the required values are allocated a user-defined file name.
  18. 18. The algorithmic trading system of claim 16 or 17, wherein the optional values are allocated a user-defined file name.
  19. 19. The algorithmic trading system of any of claims 16, 17 or 18, wherein the algorithm parameters are publicly available.
  20. 20. The algorithmic trading system of any of claims 16, 17 or 18, wherein the algorithm parameters can only be accessed by a registered user.
  21. 21. The algorithmic trading system of any of claims 15 to 20, wherein when an optional value is not input by the user, a default value is provided.
  22. 22. The algorithmic trading system of claim 21, wherein the default values are stored in and retrieved from the file structure.
  23. 23. A method of updating the algorithmic data available to an algorithmic trading system, comprising the steps of: encoding the algorithmic data; storing the encoded algorithmic data in a file structure; retrieving the algorithmic data from the file structure and uploading it into the algorithmic trading system.
  24. 24. The method of claim 23, wherein the algorithmic data comprises at least one trading algorithm.
  25. 25. The method of claim 23 or 24, wherein the algorithmic data comprises at least one trading algorithm parameter.
  26. 26. The method of any of claims 23 to 25, wherein the file structure is a database.
  27. 27. The method of any of claims 23 to 26, wherein the algorithmic data is encoded in XML (extensible mark-up language).
  28. 28. An algorithmic trading method comprising the steps of: encoding algorithmic data; storing the algorithmic data in a file structure; selecting an encoded trading algorithm via a user input device, the operation of the encoded trading algorithm being variable based on algorithm parameter values input to at least one algorithm parameter associated with the encoded trading algorithm; accessing the encoded trading algorithm from the user input device; inputting algorithm parameter values for the selected encoded trading algorithm and inputting trading information; and communicating the trading information and algorithm parameter values, in accordance with the algorithm parameters, to a third party.
  29. 29. The algorithmic trading method of claim 28, wherein the algorithmic data comprises at least one trading algorithm and at least one algorithm parameter.
  30. 30. The algorithmic trading method of claim 29, wherein the file structure is a database.
  31. 31. The algorithmic trading method of claim 29 or 30, wherein inputting data comprises typing on a keyboard, or selecting data using a mouse or a tracker ball.
  32. 32. The algorithmic trading method of any of claims 29, 30, or 31, further comprising displaying the algorithm parameters values for the selected encoded trading algorithm and the trading information.
  33. 33. The algorithmic trading method of any of claims 29 to 32, wherein communicating to the third party takes place via a wireless network.
  34. 34. The algorithmic trading method of any of claims 29 to 32, wherein communicating to the third party takes place via a wired network.
  35. 35. The algorithmic trading method of claim 34, wherein the wired network comprises a telecommunications line.
  36. 36. The algorithmic trading method of any of claims 29 to 35, wherein communicating trading information and algorithm parameter values to the third party is via a FIX (financial information exchange) messaging protocol.
  37. 37. The algorithmic trading method of any of claims 29 to 36, further comprising accessing the algorithmic data remotely from the trading system.
  38. 38. The algorithmic trading method of any of claims 28 to 37, further comprising associating at least one encoded trading algorithm parameter with each encoded trading algorithm.
  39. 39. The algorithmic trading method of any of any of claims 28 to 38, wherein the step of encoding the algorithmic data comprises encoding the algorithmic data in XML (extensible mark-up language).
  40. 40. The algorithmic trading method of claim 39, further comprising updating the algorithmic data with additional algorithmic data.
  41. 41. The algorithmic trading method of claim 40, wherein the file structure is updated by the addition or removal of trading algorithms.
  42. 42. The algorithmic trading method of claim 40 or 41, wherein the file structure is updated by the addition or removal trading algorithm parameters.
  43. 43. The algorithmic trading method of claim 39, wherein the algorithm parameter values are required values or optional values.
  44. 44. The algorithmic trading method of claim 43, further comprising storing the required values and optional values in and retrieving the required and optional values from the file structure.
  45. 45. The algorithmic trading method of claim 44, further comprising allocating the required values a user defined file name.
  46. 46. The algorithmic trading method of claim 44 or 45, further comprising allocating the optional values a user defined file name.
  47. 47. The algorithmic trading method of any of claims 43 to 46, further comprising enabling the algorithm parameters to be publicly available.
  48. 48. The algorithmic trading method of any of claims 43 to 46, further comprising enabling the algorithm parameters to be available only to a registered user.
  49. 49. The algorithmic trading method of any of claims 43, 44, 45 or 46, further comprising providing a default parameter value when no optional value is input by the user.
  50. 50. The algorithmic trading method of claim 49, further comprising storing and retrieving the default values from the file structure.
  51. 51. A computer program product, for updating the algorithmic data available to an algorithmic trading system, wherein the algorithmic data comprises at least one trading algorithm associated with at least one trading algorithm parameter, the operation of the algorithm variable by algorithm parameter values input by a user, having program code stored thereon which when executed on a computer causes the computer to perform the steps of: encoding the algorithmic data; storing the encoded algorithmic data in a file structure; retrieving the algorithmic data from the file structure and uploading it into the algorithmic trading system.
  52. 52. A computer program product for an algorithmic trading system, having program code stored thereon which when executed on a computer causes the computer to perform the steps of: encoding algorithmic data; storing the algorithmic data in a file structure; selecting an encoded trading algorithm via a user input device; accessing the encoded trading algorithm and at least one associated encoded algorithm parameter, the operation of the algorithm variable by algorithm parameter values input by a user, from the user input device; inputting algorithm parameter values for the selected encoded trading algorithm and inputting trading information; and communicating the trading information and algorithm parameter values, in accordance with the algorithm parameters, to a third party.
  53. 53. The computer program product of claim 52, wherein the algorithmic data comprises at least one trading algorithm and at least one algorithm parameter.
  54. 54. A system for arranging algorithms to create an algorithmic trading system, the system comprising: input means for receiving trading algorithms, the operation of each trading algorithm variable by one or more trading algorithm parameters; input means for receiving one or more trading algorithm parameters; and a file structure, arranged to store the trading algorithms and trading algorithm parameters in a manner accessible to a user to create an algorithmic trading system.
GB0417803A 2004-08-10 2004-08-10 Algorithmic trading system Withdrawn GB2417576A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0417803A GB2417576A (en) 2004-08-10 2004-08-10 Algorithmic trading system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0417803A GB2417576A (en) 2004-08-10 2004-08-10 Algorithmic trading system
US11/202,384 US20070083456A1 (en) 2004-08-10 2005-08-10 Algorithmic trading

Publications (2)

Publication Number Publication Date
GB0417803D0 GB0417803D0 (en) 2004-09-15
GB2417576A true GB2417576A (en) 2006-03-01

Family

ID=33017256

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0417803A Withdrawn GB2417576A (en) 2004-08-10 2004-08-10 Algorithmic trading system

Country Status (1)

Country Link
GB (1) GB2417576A (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007146989A2 (en) * 2006-06-15 2007-12-21 Susquehanna International Group, Llp A method and system for trading tangible and intangible goods
US7814000B2 (en) 2000-06-01 2010-10-12 Pipeline Financial Group, Inc. Method for directing and executing certified trading interests
US7870059B2 (en) 2006-04-28 2011-01-11 Pipeline Financial Group, Inc. Display of selected items in visual context in algorithmic trading engine
US7882014B2 (en) 2006-04-28 2011-02-01 Pipeline Financial Group, Inc. Display of market impact in algorithmic trading engine
US7882013B2 (en) 2006-04-28 2011-02-01 Pipeline Financial Group, Inc. Drag-and-drop graphical control interface for algorithmic trading engine
US7882015B2 (en) 2007-07-26 2011-02-01 Pipeline Financial Group, Inc. Block trading system and method providing price improvement to aggressive orders
US7904376B2 (en) 2006-04-28 2011-03-08 Pipeline Financial Group, Inc. Rich graphical control interface for algorithmic trading engine
US7908203B2 (en) 2006-04-28 2011-03-15 Pipeline Financial Group, Inc. Coordination of algorithms in algorithmic trading engine
US8103579B1 (en) 2007-07-26 2012-01-24 Pipeline Financial Group, Inc. Systems and methods regarding targeted dissemination
US8744952B2 (en) 2007-10-05 2014-06-03 Itg Software Solutions, Inc. Method and apparatus for improved electronic trading
EP3166066A1 (en) * 2015-11-06 2017-05-10 Hugo Alexandre Espada Dos Santos A community-based alert platform for retail traders and investors on a global scale

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001037166A2 (en) * 1999-11-18 2001-05-25 Abovetrade.Com Systems for generating custom trade strategies and methods therefor
WO2003036540A1 (en) * 2001-09-21 2003-05-01 The Ashton Technology Group, Inc. Volume weighted average price system and method
US20030233306A1 (en) * 2002-06-12 2003-12-18 Itg, Inc. System and method for estimating and optimizing transaction costs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001037166A2 (en) * 1999-11-18 2001-05-25 Abovetrade.Com Systems for generating custom trade strategies and methods therefor
WO2003036540A1 (en) * 2001-09-21 2003-05-01 The Ashton Technology Group, Inc. Volume weighted average price system and method
US20030233306A1 (en) * 2002-06-12 2003-12-18 Itg, Inc. System and method for estimating and optimizing transaction costs

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041628B2 (en) 2000-06-01 2011-10-18 Pipeline Financial Group, Inc. Method for directing and executing certified trading interests
US7908205B2 (en) 2000-06-01 2011-03-15 Pipeline Financial Group, Inc. Method for directing and executing certified trading interests
US7814000B2 (en) 2000-06-01 2010-10-12 Pipeline Financial Group, Inc. Method for directing and executing certified trading interests
US7865425B2 (en) 2000-06-01 2011-01-04 Pipeline Financial Group, Inc. Method for directing and executing certified trading interests
US7908206B2 (en) 2000-06-01 2011-03-15 Pipeline Financial Group, Inc. Method for directing and executing certified trading interests
US7877318B2 (en) 2000-06-01 2011-01-25 Pipeline Financial Group, Inc. Method for directing and executing certified trading interests
US7917425B2 (en) 2000-06-01 2011-03-29 Pipeline Financial Group, Inc. Method for directing and executing certified trading interests
US7882014B2 (en) 2006-04-28 2011-02-01 Pipeline Financial Group, Inc. Display of market impact in algorithmic trading engine
US7882013B2 (en) 2006-04-28 2011-02-01 Pipeline Financial Group, Inc. Drag-and-drop graphical control interface for algorithmic trading engine
US7904376B2 (en) 2006-04-28 2011-03-08 Pipeline Financial Group, Inc. Rich graphical control interface for algorithmic trading engine
US7870059B2 (en) 2006-04-28 2011-01-11 Pipeline Financial Group, Inc. Display of selected items in visual context in algorithmic trading engine
US7908203B2 (en) 2006-04-28 2011-03-15 Pipeline Financial Group, Inc. Coordination of algorithms in algorithmic trading engine
WO2007146989A3 (en) * 2006-06-15 2008-05-22 Kai Huang A method and system for trading tangible and intangible goods
WO2007146989A2 (en) * 2006-06-15 2007-12-21 Susquehanna International Group, Llp A method and system for trading tangible and intangible goods
US7882015B2 (en) 2007-07-26 2011-02-01 Pipeline Financial Group, Inc. Block trading system and method providing price improvement to aggressive orders
US8103579B1 (en) 2007-07-26 2012-01-24 Pipeline Financial Group, Inc. Systems and methods regarding targeted dissemination
US8165954B2 (en) 2007-07-26 2012-04-24 Pipeline Financial Group, Inc. Block trading system and method providing price improvement to aggressive orders
US8744952B2 (en) 2007-10-05 2014-06-03 Itg Software Solutions, Inc. Method and apparatus for improved electronic trading
EP3166066A1 (en) * 2015-11-06 2017-05-10 Hugo Alexandre Espada Dos Santos A community-based alert platform for retail traders and investors on a global scale

Also Published As

Publication number Publication date
GB0417803D0 (en) 2004-09-15

Similar Documents

Publication Publication Date Title
US6175837B1 (en) Object-relational mapping toll that processes views
US7107268B1 (en) Centralized system and method for managing enterprise operations
US7213199B2 (en) Spreadsheet user-interface for an enterprise planning system having multi-dimensional data store
US7401094B1 (en) Automated generation of dynamic data entry user interface for relational database management systems
US6430542B1 (en) Computer-implemented program for financial planning and advice system
US5664182A (en) Persistent storage of report objects
EP1603034B1 (en) Method and apparatus for generating user interfaces based upon automation with full flexibility
US7730410B2 (en) System and method for customizing form elements in a form building application
US6687713B2 (en) Budget information, analysis, and projection system and method
US6621505B1 (en) Dynamic process-based enterprise computing system and method
CN1918589B (en) To promote collaborative editing and responsibility through a virtual document architecture automatic publishing system
US20050235061A1 (en) Opportunity tracking information system
US9727845B2 (en) System initiated pending state authorization in a benefits administration domain model
US7890396B2 (en) Enhanced system and method for managing financial market information
KR101331268B1 (en) User interface for creating a spreadsheet data summary table
US20050149428A1 (en) Apparatus, method and system for providing an electronic marketplace for trading credit default swaps and other financial instruments, including a trade management service system
Strong et al. 10 potholes in the road to information quality
US20020087441A1 (en) Method and apparatus for managing the allocating of financial transactions into ledger accounts
US7082569B2 (en) Systems and methods providing dynamic spreadsheet functionality
US6101481A (en) Task management system
US7458031B2 (en) System and method for creating customizable nodes in a network diagram
US6678716B1 (en) System and method for managing processes
US6415298B1 (en) Effective dated tree control in a component based-object oriented convergent customer care and billing system
US7720729B2 (en) Systems and methods for facilitating agreement generation and negotiation via an agreement modeling system
US7882008B2 (en) Apparatus, methods and articles of manufacture for computerized transaction execution and processing

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)