Abstract:
In automated exchange system, a matching unit is supplemented with a calculation unit and a global memory accessible by both the calculation unit and the matching unit. This computer architecture makes it possible to perform some of the calculations related to the volume and/or prices of the baits needed in the matching to be performed in advance. The matching process uses the values resulting from the pre-calculation when needed, and since no or few calculations are done in the matching unit, the process of matching combination contracts can be performed at a higher rate, thereby significantly improving the performance of the matching process. The provision of one or several calculation units makes it possible to perform very complex calculations since many calculations need not be performed in real time.

Description:
PRIORITY APPLICATION 
     This application is a continuation application claiming priority from U.S. application Ser. No. 10/171,510, filed Jun. 14, 2002, the entire contents of which are hereby incorporated by reference. 
    
    
     TECHNICAL FIELD 
     The technology relates to an automated trading exchange system, and in particular, to an automated trading exchange designed to execute matching of combinations of financial instruments. 
     BACKGROUND 
     In many electronic exchange systems today it is possible to trade so called combination orders. A combination order is an order implying the simultaneous trade of two or more contracts. The combination contract for which the orders are given can be set up as a separate instrument and be traded as such or the order is entered as a combination order into two or more instruments without a specific name for the combination order. 
     In derivative exchanges combination orders are usually called things as straddle, strangle, bull or bear spread etc. However, in a system trading cash instruments, e.g. bonds, stocks etc, combination orders usually do not have any special names as in the derivative exchanges. 
     The reason why combination orders exist is that a strategy can be entered via the combination order and the electronic exchange guarantees that all parts of a complex transaction is executed if a deal is closed. The different parts (sub-contracts) of a combination are sometime termed legs and this term will be used hereinafter. 
     As an example, assume that a combination order is entered in two instruments where as a first part of the order, contract A, is to be sold and as a second part of the order, contract B, is to be bought. The system will then guarantee that the legs A and B, i.e. the selling of contract A and buying of contract B, will be executed at the same time. 
     Combination contracts are today set up with natural numbers as ratios. Thus if size one of A is sold then one, two, three, . . . is to be bought of B. The most common ratio between legs in a combination contract is one to one ratios. Meaning that if one contract of A is sold one contract of B is bought. 
     If the ratio is one to one, the price of the combination order is the price of contract A minus price of contract B. Thus, if the contract B costs more than the contract A the price of the combination will be positive since the order in the combination will result in a cash outflow. 
     Furthermore, the input of a combination order in an automated exchange system usually generates so called baits or derived orders. Baits are orders in the outright market of the legs comprised in the standard combination set at prices such that the combination order as a whole will match the prices of the legs in the outright market. This bait generation is made in order to increase the liquidity in the outright instruments as well as for the combination contract. 
     The derived orders are in a conventional automated system generated by the matching process as a result from a combination order. As simple example, assume that the combination order is to buy one contract A and sell one contract B. Assume further that there is an existing order in the outright market to sell one contract A at a particular price. However, there is no order to buy one contract B at a price that would match the price of the combination order. In this case an order to sell one contract B could be generated in the outright market. Thus, to continue the example, assume a trader who wants to buy the combination Buy_A_Sell_B for a price of 2 at volume 50. The combination order implies that the trader is willing to pay 2 more for each contract bought of A than sold of B. Assume further that there exists a sell order in the market for A at price 100 and volume 25. In this case the submission of the combination order can result in the generation of a bait (derived order) to sell 25 B at the price of 98. If someone enters into the trade against the bait, a simulations trade will occur in A at the price 100 for the volume up to 25. The reason why the bait is generated at the volume of 25 is that this is the only volume that can be guaranteed to be executed. Thus, no additional volume should be generated as a bait even though the order in the combination has a volume of 50. 
     The ratios between the buy and sell orders in a combination contract are in a conventional exchange always natural numbers and that is a big limitation. The reason for this is described below. A natural number limitation is usually not a major problem when strategies of options or equities are to be traded. However, if trades are to be done in bonds or similar financial contracts, between different products, hedge options with futures or the underling stock, index and similar types of contracts, the ratios are to be calculated by some formula in order to provide maximum benefit. 
     For example, if an option is to be hedged with its underlying financial instrument. Then the volume of the underlying instrument should be hedged by the delta value of the option in order to minimize the risk involved, or worded differently optimize the effect of hedging operation. In the case when a bond is traded against another bond the hedge ratio may be calculated to be duration neutral. The duration of the bond is often considered to be the risk of the bond. In these cases the ratio between the legs in the combination contact traded will not be a natural number. 
     As a further example, assume a switch of bond C to bond D by selling bond C and buying bond D. The volume of bond C is given by the sell order to be 10. The volume of bond D is then calculated to be (volume order)*(duration of bond C)/(duration of bond D). This volume is almost by certainty a non-natural number. At first glance this transaction can seem to be straight forward, but since the price of the bond is determined by the duration of the bond, the duration has to be calculated dynamically depending on the price in the outright market of the bond. To calculate the duration of both bonds in the combination the price of one of the bonds has to be known and also the price of the combination before the volume of both bonds can be calculated. The price of the combination may be set in a price difference, the price of the combination is fixed even though the price of the legs change, as in the normal standard combination explained above. It may also be priced as a yield difference between the two or by some other standard. 
     Regardless of the pricing mechanism used, the ratio of the volumes cannot be set as natural numbers. The same holds for the trading of covered options as described above where the delta value is dependent on the price of the option as well as the price of the underlying instrument. 
     Thus, there are many combination orders where the ratios between the legs in the combination are not natural numbers. These include covered options, future basis trades, switches of bonds etc., where the weight and/or the price is derived by some formula. 
     In an automated exchange system a major bottleneck is the matching unit, where all matching takes place. The calculations of any ratios different from natural numbers result in a very high load on the computer processor used. Therefore, no existing system makes such calculations. 
     A conventional way of increasing the processing power in a matching unit is to partition the execution into two or several partitions each operating on a different set of data. For example one partition may operate on data for a first type of financial instruments whereas another partition operates on data for a second type of financial instruments. 
     However, such a solution will not work if the matching unit is to match combination orders and generate derived orders because different legs of the order may be processed in different partitions. This is because the matching process calculates the prices as well as the volumes of the derived orders. Hence, it is not possible to have combinations of instruments belonging to two different partitions, because a simultaneous execution of all legs cannot be guarantied. It is therefore not possible in existing automated exchanges to add any advanced calculations for bait generation, since that will make the matching process very slow. 
     SUMMARY 
     It is an object to provide a method and a system wherein the trading of combination is able to use formulas to derive the volume and/or the price and thereby reduce the execution risk for the party entering into such a transaction. 
     It is a further object to provide a method and a system whereby combination orders involving non-natural numbers can be executed without significantly increasing the load on the computer processor used in the matching. 
     It is yet another object to provide a computer architecture designed to cope with the real-time constraints of order matching in an automated exchange and which at the same time can provide data requiring complex calculations. In particular complex calculations related to matching of combination orders, and derived orders generated as a result of such combination orders. 
     These objects and others are obtained in a system and a method as set out in the appended claims. 
     It is crucial for an electronic system to have an efficient and fast matching process since that is usually one of the bottlenecks of an electronic trading system. 
     A single matching unit is supplemented with a calculation unit and a global memory accessible by both the calculation unit and the matching unit. Such a computer architecture makes it possible to perform some of the calculations related to the volume and/or prices of the baits needed in the matching to be performed in advance, and store the generated values in a global memory. The matching process is able to use the values resulting from the pre-calculation when needed, and since no or few calculations are done in one of the most critical parts of the system, i.e., the matching unit, the process of matching combination contracts can be performed at a much higher rate. As a result, the performance of the matching process is significantly increased. The provision of one or several calculation units makes it possible to perform even very complex calculations since most calculations need not be performed in real time. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a general view of an example automated exchange system. 
         FIG. 2  is a block diagram illustrating parts used in the matching process of the system shown in  FIG. 1 . 
         FIG. 3  is a flow chart illustrating example process steps carried out when matching combination orders. 
         FIG. 4  is a flow chart illustrating further example steps carried out in an example matching unit. 
     
    
    
     DETAILED DESCRIPTION 
     In  FIG. 1 , a general view of an example automated trading exchange system is shown. The system comprises a number of remote terminals  10  all connected to a central computer server  12  comprising a matching unit  13  including a computer processor, and an order book (memory)  14  associated therewith. The central computer server  12  is loaded with suitable software, such as the CLICK TM software sold by OM Technology AB, Sweden, and forms an automated exchange having all features and functionality of a conventional automated exchange. The remote terminals  10  are designed to send data to and receive data from the central computer server  12 . The terminals  10  are further designed to provide an interface for investors, such as broker firms etc., trading contracts including combination contracts at the automated exchange. The matching of orders input in such a system is performed in the central computer server by the unit  13  designed for this task. 
     In  FIG. 2 , a block diagram illustrating different parts of a central computer server  212  having an example matching unit. The example matching unit comprises two separate entities  213  and  211 . The first entity  213  is a single matching unit provided for matching all orders input to the automated exchange system. The unit also matches derived orders as generated by the system as a result of incoming combination orders. The unit  213  is associated with an order book  214  and receives and outputs information from/to remote terminals (not shown). 
     The second entity  211  is a unit for pre-calculating values likely to be used by the matching unit in the matching process. The calculation unit calculates values that are close to the current market values. Other more complex prediction algorithms and models may also be used taking into account price movements, volatility, etc. Also more than one unit  211  may be provided. 
     The values that are calculated by the unit  211  are stored in a global memory  215 . The memory  215  is accessible both by the matching unit  213  and by the calculation unit  211 . The provision of the global memory comprising values to be used in matching process enables the matching unit to execute the matching fast, since if a value requiring complex calculations is required this value can be fetched directly from the global memory  215 . Hence, the matching unit does not need to use any of its own processing power for performing these calculations. 
     Thus, the matching process of the matching unit can quickly and easily use the values calculated by the calculation unit. If a value is needed in the matching process and it the value does not exist in the global memory  215 , the calculation unit is called upon to generate that value in real time. 
     In a preferred example embodiment, the process within the calculation unit also calculates new values that are likely to be required by the matching unit when this first query is answered in order to minimize the number of queries. This because a query slows down the performance of the matching compared when the value can be found directly in the global memory. 
     The number of values that can be pre-calculated may or may not be configurable. If many values are calculated in advance, the performance will be high, since no or very few additional calculations will be required and passed on as a query to the calculation unit. However, many pre-calculated values will require a large memory. If less pre-calculated values are used the performance will worsen if the volatility in the market is high but the memory usage will be low. Therefore, a trade off between the cost for the memory and the performance level will have to be made. Also, the use of a prediction model tuned for the financial instruments traded at the automated exchange can be used to minimize the number of queries. Also, as stated above, the number of units (partitions) provided for pre-calculations of values may be more than one in order to even further speed up the execution. 
     In  FIG. 3 , a flowchart illustrating example steps carried out in the matching unit as described above in conjunction with  FIG. 2  is shown. The matching unit matches incoming orders as well as derived baits. Thus, first, in a step  301 , a combination order is received by the matching unit  213 . The unit then tries to match the order with a corresponding combination order at the same price and volume, step  303 . 
     If the incoming order cannot be matched with another combination order the incoming order the matching unit tries to match the combination order with single orders in the outright market. For the incoming combination order to be matched with outright orders the outright prices and/or the volumes for the combination order must to be calculated. 
     If the corresponding price and/or volume is given such that their values easily can be calculated the matching unit  213  may calculated them, step  305 . If, on the other hand, the corresponding price and/or volume is given by a formula or is for some other reason determined to place a too high load on the processor associated with the matching unit, the matching unit  213  fetches the values needed for the price and/or volume calculation from the global memory  215 , step  307 . Using the values calculated/fetched in steps  305  and/or  307  the matching unit  213  tries to match the separate legs of the combination order with corresponding orders in the outright market, step  309 . 
     If the incoming combination order cannot be matched in either step  303  or  309 , the order is placed in the order book of the automated exchange, step  311 . When placed in the order book the matching unit  213  will try to create baits/derived orders from the outright order in the legs in the combination, step  313 . 
     The values used by the matching unit  213  may vary depending on what instruments are to be traded. For example, when bonds are to be traded price-to-yield calculations are done by the calculation unit  211  for fast access by the matching unit  213  to calculate the prices of the outright legs. The matching unit also needs the duration of the legs for the calculation of the volumes of the legs. Thus, in this example, both the price-to-yield, yield-to-price and duration calculations will be done in the calculation unit  213 . All these calculations are very computer intensive and thus can not be performed by the matching unit  211  without rendering a bad performance for the automated exchange. In the example of a covered option trade the matching unit  213  needs the delta values of the outright legs to calculate the volumes but no calculations need to be done for the price determination. Thus the values needed by the calculation unit  213  may differ depending on the instruments traded. 
     When there are combination orders placed in the order book and derived orders are calculated and placed in the order book, the matching procedure has to be run again whenever a price in the outright instruments are changed or a new order is entered in the outright market, step  315 . The procedure will be similar to the one described above in steps  301 - 313 , when an incoming combination is executed. 
     In either case if a new order is entered far away from the last or the market price existing in the market the values requested by matching unit  213  from the memory  215  may not exist in the memory  215 . This is described below with reference to  FIG. 4 . 
     In such a case, first the unit  213  tries to access a value in the memory  215 , step  401 . If the access fails the unit  213  sends a query to the calculation unit  211  requesting new values, step  403 . The calculation unit  211  will then interrupt its current calculations and calculate the value(s) requested by the unit  213 , step  405 . Next the calculation unit  211  will add and remove values from the global memory  215 , step  407 . The new values will be based on the current market prices. In this manner, the probability that the matching unit  213  again has to query the calculation unit  211  will be reduced. When the memory is updated the calculation unit  211  notifies the unit  213  which now can read the values from the memory  215 , step  409 . In another preferred embodiment the requested value is first calculated and returned to the matching unit before the memory is updated. 
     The calculation unit may preferably continuously receive market data so that it can pre-calculate the most likely values to be used by the matching unit  213 . The calculated values may, for example, be all the values a standard deviation (volatility) away from the current market values. The matching unit  213  will use the values received from the global memory  215  or the calculation unit  211  to calculate the price and/or volume for the baits. Thus, the matching unit will be likely to do some calculations, but the process intensive calculations as iterative goal seeking, price-to-yield conversion, Black and Scholes option pricing formula etc. are performed by the calculation unit  211 . 
     The example methods and systems described above make it possible to create combinations where the volume and/or the price is/are determined according to a formula instead of being fixed ratios as most electronic trading systems are designed to handle today. The systems and methods can also guarantee that all parts of the combination will be executed since the execution is done in the matching process.