Patent Publication Number: US-2011066537-A1

Title: Implied volume analyzer

Description:
RELATED APPLICATIONS 
     This application is related to U.S. patent application Ser. No. 10/700,406, filed Nov. 4, 2003, which is incorporated herein by reference in its entirety. 
     This application is related to U.S. patent application Ser. No. 11/368,966, filed Mar. 6, 2006, which is a division of U.S. patent application Ser. No. 09/971,172, filed on Oct. 4, 2001, all of which are incorporated herein by reference in its entirety. 
     This application is related to U.S. patent application Ser. No. 12/032,379, filed Feb. 15, 2008, which is incorporated herein by reference in its entirety. 
     This application is related to U.S. patent application Ser. No. 12/350,788, filed Jan. 8, 2009, which is incorporated herein by reference in its entirety. 
     This application is related to U.S. patent application Ser. No. [Attorney/Docket 4672-733], filed Sep. 11, 2009, which is incorporated herein by reference in its entirety. 
     This application is related to U.S. patent application Ser. No. [Attorney/Docket 4672-734], filed on ______, which is incorporated herein by reference in its entirety. 
     This application is related to U.S. patent application Ser. No. [Attorney/Docket 4672-737], filed on ______, which is incorporated herein by reference in its entirety. 
     This application is related to U.S. patent application Ser. No. [Attorney/Docket 4672-738], filed ______, which is incorporated herein by reference in its entirety. 
    
    
     BACKGROUND 
     Electronic trading systems allow entry of a bid or offer for a particular tradable item, which in futures trading is referred to as a contract. The simplest possible futures contract is the outright contract defined by a product and a delivery period. It is also possible to define contracts that are combinations of simpler contracts. For example, the spread contract is defined as the simultaneous purchase and sale of two tradable items, such as futures contracts for different months, different commodities, or different grades of the same commodity. The bid and offer components of a spread are termed the bid leg and the offer leg respectively. 
     Electronic trading systems accept bids and offers in the form of orders, also referred to as real orders because they consist of data entered by traders either directly or by computing devices under their control. Real orders may be entered for any tradable item in the system. Implied orders, unlike real orders, are generated by the system on the behalf of traders who have entered real orders, generally with the purpose of increasing overall market liquidity. For example, an implied spread may be derived from two real outrights. Trading systems create the “derived” or “implied” order and display the market that results from the creation of the implied order as a market that may be traded against. If a trader enters an order to trade against this implied market, then the newly entered order and the real orders that were used to derive the implied market are executed as matched trades. 
     Implied orders may be calculated from straightforward combinations of orders in outright contracts and orders in combination contracts such as spreads. However, implied orders can also be calculated using orders from more complex combination contracts such as strips, butterfly spreads, condor spreads, multi-leg crack spreads, straddles, and strangles. In general, a combination contract, also referred to as a strategy, can consist of any number of buy and sell legs for other contracts. Any number of real orders for outrights and strategies can in principle be combined to form an implied order. 
     The possible combinations of real orders that can form implied orders may be grouped into patterns according to the types of contracts that appear in the combination. For example, the generic combination of any two outrights implying a spread is a pattern. The generic combination of two outrights and a spread implying a spread is also a pattern. The number of specific combinations of contracts associated with each pattern depends on the number of contract types in the pattern and the number of contracts of that type that exist in the trading system. 
     Implied orders frequently have better prices than the corresponding real orders in the same contract. This can occur when two or more traders incrementally improve their order prices in hope of attracting a trade, since combining the small improvements from two or more real orders can result in a big improvement in their combination. In general, advertising implied orders at better prices will encourage traders to enter the opposing orders to trade with them. The more combinations that the match engine can calculate, the greater this encouragement will be and the more the owners of the trading system will benefit from increased transaction volume. 
     However, as the number of advertised orders increases, so does the time required to calculate and publish them as market data. Trading systems do not have an efficient method of identifying all possible or best possible implied markets, nor do they have a reproducible and quantitative means of identifying which patterns would be likely to result in trades. Trading systems only a few simple implied patterns are calculated and then only for a small number of heavily traded contracts. Identifying the most profitable of the longer and more complex patterns through implied volume analysis can bring additional revenue to the owners of the system. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates one embodiment of a trading network; 
         FIG. 2  illustrates one embodiment of a match engine module; 
         FIG. 3  illustrates a volume analyzer; 
         FIG. 4  illustrates one embodiment of a volume analyzer module coupled with a match engine module, market data module, and external market data server; 
         FIG. 5  illustrates one embodiment of a group of available implied patterns; 
         FIG. 6  illustrates one embodiment of a method for outputting available implied patterns; 
         FIG. 7  illustrates one embodiment of a method for identifying available implied patterns; 
         FIG. 8  illustrates another embodiment of a method for identifying available implied patterns; 
         FIG. 9  illustrates one embodiment of a trading network including a volume analyzer and visualize; 
         FIG. 10  illustrates one embodiment of market data; 
         FIG. 11  illustrates one embodiment of an output representation of an available implied pattern; and 
         FIG. 12   a  and  FIG. 12   b  show windows displayed by a visualizer for implied spreads between Minneapolis Hard Red Spring Wheat MWE and Chicago Board of Trade (CBOT) Wheat ZW. 
     
    
    
     DETAILED DESCRIPTION 
     The present embodiments relate to implied volume analysis. Implied volume analysis relates to identifying implied markets in available implied patterns. As used herein, the term “available implied pattern” includes implied patterns that could be made available to traders. In other words, one or more outright orders and/or implied orders have been identified such that the implied pattern could be calculated and made available to a trader. Available implied patterns are implied patterns that have not been calculated. 
     In one embodiment, an electronic trading system includes a match engine and an implied volume analyzer. The match engine receives outright orders, stores them internally, calculates tradable combinations, and advertises the presence of real and implied orders in the form of market data. When the traders using the system respond to the market data by sending outright orders, these are received by the match engine, which then attempts to match them with previously received orders or combinations thereof The match engine executes the possible trades and communicates the results. The implied volume analyzer may be independent of the match engine, for example, in order to preserve processing cycles or memory. The implied volume analyzer may identify implied markets in available implied patterns. In other words, the implied volume analyzer is operable to calculate implied markets in the implied patterns that have not been calculated by the match engine, for example, based on the market data and received orders. The available implied markets may be fed back into the design of the match engine, such that the match engine may calculate implied markets in these implied patterns in the future. Alternatively, the implied markets that can be calculated for a given set of available implied patterns may be displayed, for example, on a monitor. 
     One benefit of using the implied volume analyzer is that the electronic trading system is now operable to identify, without using the match engine&#39;s processing cycles or memory, implied patterns that are not being calculated by the match engine. This is advantageous because the match engine is able to continue quickly matching orders and the electronic trading system is operable to identify missed opportunities. By identifying the missed opportunities, the exchange may identify areas of potential revenue. 
     In one aspect, a volume analyzer is provided. The volume analyzer includes an input, processor, and output. The input is operable to receive market data and a calculation policy. The processor is coupled with the input. The processor is operable to identify an available implied pattern based on the market data and the calculation policy, the available implied pattern having not been calculated by a match engine. The output is coupled with the processor. The processor is operable to provide the available implied pattern to the output. 
     In another aspect, a method for analyzing implied volumes is provided. The method includes receiving market data and at least one calculation policy; identifying a non-utilized implied pattern based on the market data and the calculation policy, the non-utilized implied pattern having an implied pattern volume that satisfies a volume level; and outputting the non-utilized implied pattern. 
     In yet another aspect, a system is provided. The system includes a bus system operable to transmit and receive market data; a memory operable to store a calculation policy; a volume analyzer coupled with the bus system and memory. The volume analyzer is operable to obtain market data from the bus system and the calculation policy from the memory, identify a non-utilized implied pattern based on the market data and the calculation policy, the non-utilized implied pattern having an implied pattern volume that satisfies a volume level, and output the non-utilized implied pattern to the bus system or memory. 
     In yet another aspect, a device is provided. The device includes means for receiving market data and at least one calculation policy; means for identifying a non-utilized implied pattern based on the market data and the calculation policy, the non-utilized implied pattern having an implied pattern volume that satisfies a volume level; and means for outputting the non-utilized implied pattern. 
       FIG. 1  illustrates one embodiment of a trading network  100  for implementing trading systems and methods. The trading network  100  may include an exchange computer system  110 , one or more computer devices  130 ,  132 ,  134 ,  136 , and  138 , one or more market makers  140 , a radio  150 , and a trade engine  160 . The exchange computer system  110  may be coupled with the computer devices  130 - 138 , the one or more market makers  140 , the radio  150 , and the trade engine  160 . As used herein, the term “coupled with” includes directly connected or indirectly connected through one or more intermediary components. The intermediary components may include networks, hardware, and/or software. 
     All, some, or none of a trading network  100  may be owned, operated, controlled, or managed by one or more exchanges, such as the Chicago Mercantile Exchange or New York Mercantile Exchange. An exchange may be a central financial exchange where traders can trade standardized financial instruments, such as a contract to buy specific quantities of a commodity, at a specified price. The exchange may be a financial and/or commodity derivative exchange, for example. 
     The trading network  100  may be a network or other exchange system for placing trades. In other words, the trading network  100  may be used to place and fill orders for contracts, such as outright contracts and spread contracts. In commodities trading, an outright contract is defined by a product and a delivery period, such as a calendar month. A spread contract is defined as the simultaneous purchase and sale of two independent contracts. Although these contracts could themselves be spread contracts, it is more common for them to be outright contracts that cannot be further decomposed. Spread contracts may be a calendar spread between futures contracts for different months and intercommodity spreads between futures contracts in the same month but for different commodities. The bid component and the offer component of a spread are termed the bid leg and the offer leg. 
     The exchange computer system  110  may be a server, supercomputer, personal computer, central processing system, or other processor that receives and matches orders. The exchange computer system  110  may be owned, managed, controlled, monitored, programmed, sold, or used by an exchange. The exchanges may be a regulated or unregulated exchange or other electronic trading service making use of electronic trading systems. For example, the exchange may include the Chicago Board of Trade (CBOT), the Chicago Mercantile Exchange (CME), the Bolsa de Mercadorias e Futoros in Brazil (BMF), the London International Financial Futures Exchange, the New York Mercantile Exchange (NYMEX), the Kansas City Board of Trade (KCBT), MATIF (in Paris, France), the London Metal Exchange (LME), the Tokyo International Financial Futures Exchange, the Tokyo Commodity Exchange for Industry (TOCOM), the Meff Renta Variable (in Spain), the Dubai Mercantile Exchange (DME), and the Intercontinental Exchange (ICE). 
     Computer devices  130 ,  132 ,  134 ,  136 , and  138  may be personal computers, servers, mobile devices, programmed computing devices, networked computing systems, or other electronic devices that may be used to transmit orders to the electronic trading system  100 . The computer devices  130 ,  132 ,  134 ,  136 , and  138  may include a central processor that controls the overall operation of the computer and a system bus that connects the central processor to one or more conventional components, such as a network card or modem. Each computer device  130 ,  132 ,  134 ,  136 , and  138  may also include a variety of interface units and drives for reading and writing data or files. Depending on the type of computer device, a trader can interact with the computer using an input, such as a keyboard, pointing device, microphone, pen device or other input device. The input may be used for defining a trade. 
     The one or more of the computer devices  130 ,  132 ,  134 ,  136 , and  138  may be used to place an order. The computer devices  130 ,  132 ,  134 ,  136 , and  138  may be personal computers, servers, mobile phones, mobile computers, personal digital assistants, wireless device, other electronic device used for placing an order or receiving market data, or any combination thereof. The computer devices  130 ,  132 ,  134 ,  136 , and  138  may include a central processor that controls the overall operation of the computer and a system bus that connects the central processor to one or more conventional components, such as a network card or modem. The computer devices  130 ,  132 ,  134 ,  136 , and  138  may also include a variety of interface units and drives for reading and writing data or files. Depending on the type of computer device, a user can interact with the computer with a keyboard, pointing device, microphone, pen device or other input device. 
     Computer device  130  is shown directly connected to exchange computer system  110 . Exchange computer system  110  and computer device  130  may be connected via a fiber optic line, such as a T1 line, a common local area network (LAN) or other mechanism for connecting computer devices. Computer device  130  is shown connected to a radio  150 . The user of radio  150  may be a trader or exchange employee. The radio user may transmit orders or other data to a user of computer device  130 . The user of computer device  130  may then transmit the trade or other data to exchange computer system  110 . 
     Computer devices  132  and  134  are coupled to a LAN  102 . LAN  102  may have one or more local area network (LAN) topologies and may use a variety of different protocols, such as Ethernet. Personal computers  132  and  134  may communicate with each other and other computers and devices connected to LAN  102 . Computers and other devices may be connected to LAN  102  via twisted pair wires, coaxial cable, fiber optics or other media. Alternatively, a wireless personal digital assistant device (PDA)  136  may communicate with LAN  102  or the Internet  104  via radio waves. PDA  136  may also communicate with exchange computer system  110  via a conventional wireless hub  106 . As used herein, a PDA includes mobile telephones and other wireless devices that communicate with a network via radio waves. 
     LAN  102  may be connected to the Internet  104 . LAN  102  may include a router to connect LAN  102  to the Internet  104 . Computer device  138  is shown connected directly to the Internet  104 . The connection may be via a modem, digital subscriber line (DSL) line, satellite dish or any other device for connecting a computer device to the Internet. 
     One or more market makers  140  may maintain a market by providing constant bid and offer prices for a derivative or security to exchange computer system  110 . Exchange computer system  110  may also exchange data with other trade engines, such as trade engine  160 . One skilled in the art will appreciate that numerous additional computers and systems may be coupled to exchange computer system  110 . Such computers and systems may include clearing, regulatory and fee systems. 
     The operations of computer devices and systems shown in  FIG. 1  may be controlled by computer-executable instructions stored on computer-readable medium. For example, computer device  132  may include computer-executable instructions for receiving order data from a user and transmitting that order data to exchange computer system  110 . In another example, computer device  134  may include computer-executable instructions for receiving market data from exchange computer system  110  and displaying that data to a user. 
     Numerous additional servers, computers, handheld devices, personal digital assistants, telephones and other devices may also be connected to exchange computer system  110 . Moreover, one skilled in the art will appreciate that the topology shown in  FIG. 1  is merely an example and that the components shown in  FIG. 1  may be connected by numerous alternative topologies. 
     The exchange computer system  110  may receive an order, for example, via the computer devices  130 - 138 , the market makers  140 , and the trade engines  160 . The order may be a real order. Real orders are orders that are entered into the system by traders. The trader provides the appropriate data to the trading system and releases the order into the system as an open order. Real orders may be entered for any tradable item in the system including, but not limited to, futures, options, inter-commodity spreads, intra-commodity spreads, futures strips, and so forth. 
     The exchange computer system  110  may calculate an implied order on the behalf of traders who have entered real orders. For example, an implied spread may be derived from two real outrights. The exchange computer system  110  calculates the implied order and displays its price level and available volume in the appropriate contract. This is sometimes referred to as an implied market rather than an implied order on the understanding that a given price level may include more than one actual order at the same price. If a trader enters a real order to trade against the implied order, then the input order and the real orders that are combined to create the implied order all receive fills, with the buys and sells in each leg being reported as matched trades. 
     Implied orders may have better prices than the corresponding real orders in the same contract. This can occur when two or more traders incrementally improve their order prices in hope of attracting a trade. Combining the small improvements from two or more real orders can result in a big improvement in the implied order. Advertising implied orders at better prices will encourage traders to enter the opposing orders to trade with them. The more combinations that the match engine  124  can calculate, the greater this encouragement will be and the more the exchange will benefit from increased transaction volume. However, as the number of advertised orders increases, so does the time required to calculate and publish them as market data. The match engine may implement a calculation policy that limits the calculation of implied markets or a publication policy that limits the publication of implied markets that have been calculated. An example of a technique for defining implicable contracts and the calculation of implied markets can be found in U.S. patent application Ser. No. 12/032,379, which is incorporated herein by reference in its entirety. An example of a technique for calculating implied orders subject to a calculation policy or publication policy is given in U.S. patent application Ser. No. 12/350,788, which is incorporated herein in its entirety. 
     Exchange computer system  110  may be implemented with one or more mainframes, servers, desktops, or other computers. The exchange computer system  110  may include or have access to one or more databases, such as a user database  112  that includes data identifying traders and other users of exchange computer system  110 . Data may include user names and passwords. An account data module  114  may process account data that may be used during trades. A trade database  116  may be included to store data identifying trades and descriptions of trades. In particular, a trade database may store data identifying the time that a trade took place and the contract price. An order book module  118  may be included to compute or otherwise determine current bid and offer prices. A risk management module  120  may be included to compute and determine a user&#39;s risk utilization in relation to the user&#39;s defined risk thresholds. An order processing module  122  may be included to decompose delta based and bulk order types. A match engine module  124  is included to match bid and offer prices. Match engine module  124  may be implemented with software that executes one or more algorithms for matching bids and offers. A market data module  126  may be included to collect market data and prepare the data for transmission to users. The implied volume analyzer  128  may identify available implied patterns, which were not calculated by the match engine  124 , for example, based on market data provided from the match engine module  124  and/or the market data module  126 . As used herein, the term “based on” may include as a function of, using, or depending on. 
       FIG. 2  illustrates one embodiment of the match engine module  124 . Electronic trading systems in major exchanges are typically implemented with distributed architectures, with the order matching function being performed by a specialized component referred to as the match engine module  124  (hereinafter, match engine  124 ). Although  FIG. 1  is simplified to show only one match engine  124 , the electronic trading system  110  may have one or more match engines  124 . Each match engine  124  is a specialized order matching component that receives orders, stores them internally, calculates tradable combinations and advertises the availability of real and implied orders in the form of market data. When the traders using the system respond to the market data by sending additional orders, these are received by the match engine  124 , which then attempts to match them with previously received orders or combinations thereof The match engine  124  executes the possible trades and communicates the results. 
     The operations of the match engine  124  may be performed in more than one part of the trading network  100  or in related systems. For example, the calculation of implied orders may be done by traders at their trading stations in search of arbitrage opportunities between trading networks or match engines. It is also possible to perform these calculations outside a trading network for the evaluation of possible trading strategies, for instruction, regulation or in the solution of other problems where trading is used as a model. 
     Implication is a liquidity spreading technique, which is typically, but not necessarily, implemented in a sub-component of the match engine  124  called the implicator  204 . Implication makes use of orders in spread contracts to spread liquidity amongst outright contracts, a technique discussed in more detail below. The match engine  124  may have a layered architecture. The match engine  124  communicates with other components using a message bus  201 . Incoming messages are translated by an adaptation layer  202  into events that can be processed by a match engine core  203 , sometimes referred to simply as the core. The output messages from the core  203  are translated by the adaptation layer  202  back into messages that can be transmitted to other parts of the trading system using the message bus  201 . The implicator  204  may be program code that calculates implied orders. Although this example shows the implicator  204  as part of the match engine  124  in an electronic trading system, the implicator  204  may be used in any system where implied orders need to be calculated. An example of such a system is the client software used by a trader to receive market data and search for arbitrage opportunities on multiple electronic trading systems. 
     The implicator  204  operates on a group of tradable instruments referred to as an implication group. In an implementation for futures trading, an implication group consists of outright contracts and combination contracts that can trade with each other. An outright contract is defined by a product and a delivery period. A combination contract is defined by two or more outright contracts which are referred to as legs. The simplest of these combination contracts is the calendar spread, which is a contract to buy a product in one delivery period and sell it in another. Another simple combination contract is the intercommodity spread, which is a contract to buy one product in a delivery period and sell another product in the same delivery period. The simplest possible implication group consists of two outrights and the spread between them. It is understood that implication groups may be of arbitrary size and that combination contracts may be defined in terms of other combination contracts so long as all of the required legs are present in the implication group. It is understood that the concepts of outright and combination are applicable to a wide range of tradable instruments. It is understood that the product code given without a specific delivery month is a convenient shorthand for all of the contracts in that product or for an arbitrary contract used as an example, depending on the context. It is understood that the year may be omitted if the context makes it clear that a month-of-the-year is being used in the example rather that a specific date. 
     The match engine core  203  and/or the implicator  204  may be implemented in a programming language such as Java or C++ that allows multiple threads of execution and that a program with multiple threads may be executed on a computing system with multiple central processing units (CPU). In such an implementation, if the program is correctly designed, the threads will execute in parallel and the time taken to execute all of the threads can be as short as the time taken by the single longest thread. If there are more threads than CPUs, then the execution time will depend on how many threads must be executed sequentially on each CPU. In  FIG. 2 , it is contemplated that the core  203  will be implemented in such a language and that the calculation of implied orders by the implicator  204  will be accelerated by performing many independent calculations in parallel on separate threads. 
     When there are different trading units, currencies or other factors affecting the price, the adaptation layer  202  may associate external trading system prices in units like barrels and gallons with machine prices in scaled units that are internal to the Match Engine core  203  and common to all the contracts in the implication group. When ratio spreads are used to connect contracts with different volume units or size specifications, the adaptation layer  202  may also associate external quantities with internal scaled units that are also internal to the match engine core  203  and common to all the contracts in the implication group. 
       FIG. 3  illustrates one embodiment of the volume analyzer  128 . The volume analyzer  128  may include an input  310 , processor  320 , memory  330 , and output  340 . Additional, different, or fewer components may be provided in the volume analyzer  128 . For example, the display  360  may be a part of the volume analyzer  128 . Alternatively, the display  360  may be in communication with but independent of the volume analyzer  128 . 
     The processor  320  may be coupled with the input  310 , memory  330 , and/or output  340 . The volume analyzer  128  may be operable to receive market data and one or more match engine calculation policies, identify an available implied pattern based on the market data and the one or more match engine calculation policies, and output the available implied pattern. 
     In one embodiment, the volume analyzer  128  is integrated into the exchange computer system  110 , for example, sharing processor  320  with one, some, or all of the modules of the exchange computer system  110 . In an alternative embodiment, the volume analyzer  128  may operate independently of one, some, or all of the modules of the exchange computer system  110 . For example, the volume analyzer  128  may operate on a personal computer and the other modules may operate on a central server. 
     The input  310  may be a user input, network interface, external storage, or other input device for providing data to the volume analyzer  128 . For example, the input  310  may be a mouse, keyboard, track ball, touch screen, joystick, touch pad, buttons, knobs, sliders, combinations thereof, or other now known or later developed user input device. The user input may operate as part of a user interface. For example, one or more buttons may be displayed on a display. The user input is used to control a pointer for selection and activation of the functions associated with the buttons. Alternatively, hard coded or fixed buttons may be used. As another example, the input  310  is a hard-wired or wireless network interface. A universal asynchronous receiver/transmitter (UART), a parallel digital interface, a software interface, Ethernet, or any combination of known or later developed software and hardware interfaces may be used. The network interface may be linked to various types of networks, including a local area network (LAN), a wide area network (WAN), an intranet, a virtual private network (VPN), and the Internet. 
     The input  310  may be an interface to receive data. The data may be market data. As shown in  FIG. 4 , the volume analyzer module  128  may be operable to receive market data from the match engine  124 , the market data module  126 , and an external market data server  410 . The volume analyzer  128  may receive market data from the match engine  124  and/or market data module  126  via an internal bus  420  and from the external market data server  410  via an external bus  430 . The match engine  124  and/or market data module  126  may be operable to transmit market data relating to a trading session supported by the exchange computer system  110 . In other words, the market data may be internal market data. The external market data server  410  may operate in conjunction with or independently of an external exchange system. The external exchange system may be operated, managed, controlled, or owned by the same or a different Exchange as the Exchange operating, managing, controlling, or owning the exchange computer system  110 . For example, in one embodiment, the external market data server  410  may be operated by the New York Mercantile Exchange and the exchange computer system  110  may be operated by the Chicago Mercantile Exchange. The external bus  430  may be used to import market data from the New York Mercantile Exchange. The internal bus  420  and external bus  430  may be secured in order to prevent unauthorized use of the market data. The internal bus  420  and external bus  430  may be the same bus or different buses. 
     Referring again to  FIG. 3 , the input  310  may be an interface to receive one or more match engine calculation policies. A match engine calculation policy may be a set of one or more rules, guidelines, or instructions that determines the implied patterns that will be or have been calculated by the match engine  124  or which might be calculated at some future time based on the outcome of a feasibility study, data analysis or similar process. A match engine calculation policy may be defined by the exchange system to maximize profits, for example, by providing a fast matching system. As a result, the one or more match engine calculation policies may determine a subset of all the possible implied patterns that could be calculated. The subset may be defined by the exchange. 
     The input  310  may be an interface to receive one or more calculation policies that determine a universe of possible implied patterns, also referred to as an available calculation policy because it will be used to determine the implied patterns that are available in principle but not actually calculated by a given match engine. The available calculation policy may be a set of one or more rules, guidelines, algorithms, or instructions that determines a group of available implied patterns for a given set of market data. As shown in  FIG. 5 , the universe of possible implied patterns  500  may include implied patterns calculated by the match engine  124  and available implied patterns. The group of universe of possible implied patterns  500  may be all, some, or none of the implied patterns available based on the market data. In other words, the universe of possible implied patterns  500  may be the entire group of implied patterns that could be calculated based on the market data. 
     The processor  320  is operable to determine the available implied patterns as a function of a universe of possible implied patterns  500  and identifying the non-calculated implied patterns  540 ,  550 ,  560 . Identifying the non-calculated implied patterns  540 ,  550 ,  560  may include recognizing and removing, discarding, ignoring, or not using the match engine calculated implied patterns  510 ,  520 ,  530 . Recognizing the calculated implied patterns  510 ,  520 ,  530  may include processing market data using the one or more calculation policies to determine the implied patterns that the match engine  124  calculated. The calculated implied patterns  510 ,  520 ,  530  may be compared to the universe of possible implied patterns  500  to determine which of the implied patterns in the universe  500  are calculated implied patterns and determine which of the implied patterns in the universe  500  of non-calculated implied patterns. The non-calculated implied patterns  540 ,  550 ,  560  may be referred to as available implied patterns  570 . 
     The available implied patterns  570  may be missed opportunities for the Exchange. In other words, the available implied patterns  570  are implied patterns that were not calculated by the match engine  124 ; and thus, were not made available to traders. As a result, an outright order may not have been matched as quickly as it could have been or not matched at all. Additionally, in the event that implied markets in the available implied patterns  570  had been published, a trader may have placed an additional order or bid at a contract price and this would have resulted in additional commission fees for the Exchange. 
     The processor  320  may transmit the available implied patterns  570  via the output  340  or may transmit the existence of implied markets in one or more of these patterns. The output  340  may be an interface to a network  350  that is coupled with the match engine  124  and/or a display  360 . In one embodiment, the network  350  may include the internal bus  420  and/or external bus  430 . In another embodiment, the network  350  may include a communication network, such as a local area network, wireless network, or other network or channel for transmitting data. The network  350  may utilize the Internet, for example, using the Internet Protocol/Transmission Control Protocol. Other communication protocols may be used. 
     In one embodiment, the available implied patterns  570  may be transmitted to the match engine  124 . The design of the match engine  124  may be based on available implied patterns  570  or on implied markets within these patterns. In other words, the design of the match engine  124  may be adjusted to begin calculating the available implied patterns  570  and making the available implied patterns  570  available to traders. Alternatively, the match engine  124  may be adjusted to begin calculating specific implied markets that occur within one or more implied patterns 
     In another embodiment, the available implied patterns  570  or the volume available for trading in specific implied markets within these patterns may be displayed on a display  360 . The display  360  is a cathode ray tube (CRT) device, liquid crystal display (LCD), plasma, projector, monitor, printer, or other output device for showing data. The display  360  is operable to display an image. The image may be an image of one or more implied markets or available implied patterns  570 . The image may include text, graphics, video, or other representations of the one or more available implied patterns  570 . For example, in one embodiment, the image includes a representation of an implied pattern. The representation may include one or more tradable products, traces connecting the tradable products (e.g., the traces may represent spreads or other combination contracts), the price (e.g., $/contract), the time that the implied contract was available for trading (e.g., milliseconds), the volume of the implied pattern (e.g., in lots), or any combination thereof. Other representations may be used. 
     The processor  320  has any suitable architecture, such as a general processor, central processing unit, digital signal processor, application specific integrated circuit, field programmable gate array, digital circuit, analog circuit, combinations thereof, or any other now known or later developed device for processing data. Likewise, processing strategies may include multiprocessing, multitasking, parallel processing, and the like. A program may be uploaded to, and executed by, the processor  320 . The processor  320  implements the program alone or includes multiple processors in a network or system for parallel or sequential processing. 
     The processor  320  operates pursuant to instructions. The instructions, available implied patterns, one or more match engine calculated implied patterns, and one or more calculation policies, one or more available implied pattern calculation policies, or other data may be stored in the memory  330 . The memory  330  may be computer-readable storage media or other memories, such as a cache, buffer, RAM, removable media, hard drive or other computer readable storage media. Computer readable storage media include various types of volatile and nonvolatile storage media. The functions, acts or tasks illustrated in the figures or described herein are executed in response to one or more sets of instructions stored in or on computer readable storage media. The functions, acts or tasks are independent of the particular type of instructions set, storage media, processor or processing strategy and may be performed by software, hardware, integrated circuits, firmware, micro code and the like, operating alone or in combination. 
       FIG. 6  illustrates one embodiment of a method  600  for identifying available implied patterns. The method  600  may include obtaining market data  610 , identifying available implied patterns  620 , and outputting available implied patterns  630 . The method  600  may include additional, different, or fewer acts. The acts may be performed in the order shown or a different order. 
     In act  610 , volume analyzer obtains market data. The market data may be received via the internal bus  420  or the external bus  430 . In one example, the market data is received from a match engine  124  that publishes market data. The match engine  124  may stream the market data to the volume analyzer  128  in real-time. In another example, market data is stored and delivered to the volume analyzer  128  after storage. The market data may include data about one or more outright orders or implied orders, such as calculated implied patterns  510 ,  520 ,  530 . Additionally or alternatively, the market data may include data about matches performed by the match engine  124 . In act  620 , the volume analyzer  128  identifies available implied patterns. The available implied patterns may be one or more implied patterns that were not calculated by the match engine  124 . 
       FIG. 7  illustrates one embodiment of a method that may be performed for act  620 . In act  710 , the volume analyzer  128  may obtain calculated implied patterns  510 ,  520 ,  530 . The volume analyzer  128  may obtain the calculated implied patterns  510 ,  520 ,  530  by using one or more calculation policies used by the match engine  124 . The one or more calculation policies may be obtained, for example, received or read, from the match engine or a database. The market data, for example, obtained in act  610 , may be processed with the one or more calculation policies to determine the calculated implied patterns  510 ,  520 ,  530 . In act  720 , the volume analyzer  128  may obtain a group of possible available implied patterns. Obtaining the group of available implied patterns may include calculating, for example, using one or more available calculation policies, all, some, or none of the implied patterns that are available based on the received market data. In act  730 , the volume analyzer  128  may remove the calculated implied patterns  510 ,  520 ,  530  from the group of available implied patterns. Removing the calculated implied patterns  510 ,  520 ,  530  may include deleting, discarding, not using, separating, or a combination thereof. The volume analyzer  128  may compare the group of available implied patterns to the calculated implied patterns  510 ,  520 ,  530  to determine the non-calculated implied patterns. The non-calculated implied patterns may be referred to as the available implied patterns. The acts shown in  FIG. 7  may be performed in the order shown or a different order. For example, act  710  may be performed after act  720 . 
       FIG. 8  illustrates another embodiment of a method that may be performed to identify available implied patterns. In act  810 , the volume analyzer  128  may obtain one or more available implied pattern algorithms. The algorithm may be stored in memory. The algorithm may be a data analysis algorithm. The algorithm may be an algorithm for analyzing market data and determining one, some, or all of the implied patterns available in the market data. In act  820 , the volume analyzer  128  may process the available implied pattern algorithm to identify one, some, or all of the implied patterns available in the market data. As the market data changes, the algorithm may identify new available implied patterns. The available implied pattern algorithm may be used to distinguish available implied patterns, which were not calculated by the match engine  124 , from those implied patterns that were calculated by the match engine  124 . 
     In act  630 , as shown in  FIG. 6 , the volume analyzer  128  may output available implied patterns and their associated properties, such as the volume available in implied markets calculated according to the pattern, either individually, as an aggregate totals or subtotals or some combination thereof. Outputting the available implied patterns may include transmitting the available implied patterns and their properties to the match engine  124 , displaying the available implied patterns and their properties on a display, storing the available implied patterns and their properties in memory, or a combination thereof. The match engine may be designed, based on the available implied patterns and their properties identified by the volume analyzer  128 , to compute implied markets according to these patterns and to make these implied markets available to traders. 
       FIG. 9  illustrates one embodiment of an implied volume analyzer  128  as it might be deployed as a component in the exchange computer system  110  of  FIG. 1 . The implied volume analyzer  128  may include a collector/analyzer  901 , a prototype development module  902 , and a visualizer  903 . The visualizer  903  may include one or more application programs. Additional, different, or fewer components may be provided. The components may be part of the same or different processing machines. 
     The collector/analyzer  901  may receive market data. The market data may be received as a recorded stream  904 , for example, from an internal or external match engine. The recorded stream may be a stream of market data that is being published in real-time or at a delayed rate. The market data may be received as FIX/FAST market data  905 , for example, from a market data module. The market data may be received in an internal format  906  as it is output by the match engine module. Receiving market data may include collecting, gathering, or requesting the market data. The collector/analyzer  901  may include one or more event translators for converting market data in one of the preceding formats into data that can be used by its methods of implication. The collector/analyzer  901  outputs data representing available implied patterns or other data of interest in the form of event messages  907 , for example using the Java Management Extensions (JMX) message format. These event messages are received by the prototype development module  902  and the visualizer  903 . The collector/analyzer  901  may record its event messages in a files  908  for later analysis, for example to play back a trading session outside of normal trading hours. The collector/analyzer  901  may also record data in log files  909 . 
       FIG. 10  illustrates one embodiment of receiving and displaying events at a visualizer  1000  in a graphical user interface. The events may be oil cluster arbitrage opportunities and the contracts involved may be outrights and spreads in ten different products (e.g., CL, RB, HO, BZ, QE, LR, LU, LH, RE, and REB) and 26 delivery months. It is understood that  FIG. 10  shows a window implemented with techniques familiar to those of skill in the art and that elements of the display such as the rectangle  1001  representing outright contract CLQ9 may be selected, repositioned on the display, receive changed properties through a menu and so forth. The events that the visualizer  1000  uses to create its display are referred to as the output representation of the collector/analyzer. 
     The output representation may include a description of the available implied pattern or associated data. The description may be a textual description, a graphical description, a combination thereof, or other description.  FIG. 11  illustrates one embodiment of an output representation as it is displayed by the visualizer  1000 . As shown in  FIG. 11 , each contract has a graphical representation. The graphical representation is an arrow (e.g., solid line=sell; dotted line=buy). The arrows connect two different contracts that could be bought and sold. Each contract includes a textual description  1111   a - e.  The textual descriptions may include the cost, time of identification, or size. 
     Referring back to  FIG. 9 , the prototype development module is operable to calculate implied markets using algorithms of potential interest to the designers of the match engine or the operators of the computer exchange system. The prototype development module may also be used to investigate other aspects of the market data or other recorded data streams so that appropriate data analysis code can be deployed to the collector/analyzer  901  where it can be executed at greater speed or with greater convenience. Additionally, the prototype development module may provide data to a local visualizer  910  or create animated GIF files  911  so that alternative visualizations of the output representation can be discussed with users before creating more robust visualization code that can be deployed to visualizers. 
     The visualizer  1000  may be a display that is operable to display the output representation. The visualizer  1000  may be operable to run a script (e.g., computer program executable on a computer) to continually receive available implied patterns. It is possible to define visualizers for any type of trading system data where observation in real time by human observers can provide useful insights. For example,  FIG. 12   a  and  FIG. 12   b  show windows displayed by a visualizer  1000  for implied spreads between Minneapolis Hard Red Spring Wheat MWE and Chicago Board of Trade (CBOT) Wheat ZW. The window  1201  shows the products and delivery months involved in the analysis and window  1202  shows a plot of the implied buy and sell prices for the MWEK0-ZWK0 (May 2010) spread. The spreads had not yet been implemented in the trading system and observation of the price volatility and the size of the bid/ask spread provided the operators of the trading system  100  with useful information on how the spreads might ultimately behave. 
     Each visualizer  1000  or part of a visualizer may be implemented as a separate Java application. Referring back to  FIG. 9 , an analyst may have a collection of Java applications, each of which may provide a different view of events from one or more collector/analyzers. Those of skill in the art will appreciate that Java applications may be deployed in the form of runnable Java archive (JAR) files that a Java Management Extensions (JMX) client can be configured to receive events of a specific type from a specific collector and that more than one JMX client can subscribe to the same event stream. The user of a visualizer  1000  may have more than one computer available for running applications and the tasks of visualization may be distributed amongst these computers in such a way that the viewing experience is helpful and not fatiguing to the human observer. 
     Various improvements described herein may be used together or separately. Any form of data mining or searching may be used. Although illustrative embodiments have been described herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various other changes and modifications may be affected therein by one skilled in the art without departing from the scope or spirit of the invention.