The present invention relates to electronic trading systems for trading stocks, bonds, futures, options and other financial instruments, and in particular to methods, a computer apparatus, computer readable mediums and computer program products for such systems. Furthermore, the invention relates to graphical user interfaces enabling an operator to create processing chains including algorithm components
During the last decade, almost all the world's exchanges and marketplaces have introduced electronic trading systems. These systems either replace the traditional trading floors or are used as complements to them. Today a large number of exchanges throughout the world utilizes electronic trading to trade stocks, bonds, futures, options and other financial instruments. These electronic exchanges are generally includes three basic components, namely. mainframe computers (host), communication servers, and the exchanges participants computers (client). The host constitutes, so to speak, the heart of the electronic trading system. The hosts operations includes, for example, order-matching, maintaining order books and positions or price information. Participants, e.g. traders, are capable of communicating with the host by means of high speed data lines, high speed communications servers and the Internet. Thus, the traders can participate in the market by means of the clients communicating with the host.
As the competition among exchanges and marketplaces increases, it has become more and more important for the business analysts of the exchanges to be able to change the behaviour of the electronic trading systems. Examples of functionality that needs to be easily changeable are new traded products or new matching rules, i.e. rules defining how, for example, buy and sell orders are matched in order to establish a deal.
The electronic trading systems of the current generation are often delivered with an impressive set of functionality. The behavior can be changed by changing configuration parameters. However, the number of parameters that control the system can become very large, which makes it difficult and time consuming to maintain a system configuration and to test the system.
One major reason for the large number of parameters is that handling of an electronic order is a process made in several steps, where different processing methods can be applied in each step depending on the exchange's business model. Today's systems need to hold a parameter set that can control every combination of different processes in the different steps.
If the exchange system requires an upgrading to include a functionality that is not part of the supported set of functionalities, it is often necessary to deliver a new version of the entire system, since the new code that implements the new functionality need to be linked into the system processes. This entails that the system is subjected to heavy burden in form a computational power during implementation and testing phases. Furthermore, this also leads to long upgrade cycles, where exchange requirements need be analyzed by the software vendor, implemented, the system delivered, installed and thereafter tested and verified by the exchange. This problem will probably increase in extent due to the fact that the number of products traded in electronic trading systems likely will swell in the future the same time as such product become more and more sophisticated and hence more and more complex.
Thus, there is need of improved systems and methods for upgrading such a system with new functionality, i.e. functionality that is not a part of the supported set of functionalities, in an efficient way.
An object of the present invention is to provide improved systems and methods for such a system that can be upgraded with new functionality, i.e. functionality that is not a part of the supported set of functionalities, in a efficient way both regarding to time consumption and labor demand.
Another object of the present invention is to provide improved systems and methods for such a system that can be upgraded with new functionality in an efficient way with respect of computational power consumed during, for example, implementation and testing phases.
These and other objects are achieved according to the present invention by providing a system, methods, a computer apparatus, a computer program, and a computer readable medium having the features defined in the independent claims. Preferred embodiments are defined in the dependent claims.
According to a first aspect of the present invention, there is provided a method for an electronic trading system. The method comprises the steps of: receiving a transaction message including data of a first type at a receiving gateway; obtaining route information comprising instructions regarding at least one algorithm component to be used for processing the message of a plurality of algorithm components; calling the at least one algorithm component included in the route information; processing the message in the at least one component in order to output data of a defined output type of the component.
According to a second aspect of the present invention, there is provided an electronic trading system connected to a memory, in turn, comprising a plurality of algorithm components; and the system is adapted to receive a transaction message including data of a first type; obtain route information related to the transaction message, the route information comprising instructions regarding at least one algorithm component to be used for processing the message; call the at least one algorithm component included in the route information, wherein the message is processed in the at least one component in order to output data of the defined output type of the component; and publish data of the defined output type.
According to third aspect of the present invention, there is provided a computer program product, which when executed on a computer, performs the method according to the first aspect of the present invention.
According to a fourth aspect of the present invention, there is provided a computer readable medium comprising instructions for bringing a computer to perform the method according to the first aspect.
According to a fifth aspect of the present invention, there is provided a method for enabling an operator of a computer apparatus connected with a trading system to create processing chains for processing transaction messages by means of objects displayed on a display screen. The method comprises the steps of displaying objects on a display screen, the objects including objects corresponding to components adapted to process input data of a defined input type and to output data of a defined output type, wherein each component is adapted to define a set of configuration parameters; creating at least one chain of objects corresponding to components in response to operator actions by means of an input device; and performing a validation test of the at least one chain, including checking whether the input of a component complies with the output of a previous object in the chain.
According to further aspects of the present invention, there is provided a computer program product, which when executed on a computer, performs the steps in accordance with the method of the fifth aspect and a computer readable medium comprising instructions for bringing a computer to perform the method of the fifth aspect.
Thus, the invention solves the problem with large number of configuration parameters and the long upgrade cycles by packaging the functionality in components that are dynamically loaded in run-time by the system. Every component defines a small step in the processing of a business transaction, and every component has its own characteristic processing method.
A component is a package of object code that processes input of a particular format according to algorithms controlled by a set of parameters and outputs data in a particular format. The formats are declared by the component.
A system-level configuration specifies a chain of components that handles an incoming transaction. The components are chosen from a library of components and are loaded in run-time. The library can be located on the machine that the component code executes on, or on a remote storage device that can be reached by the machine. The required input parameters and resulting output results for a component are declared in a component interface specification. The input parameter of a chain step must be of the same type as the output type for the previous step.
As realized by the person skilled in the art, the methods of the present invention, as well as preferred embodiments thereof, are suitable to realize as a computer program or a computer readable medium.
These and other advantages with, and aspects of, the present invention will become apparent from the following detailed description and from the accompanying drawings.
In the following description of an embodiment of the invention, reference will be made to the accompanying drawings of which:
In the following there will be discussed preferred embodiments of the methods and system for
With reference first to
Internet is a third communication means enabling traders, using, for example, the clients 12a-12c, can communicate using, for example, high speed data lines connected to the Internet. Hence, trades are allowed to be located anywhere they can establish a connection to the Internet.
The system 10 comprises a receiving gateway 14 arranged to receive incoming messages or transactions, for example, an order to buy a stock at a defined price from the clients 12a-12c. Thereafter, the transactions are sent by the receiving gateway 14 to a business logic module 16 where the transactions are processed in accordance with the logic. The results are, in turn, sent further on to a publisher gateway 18, which publishes the results. The functions and design of the business logic module, as well a the receiving gateway and the publisher gateway, are not described in further detail herein as they are well known to the man skilled within the art.
Turning now to
First, at step 20, a transaction message including data of a first type is received at a receiving gateway. Then, at step 22, information comprising instructions regarding at least one algorithm component to be used for processing the message of a plurality of algorithm components is obtained, i.e. instructions regarding which component to call upon is stored in a configuration file. The components are stored in library that may be located in a memory of the system in which the method, i.e. the code, is executed or as an alternative it may be located on a remote storage means adapted to communicate with the system, for example, via a wireless communication link. The storage means may be a database or another computer apparatus. Every component has an own set of configuration parameters that define how the processing is done in that component.
Thereafter, at step 24, the at least one algorithm component included in the information is called upon. Finally, at step 26, the message is processed in the at least one component in order to output data of a defined output type. To elaborate, the functionality is packaged in components that are dynamically loaded in run-time by the system. Every component defines a small step in the processing of a business transaction, and every component has its own characteristic processing method. A component is a package of object code that processes input of a particular format according to algorithms controlled by a set of parameters and outputs data in a particular format. The formats are declared by the component. A system-level configuration specifies a chain of components that handles an incoming transaction. The components are chosen from a library of components and are loaded in run-time. The library can be located on the machine that the component code executes on, or on a remote storage device that can be reached by the machine. The required input parameters and resulting output results for a component are declared in a component interface specification. The input parameter of a chain step must be of the same type as the output type for the previous step.
With reference now to
An exemplary system according to the invention is shown in
Hereinafter, with reference to
Another exemplary system according to the invention is shown in
An operator, for example an exchange business analysts, of a computer apparatus of a trading system, for example, the system shown in
Turning now to
Referring now to
With reference now to
In addition, the invention makes it possible for the operator to write own components that can replace existing components in the chains, if the delivered library does not contain a particular functionality. As long as the new component accepts the output of the previous step and produces a result of the input type of the next component, the exchange is completely free to implement any new functionality, including defining a new sub-chain of new components.
With reference to
This case is illustrated in
The inter-component communication and callouts are handled by a component engine. The output of a component, although logically passed to the next component, is in reality passed back to the engine which reads the configuration, evaluates callouts and calls a new component based on the result.
Although specific embodiments have been shown and described herein for purposes of illustration and exemplification, it is understood by those of ordinary skill in the art that the specific embodiments shown and described may be substituted for a wide variety of alternative and/or equivalent implementations without departing from the scope of the invention. Those of ordinary skill in the art will readily appreciate that the present invention could be implemented in a wide variety of embodiments, including hardware and software implementations, or combinations thereof. As an example, all functions of the inventive method and the system can be implemented in a server connected to a large number of sending systems and receiving systems. This application is intended to cover any adaptations or variations of the preferred embodiments discussed herein. Consequently, the present invention is defined by the wording of the appended claims and equivalents thereof.