US20140310146A1 - Ratio spreads for contracts of different sizes in implied market trading - Google Patents
Ratio spreads for contracts of different sizes in implied market trading Download PDFInfo
- Publication number
- US20140310146A1 US20140310146A1 US14/304,471 US201414304471A US2014310146A1 US 20140310146 A1 US20140310146 A1 US 20140310146A1 US 201414304471 A US201414304471 A US 201414304471A US 2014310146 A1 US2014310146 A1 US 2014310146A1
- Authority
- US
- United States
- Prior art keywords
- order
- contract
- product
- volume
- orders
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Definitions
- Electronic trading systems offer contracts for trade. Traders place orders for the contracts. Orders that are entered into the electronic trading system by traders are real orders. Real orders may be entered for any tradable contract including, but not limited to, futures, options, inter-commodity spreads, intra-commodity spreads, futures strips, calendar spreads, butterfly spreads, condor spreads, crack spreads, straddles, and strangles. Traders enter the appropriate information, for example, tradable item, bid price, or month, into the electronic trading systems when placing an order.
- Implied orders unlike real orders, are generated by electronic trading systems on behalf of traders who have entered real orders.
- implied orders are computer generated orders derived from real orders.
- an implied spread may be derived from two real orders.
- the system creates the “derived” or “implied” order and provides the implied order as a market that may be traded against. If a trader trades against this implied order, then the real orders that combined to create the implied order and the resulting market are executed as matched trades.
- Implied orders generally increase overall market liquidity.
- the creation of implied orders increases the number of tradable items, which has the potential of attracting additional traders.
- 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.
- Exchanges benefit from increased transaction volume. Transaction volume will increase as the number of matched trade items increases.
- a “small contract” is a contract that has a size, volume, quantity, or other specification that is smaller than the full size contract. Traders of small contracts are limited to trading with other traders of small contracts. It is not possible for small contracts to be exchanged with full size contracts nor for small contracts to participate in trades with combination contracts defined in terms of the full size contract. As a result, the smaller market participants do not benefit fully from the liquidity in the full size contracts.
- FIG. 1 illustrates an exemplary trading network environment
- FIG. 2 illustrates an exemplary match engine architecture where the match engine is connected to other components of the trading network environment by a message bus.
- FIG. 3 illustrates a visual technique used to represent contracts that can be traded by the match engine.
- FIG. 4 illustrates a visual technique used to represent orders to buy and sell the contracts of FIG. 3 when these orders are resting in the match engine and available to trade with incoming orders. Both real and implied orders are shown.
- FIG. 5A and FIG. 5B illustrate the creation of an implied sell order from a real outright and a ratio spread.
- FIG. 6 illustrates one embodiment of a method for performing match engine activities.
- FIG. 7 illustrates one embodiment of a method for performing match engine setup.
- FIG. 8 illustrates one embodiment of a method for matching orders.
- FIG. 9 illustrates the creation of an implied buy spread order in a full size contract from outright contracts in linked small contracts.
- FIG. 10 illustrates how traders' orders for differing quantities in contracts of different lot sizes can be assembled into matched trades when the implied buy spread order of FIG. 7 is traded with an incoming real order.
- FIG. 11 illustrates one embodiment an electronic trading system.
- the present embodiments relate to providing liquidity in a full size contract to a trader of one or more small contracts.
- the size (e.g., volume) of a full size contract is defined by an exchange, government entity, or other organization group.
- Small contracts are contracts that have a size, volume, quantity, or other specification that is smaller than the full size contract.
- the size of the small contract may also be defined by an exchange, government entity, or other organization group.
- the present embodiments relate to generating ratio spreads that may be used in implied market trading.
- a ratio spread includes a spread between two contracts of different sizes.
- ratio spreads are created with tradable volumes being determined by lot points assigned to each linked contract.
- small contract traders may now trade with full size contract traders. This increases overall market liquidity.
- full size contracts may be referred to as a large contracts, full lot contracts, or full size contracts.
- Small contracts may be referred to as mini contracts, proportional contracts, or emini contracts.
- Other names, representations, or identifications may be used.
- a method for matching orders includes receiving one or more real orders via a communication network; generating an implied order, one or more components of the implied order being a ratio spread linking two contracts that have been specified with a common product but with trading units of different sizes; and matching the one or more orders with other real orders or the implied order.
- a match engine for matching orders includes an input, a processor, and an output.
- the input is configured to receive one or more new orders.
- the processor is configured to receive the one or more new orders and generate an implied order.
- One or more components of the implied order may be a ratio spread linking two contracts that have been specified with a common product but with trading units of different sizes.
- the implied order may be generated based on the one or more new orders.
- the output may be configured to receive the implied order from the processor and transmit the implied order to a trade machine used for placing trades.
- a match engine in a third aspect, includes an input configured to receive one or more new orders; a processor configured to receive the one or more new orders and generate an implied order, one or more components of the implied order being a ratio spread linking two contracts that have been specified with a common product but with trading units of different sizes, the implied order being generated based on the one or more new orders; and an output configured to receive the implied order from the processor and transmit the implied order to a trade machine used for placing trades.
- a computer-readable medium encoded with computer executable instructions is provided.
- the computer executable instructions executable with a processor.
- the computer-readable medium including instructions executable to receive one or more real orders via a communication network; instructions executable to generate an implied order, one or more components of the implied order being a ratio spread linking two contracts that have been specified with a common product but with trading units of different sizes; and instructions executable to match the one or more orders with other real orders or the implied order.
- a trading network environment includes one or more trading workstations for entry of a plurality of orders; a communication network coupled to the trading workstations; and a trade matching system coupled to the communication network, wherein the trade matching system generates an implied order wherein one or more components of the implied order is a ratio spread linking two contracts that have been specified with a common product but with trading units of different sizes.
- FIG. 1 illustrates one embodiment of a trading network 1000 .
- the trading network 1000 includes an electronic trading system 100 , computer devices 114 , 116 , 118 , 120 and 122 , one or more market makers 130 , a radio 132 , and a trade engine 138 .
- the electronic trading system 100 may be coupled with the computer devices 114 , 116 , 118 , 120 and 122 , one or more market makers 130 , radio 132 , and trade engine 138 .
- the term “coupled with” includes directly connected or indirectly connected through one or more intermediary components.
- the intermediary components may include networks, hardware components, and/or software components.
- the trading network 1000 may be used to place and fill orders for contracts, such as outright contracts and spread contracts.
- Outright contracts are defined by a product and a delivery period, such as a calendar month.
- Spread contracts are 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.
- Other combination contracts are possible and may also be used to spread liquidity, although for linking small contracts with full size contracts, only spreads may be necessary.
- the electronic trading system 100 may be a server, supercomputer, personal computer, central processing system, or other processor that receives and matches orders.
- the electronic trading system 100 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.
- 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 Caribbean Mercantile Exchange (DME), and the Intercontinental Exchange (ICE).
- CBOT Chicago Board of Trade
- CME Chicago Mercantile Exchange
- BMF Bolsa de Mercadorias e Futoros in Brazil
- BMF the London International Financial Futures Exchange
- NYMEX New York Mercantile Exchange
- KCBT Kansas City Board of Trade
- LME London Metal Exchange
- TOCOM Tokyo Commodity Exchange for Industry
- TOCOM Meff Renta Variable
- DME Dubai
- Computer devices 114 , 116 , 118 , 120 and 122 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 114 , 116 , 118 , 120 and 122 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 114 , 116 , 118 , 120 and 122 may also include a variety of interface units and drives for reading and writing data or files.
- 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.
- Computer device 114 is shown directly connected to electronic trading system 100 .
- Electronic trading system 100 and computer device 114 may be connected via a T1 line, a common local area network (LAN) or other mechanism for connecting computer devices.
- Computer device 114 is shown connected to a radio 132 .
- the user of radio 132 may be a trader or exchange employee.
- the radio user may transmit orders or other data to the trader using computer device 114 .
- the trader using computer device 114 may transmit a trade or other data to electronic trading system 100 .
- Computer devices 116 and 118 are coupled to a local area network (LAN) 124 .
- LAN 124 may have one or more local area network opologies and may use a variety of different protocols, such as Ethernet.
- Computers 116 and 118 may communicate with each other and other computers and devices connected to LAN 124 .
- Computers and other devices may be connected to LAN 124 via twisted pair wires, coaxial cable, fiber optics or other media.
- a wireless personal digital assistant device (PDA) 122 may communicate with LAN 124 or the Internet 126 via radio waves.
- PDA 122 may also communicate with electronic trading system 100 via a conventional wireless hub 128 .
- a PDA includes mobile telephones and other wireless devices that communicate with a network via radio waves.
- FIG. 1 also shows LAN 124 connected to the Internet 126 .
- LAN 124 may include a router to connect LAN 124 to the Internet 126 .
- Computer device 120 is shown connected directly to the Internet 126 . The connection may be via a modem, digital subscriber line (DSL), satellite dish or any other device for connecting a computer device to the Internet.
- DSL digital subscriber line
- a trader for example, using one or more of the computer devices 114 , 116 , 118 , 120 and 122 may place an order for one or more contracts.
- the order may be a real order.
- Real orders are orders that are entered into the electronic trading system 100 by traders. Traders provide the appropriate data to the electronic trading system 100 and release the order into the system as an open order, i.e., an order that has not yet been matched. 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 computer devices 114 , 116 , 118 , 120 and 122 may include processors and memories for placing orders.
- Implied orders unlike real orders, are generated by the exchange, for example, using the electronic trading system 100 , on the behalf of traders who have entered real orders.
- an implied spread may be derived from two real outrights.
- the electronic trading system 100 calculates the implied order and displays the price level and available volume in the appropriate contract. This may be 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 being reported as matched trades.
- the electronic trading system 100 receives orders and transmits market data related to orders and trades to users.
- Electronic trading system 100 may be implemented with one or more mainframe, desktop or other computers.
- a user database 102 includes data identifying traders and other users of electronic trading system 100 . Data may include user names and passwords.
- An account data module 104 may process account data that may be used during trades.
- a match engine module 106 is included to match bid and offer prices. Match engine module 106 may be implemented with software that executes one or more algorithms for matching bids and offers.
- a trade database 108 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 110 may be included to compute or otherwise determine current bid and offer prices.
- a market data module 112 may be included to collect market data and prepare the data for transmission to users.
- a risk management module 134 may be included to compute and determine a user's risk utilization in relation to the user's defined risk thresholds.
- An order processing module 136 may be included to decompose delta based and bulk order types for processing by order book module 110 and match engine module 106 .
- One or more market makers 130 may maintain a market by providing constant bid and offer prices for a derivative or security to electronic trading system 100 .
- Electronic trading system 100 may also exchange data with other trade engines, such as trade engine 138 .
- trade engine 138 One skilled in the art will appreciate that numerous additional computers and systems may be coupled to electronic trading system 100 . Such computers and systems may include clearing, regulatory and fee systems.
- computer devices 114 , 116 , 118 , 120 and/or 122 and the electronic trading system 100 may be controlled by computer-executable instructions stored on computer-readable medium.
- computer device 116 may include computer-executable instructions for receiving order data from a trader and transmitting that order data to electronic trading system 100 .
- computer device 118 may include computer-executable instructions for receiving market data from electronic trading system 100 and displaying that data to a user.
- Match Engine 106 Electronic trading systems 100 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 106 (hereinafter, Match Engine 106 ).
- the electronic trading system 100 may have one or more Match Engine 106 .
- Each Match Engine 106 is a specialized order matching component that receives real orders, generates implied orders, stores the orders, calculates tradable combinations and advertises the availability of real and implied orders in the form of market data.
- Traders respond to the market data by sending additional real orders, which are received by the Match Engine 106 , which then attempts to match the received orders with previously received or generated orders or combinations thereof.
- the Match Engine 106 executes the possible trades, for example, by matching the orders, and communicates the results.
- the operations of the Match Engine 106 may be performed in more than one part of a trading network 1000 or in related systems.
- 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 the trading network 1000 for the evaluation of possible trading strategies, for instruction, regulation or in the solution of other problems where trading is used as a model.
- the Match Engine 106 may have a layered architecture.
- the Match Engine 106 may include a Match Engine Adaptation Layer 202 (hereinafter, the “Adaptation Layer 202 ”).
- the Adaptation Layer 202 translates incoming messages into events that can be processed by a Match Engine Core (hereinafter, “Core”) 203 .
- the Core 203 includes an Implicator 204 .
- the Implicator 204 is operable to perform implication. Implication makes use of real orders to spread liquidity.
- the Match Engine 106 communicates with other components using a message bus 201 .
- 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 a Match Engine 106 in an electronic trading system, the Implicator 204 may be used in any electronic trading system where implied orders need to be calculated.
- the Implicator 204 operates on a group of tradable instruments referred to as an implication group.
- 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.
- the 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).
- the threads may be designed or configured to 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.
- the Core 203 may be implemented in such a language and that the calculation of implied orders by the Implicator will be accelerated by performing many independent calculations in parallel on separate threads.
- 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 Core 203 and common to all the contracts in the implication group.
- the Adaptation Layer 202 may also associate external quantities with internal scaled units that are also internal to the Core 203 and common to all the contracts in the implication group.
- Match Engine 106 may perform match engine setup.
- Performing match engine setup may include defining a full size contract, defining one or more small contracts, calculating ratio spreads, defining special orders, loading persistent orders, or any combination thereof.
- Match engine setup may include additional, different, or fewer acts than necessary or desirable for defining the contracts, spread and orders.
- the Match Engine 106 may read a security definition message.
- Security definition messages may be formatted according to the financial information exchange (FIX) protocol.
- the Match Engine 106 may access, request and/or receive the security definition message and/or the contract definitions therein from one or more databases or files that the trading system uses to inform traders of the instruments that can be traded. Once obtained, the Match Engine 106 may read the security definition messages and define the contracts defined therein.
- FIX financial information exchange
- the Match Engine 106 may use the FIX protocol to request and receive a security definition message.
- the Match Engine Module 106 may transmit a security definition request, formatted according to the FIX protocol, to the Market Data Module 112 .
- the Market Data Module 112 may publish a security definition message according to the FIX protocol.
- the FIX protocol is a series of messaging specifications for the electronic communication of trade-related messages.
- the FIX protocol has been developed through the collaboration of banks, broker-dealers, exchanges, industry utilities and associations, institutional investors, and information technology providers from around the world.
- FIX is an industry-driven messaging standard used for transactions in an electronic, transparent, cost efficient and timely manner.
- the FIX Adapted for STreaming (FAST) Protocol may be used with the FIX protocol.
- the FAST protocol has been developed as part of the FIX Market Data Optimization Working Group. FAST is designed to optimize electronic exchange of financial data, particularly for high volume, low latency data dissemination.
- the Match Engine 106 may use other techniques to obtain the security definition message or the definitions therein. For example, a system administrator may input the definitions using an input device, such as a keyboard, mouse, touchpad, or other device. In another example, the Match Engine 106 may access a database, such as the User Database 102 or Trade Database 108 .
- the term “defining the . . . contract” may include making the contract available to traders.
- the Match Engine 106 has the capability of matching buy orders in the contract with sell orders in the same contract, an operation referred to as making a real trade.
- the Match Engine 106 receives a new order and matches it with a previously received order on the opposite side of the same contract that is resting on the order book.
- the Match Engine 106 may also have the capability of matching new orders with combinations of resting orders that are linked by the definitions of their contracts, an operation referred to as making an implied trade. There is no limit on the number of contracts that may be linked together.
- the Match Engine 106 may go through the contract definitions and determine which combinations are possible and which of these should be calculated and published during the trading state. Accordingly, once defined, the contracts and the properties form the basis of the Match Engine 106 order book state.
- An order book state with tradable contracts defined, but no orders, is referred to as being in the empty state. When orders arrive to buy and sell various quantities of the different contracts at various prices, the order book state is further defined by the prices, sides and quantities of the resting orders.
- the Match Engine 106 may establish an order book from which implied orders can be calculated and published.
- the order book may be established using the security definition message or contract definitions therein.
- the sizes of the contacts may be defined by an exchange.
- NYMEX New York Mercantile Exchange
- the contract for 500 barrels of light sweet crude has a trading symbol of “QM” and may be referred to herein using the QM symbol.
- NYMEX also offers a contract for 1000 barrels of light sweet crude. This contract has a trading symbol of “CL” and may be referred to herein using the CL symbol.
- the Exchange may define other sizes as well.
- FIG. 3 illustrates an order book with two contracts defined, specifically the CL contract and the QM contract for the delivery month of January.
- the first row 301 corresponds to a contract for the CL contract and the second row 302 corresponds to the QM contract.
- the column 303 corresponds to the delivery month of January in a given year, represented symbolically by “F”. Accordingly, the CL contract having a delivery month of January may be represented symbolically as CLF and the QM contract having a delivery month of January may be represented symbolically as QMF
- the QM contract is aimed at smaller market participants that want a lower cost instrument traded in a liquid market.
- the QM contract is financially settled, with its value on expiry determined by the settlement price of the 1000 barrel CL contract at the close of business on the last day that the QM contract is traded.
- the full liquidity of the full size contract is not available to the small contract trader because the QM seller can only sell to a QM buyer. It was previously not possible for a QM seller to sell to a CL buyer, nor could a CL and QM be combined in an implied market to take advantage of liquidity in other products or delivery months. Because of the limited nature of the QM contract, the small contract trader had to be willing to incur additional costs and risk.
- match engine setup which may be performed by the Match Engine 106 , may also include calculating ratio spreads.
- the Match Engine 106 may define or calculate a ratio spread. Defining the ratio spread contract may include assigning lot points to one or more of the contracts. The number of lots points assigned to a small contract may be based on the volume of the small contract relative to the volume of the full size contract, as well as the number of lot points assigned to the full size contract. The number of lot points assigned to the full size contract may be such that the number of lot point for the full size contract is the least common multiple of the lot points assigned to the one or more small contracts.
- Table 1 illustrates one example of assigning lot points to contracts CL and QM, which are shown in FIG. 3 .
- Contract CL corresponds to the New York Mercantile Exchange's West Texas Intermediate Crude Oil Contract RB is assigned 60 lot points.
- Contract QM which has half the volume as contract CL, is assigned half the lot points (i.e., 30 lot points).
- CONTRACT West Texas Intermediate VOLUME OF LOT POINTS Crude CONTRACT ASSIGNED TO Oil
- CONTRACT CL 1000 60 lot points
- QM 500 30 lot points
- CL6 100 6 lot points
- the full size contract which is contract CL
- contract CL is assigned a number of lot points that is a least common multiple of the number of lot points for the other two contracts QM and CL6.
- the procedure is illustrated here for a simple group of contracts with the same underlying physical unit. It is understood that other physical units such as barrels, metric tons, British Thermal Units, kilowatt hours and so forth can be accommodated to any desired accuracy by making the number of lot points in the biggest contract sufficiently large.
- the lot points may be used to calculate ratio spreads for combination contracts. For example, based on the number of lot points assigned to the contract CL (i.e., 60 lot points) and the number of lot points assigned to the contract CL6 (i.e., 6 lot points), the Match Engine 106 may calculate that the combination contract CL:CL6 has a ratio spread of 1:6. In other words, one (1) CL contract is being bought and six (6) CL6 contracts are being sold. The convention of buying multiple small contracts and selling one big (or vice versa) will always be clear from the context. Those of skill in the art will appreciate that an exchange can express one convention externally, such as “buy the ratio spread” means “buy the full size contract and sell the mini” while maintaining different conventions internally to simplify the arithmetic of implication.
- the number of lot points assigned to each contract and/or the ratio spreads may be stored in memory for later use. As will be discussed below, the number of lot points assigned to each contract and/or the ratio spreads may used to determine the volume of implied orders for contracts of different sizes.
- the Match Engine 106 may load persistent orders during match engine setup. Persistent orders may be past orders that were not completely filled in a previous trading sessions but whose properties require them to be carried forward to the subsequent session. For example, persistent orders include good-through-date (GTD) or good-till-canceled (GTC) orders. In one embodiment, the Match Engine 106 may update the Order Books Module 110 as orders are entered, modified, canceled or filled during the trading session. At the end of the trading session, the Order Books Module 110 removes orders that do not have the properties of persistence.
- GTD good-through-date
- GTC good-till-canceled
- the Match Engine 106 sends a query to the Order Books Module 110 or an associated database, obtains the data for the persistent orders in the form of a record set, iterates the record set and stores the orders internally in the data structures used to represent the order book.
- the Match Engine 106 may also define one or more special orders. Special orders are matched and traded in the same way as ordinary orders but are coded in such a way that the Match Engine 106 can apply special rules not available to ordinary traders, but which allow the Match Engine's 106 generic order matching logic to be used for other exchange business needs. For example, the Match Engine 106 can define special orders that will only trade as components in an implied combination, which would allow the engine to maintain orders in spread contract where the bid price is identical to the asking price or fractionally better. This technique could be used to automatically convert bids for one contract into bids for a linked contract through simple implication. Exemplary special orders include ratio spread orders with special properties such as zero prices and infinite volumes.
- Special orders may be used, such as orders with slightly different lot point volumes or internally scaled prices to express differences in trading priority that are recognizable to the match engine but invisible to the outside world when the prices and volumes are rounded to standard values. Special orders are useful because they reduce the amount of computer program code and subsequent testing required to implement new trading system requirements.
- Defining one or more special orders may include loading the special orders from a database.
- the special orders may be read in the same way as persistent orders, for example, from the Order Books Module 110 .
- the special orders are previously entered into the database using a program designed for this purpose and the codes used to identify the special orders are checked by the match engine when the database is being read.
- the match engine loads only the orders whose codes it has been programmed to recognize and informs the operator of the trading system if orders with unrecognizable codes have been encountered.
- the Match Engine 106 may display ratio spreads along with the combination contracts. Displaying the ratio spreads may include sending ratio spread data to one or more computer devices, such as computer devices 114 , 116 , 118 , 120 and 122 .
- the one or more computer devices may receive the ratio spread data and display a representation of the ratio spreads on a monitor for a broker or other trading entity to view. Displaying the ratio spreads is not necessary. For example, the ratio spread data may be transmitted to a computer device and processed automatically by the computer device.
- a trader or trading entity may view the ratio spreads and decide that it is advantageous, either financially or strategically, to place an order for one or more of the ratio spreads.
- the Match Engine 106 may enter a trade state. In the trade state, the Match Engine 106 may receive one or more orders, match the orders with other orders, and publish the market data.
- Buy and sell orders for the tradable contracts may be read from a database such as User Database 102 or Trade Database 108 , received from computer devices 114 , 116 , 118 , 120 and 122 or created by the Match Engine 106 according to its programmed instructions, for example, to create implied orders.
- the orders resting in the Match Engine 106 define the order book state. When the order book does not have any resting orders, the Match Engine 106 is considered to be in the empty state. However, when the order book has orders, the Match Engine 106 is considered to be in the trade state.
- FIG. 4 illustrates an order 401 to buy one lot of CLF and an order 402 to sell two lots of QMF.
- the combination order may be a spread contract and imply a 1:2 ratio spread 405 .
- the order to buy CLF is represented by the solid circle 403 and the order to sell QMF is represented by the open circle 404 .
- the CLF:QMF ratio spread which is a combination order to buy 1 lot of CLF and sell two lots of QMF, is represented by a cross-hatched circle and an open circle connected by the dashed line 405 .
- the ratio spread is designated 1:2 to indicate that one lot is bought and two lots are sold although it is understood that this notation may be dropped when the meaning is clear.
- Buy and sell orders for the tradable contracts may be read from a database such as User Database 102 or Trade Database 108 , received from computer devices 114 , 116 , 118 , 120 and 122 or created by the match engine itself according to its programmed instructions.
- the orders resting in the match engine define its order book state.
- speculators can calculate its current value from the market data published by the exchange and estimate whether money could be made by selling one lot of CLF, buying two lots of QMF and holding the two positions until they can be liquidated to advantage. The speculator will then offer to buy and sell the CLF and QMF contracts according to his or her estimate of how their prices will change over time. The speculator's profit comes at the expense of the small volume hedger and although this is the speculator's legitimate compensation for assuming the risk of adverse price movements, it can run counter to the exchange's larger goal of attracting more small hedgers.
- FIGS. 5A and 5B illustrate the CL:QM (1:2) tradable ratio spread.
- the combination of the sell CLF order 501 entered by a trader and the buy spread 502 implies a sell QM order 503 for two lots.
- the Match Engine 106 uses rules of implication to prevent trades with incoming orders to buy QM that do not have an even number of lots. For example, the Match Engine 106 may limit the creation of implied orders to the pattern shown in FIG. 5B .
- an order or orders to sell two lots of QM have been aggregated to form a two-lot offer 504 and has been combined by the Match Engine 106 with the sell spread 505 to imply a one lot buy 506 in CL. If there is an odd quantity offered for sale in QMF, half that quantity rounded down to the closest integer will be offered for sale in CLF. If there is only one lot offered for sale in QMF then no implied lots from the CL:QM (1:2) spread will be offered in CLF.
- linking spread contracts includes calculating and/or assigning a number of lot points for each linked contract.
- Calculating the number of lot points for each contract may include determining the lot size of the full size contract, determining the lot size of the one or more small contracts, comparing the lot sizes of the full size contract and one or more small contracts, and determining lot points for each contract such that the lot points assigned to the full size contract (i.e., big volume) is an integer multiple of the lot points assigned to the one or more small contracts (i.e., small volumes).
- the lot points assigned to the full size contract i.e., big volume
- the 500 barrel QM contract for 1 lot is represented by 30 “lot points”.
- a hypothetical 100 barrel contract would have six lot points.
- the number of lot points in the full size contract is also referred to as the full lot scaling factor.
- the initial lot size for the full size contract may be determined by the exchange's market development plan and the characteristics of the computer devices 114 , 116 , 118 , 120 and 122 as used by those with whom the exchange plans to do business. If the plan calls for a full size contract to be launched initially for large market participants and for half-size and tenth-size small contracts to follow in subsequent years, the exchange can seek regulatory approval for a contract lot size at one tenth of the planned full size contract size. The initial full size contract is implemented with the small lot size and a minimum volume increment of ten lots. To launch the subsequent small contracts, the exchange need only reduce the minimum volume increment. Internally, however, the trading system assigns the large increment orders to a separate full size contract and links these with zero-price infinite volume spreads to the small contracts. The ordinary rules of implication for ratio spreads take care of matching full size contract orders with multiple small contract orders.
- an implied order calculated in this manner is in a full size contract, there will always be sufficient volume in the component orders to trade with an order in the full size contract. If the implied order is in a small contract, then the Match Engine 106 sets a minimum volume to be traded. Accordingly, an implied bid for an untradeable quantity can exceed a real bid in the same market by enough to meet or exceed the real offer on the other side. This is not a problem for the Match Engine 106 , but may require the Exchange to set additional rules for the publication of market data so that implied price levels do not appear to show locked or crossed markets.
- this is done by requiring the implied order to function as an “all or nothing” type order for the minimum required number of lots, with these being replenished after trading in the manner of an “iceberg” order, both of which are common in electronic trading systems.
- the volumes available in the different size contracts may be reported separately in the market data. This prevents the market data from showing a crossed market (bids greater than asks) when, for example, the bids are higher in the small contract but there are not enough of them to match with an order in the full size contract.
- the exact market data format is tailored to the needs of the brokers and other trading entities whose software interacts with the exchange, for example through computer devices 114 , 116 , 118 , 120 and 122 , with a view to attracting the small volume hedgers to whom the small contracts are being marketed.
- Those of skill in the art will appreciate that the size relationship between the contracts can be established with many different full lot scaling factors.
- FIG. 5B any time that there is an even quantity offered for sale in QMF, exactly half that quantity will be offered for sale in CLF.
- the cost of liquidating any unbalanced positions when the contracts expire is borne by the exchange as a market development cost for acquiring new customers. It is understood that the costs of such liquidation are different for spreads between financially settled contracts, spreads between physically settled contracts in the same product and for spreads between financially settled and physically settled contracts.
- the Match Engine 106 may create internal orders that link small contracts and full size contracts according to the data in exchange-specific tags in the FIX security definition messages, a practice allowed by the FIX Protocol.
- such orders are a special type of order read from an order table in the same manner as good-through-date (GTD) or good-till-canceled (GTC) orders are read in prior-art systems, for example from the Order Books Module 110 in FIG. 1 .
- GTD good-through-date
- GTC good-till-canceled
- the ratio spreads are traded as ordinary contracts and no additional order initialization is required.
- FIG. 6 illustrates a method 600 for providing ratio spread orders as tradable instruments.
- the method 600 may include any ordered combination of the acts shown in FIG. 6 as well as additional, fewer, or different acts deemed necessary or desirable to provide or define ratio spread orders.
- the method 600 may be implemented using the Match Engine 106 of FIG. 1 or a different device or system.
- FIG. 6 illustrates a method 600 for matching trade orders.
- the method 600 may include performing match engine setup 610 , matching orders 620 , and terminating a trade session 630 .
- Match engine setup may be performed before the match engine receives orders.
- the match engine may respond to messages for one or more orders. Accordingly, performing match engine setup 610 may be performed during a “setup state” and responding to messages 620 may be performed during a “trading state.”
- the match engine is configured to match newly arriving orders with previously received orders. The results of the matching may be published in the form of execution reports and market data.
- the method 600 may be used to match orders in a ratio spread contract.
- a ratio spread contract is a composite contract, which may also be referred to as a strategy or strategy contract, defined as the simultaneous buying of a first quantity of a first contract and selling a second quantity of a second contract where the two quantities are in a specified ratio.
- first and second contracts may themselves be strategies, in practice it is more common to define complex strategies in terms of a larger number of simpler components, also referred to as legs.
- legs also referred to as legs.
- an order to buy the ratio spread is matched with an order to sell the ratio spread.
- an order to buy the ratio spread may be matched with a real order to sell the first contract and a real order to buy the second contract since the combination of these two real outright orders implies an order to sell the spread. It is also possible to imply either the buy or sell spread order with other combinations of orders for outrights and spreads.
- the trader may be guaranteed to receive fills in every component of the ratio spread as part of the same transaction.
- trading the component contracts individually exposes the trader to leg risk, where a sudden change in the market can result in fills at unwanted prices or even no fills at all, leaving the trader with the cost of backing out of an unwanted position.
- FIG. 7 illustrates one embodiment of a method for performing match engine setup 610 .
- Match engine setup is performed in order to prepare the match engine for providing ratio spreads during the trading state.
- a match engine may define a full size contract 710 and one or more small contracts 720 .
- Defining the full size contract 710 and/or one or more small contracts 720 may include reading a security definition message.
- the match engine may access, request and/or receive the security definition message and/or the definitions therein from one or more databases or files that the trading system uses to inform traders of the instruments that can be traded. Once obtained, the match engine may read the security definition messages and define the contracts defined therein.
- the match engine may define a ratio spread contract as shown in act 730 .
- the definition of the ratio spread contract may include assigning lot points to one or more of the contracts.
- the number of lots points assigned to a small contract may be based on the volume of the small contract relative to the volume of the full size contract, as well as the number of lot points assigned to the full size contract.
- the number of lot points assigned to a full size contract may be such that the number of lot point for the full size contract is the least common multiple of the lot points assigned to the one or more small contracts.
- TABLE 2 illustrates one example of assigning lot points to contracts RB, RB21, and RB6.
- TABLE 2 corresponds to FIG. 9 .
- Contract RB corresponds to the New York Mercantile Exchange's reformulated gasoline blendstock for oxygen blending (RBOB), physically delivered in New York harbor in lots of 42000 gallons (equivalent to 1000 barrels), and thus, is represented symbolically by “RB”.
- Contract RB is assigned 42 lot points.
- Contract RB21 which has half the volume as contract RB, is assigned half the lot points as contract RB.
- Contract RB6, which has a seventh of the volume as contract RB is assigned a seventh of the lot points as contract RB.
- the full size contract which is contract RB
- contract RB is assigned a number of lot points that is a least common multiple of the number of lot points as the other two contracts RB21, RB6.
- the procedure is illustrated here for a simple group of contracts with the same underlying physical unit. It is understood that other physical units such as barrels, metric tons, British Thermal Units, kilowatt hours and so forth can be accommodated to any desired accuracy by making the number of lot points in the biggest contract sufficiently large.
- the number of lot points for each contract may be used to determine the volume of implied orders. For example, as shown in FIG. 9 , resting orders in different contracts with different number of lot points per contract lot are shown implying a January to February spread (RBF:RBG) in the full size contract RB.
- the match engine may use the lot points to determine that one (1) contract RB is being bought and two (2) contracts RB21 are being sold.
- the combination contract RB6:RB may indicate that seven (7) contracts are being bought and one (1) contract is being sold. Accordingly, ratio spread for combination order RB6:RB may be 7:1.
- ratio spreads may be referred to as either a 2:1 and 7:1 ratio spreads or as 1:2 and 1:7 ratio spreads, since the convention of buying multiple minis and selling one big (or vice versa) will always be clear from the context.
- buy the ratio spread means “buy the full size contract and sell the mini” while maintaining different conventions internally to simplify the arithmetic of implication.
- the match engine may define one or more special orders, as shown in act 740 .
- Special orders are matched and traded in the same way as ordinary orders but are coded in such a way that the match engine can apply special rules not available to ordinary traders, but which allow the engine's generic order matching logic to be used for other exchange business needs.
- the match engine can define special orders that will only trade as components in an implied combination, which would allow the engine to maintain orders in spread contract where the bid price is identical to the asking price or fractionally better. This technique could be used to automatically convert bids for one contract into bids for a linked contract through simple implication.
- Exemplary special orders include ratio spread orders with special properties such as zero prices and infinite volumes.
- Special orders may be used, such as orders with slightly different lot point volumes or internally scaled prices to express differences in trading priority that are recognizable to the match engine but invisible to the outside world when the prices and volumes are rounded to standard values. Special orders are useful because they reduce the amount of computer program code and subsequent testing required to implement new trading system requirements.
- Defining one or more special orders may include loading the special orders from a database.
- the special orders may be read in the same way as persistent orders such as good-through-date (GTD) or good-till-canceled (GTC) orders are read in prior-art systems, for example from the Order Books Module 110 in FIG. 1 .
- the special orders are previously entered into the database using a program designed for this purpose and the codes used to identify the special orders are checked by the match engine when the database is being read.
- the match engine loads only the orders whose codes it has been programmed to recognize and informs the operator of the trading system if orders with unrecognizable codes have been encountered.
- the match engine may load persistent orders.
- Persistent orders may be past orders that were not completely filled in a previous trading session but whose properties require them to be carried forward to the subsequent session.
- persistent orders include good-through-date (GTD) or good-till-canceled (GTC) orders.
- GTD good-through-date
- GTC good-till-canceled
- the match engine causes the Order Books Module 110 in FIG. 1 to be updated as orders are entered, modified, canceled or filled during the trading session.
- the Order Books Module 110 removes orders that do not have the properties of persistence.
- the match engine sends a query to the Order Books Module 110 or its associated database, obtains the data for the persistent orders in the form of a record set, iterates the record set and stores the orders internally in the data structures used to represent the order book.
- the ratio spreads which are supported by the match engine, may be displayed. Displaying the ratio spreads may include sending ratio spread data to one or more computer devices, such as computer devices 114 , 116 , 118 , 120 and 122 .
- the one or more computer devices may receive the ratio spread data and display a representation of the ratio spreads on a monitor for a broker or other trading entity to view. Displaying the ratio spreads is not necessary.
- the ratio spread data may be transmitted to a computer device and processed automatically by the computer device.
- a trader or trading entity may view the ratio spreads and decide that it is advantageous, either financially or strategically, to place an order for one or more of the ratio spreads.
- the match engine may begin responding to messages 620 .
- “responding to messages” may include receiving new orders, matching the new orders with real or implied orders, publishing market data, or any combination thereof. Additional, different, or fewer acts may be provided in responding to messages.
- FIG. 8 illustrates one embodiment of responding to messages 620 .
- the match engine may receive a new order message 810 .
- the new order message may define a new order, for example, placed by the trader or trading entity.
- the new order may be an order for a ratio spread.
- the term “new order message” may include all messages that result in a change to the order book state, such as messages which modify or cancel previously entered orders or which change the tradability of orders or groups of orders.
- messages affecting contracts and groups of contracts can also affect the tradability of orders, for example by opening or closing a market and thereby changing the implied markets that can be calculated and published. It is understood that the term “new order” is used to simplify the exposition and not to limit the scope of lot point calculations.
- the match engine may receive one or more outright orders, such as BUY RB21F 908 and SELL RB6G 909 .
- the outright order 908 may be an order to buy 11 lots of RB21
- outright order 909 may be an order to sell 40 lots of RB6.
- the trader may use a computer device, such as computer device 114 , to send a new order message to buy or sell a specified quantity of the ratio spread RBF:RB21F to the match engine.
- the order for the ratio spread RBF:RB21F is a special order loaded by the match engine during the setup phase that can be used in implication but not directly traded against another order in the same contract.
- the match engine may calculate an implied order in any contract where the necessary linking contracts exist and where these contracts contain resting orders on the appropriate sides, which may be either stored in memory during the setup state or previously received as new orders. For example, as shown in FIG. 9 , the 1:2 ratio spread for RB:RB21 in January 906 and the 7:1 ratio spread for RB6:RB in February 907 may be combined with the outright orders 908 , 909 to imply the BUY RBF:RBG spread order 910 . In order to calculate the number of lots in the implied BUY RBF:RBG spread, the maximum possible implied volume is calculated as the minimum of the volumes in the chain of orders.
- the finite volume components constrain the available volume to 231 lot points (231,000 gallons) in RB21F and 240 lot points (240000 gallons) in RB6G.
- the minimum is 231 lot points, which must then be divided by the number of lot points in the implied contract to determine the number of implied lots.
- the RBF:RBG spread is a full size contract with 42 lot points (one lot equals 42000 gallons) so the implied volume is 5.5 (231 divided by 24). This may be rounded down to the nearest integer in order to publish a tradable quantity, which in this case is 5 lots. It is understood that rounding down may on occasion result in a tradable quantity of zero.
- the match engine may determine whether a new order is tradable against a previously received order in a real trade or a combination of previously received orders in an implied trade 820 .
- a new buy order is tradable if its price is greater than the asking price of a resting real order for a real trade or greater that the appropriately weighted sum of the bid and ask prices in the resting buy and sell orders that form the implied order for an implied trade.
- the match engine may give preference to real or implied orders on the basis of price, volume, time of entry, ownership or some combination of these and other factors.
- the match engine may store the new order 830 in memory, update the market data 840 , and publish the market data 850 .
- Updating the market data 840 may include updating the properties of an order queue to reflect the fact that an order has been stored for a particular contract.
- the updated market data may be published so that traders may are aware that one or more orders are present in the market to buy or sell specified quantities of contracts at specified prices and that these have changed as a result of the match engine receiving its most recent message.
- the match engine may determine whether the order should be traded against a resting real order or against a resting implied order 860 .
- the match engine computes all the possible combinations of resting orders that can be traded as implied orders and stores these as part of the order book state before receiving the next new order.
- the price of an implied order in a given contract is therefore available for comparison with the price of any real order in that contract and with the price of the incoming order so that a decision may be made as to whether the incoming order is tradable and if so, whether it should be traded against the real order or the implied order.
- any or all of the properties required to establish the relative priority of the implied and the real order may be computed prior to the receiving of a new order.
- the technique of “lazy evaluation” may be applied to these calculations, so that the actual calculations are only performed once the need for their results has been determined, possibly after the receiving of the new order in a part of the match engine but before some other part performs the comparison.
- the match engine may match the new order, update the market data, and publish the updated market data 870 .
- the match engine may determine the sequence of order queues 890 , iterate sequence to identify possible matches 892 , calculate trades 894 , and publish trade matches 896 . Additional, different, or fewer acts may be provided.
- FIG. 10 illustrates a sequence of order queues for the real markets 1000 , an order queue for the implied market 1010 , and an order queue for the matching input orders queue 1030 .
- An order queue is a collection of orders that are kept in a priority sequence. The principal operations on the collection of orders are the addition of orders to the rear terminal position “REAR” and removal of entities from the front terminal position “FRONT”.
- the order queues may be First-In-First-Out (FIFO) queues.
- the first order added to the queue will be the first order to be removed. This is equivalent to the requirement that whenever an order is added, all elements that were added before have to be removed before the new order can be matched.
- the order queue has a comparator function that effectively places the orders in a sequence where the order removed from the front of the queue will be the most significant order according to the rules of comparison.
- comparator functions may be implemented in a programming language such as Java or C++, of which FIFO is merely a simple example.
- the positions of the orders in the order queues of Figure BB is intended to illustrate the sequence in which they would be removed from the front of the queue, not the sequence of their arrival or their positions in the physical memory of the computing device on which the match engine has been implemented.
- Order queues 1002 - 1008 are used to collect real market orders.
- order queue 1002 is associated with the order Buy RBF:RB21F
- order queue 1002 is associated with the order Buy RB21F
- order queue 1006 is associated with the order Sell RB6G
- order queue 1008 is associated with the order Buy RB6G:RBG.
- Order queue 1010 is associated with the order BUY RBF:RBG 812 .
- the order queue 1020 is associated with the implied order SELL RBF:RBG 1022 .
- the match engine may place the orders in the corresponding queues. For example, as shown in TABLE 3, the match engine may receive the following new orders.
- each order is shown as a rectangle whose vertical dimension is an integer number of lot points 1040 .
- the integer number of lot points may be determined based on the size of the order.
- the ratio spreads 1050 , 1060 are shown with infinite volume.
- the ratio spreads have a lot size equal to that of the full size contract in their full size contract legs and a lot size equal to that of the appropriate small contract in small contract legs.
- the ratio spreads have the property of being able to trade with one trader on the big side and any number of traders on the small side.
- the match engine iterates the sequence of order queues to identify the possible matches, in act 892 .
- the sequences of contracts that make up the implied chains have been calculated prior to the receiving of a new and tradable order.
- the sequence of contracts in the implied order is retrieved from the memory of the computing device on which the match engine has been implemented.
- the sequence is stored in a data type referred to in a programming language such as Java or C++ as a collection or as similar a class of objects on which a special type of variable called an iterator can be defined.
- Such a data type provides methods in the form of callable subroutines which may be called repeatedly, whereby each call returns the next order queue in the sequence that makes up the chain.
- the match engine which is implemented as a computer program, uses a loop to call the appropriate methods and after each call, performs the operations that are needed to obtain the front element of each order queue (an order) and record the fact that this order has participated in a trade. For example, the order's working quantity may be decremented and an execution report published to the owner of the order to indicate that the status of the order has changed. When all of the order queues in the implied chain have been processed in this manner the loop terminates.
- a sequence of pairwise trades is referred to as a “baloney slice”, whereby a sequence of paired trades satisfying the aforementioned constraints is “sliced” from the fronts of the order queues in the sequence.
- the match engine determines that Trader E (the incoming order) sells 1 lot of RBF (42000 gallons) to Trader A and buys 1 lot of RBG from Trader D.
- Trader A buys 1 lot of RBF (42000 gallons) from Trader E and sells 1 lot of RB21F (21000 gallons) to Trader B and 1 lot of RB21F (21000 gallons) to Trader G.
- Trader D buys 1 lot of RB6G (6000 gallons) from Trader C, 4 lots (24000 gallons) from Trader G and 2 lots (12000 gallons) from Trader H. Trader D then sells 1 lot of RBG (42000 gallons) to Trader E, which completes the transactions for Trader E. The Match Engine can then move on to the next input order and repeat the matching procedure.
- Trader A has effectively bought one full size contract and sold two small (half-size) contracts.
- Trader D has bought 7 small (one seventh size) contracts and sold one full size contract. The other traders have bought or sold contracts of a single size.
- the match engine publishes the trades data and the market data reflecting the trade matches that have taken place.
- trade data may be typically included in the market data published to all traders, specific trade data may be published separately to components of the trading system outside the match engine, including, for example, the details needed for accounting. The emphasis on market data in the present exposition is not intended to preclude these other forms of communication in a specific trading system.
- market data may originate in the match engine but be formatted for transmission to traders and other interested parties by a separate Market Data Module 112 as shown in FIG. 1 .
- the market data may be included in a message formatted according to the FIX Protocol.
- a market data message may report the quantity available at a price level rather than an individual order. As such, it can use different tag-value pairs to report volume in small contracts and full size contracts.
- the FIX Protocol allows any number of price levels to be published in a market data incremental refresh and has a specified format for implied markets. Moreover, the FIX Protocol allows an exchange to define additional “exchange-specific” tags according to the needs of its customers.
- the match engine may terminate a trade session 630 .
- the match engine may terminate the trade session when a fatal error is detected, the system administrator ends the trade session, or the trade session times out.
- FIG. 11 illustrates one embodiment of an Electronic trading system 100 .
- the Electronic trading system 100 may be a personal computer, server, electronic device executing computer executable code, or other processing unit.
- the Electronic trading system 100 may be manufactured, distributed, configured, programmed, or sold for trading purposes, such as mixing contracts of different sizes.
- the Electronic trading system 100 may include a processor 1110 and memory 1120 . Additional, different, or fewer components may be provided.
- the Electronic trading system 100 may include a display.
- the display may be local to the Electronic trading system 100 .
- the display may be independent disposed at a remote location. The remote location being at a location different than the location where the Electronic trading system 100 is disposed.
- the processor 1100 may be operable to execute instructions stored on or in the memory 1120 .
- the memory 1120 may store instructions that may be executed for trade matching. For example, as shown in FIG. 11 , the memory 1120 may store instructions that may be executed to perform match engine setup 1122 , instructions that may be executed to respond to messages 1124 , and instructions that may be executed to terminate a trade session 1126 .
- the instructions for performing match engine setup 1122 may be executed by the processor 1100 to perform match engine setup.
- the instructions 1122 may include instructions that may be executed to define a full size contract, define one or more small contracts, calculate ratio spreads, define special orders, and load persistent orders, or any combination thereof.
- the instructions for responding to messages 1124 may be executed by the processor 1100 to respond to messages.
- the instructions 1124 may include instructions executable to receive one or more real orders via a communication network.
- the instructions 1124 may also include instructions that may be executed to generate an implied order, one or more components of the implied order being a ratio spread linking two contracts that have been specified with a common product but with trading units of different sizes.
- the instructions 1124 may include instructions executable to match the one or more orders with other real orders or the implied order.
- the instructions 1124 may include instructions that are executable to instructions executable to define a full size contract and a small contracts as the two contracts; assign lot points to the full size contract and the one or more small contracts, the lot points being used to associate a volume of the one or more small contracts with a volume of the full size contract; and create a ratio spread in a way that liquidity in the full size contract is available to traders of the one or more small contracts, the ratio spread orders being created based on the lot points assigned to the full size contract and the one or more small contracts.
- a number of lot points may be assigned to the full size contract such that the number of lots points for the full size contract is a least common multiple of a number of lots points assigned to the one or more small contracts.
- the instructions 1124 may include instructions executable to determine a minimum volume of the one or more small contracts; and instructions executable to divide the minimum volume of the small contracts by a volume of the large contract and rounding to the nearest full integer, the ratio spread of the implied order being set equal to a nearest full integer.
- the instructions for terminating a trade session 1126 may be executed by the processor 1100 to terminate a trade session.
- instructions may be stored in the memory 1120 . Additionally, or alternatively, the instructions may be separated into individual components that are or are not paired with the other instructions.
- the instructions 1122 may or may not include instructions for defining ratio spread contracts. The instructions for defining ratio spread contracts may be provided in a different set of instructions that are independent of the instructions 1122 .
- the processor 1110 may be may be a general processor, digital signal processor, application specific integrated circuit, field programmable gate array, analog circuits, digital circuit, combinations thereof, or other now known or later developed processors.
- the processor 110 may be a single device or a combination of devices, such as associated with a network or distributed processing. Any of various processing strategies may be used, such as multi-processing, multi-tasking, parallel processing, or the like. Processing may be local, as opposed to remote.
- the processor 1110 may be responsive to instructions stored as part of software, hardware, integrated circuits, firmware, micro-code or the like.
- the memory 1120 may be computer readable storage media.
- the computer readable storage media may include various types of volatile and non-volatile storage media, including but not limited to random access memory, read-only memory, programmable read-only memory, electrically programmable read-only memory, electrically erasable read-only memory, flash memory, magnetic tape or disk, optical media and the like.
- the memory 1120 may be a single device or a combination of devices.
- the memory 1120 may be adjacent to, part of, networked with, programmed with, and/or remote from the processor 1110 .
- the memory 1120 may store data representing instructions executable by the programmed processor 1110 .
- the processor 1110 may be programmed with and execute the instructions.
- the functions, processes, acts, methods or tasks illustrated in the figures or described herein may be performed by the programmed processor executing the instructions stored in the memory.
- the functions, acts, processes, methods 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, firm ware, micro-code and the like, operating alone or in combination.
- the match engine 106 may include an input and/or output 1150 .
- the input and/or output 1150 may be configured to transmit and/or receive data.
- the input and/or output may be an interface to a network.
- a network cable may plug-in to the input and/or output 1150 .
- the input and/or output 1150 may be electrically coupled with the processor 1110 and may relay data from the network to the processor.
- an input may be configured to receive one or more new orders and an output may be configured to receive the implied order from the processor and transmit the implied order to a trade machine used for placing trades.
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Description
- This application claims the benefit of U.S. patent application Ser. No. 13/543,512, filed on Jul. 6, 2012, which is a continuation of U.S. patent application Ser. No. 12/560,122, filed on Sep. 15, 2009.
- 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. 12/553,351, filed Sep. 3, 2009, which is incorporated herein by reference in its entirety.
- This application is related to U.S. patent application Ser. No. 12/560,026, filed on Sep. 15, 2009 which is incorporated herein by reference in its entirety.
- This application is related to U.S. patent application Ser. No. 12/560,145, filed on Sep. 15, 2009 which is incorporated herein by reference in its entirety.
- Electronic trading systems offer contracts for trade. Traders place orders for the contracts. Orders that are entered into the electronic trading system by traders are real orders. Real orders may be entered for any tradable contract including, but not limited to, futures, options, inter-commodity spreads, intra-commodity spreads, futures strips, calendar spreads, butterfly spreads, condor spreads, crack spreads, straddles, and strangles. Traders enter the appropriate information, for example, tradable item, bid price, or month, into the electronic trading systems when placing an order.
- Implied orders, unlike real orders, are generated by electronic trading systems on behalf of traders who have entered real orders. In other words, implied orders are computer generated orders derived from real orders. For example, an implied spread may be derived from two real orders. The system creates the “derived” or “implied” order and provides the implied order as a market that may be traded against. If a trader trades against this implied order, then the real orders that combined to create the implied order and the resulting market are executed as matched trades.
- Implied orders generally increase overall market liquidity. The creation of implied orders increases the number of tradable items, which has the potential of attracting additional traders. Additionally, 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. In general, advertising implied orders at better prices will encourage traders to enter the opposing orders to trade with them. Exchanges benefit from increased transaction volume. Transaction volume will increase as the number of matched trade items increases.
- Electronic trading systems conventionally only offered full size contracts for trade. However, in order to increase liquidity, small contracts have now been offered. A “small contract” is a contract that has a size, volume, quantity, or other specification that is smaller than the full size contract. Traders of small contracts are limited to trading with other traders of small contracts. It is not possible for small contracts to be exchanged with full size contracts nor for small contracts to participate in trades with combination contracts defined in terms of the full size contract. As a result, the smaller market participants do not benefit fully from the liquidity in the full size contracts.
-
FIG. 1 illustrates an exemplary trading network environment; -
FIG. 2 illustrates an exemplary match engine architecture where the match engine is connected to other components of the trading network environment by a message bus. -
FIG. 3 illustrates a visual technique used to represent contracts that can be traded by the match engine. -
FIG. 4 illustrates a visual technique used to represent orders to buy and sell the contracts ofFIG. 3 when these orders are resting in the match engine and available to trade with incoming orders. Both real and implied orders are shown. -
FIG. 5A andFIG. 5B illustrate the creation of an implied sell order from a real outright and a ratio spread. -
FIG. 6 illustrates one embodiment of a method for performing match engine activities. -
FIG. 7 illustrates one embodiment of a method for performing match engine setup. -
FIG. 8 illustrates one embodiment of a method for matching orders. -
FIG. 9 illustrates the creation of an implied buy spread order in a full size contract from outright contracts in linked small contracts. -
FIG. 10 illustrates how traders' orders for differing quantities in contracts of different lot sizes can be assembled into matched trades when the implied buy spread order ofFIG. 7 is traded with an incoming real order. -
FIG. 11 illustrates one embodiment an electronic trading system. - The present embodiments relate to providing liquidity in a full size contract to a trader of one or more small contracts. The size (e.g., volume) of a full size contract is defined by an exchange, government entity, or other organization group. Small contracts are contracts that have a size, volume, quantity, or other specification that is smaller than the full size contract. The size of the small contract may also be defined by an exchange, government entity, or other organization group. The present embodiments relate to generating ratio spreads that may be used in implied market trading. As used herein, a ratio spread includes a spread between two contracts of different sizes. In order to increase liquidity to traders of small contracts, ratio spreads are created with tradable volumes being determined by lot points assigned to each linked contract. As a result, small contract traders may now trade with full size contract traders. This increases overall market liquidity.
- Although referred to herein as a full size contract and a small contract, other names may be used for these types of contracts. For example, full size contracts may be referred to as a large contracts, full lot contracts, or full size contracts. Small contracts may be referred to as mini contracts, proportional contracts, or emini contracts. Other names, representations, or identifications may be used.
- In one aspect, a method for matching orders is provided. The method includes receiving one or more real orders via a communication network; generating an implied order, one or more components of the implied order being a ratio spread linking two contracts that have been specified with a common product but with trading units of different sizes; and matching the one or more orders with other real orders or the implied order.
- In a second aspect, a match engine for matching orders is provided. The match engine includes an input, a processor, and an output. The input is configured to receive one or more new orders. The processor is configured to receive the one or more new orders and generate an implied order. One or more components of the implied order may be a ratio spread linking two contracts that have been specified with a common product but with trading units of different sizes. The implied order may be generated based on the one or more new orders. The output may be configured to receive the implied order from the processor and transmit the implied order to a trade machine used for placing trades.
- In a third aspect, a match engine is provided. The match engine includes an input configured to receive one or more new orders; a processor configured to receive the one or more new orders and generate an implied order, one or more components of the implied order being a ratio spread linking two contracts that have been specified with a common product but with trading units of different sizes, the implied order being generated based on the one or more new orders; and an output configured to receive the implied order from the processor and transmit the implied order to a trade machine used for placing trades.
- In a fourth aspect, a computer-readable medium encoded with computer executable instructions is provided. The computer executable instructions executable with a processor. The computer-readable medium including instructions executable to receive one or more real orders via a communication network; instructions executable to generate an implied order, one or more components of the implied order being a ratio spread linking two contracts that have been specified with a common product but with trading units of different sizes; and instructions executable to match the one or more orders with other real orders or the implied order.
- In a fifth aspect, a trading network environment is provided. The trading network environment includes one or more trading workstations for entry of a plurality of orders; a communication network coupled to the trading workstations; and a trade matching system coupled to the communication network, wherein the trade matching system generates an implied order wherein one or more components of the implied order is a ratio spread linking two contracts that have been specified with a common product but with trading units of different sizes.
-
FIG. 1 illustrates one embodiment of atrading network 1000. Thetrading network 1000 includes anelectronic trading system 100,computer devices more market makers 130, aradio 132, and atrade engine 138. Theelectronic trading system 100 may be coupled with thecomputer devices more market makers 130,radio 132, andtrade engine 138. 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 components, and/or software components. - The
trading network 1000 may be used to place and fill orders for contracts, such as outright contracts and spread contracts. Outright contracts are defined by a product and a delivery period, such as a calendar month. Spread contracts are 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. Other combination contracts are possible and may also be used to spread liquidity, although for linking small contracts with full size contracts, only spreads may be necessary. - The
electronic trading system 100 may be a server, supercomputer, personal computer, central processing system, or other processor that receives and matches orders. Theelectronic trading system 100 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 electronic trading system 100. Thecomputer devices computer device -
Computer device 114 is shown directly connected toelectronic trading system 100.Electronic trading system 100 andcomputer device 114 may be connected via a T1 line, a common local area network (LAN) or other mechanism for connecting computer devices.Computer device 114 is shown connected to aradio 132. The user ofradio 132 may be a trader or exchange employee. The radio user may transmit orders or other data to the trader usingcomputer device 114. The trader usingcomputer device 114 may transmit a trade or other data toelectronic trading system 100. -
Computer devices LAN 124 may have one or more local area network opologies and may use a variety of different protocols, such as Ethernet.Computers LAN 124. Computers and other devices may be connected toLAN 124 via twisted pair wires, coaxial cable, fiber optics or other media. Alternatively, a wireless personal digital assistant device (PDA) 122 may communicate withLAN 124 or theInternet 126 via radio waves.PDA 122 may also communicate withelectronic trading system 100 via aconventional wireless hub 128. As used herein, a PDA includes mobile telephones and other wireless devices that communicate with a network via radio waves. -
FIG. 1 also showsLAN 124 connected to theInternet 126.LAN 124 may include a router to connectLAN 124 to theInternet 126.Computer device 120 is shown connected directly to theInternet 126. The connection may be via a modem, digital subscriber line (DSL), satellite dish or any other device for connecting a computer device to the Internet. - A trader, for example, using one or more of the
computer devices electronic trading system 100 by traders. Traders provide the appropriate data to theelectronic trading system 100 and release the order into the system as an open order, i.e., an order that has not yet been matched. 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. Thecomputer devices - Implied orders, unlike real orders, are generated by the exchange, for example, using the
electronic trading system 100, on the behalf of traders who have entered real orders. For example, an implied spread may be derived from two real outrights. Theelectronic trading system 100 calculates the implied order and displays the price level and available volume in the appropriate contract. This may be 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 being reported as matched trades. - The
electronic trading system 100 receives orders and transmits market data related to orders and trades to users.Electronic trading system 100 may be implemented with one or more mainframe, desktop or other computers. Auser database 102 includes data identifying traders and other users ofelectronic trading system 100. Data may include user names and passwords. Anaccount data module 104 may process account data that may be used during trades. Amatch engine module 106 is included to match bid and offer prices.Match engine module 106 may be implemented with software that executes one or more algorithms for matching bids and offers. Atrade database 108 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. Anorder book module 110 may be included to compute or otherwise determine current bid and offer prices. Amarket data module 112 may be included to collect market data and prepare the data for transmission to users. Arisk management module 134 may be included to compute and determine a user's risk utilization in relation to the user's defined risk thresholds. Anorder processing module 136 may be included to decompose delta based and bulk order types for processing byorder book module 110 andmatch engine module 106. - One or
more market makers 130 may maintain a market by providing constant bid and offer prices for a derivative or security toelectronic trading system 100.Electronic trading system 100 may also exchange data with other trade engines, such astrade engine 138. One skilled in the art will appreciate that numerous additional computers and systems may be coupled toelectronic trading system 100. Such computers and systems may include clearing, regulatory and fee systems. - The operations of
computer devices electronic trading system 100 may be controlled by computer-executable instructions stored on computer-readable medium. For example,computer device 116 may include computer-executable instructions for receiving order data from a trader and transmitting that order data toelectronic trading system 100. In another example,computer device 118 may include computer-executable instructions for receiving market data fromelectronic trading system 100 and displaying that data to a user. -
Electronic trading systems 100 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 106 (hereinafter, Match Engine 106). Theelectronic trading system 100 may have one ormore Match Engine 106. EachMatch Engine 106 is a specialized order matching component that receives real orders, generates implied orders, stores the orders, calculates tradable combinations and advertises the availability of real and implied orders in the form of market data. Traders respond to the market data by sending additional real orders, which are received by theMatch Engine 106, which then attempts to match the received orders with previously received or generated orders or combinations thereof. TheMatch Engine 106 executes the possible trades, for example, by matching the orders, and communicates the results. - The operations of the
Match Engine 106 may be performed in more than one part of atrading network 1000 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 thetrading network 1000 for the evaluation of possible trading strategies, for instruction, regulation or in the solution of other problems where trading is used as a model. - As shown in
FIG. 2 , theMatch Engine 106 may have a layered architecture. TheMatch Engine 106 may include a Match Engine Adaptation Layer 202 (hereinafter, the “Adaptation Layer 202”). TheAdaptation Layer 202 translates incoming messages into events that can be processed by a Match Engine Core (hereinafter, “Core”) 203. TheCore 203 includes anImplicator 204. TheImplicator 204 is operable to perform implication. Implication makes use of real orders to spread liquidity. TheMatch Engine 106 communicates with other components using amessage bus 201. The output messages from theCore 203 are translated by theAdaptation Layer 202 back into messages that can be transmitted to other parts of the trading system using themessage bus 201. - The
Implicator 204 may be program code that calculates implied orders. Although this example shows theImplicator 204 as part of aMatch Engine 106 in an electronic trading system, theImplicator 204 may be used in any electronic trading system where implied orders need to be calculated. TheImplicator 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, such as CLF:CLJ indicating a generic three-month spread in CL between the months of January (F) and April (J). - The
Core 203 and/or theImplicator 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, the threads may be designed or configured to 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. TheCore 203 may be implemented in such a language and that the calculation of implied orders by the Implicator 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 theCore 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, theAdaptation Layer 202 may also associate external quantities with internal scaled units that are also internal to theCore 203 and common to all the contracts in the implication group. - Referring back to
FIG. 1 , theMatch Engine 106 may perform match engine setup. Performing match engine setup may include defining a full size contract, defining one or more small contracts, calculating ratio spreads, defining special orders, loading persistent orders, or any combination thereof. Match engine setup may include additional, different, or fewer acts than necessary or desirable for defining the contracts, spread and orders. - In order to define the full size contract and/or one or more small contracts, the
Match Engine 106 may read a security definition message. Security definition messages may be formatted according to the financial information exchange (FIX) protocol. TheMatch Engine 106 may access, request and/or receive the security definition message and/or the contract definitions therein from one or more databases or files that the trading system uses to inform traders of the instruments that can be traded. Once obtained, theMatch Engine 106 may read the security definition messages and define the contracts defined therein. - In one embodiment, the
Match Engine 106 may use the FIX protocol to request and receive a security definition message. For example, theMatch Engine Module 106 may transmit a security definition request, formatted according to the FIX protocol, to theMarket Data Module 112. In response to the definition request, theMarket Data Module 112 may publish a security definition message according to the FIX protocol. The FIX protocol is a series of messaging specifications for the electronic communication of trade-related messages. The FIX protocol has been developed through the collaboration of banks, broker-dealers, exchanges, industry utilities and associations, institutional investors, and information technology providers from around the world. FIX is an industry-driven messaging standard used for transactions in an electronic, transparent, cost efficient and timely manner. The FIX Adapted for STreaming (FAST) Protocol may be used with the FIX protocol. The FAST protocol has been developed as part of the FIX Market Data Optimization Working Group. FAST is designed to optimize electronic exchange of financial data, particularly for high volume, low latency data dissemination. - In alternative embodiments, the
Match Engine 106 may use other techniques to obtain the security definition message or the definitions therein. For example, a system administrator may input the definitions using an input device, such as a keyboard, mouse, touchpad, or other device. In another example, theMatch Engine 106 may access a database, such as theUser Database 102 orTrade Database 108. - As used herein, the term “defining the . . . contract” may include making the contract available to traders. In other words, once the contract is defined, the
Match Engine 106 has the capability of matching buy orders in the contract with sell orders in the same contract, an operation referred to as making a real trade. In a real trade, theMatch Engine 106 receives a new order and matches it with a previously received order on the opposite side of the same contract that is resting on the order book. TheMatch Engine 106 may also have the capability of matching new orders with combinations of resting orders that are linked by the definitions of their contracts, an operation referred to as making an implied trade. There is no limit on the number of contracts that may be linked together. TheMatch Engine 106 may go through the contract definitions and determine which combinations are possible and which of these should be calculated and published during the trading state. Accordingly, once defined, the contracts and the properties form the basis of theMatch Engine 106 order book state. An order book state, with tradable contracts defined, but no orders, is referred to as being in the empty state. When orders arrive to buy and sell various quantities of the different contracts at various prices, the order book state is further defined by the prices, sides and quantities of the resting orders. - The
Match Engine 106 may establish an order book from which implied orders can be calculated and published. The order book may be established using the security definition message or contract definitions therein. The sizes of the contacts may be defined by an exchange. For example, the New York Mercantile Exchange (NYMEX) offers a contract for 500 barrels of West Texas Intermediate Crude Oil, referred to in its specification as “light sweet crude.” The contract for 500 barrels of light sweet crude has a trading symbol of “QM” and may be referred to herein using the QM symbol. NYMEX also offers a contract for 1000 barrels of light sweet crude. This contract has a trading symbol of “CL” and may be referred to herein using the CL symbol. The Exchange may define other sizes as well. -
FIG. 3 illustrates an order book with two contracts defined, specifically the CL contract and the QM contract for the delivery month of January. Thefirst row 301 corresponds to a contract for the CL contract and thesecond row 302 corresponds to the QM contract. Thecolumn 303 corresponds to the delivery month of January in a given year, represented symbolically by “F”. Accordingly, the CL contract having a delivery month of January may be represented symbolically as CLF and the QM contract having a delivery month of January may be represented symbolically as QMF - The QM contract is aimed at smaller market participants that want a lower cost instrument traded in a liquid market. The QM contract is financially settled, with its value on expiry determined by the settlement price of the 1000 barrel CL contract at the close of business on the last day that the QM contract is traded. However, in prior art systems, the full liquidity of the full size contract is not available to the small contract trader because the QM seller can only sell to a QM buyer. It was previously not possible for a QM seller to sell to a CL buyer, nor could a CL and QM be combined in an implied market to take advantage of liquidity in other products or delivery months. Because of the limited nature of the QM contract, the small contract trader had to be willing to incur additional costs and risk.
- Referring back to
FIG. 1 , match engine setup, which may be performed by theMatch Engine 106, may also include calculating ratio spreads. TheMatch Engine 106 may define or calculate a ratio spread. Defining the ratio spread contract may include assigning lot points to one or more of the contracts. The number of lots points assigned to a small contract may be based on the volume of the small contract relative to the volume of the full size contract, as well as the number of lot points assigned to the full size contract. The number of lot points assigned to the full size contract may be such that the number of lot point for the full size contract is the least common multiple of the lot points assigned to the one or more small contracts. - Table 1 illustrates one example of assigning lot points to contracts CL and QM, which are shown in
FIG. 3 . Contract CL corresponds to the New York Mercantile Exchange's West Texas Intermediate Crude Oil Contract RB is assigned 60 lot points. Contract QM, which has half the volume as contract CL, is assigned half the lot points (i.e., 30 lot points). Hypothetical contract CL6, which has a tenth of the volume as contract CL, is assigned a tenth of the lot points as contract RB (i.e., 6 lot points). -
TABLE 1 CONTRACT (West Texas Intermediate VOLUME OF LOT POINTS Crude CONTRACT ASSIGNED TO Oil) (gallons) CONTRACT CL 1000 60 lot points QM 500 30 lot points CL6 100 6 lot points - As shown in Table 1, the full size contract, which is contract CL, is assigned a number of lot points that is a least common multiple of the number of lot points for the other two contracts QM and CL6. The procedure is illustrated here for a simple group of contracts with the same underlying physical unit. It is understood that other physical units such as barrels, metric tons, British Thermal Units, kilowatt hours and so forth can be accommodated to any desired accuracy by making the number of lot points in the biggest contract sufficiently large.
- The lot points may be used to calculate ratio spreads for combination contracts. For example, based on the number of lot points assigned to the contract CL (i.e., 60 lot points) and the number of lot points assigned to the contract CL6 (i.e., 6 lot points), the
Match Engine 106 may calculate that the combination contract CL:CL6 has a ratio spread of 1:6. In other words, one (1) CL contract is being bought and six (6) CL6 contracts are being sold. The convention of buying multiple small contracts and selling one big (or vice versa) will always be clear from the context. Those of skill in the art will appreciate that an exchange can express one convention externally, such as “buy the ratio spread” means “buy the full size contract and sell the mini” while maintaining different conventions internally to simplify the arithmetic of implication. - The number of lot points assigned to each contract and/or the ratio spreads may be stored in memory for later use. As will be discussed below, the number of lot points assigned to each contract and/or the ratio spreads may used to determine the volume of implied orders for contracts of different sizes.
- The
Match Engine 106 may load persistent orders during match engine setup. Persistent orders may be past orders that were not completely filled in a previous trading sessions but whose properties require them to be carried forward to the subsequent session. For example, persistent orders include good-through-date (GTD) or good-till-canceled (GTC) orders. In one embodiment, theMatch Engine 106 may update theOrder Books Module 110 as orders are entered, modified, canceled or filled during the trading session. At the end of the trading session, theOrder Books Module 110 removes orders that do not have the properties of persistence. During the setup state for the subsequent session, theMatch Engine 106 sends a query to theOrder Books Module 110 or an associated database, obtains the data for the persistent orders in the form of a record set, iterates the record set and stores the orders internally in the data structures used to represent the order book. - The
Match Engine 106 may also define one or more special orders. Special orders are matched and traded in the same way as ordinary orders but are coded in such a way that theMatch Engine 106 can apply special rules not available to ordinary traders, but which allow the Match Engine's 106 generic order matching logic to be used for other exchange business needs. For example, theMatch Engine 106 can define special orders that will only trade as components in an implied combination, which would allow the engine to maintain orders in spread contract where the bid price is identical to the asking price or fractionally better. This technique could be used to automatically convert bids for one contract into bids for a linked contract through simple implication. Exemplary special orders include ratio spread orders with special properties such as zero prices and infinite volumes. However, other special orders may be used, such as orders with slightly different lot point volumes or internally scaled prices to express differences in trading priority that are recognizable to the match engine but invisible to the outside world when the prices and volumes are rounded to standard values. Special orders are useful because they reduce the amount of computer program code and subsequent testing required to implement new trading system requirements. - Defining one or more special orders may include loading the special orders from a database. The special orders may be read in the same way as persistent orders, for example, from the
Order Books Module 110. In one embodiment, the special orders are previously entered into the database using a program designed for this purpose and the codes used to identify the special orders are checked by the match engine when the database is being read. The match engine loads only the orders whose codes it has been programmed to recognize and informs the operator of the trading system if orders with unrecognizable codes have been encountered. - The
Match Engine 106 may display ratio spreads along with the combination contracts. Displaying the ratio spreads may include sending ratio spread data to one or more computer devices, such ascomputer devices - A trader or trading entity may view the ratio spreads and decide that it is advantageous, either financially or strategically, to place an order for one or more of the ratio spreads.
- Once match engine setup has been performed, the
Match Engine 106 may enter a trade state. In the trade state, theMatch Engine 106 may receive one or more orders, match the orders with other orders, and publish the market data. - Buy and sell orders for the tradable contracts may be read from a database such as
User Database 102 orTrade Database 108, received fromcomputer devices Match Engine 106 according to its programmed instructions, for example, to create implied orders. The orders resting in theMatch Engine 106 define the order book state. When the order book does not have any resting orders, theMatch Engine 106 is considered to be in the empty state. However, when the order book has orders, theMatch Engine 106 is considered to be in the trade state. -
FIG. 4 illustrates an order 401 to buy one lot of CLF and an order 402 to sell two lots of QMF. The combination order may be a spread contract and imply a 1:2ratio spread 405. The order to buy CLF is represented by thesolid circle 403 and the order to sell QMF is represented by the open circle 404. The CLF:QMF ratio spread, which is a combination order to buy 1 lot of CLF and sell two lots of QMF, is represented by a cross-hatched circle and an open circle connected by the dashedline 405. The ratio spread is designated 1:2 to indicate that one lot is bought and two lots are sold although it is understood that this notation may be dropped when the meaning is clear. - Buy and sell orders for the tradable contracts may be read from a database such as
User Database 102 orTrade Database 108, received fromcomputer devices - If the Exchange does not define CLF:QMF (1:2) as a tradable contract it is still possible for speculators to “trade the spread”. For example, a speculator can calculate its current value from the market data published by the exchange and estimate whether money could be made by selling one lot of CLF, buying two lots of QMF and holding the two positions until they can be liquidated to advantage. The speculator will then offer to buy and sell the CLF and QMF contracts according to his or her estimate of how their prices will change over time. The speculator's profit comes at the expense of the small volume hedger and although this is the speculator's legitimate compensation for assuming the risk of adverse price movements, it can run counter to the exchange's larger goal of attracting more small hedgers.
- If the exchange defines CLF:QMF (1:2) as a tradable contract then the
Match Engine 106 may use implication to make liquidity in the full size contract available to traders of the small contract.FIGS. 5A and 5B illustrate the CL:QM (1:2) tradable ratio spread. InFIG. 5A , the combination of thesell CLF order 501 entered by a trader and the buy spread 502 implies asell QM order 503 for two lots. TheMatch Engine 106 uses rules of implication to prevent trades with incoming orders to buy QM that do not have an even number of lots. For example, theMatch Engine 106 may limit the creation of implied orders to the pattern shown inFIG. 5B . In this example, an order or orders to sell two lots of QM have been aggregated to form a two-lot offer 504 and has been combined by theMatch Engine 106 with the sell spread 505 to imply a one lot buy 506 in CL. If there is an odd quantity offered for sale in QMF, half that quantity rounded down to the closest integer will be offered for sale in CLF. If there is only one lot offered for sale in QMF then no implied lots from the CL:QM (1:2) spread will be offered in CLF. - In one embodiment, linking spread contracts includes calculating and/or assigning a number of lot points for each linked contract. Calculating the number of lot points for each contract may include determining the lot size of the full size contract, determining the lot size of the one or more small contracts, comparing the lot sizes of the full size contract and one or more small contracts, and determining lot points for each contract such that the lot points assigned to the full size contract (i.e., big volume) is an integer multiple of the lot points assigned to the one or more small contracts (i.e., small volumes). For example, as shown in Table 1, if the 1000 barrel CL contract for 1 lot is defined as having 60 “lot points”, the 500 barrel QM contract for 1 lot is represented by 30 “lot points”. A hypothetical 100 barrel contract would have six lot points. The number of lot points in the full size contract is also referred to as the full lot scaling factor.
- In one embodiment, the initial lot size for the full size contract may be determined by the exchange's market development plan and the characteristics of the
computer devices - When an implied order calculated in this manner is in a full size contract, there will always be sufficient volume in the component orders to trade with an order in the full size contract. If the implied order is in a small contract, then the
Match Engine 106 sets a minimum volume to be traded. Accordingly, an implied bid for an untradeable quantity can exceed a real bid in the same market by enough to meet or exceed the real offer on the other side. This is not a problem for theMatch Engine 106, but may require the Exchange to set additional rules for the publication of market data so that implied price levels do not appear to show locked or crossed markets. In an implementation, this is done by requiring the implied order to function as an “all or nothing” type order for the minimum required number of lots, with these being replenished after trading in the manner of an “iceberg” order, both of which are common in electronic trading systems. Those of skill in the art will appreciate that this is only an example and that a wide variety of alternatives are possible. - The volumes available in the different size contracts may be reported separately in the market data. This prevents the market data from showing a crossed market (bids greater than asks) when, for example, the bids are higher in the small contract but there are not enough of them to match with an order in the full size contract. The exact market data format is tailored to the needs of the brokers and other trading entities whose software interacts with the exchange, for example through
computer devices - In an embodiment, the
Match Engine 106 may create and maintain the spread orders internally with prices of “p=$0.00” and volumes of “v=.infin.” so that the real and implied orders in CL and QM have their prices locked together and any quantity of contracts can be exchanged. InFIG. 5B , any time that there is an even quantity offered for sale in QMF, exactly half that quantity will be offered for sale in CLF. The cost of liquidating any unbalanced positions when the contracts expire is borne by the exchange as a market development cost for acquiring new customers. It is understood that the costs of such liquidation are different for spreads between financially settled contracts, spreads between physically settled contracts in the same product and for spreads between financially settled and physically settled contracts. - In one embodiment, the
Match Engine 106 may create internal orders that link small contracts and full size contracts according to the data in exchange-specific tags in the FIX security definition messages, a practice allowed by the FIX Protocol. In another embodiment, such orders are a special type of order read from an order table in the same manner as good-through-date (GTD) or good-till-canceled (GTC) orders are read in prior-art systems, for example from theOrder Books Module 110 inFIG. 1 . In another embodiment the ratio spreads are traded as ordinary contracts and no additional order initialization is required. Those of skill in the art will appreciate that a wide variety of initialization methods can be used. -
FIG. 6 illustrates a method 600 for providing ratio spread orders as tradable instruments. The method 600 may include any ordered combination of the acts shown inFIG. 6 as well as additional, fewer, or different acts deemed necessary or desirable to provide or define ratio spread orders. The method 600 may be implemented using theMatch Engine 106 ofFIG. 1 or a different device or system. -
FIG. 6 illustrates a method 600 for matching trade orders. The method 600 may include performingmatch engine setup 610, matchingorders 620, and terminating atrade session 630. Match engine setup may be performed before the match engine receives orders. During a trade session, the match engine may respond to messages for one or more orders. Accordingly, performingmatch engine setup 610 may be performed during a “setup state” and responding tomessages 620 may be performed during a “trading state.” During the trading state, the match engine is configured to match newly arriving orders with previously received orders. The results of the matching may be published in the form of execution reports and market data. - The method 600 may be used to match orders in a ratio spread contract. A ratio spread contract is a composite contract, which may also be referred to as a strategy or strategy contract, defined as the simultaneous buying of a first quantity of a first contract and selling a second quantity of a second contract where the two quantities are in a specified ratio. Although it is possible for the first and second contracts to themselves be strategies, in practice it is more common to define complex strategies in terms of a larger number of simpler components, also referred to as legs. Those of skill in the art will appreciate that many equivalent contract definitions are possible and that the definition used in a specific embodiment may depend on how other parts of the trading system have been implemented.
- In a real trade, an order to buy the ratio spread is matched with an order to sell the ratio spread. In an implied trade, an order to buy the ratio spread may be matched with a real order to sell the first contract and a real order to buy the second contract since the combination of these two real outright orders implies an order to sell the spread. It is also possible to imply either the buy or sell spread order with other combinations of orders for outrights and spreads. When a trader places an order for a ratio spread, the trader may be guaranteed to receive fills in every component of the ratio spread as part of the same transaction. In contrast, trading the component contracts individually exposes the trader to leg risk, where a sudden change in the market can result in fills at unwanted prices or even no fills at all, leaving the trader with the cost of backing out of an unwanted position. One of the major advantages of implication is that it eliminates leg risk and spreads liquidity through all of the contracts that can be linked together in combinations.
-
FIG. 7 illustrates one embodiment of a method for performingmatch engine setup 610. Match engine setup is performed in order to prepare the match engine for providing ratio spreads during the trading state. - In order to perform match engine setup, a match engine may define a
full size contract 710 and one or moresmall contracts 720. Defining thefull size contract 710 and/or one or moresmall contracts 720 may include reading a security definition message. The match engine may access, request and/or receive the security definition message and/or the definitions therein from one or more databases or files that the trading system uses to inform traders of the instruments that can be traded. Once obtained, the match engine may read the security definition messages and define the contracts defined therein. - The match engine may define a ratio spread contract as shown in
act 730. The definition of the ratio spread contract may include assigning lot points to one or more of the contracts. The number of lots points assigned to a small contract may be based on the volume of the small contract relative to the volume of the full size contract, as well as the number of lot points assigned to the full size contract. The number of lot points assigned to a full size contract may be such that the number of lot point for the full size contract is the least common multiple of the lot points assigned to the one or more small contracts. - TABLE 2 illustrates one example of assigning lot points to contracts RB, RB21, and RB6. TABLE 2 corresponds to
FIG. 9 . Contract RB corresponds to the New York Mercantile Exchange's reformulated gasoline blendstock for oxygen blending (RBOB), physically delivered in New York harbor in lots of 42000 gallons (equivalent to 1000 barrels), and thus, is represented symbolically by “RB”. Contract RB is assigned 42 lot points. Contract RB21, which has half the volume as contract RB, is assigned half the lot points as contract RB. Contract RB6, which has a seventh of the volume as contract RB, is assigned a seventh of the lot points as contract RB. -
TABLE 2 VOLUME OF LOT POINTS CONTRACT CONTRACT ASSIGNED TO (RBOB) (gallons) CONTRACT RB 42000 42 lot points RB21 21000 21 lot points RB6 6000 6 lot points - As shown in TABLE 2, the full size contract, which is contract RB, is assigned a number of lot points that is a least common multiple of the number of lot points as the other two contracts RB21, RB6. The procedure is illustrated here for a simple group of contracts with the same underlying physical unit. It is understood that other physical units such as barrels, metric tons, British Thermal Units, kilowatt hours and so forth can be accommodated to any desired accuracy by making the number of lot points in the biggest contract sufficiently large.
- The number of lot points for each contract may be used to determine the volume of implied orders. For example, as shown in
FIG. 9 , resting orders in different contracts with different number of lot points per contract lot are shown implying a January to February spread (RBF:RBG) in the full size contract RB. When defining the ratio spread contract RB:RB21, the match engine may use the lot points to determine that one (1) contract RB is being bought and two (2) contracts RB21 are being sold. In another example, the combination contract RB6:RB may indicate that seven (7) contracts are being bought and one (1) contract is being sold. Accordingly, ratio spread for combination order RB6:RB may be 7:1. From the trader's standpoint, these ratio spreads may be referred to as either a 2:1 and 7:1 ratio spreads or as 1:2 and 1:7 ratio spreads, since the convention of buying multiple minis and selling one big (or vice versa) will always be clear from the context. Those of skill in the art will appreciate that an exchange can express one convention externally, such as “buy the ratio spread” means “buy the full size contract and sell the mini” while maintaining different conventions internally to simplify the arithmetic of implication. - Referring back to
FIG. 7 , the match engine may define one or more special orders, as shown inact 740. Special orders are matched and traded in the same way as ordinary orders but are coded in such a way that the match engine can apply special rules not available to ordinary traders, but which allow the engine's generic order matching logic to be used for other exchange business needs. For example, the match engine can define special orders that will only trade as components in an implied combination, which would allow the engine to maintain orders in spread contract where the bid price is identical to the asking price or fractionally better. This technique could be used to automatically convert bids for one contract into bids for a linked contract through simple implication. Exemplary special orders include ratio spread orders with special properties such as zero prices and infinite volumes. However, other special orders may be used, such as orders with slightly different lot point volumes or internally scaled prices to express differences in trading priority that are recognizable to the match engine but invisible to the outside world when the prices and volumes are rounded to standard values. Special orders are useful because they reduce the amount of computer program code and subsequent testing required to implement new trading system requirements. - Defining one or more special orders may include loading the special orders from a database. The special orders may be read in the same way as persistent orders such as good-through-date (GTD) or good-till-canceled (GTC) orders are read in prior-art systems, for example from the
Order Books Module 110 inFIG. 1 . In an implementation, the special orders are previously entered into the database using a program designed for this purpose and the codes used to identify the special orders are checked by the match engine when the database is being read. The match engine loads only the orders whose codes it has been programmed to recognize and informs the operator of the trading system if orders with unrecognizable codes have been encountered. - As shown in
act 750, the match engine may load persistent orders. Persistent orders may be past orders that were not completely filled in a previous trading session but whose properties require them to be carried forward to the subsequent session. For example, persistent orders include good-through-date (GTD) or good-till-canceled (GTC) orders. In an implementation, the match engine causes theOrder Books Module 110 inFIG. 1 to be updated as orders are entered, modified, canceled or filled during the trading session. At the end of the trading session, theOrder Books Module 110 removes orders that do not have the properties of persistence. During the setup state for the subsequent session, the match engine sends a query to theOrder Books Module 110 or its associated database, obtains the data for the persistent orders in the form of a record set, iterates the record set and stores the orders internally in the data structures used to represent the order book. - In one embodiment, the ratio spreads, which are supported by the match engine, may be displayed. Displaying the ratio spreads may include sending ratio spread data to one or more computer devices, such as
computer devices - A trader or trading entity may view the ratio spreads and decide that it is advantageous, either financially or strategically, to place an order for one or more of the ratio spreads.
- Referring back to
FIG. 6 , once the match engine completes match engine setup, the match engine may begin responding tomessages 620. As used herein, “responding to messages” may include receiving new orders, matching the new orders with real or implied orders, publishing market data, or any combination thereof. Additional, different, or fewer acts may be provided in responding to messages. -
FIG. 8 illustrates one embodiment of responding tomessages 620. The match engine may receive anew order message 810. The new order message may define a new order, for example, placed by the trader or trading entity. The new order may be an order for a ratio spread. As used herein, the term “new order message” may include all messages that result in a change to the order book state, such as messages which modify or cancel previously entered orders or which change the tradability of orders or groups of orders. Those of skill in the art will appreciate that messages affecting contracts and groups of contracts can also affect the tradability of orders, for example by opening or closing a market and thereby changing the implied markets that can be calculated and published. It is understood that the term “new order” is used to simplify the exposition and not to limit the scope of lot point calculations. - For example, as shown in
FIG. 9 , the match engine may receive one or more outright orders, such asBUY RB21F 908 and SELLRB6G 909. Theoutright order 908 may be an order to buy 11 lots of RB21 andoutright order 909 may be an order to sell 40 lots of RB6. In an implementation, the trader may use a computer device, such ascomputer device 114, to send a new order message to buy or sell a specified quantity of the ratio spread RBF:RB21F to the match engine. In another implementation, the order for the ratio spread RBF:RB21F is a special order loaded by the match engine during the setup phase that can be used in implication but not directly traded against another order in the same contract. - The match engine may calculate an implied order in any contract where the necessary linking contracts exist and where these contracts contain resting orders on the appropriate sides, which may be either stored in memory during the setup state or previously received as new orders. For example, as shown in
FIG. 9 , the 1:2 ratio spread for RB:RB21 in January 906 and the 7:1 ratio spread for RB6:RB in February 907 may be combined with theoutright orders order 910. In order to calculate the number of lots in the implied BUY RBF:RBG spread, the maximum possible implied volume is calculated as the minimum of the volumes in the chain of orders. The finite volume components constrain the available volume to 231 lot points (231,000 gallons) in RB21F and 240 lot points (240000 gallons) in RB6G. The minimum is 231 lot points, which must then be divided by the number of lot points in the implied contract to determine the number of implied lots. In this case the RBF:RBG spread is a full size contract with 42 lot points (one lot equals 42000 gallons) so the implied volume is 5.5 (231 divided by 24). This may be rounded down to the nearest integer in order to publish a tradable quantity, which in this case is 5 lots. It is understood that rounding down may on occasion result in a tradable quantity of zero. - Referring back to
FIG. 8 , once the outright contracts and the implied ratio spreads have been defined and one or more orders have been received, the match engine may determine whether a new order is tradable against a previously received order in a real trade or a combination of previously received orders in an impliedtrade 820. In general, a new buy order is tradable if its price is greater than the asking price of a resting real order for a real trade or greater that the appropriately weighted sum of the bid and ask prices in the resting buy and sell orders that form the implied order for an implied trade. In an implementation, the match engine may give preference to real or implied orders on the basis of price, volume, time of entry, ownership or some combination of these and other factors. - In the event that the new order is not tradable “NO,” the match engine may store the
new order 830 in memory, update themarket data 840, and publish themarket data 850. Updating themarket data 840 may include updating the properties of an order queue to reflect the fact that an order has been stored for a particular contract. The updated market data may be published so that traders may are aware that one or more orders are present in the market to buy or sell specified quantities of contracts at specified prices and that these have changed as a result of the match engine receiving its most recent message. - In the event that the new order is tradable “YES,” the match engine may determine whether the order should be traded against a resting real order or against a resting implied
order 860. In an implementation, the match engine computes all the possible combinations of resting orders that can be traded as implied orders and stores these as part of the order book state before receiving the next new order. The price of an implied order in a given contract is therefore available for comparison with the price of any real order in that contract and with the price of the incoming order so that a decision may be made as to whether the incoming order is tradable and if so, whether it should be traded against the real order or the implied order. Those of skill in the art will appreciate that any or all of the properties required to establish the relative priority of the implied and the real order may be computed prior to the receiving of a new order. Those of skill in the art will also appreciate that the technique of “lazy evaluation” may be applied to these calculations, so that the actual calculations are only performed once the need for their results has been determined, possibly after the receiving of the new order in a part of the match engine but before some other part performs the comparison. - When the trade is with a resting real order “REAL”, the match engine may match the new order, update the market data, and publish the updated
market data 870. - When the trade is with a resting implied order “IMPLIED,” the match engine may determine the sequence of
order queues 890, iterate sequence to identifypossible matches 892, calculatetrades 894, and publish trade matches 896. Additional, different, or fewer acts may be provided. - In
act 890, the match engine determines the sequence of order queues. Determining the sequence of order queues may include identifying the contracts that are linked together to form the implied chain and selecting the order queues for the best price levels in each of these contracts to form a sequence of order queues.FIG. 10 illustrates a sequence of order queues for thereal markets 1000, an order queue for the impliedmarket 1010, and an order queue for the matching input orders queue 1030. An order queue is a collection of orders that are kept in a priority sequence. The principal operations on the collection of orders are the addition of orders to the rear terminal position “REAR” and removal of entities from the front terminal position “FRONT”. In one embodiment, the order queues may be First-In-First-Out (FIFO) queues. In a FIFO queue, the first order added to the queue will be the first order to be removed. This is equivalent to the requirement that whenever an order is added, all elements that were added before have to be removed before the new order can be matched. In another embodiment, the order queue has a comparator function that effectively places the orders in a sequence where the order removed from the front of the queue will be the most significant order according to the rules of comparison. Those of skill in the art will appreciate that a broad range of comparator functions may be implemented in a programming language such as Java or C++, of which FIFO is merely a simple example. The positions of the orders in the order queues of Figure BB is intended to illustrate the sequence in which they would be removed from the front of the queue, not the sequence of their arrival or their positions in the physical memory of the computing device on which the match engine has been implemented. - Order queues 1002-1008 are used to collect real market orders. For example,
order queue 1002 is associated with the order Buy RBF:RB21F;order queue 1002 is associated with the order Buy RB21F;order queue 1006 is associated with the order Sell RB6G; andorder queue 1008 is associated with the order Buy RB6G:RBG.Order queue 1010 is associated with the order BUY RBF:RBG 812. The order queue 1020 is associated with the implied order SELL RBF:RBG 1022. - As the match engine receives additional new orders, the match engine may place the orders in the corresponding queues. For example, as shown in TABLE 3, the match engine may receive the following new orders.
-
TABLE 3 Trader Order Size of Order Trader A BUY RBF:RB21F ∞ Trader B BUY RB21F 1 lot Trader C SELL RB6G 1 lot Trader D BUY RB6G:RBG ∞ Trader E SELL RBF: RBG 1 lot Trader F BUY RB21F 4 lots Trader G SEELL RB6G 4 lots Trader H SELL RB6G 30 lots - The orders shown in TABLE 3 are illustrated in
FIG. 10 . InFIG. 10 , each order is shown as a rectangle whose vertical dimension is an integer number of lot points 1040. The integer number of lot points may be determined based on the size of the order. The ratio spreads 1050, 1060 are shown with infinite volume. The ratio spreads have a lot size equal to that of the full size contract in their full size contract legs and a lot size equal to that of the appropriate small contract in small contract legs. The ratio spreads have the property of being able to trade with one trader on the big side and any number of traders on the small side. - Referring back to
FIG. 8 , the match engine iterates the sequence of order queues to identify the possible matches, inact 892. In an implementation, the sequences of contracts that make up the implied chains have been calculated prior to the receiving of a new and tradable order. When the new order is received and determined to be tradable against an implied order, the sequence of contracts in the implied order is retrieved from the memory of the computing device on which the match engine has been implemented. In an implementation, the sequence is stored in a data type referred to in a programming language such as Java or C++ as a collection or as similar a class of objects on which a special type of variable called an iterator can be defined. Such a data type provides methods in the form of callable subroutines which may be called repeatedly, whereby each call returns the next order queue in the sequence that makes up the chain. The match engine, which is implemented as a computer program, uses a loop to call the appropriate methods and after each call, performs the operations that are needed to obtain the front element of each order queue (an order) and record the fact that this order has participated in a trade. For example, the order's working quantity may be decremented and an execution report published to the owner of the order to indicate that the status of the order has changed. When all of the order queues in the implied chain have been processed in this manner the loop terminates. Those of skill in the art will appreciate that the traders associated with individual orders will receive individual execution reports and that the trading system will record individual changes in position for the individual traders. The constraint that every decrease in the holdings of one trader must be matched with a corresponding increase in the holdings of another trader is imposed by the match engine. In a real trade there are only two parties and the increase to one party is clearly matched with the decrease to the other. In an implied trade there may be many parties and many pairwise trades. - In
FIG. 10 , a sequence of pairwise trades is referred to as a “baloney slice”, whereby a sequence of paired trades satisfying the aforementioned constraints is “sliced” from the fronts of the order queues in the sequence. In a first trade, the match engine determines that Trader E (the incoming order) sells 1 lot of RBF (42000 gallons) to Trader A and buys 1 lot of RBG from Trader D. Trader A buys 1 lot of RBF (42000 gallons) from Trader E and sells 1 lot of RB21F (21000 gallons) to Trader B and 1 lot of RB21F (21000 gallons) to Trader G. Trader D buys 1 lot of RB6G (6000 gallons) from Trader C, 4 lots (24000 gallons) from Trader G and 2 lots (12000 gallons) from Trader H. Trader D then sells 1 lot of RBG (42000 gallons) to Trader E, which completes the transactions for Trader E. The Match Engine can then move on to the next input order and repeat the matching procedure. Trader A has effectively bought one full size contract and sold two small (half-size) contracts. Trader D has bought 7 small (one seventh size) contracts and sold one full size contract. The other traders have bought or sold contracts of a single size. - Finally, in
act 894, the match engine publishes the trades data and the market data reflecting the trade matches that have taken place. Those skilled in the art will appreciate that although some trade data is typically included in the market data published to all traders, specific trade data may be published separately to components of the trading system outside the match engine, including, for example, the details needed for accounting. The emphasis on market data in the present exposition is not intended to preclude these other forms of communication in a specific trading system. Moreover, market data may originate in the match engine but be formatted for transmission to traders and other interested parties by a separateMarket Data Module 112 as shown inFIG. 1 . The market data may be included in a message formatted according to the FIX Protocol. A market data message may report the quantity available at a price level rather than an individual order. As such, it can use different tag-value pairs to report volume in small contracts and full size contracts. The FIX Protocol allows any number of price levels to be published in a market data incremental refresh and has a specified format for implied markets. Moreover, the FIX Protocol allows an exchange to define additional “exchange-specific” tags according to the needs of its customers. Those of skill in the art will appreciate that the linkage of liquidity made possible by ratio spreads and implication inside the match engine and can be expressed to the trading community using a wide variety of established techniques. - Referring back to
FIG. 6 , the match engine may terminate atrade session 630. The match engine may terminate the trade session when a fatal error is detected, the system administrator ends the trade session, or the trade session times out. -
FIG. 11 illustrates one embodiment of anElectronic trading system 100. TheElectronic trading system 100 may be a personal computer, server, electronic device executing computer executable code, or other processing unit. TheElectronic trading system 100 may be manufactured, distributed, configured, programmed, or sold for trading purposes, such as mixing contracts of different sizes. - The
Electronic trading system 100 may include aprocessor 1110 andmemory 1120. Additional, different, or fewer components may be provided. For example, in one embodiment, theElectronic trading system 100 may include a display. The display may be local to theElectronic trading system 100. Alternatively, the display may be independent disposed at a remote location. The remote location being at a location different than the location where theElectronic trading system 100 is disposed. - The processor 1100 may be operable to execute instructions stored on or in the
memory 1120. Thememory 1120 may store instructions that may be executed for trade matching. For example, as shown inFIG. 11 , thememory 1120 may store instructions that may be executed to performmatch engine setup 1122, instructions that may be executed to respond tomessages 1124, and instructions that may be executed to terminate atrade session 1126. - The instructions for performing match engine setup 1122 (hereinafter, “
instructions 1122”) may be executed by the processor 1100 to perform match engine setup. Theinstructions 1122 may include instructions that may be executed to define a full size contract, define one or more small contracts, calculate ratio spreads, define special orders, and load persistent orders, or any combination thereof. - The instructions for responding to messages 1124 (hereinafter, “
instructions 1124”) may be executed by the processor 1100 to respond to messages. Theinstructions 1124 may include instructions executable to receive one or more real orders via a communication network. Theinstructions 1124 may also include instructions that may be executed to generate an implied order, one or more components of the implied order being a ratio spread linking two contracts that have been specified with a common product but with trading units of different sizes. Theinstructions 1124 may include instructions executable to match the one or more orders with other real orders or the implied order. - In one embodiment, the
instructions 1124 may include instructions that are executable to instructions executable to define a full size contract and a small contracts as the two contracts; assign lot points to the full size contract and the one or more small contracts, the lot points being used to associate a volume of the one or more small contracts with a volume of the full size contract; and create a ratio spread in a way that liquidity in the full size contract is available to traders of the one or more small contracts, the ratio spread orders being created based on the lot points assigned to the full size contract and the one or more small contracts. A number of lot points may be assigned to the full size contract such that the number of lots points for the full size contract is a least common multiple of a number of lots points assigned to the one or more small contracts. Theinstructions 1124 may include instructions executable to determine a minimum volume of the one or more small contracts; and instructions executable to divide the minimum volume of the small contracts by a volume of the large contract and rounding to the nearest full integer, the ratio spread of the implied order being set equal to a nearest full integer. - The instructions for terminating a trade session 1126 (hereinafter, “instructions 1126) may be executed by the processor 1100 to terminate a trade session.
- One skilled in the art will understand that other instructions may be stored in the
memory 1120. Additionally, or alternatively, the instructions may be separated into individual components that are or are not paired with the other instructions. For example, theinstructions 1122 may or may not include instructions for defining ratio spread contracts. The instructions for defining ratio spread contracts may be provided in a different set of instructions that are independent of theinstructions 1122. - The
processor 1110 may be may be a general processor, digital signal processor, application specific integrated circuit, field programmable gate array, analog circuits, digital circuit, combinations thereof, or other now known or later developed processors. Theprocessor 110 may be a single device or a combination of devices, such as associated with a network or distributed processing. Any of various processing strategies may be used, such as multi-processing, multi-tasking, parallel processing, or the like. Processing may be local, as opposed to remote. Theprocessor 1110 may be responsive to instructions stored as part of software, hardware, integrated circuits, firmware, micro-code or the like. - The
memory 1120 may be computer readable storage media. The computer readable storage media may include various types of volatile and non-volatile storage media, including but not limited to random access memory, read-only memory, programmable read-only memory, electrically programmable read-only memory, electrically erasable read-only memory, flash memory, magnetic tape or disk, optical media and the like. Thememory 1120 may be a single device or a combination of devices. Thememory 1120 may be adjacent to, part of, networked with, programmed with, and/or remote from theprocessor 1110. Thememory 1120 may store data representing instructions executable by the programmedprocessor 1110. Theprocessor 1110 may be programmed with and execute the instructions. The functions, processes, acts, methods or tasks illustrated in the figures or described herein may be performed by the programmed processor executing the instructions stored in the memory. The functions, acts, processes, methods 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, firm ware, micro-code and the like, operating alone or in combination. - As shown in
FIG. 11 , thematch engine 106 may include an input and/oroutput 1150. The input and/oroutput 1150 may be configured to transmit and/or receive data. For example, in one embodiment, the input and/or output may be an interface to a network. A network cable may plug-in to the input and/oroutput 1150. The input and/oroutput 1150 may be electrically coupled with theprocessor 1110 and may relay data from the network to the processor. - In one embodiment, an input may be configured to receive one or more new orders and an output may be configured to receive the implied order from the processor and transmit the implied order to a trade machine used for placing trades.
- Various embodiments described herein can be used alone or in combination with one another. The forgoing detailed description has described only a few of the many possible implementations of the present invention. For this reason, this detailed description is intended by way of illustration, and not by way of limitation. It is only the following claims, including all equivalents that are intended to define the scope of this invention.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/304,471 US20140310146A1 (en) | 2009-09-15 | 2014-06-13 | Ratio spreads for contracts of different sizes in implied market trading |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/560,122 US8255305B2 (en) | 2009-09-15 | 2009-09-15 | Ratio spreads for contracts of different sizes in implied market trading |
US13/543,512 US8793180B2 (en) | 2009-09-15 | 2012-07-06 | Ratio spreads for contracts of different sizes in implied market trading |
US14/304,471 US20140310146A1 (en) | 2009-09-15 | 2014-06-13 | Ratio spreads for contracts of different sizes in implied market trading |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/543,512 Continuation US8793180B2 (en) | 2009-09-15 | 2012-07-06 | Ratio spreads for contracts of different sizes in implied market trading |
Publications (1)
Publication Number | Publication Date |
---|---|
US20140310146A1 true US20140310146A1 (en) | 2014-10-16 |
Family
ID=43731466
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/560,122 Active 2030-09-09 US8255305B2 (en) | 2009-09-15 | 2009-09-15 | Ratio spreads for contracts of different sizes in implied market trading |
US13/543,512 Active US8793180B2 (en) | 2009-09-15 | 2012-07-06 | Ratio spreads for contracts of different sizes in implied market trading |
US14/304,471 Abandoned US20140310146A1 (en) | 2009-09-15 | 2014-06-13 | Ratio spreads for contracts of different sizes in implied market trading |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/560,122 Active 2030-09-09 US8255305B2 (en) | 2009-09-15 | 2009-09-15 | Ratio spreads for contracts of different sizes in implied market trading |
US13/543,512 Active US8793180B2 (en) | 2009-09-15 | 2012-07-06 | Ratio spreads for contracts of different sizes in implied market trading |
Country Status (4)
Country | Link |
---|---|
US (3) | US8255305B2 (en) |
AU (1) | AU2010295889A1 (en) |
CA (1) | CA2774066A1 (en) |
WO (1) | WO2011034729A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140189161A1 (en) * | 2012-12-31 | 2014-07-03 | Trading Technologies International, Inc. | In-Line FIX Packet Translator |
WO2017031430A1 (en) | 2015-08-19 | 2017-02-23 | Chicago Mercantile Exchange Inc. | Optimized electronic match engine with external generation of market data using a minimum data set |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5905974A (en) * | 1996-12-13 | 1999-05-18 | Cantor Fitzgerald Securities | Automated auction protocol processor |
US6850907B2 (en) | 1996-12-13 | 2005-02-01 | Cantor Fitzgerald, L.P. | Automated price improvement protocol processor |
US7392214B1 (en) | 1999-04-30 | 2008-06-24 | Bgc Partners, Inc. | Systems and methods for trading |
US7392217B2 (en) | 2001-05-09 | 2008-06-24 | Bgc Partners, Inc. | Systems and methods for controlling traders from manipulating electronic trading markets |
US7039610B2 (en) * | 2001-10-04 | 2006-05-02 | New York Mercantile Exchange, Inc. | Implied market trading system |
US8566212B2 (en) * | 2002-10-31 | 2013-10-22 | Bgc Partners, Inc. | Electronic systems and methods for providing a trading interface with advanced features |
EP1416363A3 (en) | 2002-10-31 | 2006-07-26 | eSpeed, Inc. | Keyboard for trading system |
US8131626B2 (en) | 2003-11-17 | 2012-03-06 | Bgc Partners, Inc. | Customizable trading display of market data |
CA2732007C (en) * | 2004-05-10 | 2016-06-28 | Espeed, Inc. | Fully configurable trading keyboard |
CA2518012A1 (en) | 2005-03-24 | 2006-09-24 | Espeed, Inc. | Systems and methods for protecting against erroneous price entries in the electronic trading of financial and other instruments |
US8229835B2 (en) | 2009-01-08 | 2012-07-24 | New York Mercantile Exchange, Inc. | Determination of implied orders in a trade matching system |
US8417618B2 (en) * | 2009-09-03 | 2013-04-09 | Chicago Mercantile Exchange Inc. | Utilizing a trigger order with multiple counterparties in implied market trading |
US8255305B2 (en) | 2009-09-15 | 2012-08-28 | Chicago Mercantile Exchange Inc. | Ratio spreads for contracts of different sizes in implied market trading |
US8589278B2 (en) * | 2009-09-30 | 2013-11-19 | Trading Technologies International, Inc. | System and method for using order modifiers in relation to trading strategies |
US8229838B2 (en) | 2009-10-14 | 2012-07-24 | Chicago Mercantile Exchange, Inc. | Leg pricer |
US9547874B2 (en) * | 2010-06-29 | 2017-01-17 | Victor Gorelik | Method, language, and system for parallel algorithmic trading and overseeing trading activity |
US8554662B2 (en) * | 2010-08-27 | 2013-10-08 | Chicago Mercantile Exchange Inc. | Delta neutral futures allocation |
US10360626B2 (en) | 2011-04-06 | 2019-07-23 | International Business Machines Corporation | Securities messages with automated encoding of field operators |
US8972497B2 (en) * | 2011-04-06 | 2015-03-03 | International Business Machines Corporation | Automated encoding of field operators for absent fields |
US8983866B2 (en) | 2011-04-06 | 2015-03-17 | International Business Machines Corporation | Automated encoding of delta operators |
US8489492B2 (en) | 2011-04-06 | 2013-07-16 | International Business Machines Corporation | Automated encoding of increment operators |
WO2013022526A1 (en) | 2011-08-11 | 2013-02-14 | Chicago Mercantile Exchange Inc. | Selective suppression of implied contract generation |
US20150073963A1 (en) * | 2013-09-11 | 2015-03-12 | Chicago Mercantile Exchange Inc. | Matching with Level Residual Allocation |
US20230072534A1 (en) * | 2013-11-27 | 2023-03-09 | GX2 Systems, LLC | Proxy system configured to improve message-to-execution ratio of distributed system |
US10706470B2 (en) * | 2016-12-02 | 2020-07-07 | Iex Group, Inc. | Systems and methods for processing full or partially displayed dynamic peg orders in an electronic trading system |
US20170004575A1 (en) * | 2015-07-01 | 2017-01-05 | Chicago Mercantile Exchange Inc. | Dissemination of order status information present on an electronic exchange |
US20190188794A1 (en) * | 2016-08-18 | 2019-06-20 | Tsx Inc. | Computer processing of state using key states |
US11494839B2 (en) * | 2018-11-23 | 2022-11-08 | Nasdaq, Inc. | Systems and methods of matching customizable data transaction requests |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030200167A1 (en) * | 2002-03-05 | 2003-10-23 | Kemp Gary Allen | System and method for performing automatic spread trading |
US20050165670A1 (en) * | 1999-08-03 | 2005-07-28 | Espeed, Inc. | Systems and methods for linking orders in electronic trading systems |
US20060149660A1 (en) * | 2001-10-04 | 2006-07-06 | New York Mercantile Exchange, Inc. | Implied market trading system |
US20070100732A1 (en) * | 2005-10-28 | 2007-05-03 | Mark Ibbotson | System and method for aggregation of implied bids and offers for short-term interest rate futures and options |
Family Cites Families (127)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4903201A (en) * | 1983-11-03 | 1990-02-20 | World Energy Exchange Corporation | Automated futures trading exchange |
US4980826A (en) | 1983-11-03 | 1990-12-25 | World Energy Exchange Corporation | Voice actuated automated futures trading exchange |
US4677552A (en) * | 1984-10-05 | 1987-06-30 | Sibley Jr H C | International commodity trade exchange |
DE407026T1 (en) | 1989-05-25 | 1991-06-13 | Reuters Ltd., London | DISTRIBUTED SYSTEM AND METHOD FOR CONNECTING BUYER AND SELLER. |
EP0411748A3 (en) | 1989-06-02 | 1991-11-21 | Reuters Limited | System for matching of buyers and sellers with risk minimization |
JPH06348455A (en) * | 1993-06-14 | 1994-12-22 | Matsushita Electric Ind Co Ltd | Rounding method for multiplication and multiplying circuit |
US20060173761A1 (en) * | 1996-03-25 | 2006-08-03 | Cfph, Llc | System and Method for Market Research Based on Financial Exchange |
US5787402A (en) * | 1996-05-15 | 1998-07-28 | Crossmar, Inc. | Method and system for performing automated financial transactions involving foreign currencies |
US6047274A (en) * | 1997-02-24 | 2000-04-04 | Geophonic Networks, Inc. | Bidding for energy supply |
US6119103A (en) | 1997-05-27 | 2000-09-12 | Visa International Service Association | Financial risk prediction systems and methods therefor |
US5949044A (en) | 1997-06-13 | 1999-09-07 | Walker Asset Management Limited Partnership | Method and apparatus for funds and credit line transfers |
US20060190383A1 (en) * | 2003-03-24 | 2006-08-24 | Blackbird Holdings, Inc. | Systems for risk portfolio management |
US6317727B1 (en) | 1997-10-14 | 2001-11-13 | Blackbird Holdings, Inc. | Systems, methods and computer program products for monitoring credit risks in electronic trading systems |
US6996540B1 (en) * | 1997-10-14 | 2006-02-07 | Blackbird Holdings, Inc. | Systems for switch auctions utilizing risk position portfolios of a plurality of traders |
US6021397A (en) * | 1997-12-02 | 2000-02-01 | Financial Engines, Inc. | Financial advisory system |
JPH11184837A (en) * | 1997-12-11 | 1999-07-09 | Internatl Business Mach Corp <Ibm> | Shortest path searching system |
US6721715B2 (en) * | 1998-03-30 | 2004-04-13 | Martin A. Nemzow | Method and apparatus for localizing currency valuation independent of the original and objective currencies |
US6618707B1 (en) * | 1998-11-03 | 2003-09-09 | International Securities Exchange, Inc. | Automated exchange for trading derivative securities |
US6405180B2 (en) * | 1998-11-05 | 2002-06-11 | International Securities Exchange, Llc | Automated exchange for matching bids between a party and a counterparty based on a relationship between the counterparty and the exchange |
CA2264351A1 (en) * | 1999-03-12 | 2000-09-12 | Mark Van Roon | Computer based matching system for party and counterparty exchanges |
JP2000353196A (en) | 1999-06-11 | 2000-12-19 | Nomura Securities Co Ltd | Security trade aiding system |
EP1266317A4 (en) * | 1999-06-14 | 2005-12-14 | Integral Dev Corp | System and method for conducting web-based financial transactions in capital markets |
US8126794B2 (en) | 1999-07-21 | 2012-02-28 | Longitude Llc | Replicated derivatives having demand-based, adjustable returns, and trading exchange therefor |
US6321212B1 (en) | 1999-07-21 | 2001-11-20 | Longitude, Inc. | Financial products having a demand-based, adjustable return, and trading exchange therefor |
US6418419B1 (en) * | 1999-07-23 | 2002-07-09 | 5Th Market, Inc. | Automated system for conditional order transactions in securities or other items in commerce |
AU1764501A (en) * | 1999-11-16 | 2001-05-30 | 01, Inc. | Method and system for executing financial transactions via communication medium |
US7231363B1 (en) * | 1999-12-29 | 2007-06-12 | Wall Corporation | Method and system for rebrokering orders in a trading system |
US7430533B1 (en) * | 2000-01-11 | 2008-09-30 | Itg Software Solutions, Inc. | Automated batch auctions in conjunction with continuous financial markets |
JP3765958B2 (en) | 2000-02-07 | 2006-04-12 | ケンテックス株式会社 | Stock investment analysis chart showing stock trading order data |
US6772132B1 (en) | 2000-03-02 | 2004-08-03 | Trading Technologies International, Inc. | Click based trading with intuitive grid display of market depth |
AU2001253438A1 (en) | 2000-04-14 | 2001-10-30 | E-Vantage International, Inc. | Method and system for delivering foreign exchange risk management advisory solutions to a designated market |
US7246092B1 (en) * | 2000-05-12 | 2007-07-17 | The Nasdaq Stock Market, Inc. | Montage for an electronic market |
DE10023947A1 (en) * | 2000-05-16 | 2001-11-22 | Bosch Gmbh Robert | Anti-friction bearing for piston pump has bearing ring and anti-friction bodies; bearing ring has lateral protrusion with which it can be pressed into bearing seat |
AU6172701A (en) | 2000-05-16 | 2001-11-26 | Blackbird Holdings Inc | Systems and methods for conducting derivative trades electronically |
US7685052B2 (en) * | 2000-06-01 | 2010-03-23 | Pipeline Financial Group, Inc. | Confidential block trading system and method |
WO2001095226A2 (en) | 2000-06-09 | 2001-12-13 | Blackbird Holdings, Inc. | Systems and methods for reverse auction of financial instruments |
US7043457B1 (en) * | 2000-06-28 | 2006-05-09 | Probuild, Inc. | System and method for managing and evaluating network commodities purchasing |
US7089206B2 (en) * | 2000-06-30 | 2006-08-08 | Ubs Ag | Trade allocation |
US7177833B1 (en) * | 2000-07-18 | 2007-02-13 | Edge Capture, Llc | Automated trading system in an electronic trading exchange |
US6829589B1 (en) | 2000-07-21 | 2004-12-07 | Stc, Llc | Method and apparatus for stock and index option price improvement, participation, and internalization |
US20020077947A1 (en) * | 2000-12-14 | 2002-06-20 | Ward David Charles | Method and system for determining netted margins |
WO2002015093A1 (en) * | 2000-08-14 | 2002-02-21 | Brown Brothers Harriman & Co. | Margin settlement for exchange-traded futures contracts |
AUPQ950400A0 (en) * | 2000-08-17 | 2000-09-07 | Peruch, Stephen Sebastian | Computer implemented system and method of transforming a source file into transformed file using a set of trigger instructions |
US7689498B2 (en) * | 2000-08-24 | 2010-03-30 | Volbroker Limited | System and method for trading options |
US20050137964A1 (en) * | 2000-08-31 | 2005-06-23 | Optionable, Inc. | System and method for real-time options trading over a computer network |
US7184984B2 (en) | 2000-11-17 | 2007-02-27 | Valaquenta Intellectual Properties Limited | Global electronic trading system |
US20020156719A1 (en) | 2000-11-17 | 2002-10-24 | Market Axess Inc., | Method and apparatus for trading bonds |
US20020070915A1 (en) * | 2000-12-08 | 2002-06-13 | Mazza Thomas A. | Trading system controller |
GB0030964D0 (en) * | 2000-12-19 | 2001-01-31 | Garban Intercapital Plc | A method of using a computerised trading system to process trades in financial instruments |
US20020178102A1 (en) | 2001-03-15 | 2002-11-28 | Larry Scheinberg | Margin release system for an electronic-based market |
WO2002088883A2 (en) | 2001-04-26 | 2002-11-07 | Optionable, Inc. | A system and method for real-time options trading over a global computer network |
US7606747B2 (en) | 2001-05-10 | 2009-10-20 | Ubs Ag | Global compliance system |
US20030009419A1 (en) * | 2001-06-11 | 2003-01-09 | Chavez R. Martin | Risk management system and trade engine with automatic trade feed and market data feed |
US7702563B2 (en) * | 2001-06-11 | 2010-04-20 | Otc Online Partners | Integrated electronic exchange of structured contracts with dynamic risk-based transaction permissioning |
US7092919B2 (en) * | 2001-06-15 | 2006-08-15 | Omx Technology Ab | Method and a system related to determining the price of a combination contract |
US20030050879A1 (en) * | 2001-08-28 | 2003-03-13 | Michael Rosen | System and method for improved multiple real-time balancing and straight through processing of security transactions |
US6775633B2 (en) * | 2001-12-31 | 2004-08-10 | Kodak Polychrome Graphics, Llc | Calibration techniques for imaging devices |
US7672895B2 (en) * | 2002-02-19 | 2010-03-02 | Trading Technologies International, Inc. | System and method for simulating an electronic trading environment |
US7813995B2 (en) * | 2002-03-05 | 2010-10-12 | Trading Technologies International, Inc. | System and method for estimating a spread value |
US7299208B1 (en) | 2002-04-05 | 2007-11-20 | Goldman Sachs & Co. | Apparatus and system for defining an automated spread trading parameter |
US7742971B2 (en) * | 2002-04-10 | 2010-06-22 | Combinenet, Inc. | Preference elicitation in combinatorial auctions |
US7933827B2 (en) | 2002-06-05 | 2011-04-26 | The Nasdaq Omx Group, Inc. | Multi-parallel architecture and a method of using the same |
US9805417B2 (en) | 2002-06-19 | 2017-10-31 | Trading Technologies International, Inc. | System and method for automated trading |
US7542937B1 (en) * | 2002-08-28 | 2009-06-02 | Trading Technologies International, Inc. | Method and system for displaying and trading spreads |
US7280481B2 (en) | 2002-10-10 | 2007-10-09 | Guangyi David Rong | Shortest path search method “Midway” |
US7925569B2 (en) * | 2002-10-29 | 2011-04-12 | Ebs Group Limited | Electronic trading system having increased liquidity provision |
US7752116B2 (en) * | 2002-10-30 | 2010-07-06 | Nasdaq Liffe Markets, Llc | Liquidity engine for futures trading exchange |
EP1586047A4 (en) | 2002-10-30 | 2006-09-13 | Boston Options Exchange Group | Price improvement processor for electronic trading of financial instruments |
US7548882B1 (en) * | 2002-11-05 | 2009-06-16 | Trading Technologies International, Inc. | System and method for determining implied market information |
US7418422B2 (en) * | 2002-11-13 | 2008-08-26 | Trading Technologies International, Inc. | Method, apparatus and interface for trading multiple tradeable objects |
US7523064B2 (en) * | 2002-11-13 | 2009-04-21 | Trading Technologies International, Inc. | System and method for facilitating trading of multiple tradeable objects in an electronic trading environment |
US7577602B2 (en) * | 2002-11-26 | 2009-08-18 | Trading Technologies International Inc. | Method and interface for consolidating price levels on a trading screen |
US20050187643A1 (en) * | 2004-02-19 | 2005-08-25 | Pavilion Technologies, Inc. | Parametric universal nonlinear dynamics approximator and use |
US7571140B2 (en) * | 2002-12-16 | 2009-08-04 | First Data Corporation | Payment management |
US7483854B2 (en) * | 2003-01-24 | 2009-01-27 | Liu Michael C | Method and system for intelligent automated security trading via the internet |
US7752117B2 (en) * | 2003-01-31 | 2010-07-06 | Trading Technologies International, Inc. | System and method for money management in electronic trading environment |
US20040172337A1 (en) * | 2003-02-27 | 2004-09-02 | Spoonhower Daniel J. | Multi-tier order matching |
US20040236662A1 (en) | 2003-05-20 | 2004-11-25 | Korhammer Richard A. | Automated system for routing orders for financial instruments among permissioned users |
US8112347B2 (en) | 2003-07-25 | 2012-02-07 | Chicago Mercantile Exchange Inc. | Controlling implied markets during a stop loss trigger |
US20050171894A1 (en) * | 2003-08-26 | 2005-08-04 | Michael Traynor | Exchange traded currency fund instrument and system |
US20050053981A1 (en) * | 2003-09-09 | 2005-03-10 | Swayze Eric E. | Gapped oligomeric compounds having linked bicyclic sugar moieties at the termini |
US20050080703A1 (en) * | 2003-10-09 | 2005-04-14 | Deutsche Boerse Ag | Global clearing link |
US7908193B2 (en) * | 2003-10-20 | 2011-03-15 | BGC Partrners, Inc. | System and method for providing futures contracts in a financial market environment |
US7890412B2 (en) * | 2003-11-04 | 2011-02-15 | New York Mercantile Exchange, Inc. | Distributed trading bus architecture |
US20050097027A1 (en) * | 2003-11-05 | 2005-05-05 | Sylvan Kavanaugh | Computer-implemented method and electronic system for trading |
NZ530377A (en) * | 2003-12-24 | 2006-10-27 | John Redmayne | System and method for modelling pricing of securities such as expected risk, rate of return and default loss |
US20050171890A1 (en) * | 2004-01-29 | 2005-08-04 | Daley Thomas J. | System and method for matching trading orders |
US20050203826A1 (en) | 2004-03-12 | 2005-09-15 | Chicago Mercantile Exchange, Inc. | Implied spread trading system |
US20050246263A1 (en) | 2004-04-29 | 2005-11-03 | Lava Trading, Inc. | Automated system for routing orders for foreign exchange transactions |
US20050283422A1 (en) | 2004-06-16 | 2005-12-22 | David Myr | Centralized electronic currency trading exchange |
US20080154764A1 (en) * | 2004-07-12 | 2008-06-26 | Rosenthal Collins Group, L.L.C. | Method and system for providing a simplified graphical user interface and integrated trading system for electronic trading |
US7428508B2 (en) * | 2004-09-10 | 2008-09-23 | Chicago Mercantile Exchange | System and method for hybrid spreading for risk management |
US7769667B2 (en) | 2004-09-10 | 2010-08-03 | Chicago Mercantile Exchange Inc. | System and method for activity based margining |
US7430539B2 (en) * | 2004-09-10 | 2008-09-30 | Chicago Mercantile Exchange | System and method of margining fixed payoff products |
US7509275B2 (en) | 2004-09-10 | 2009-03-24 | Chicago Mercantile Exchange Inc. | System and method for asymmetric offsets in a risk management system |
US7426487B2 (en) * | 2004-09-10 | 2008-09-16 | Chicago Mercantile Exchange, Inc. | System and method for efficiently using collateral for risk offset |
US8849711B2 (en) * | 2004-09-10 | 2014-09-30 | Chicago Mercantile Exchange Inc. | System and method for displaying a combined trading and risk management GUI display |
US7593877B2 (en) * | 2004-09-10 | 2009-09-22 | Chicago Mercantile Exchange, Inc. | System and method for hybrid spreading for flexible spread participation |
US20060143099A1 (en) * | 2004-09-23 | 2006-06-29 | Daniel Partlow | System, method, and computer program for creating and valuing financial insturments linked to average credit spreads |
CA2588819C (en) * | 2004-12-13 | 2013-01-22 | Zhonghou Xu | Metal oxide varistor with built-in alloy-type thermal fuse |
US20060173771A1 (en) * | 2005-02-02 | 2006-08-03 | Johnston Scott L | Foreign currency exchange |
US7630930B2 (en) * | 2005-02-24 | 2009-12-08 | Robert Frederick Almgren | Method and system for portfolio optimization from ordering information |
US20080183639A1 (en) * | 2005-04-14 | 2008-07-31 | Disalvo Dean F | System and Method for Securities Liquidity Flow Tracking, Display and Trading |
US8489489B2 (en) | 2005-05-05 | 2013-07-16 | Chicago Board Options Exchange, Incorporated | System and method for trading derivatives in penny increments while disseminating quotes for derivatives in nickel/dime increments |
US20080288391A1 (en) | 2005-05-31 | 2008-11-20 | Rosenthal Collins Group, Llc. | Method and system for automatically inputting, monitoring and trading spreads |
GB0521511D0 (en) | 2005-10-21 | 2005-11-30 | Crescent Technology Ltd | A generalized trend-following trading strategy |
US20100094746A1 (en) | 2005-10-28 | 2010-04-15 | Nyse Liffe Administration And Management | System and method for aggregation of implied short term interest rate derivatives bids and offers |
WO2007056553A2 (en) * | 2005-11-13 | 2007-05-18 | Rosenthal Collins Group, Llc | Method and system for electronic trading via a yield curve |
US7734538B2 (en) | 2005-11-18 | 2010-06-08 | Chicago Mercantile Exchange Inc. | Multiple quote risk management |
WO2007072482A2 (en) * | 2005-12-19 | 2007-06-28 | Vestwise Llc | A system and method of managing cash and suggesting transactions in a multi-strategy portfolio |
US7970534B2 (en) * | 2006-08-24 | 2011-06-28 | Blackbird Technologies, Inc. | Mobile unit and system having integrated mapping, communications and tracking |
US20080133402A1 (en) * | 2006-09-05 | 2008-06-05 | Kerry Ivan Kurian | Sociofinancial systems and methods |
US8386364B2 (en) * | 2006-09-21 | 2013-02-26 | Reuters Limited | System for multi-leg trading |
US7805360B2 (en) | 2006-09-22 | 2010-09-28 | Chicago Mercantile Exchange Inc. | Template based matching |
US8019673B1 (en) * | 2007-06-26 | 2011-09-13 | Trading Technologies International, Inc. | Implied matrix for tradeable objects |
US20090018944A1 (en) * | 2007-07-13 | 2009-01-15 | Omx Technology Ab | Method and system for trading |
US8184885B2 (en) * | 2007-07-24 | 2012-05-22 | University Of Pittsburgh - Of The Commonwealth System Of Higher Education | System and method for visualizing a structure of interest |
US20090157563A1 (en) * | 2007-07-25 | 2009-06-18 | Itg Software Solutions, Inc. | Systems, methods and computer program products for creating a turnover efficient frontier for an investment portfolio |
US20100017323A1 (en) * | 2008-07-16 | 2010-01-21 | Carla Git Ying Wong | Method and System for Trading Combinations of Financial Instruments |
US20100017321A1 (en) | 2008-07-18 | 2010-01-21 | Chicago Mercantile Exchange, Inc. | Adaptive Implied Spread Matching |
US8229835B2 (en) | 2009-01-08 | 2012-07-24 | New York Mercantile Exchange, Inc. | Determination of implied orders in a trade matching system |
US20110040669A1 (en) | 2009-08-17 | 2011-02-17 | Darren Lee | Automated spread trading system |
US8417618B2 (en) | 2009-09-03 | 2013-04-09 | Chicago Mercantile Exchange Inc. | Utilizing a trigger order with multiple counterparties in implied market trading |
US10529020B2 (en) | 2009-09-14 | 2020-01-07 | Chicago Mercantile Exchange Inc. | Rule based vector space model for creating implied trade templates |
US8255305B2 (en) | 2009-09-15 | 2012-08-28 | Chicago Mercantile Exchange Inc. | Ratio spreads for contracts of different sizes in implied market trading |
US10572937B2 (en) | 2010-06-17 | 2020-02-25 | Chicago Mercantile Exchange Inc. | Generating implied orders based on electronic requests for quotes |
US8249980B2 (en) | 2010-06-24 | 2012-08-21 | Trading Technologies International, Inc. | Implied order quality |
-
2009
- 2009-09-15 US US12/560,122 patent/US8255305B2/en active Active
-
2010
- 2010-09-01 CA CA2774066A patent/CA2774066A1/en not_active Abandoned
- 2010-09-01 AU AU2010295889A patent/AU2010295889A1/en not_active Abandoned
- 2010-09-01 WO PCT/US2010/047489 patent/WO2011034729A1/en active Application Filing
-
2012
- 2012-07-06 US US13/543,512 patent/US8793180B2/en active Active
-
2014
- 2014-06-13 US US14/304,471 patent/US20140310146A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050165670A1 (en) * | 1999-08-03 | 2005-07-28 | Espeed, Inc. | Systems and methods for linking orders in electronic trading systems |
US20060149660A1 (en) * | 2001-10-04 | 2006-07-06 | New York Mercantile Exchange, Inc. | Implied market trading system |
US20030200167A1 (en) * | 2002-03-05 | 2003-10-23 | Kemp Gary Allen | System and method for performing automatic spread trading |
US20070100732A1 (en) * | 2005-10-28 | 2007-05-03 | Mark Ibbotson | System and method for aggregation of implied bids and offers for short-term interest rate futures and options |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140189161A1 (en) * | 2012-12-31 | 2014-07-03 | Trading Technologies International, Inc. | In-Line FIX Packet Translator |
US9426245B2 (en) * | 2012-12-31 | 2016-08-23 | Trading Technologies International, Inc. | In-line FIX packet translator |
US9830658B2 (en) | 2012-12-31 | 2017-11-28 | Trading Technologies International, Inc. | In-line FIX packet translator |
US10275830B2 (en) | 2012-12-31 | 2019-04-30 | Trading Technologies International, Inc. | In-line FIX packet translator |
US10529025B2 (en) | 2012-12-31 | 2020-01-07 | Trading Technologies International, Inc. | In-line FIX packet translator |
US10846797B2 (en) | 2012-12-31 | 2020-11-24 | Trading Technologies International, Inc. | In-line FIX packet translator |
US11334946B2 (en) | 2012-12-31 | 2022-05-17 | Trading Technologies International, Inc. | In-line FIX packet translator |
US11587168B2 (en) | 2012-12-31 | 2023-02-21 | Trading Technologies International, Inc. | In-line FIX packet translator |
US11810195B2 (en) | 2012-12-31 | 2023-11-07 | Trading Technologies International, Inc. | In-line FIX packet translator |
WO2017031430A1 (en) | 2015-08-19 | 2017-02-23 | Chicago Mercantile Exchange Inc. | Optimized electronic match engine with external generation of market data using a minimum data set |
US11238533B2 (en) | 2015-08-19 | 2022-02-01 | Chicago Mercantile Exchange Inc. | Optimized electronic match engine with external generation of market data using a minimum data set |
Also Published As
Publication number | Publication date |
---|---|
US20120271755A1 (en) | 2012-10-25 |
US8793180B2 (en) | 2014-07-29 |
AU2010295889A1 (en) | 2012-04-12 |
WO2011034729A1 (en) | 2011-03-24 |
US8255305B2 (en) | 2012-08-28 |
US20110066536A1 (en) | 2011-03-17 |
CA2774066A1 (en) | 2011-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8793180B2 (en) | Ratio spreads for contracts of different sizes in implied market trading | |
US20230214280A1 (en) | Conservation of electronic communications resources and computing resources via selective processing of substantially continuously updated data | |
US20200193519A1 (en) | Equation-based transaction request messaging and transaction processing | |
US11768841B2 (en) | Dynamic valuation system using object relationships and composite object data | |
US20180268481A1 (en) | Equation-based transaction request messaging and transaction processing | |
US20140229351A1 (en) | Method and apparatus for listing and trading a futures contract with variable delivery and/or expiry dates | |
CA2732004A1 (en) | Products and processes for order distribution | |
US11042935B2 (en) | Spread price scaling for implied trade matching | |
US20230117554A1 (en) | Portfolio optimization | |
US8626640B2 (en) | System and method for implementing and managing bundled option box futures | |
EP3712835A1 (en) | Range-limited data object linking and equivalence | |
US11080785B1 (en) | Listed options position compression system | |
AU2014274494A1 (en) | Ratio spreads for contracts of different sizes in implied market trading | |
US20240153002A1 (en) | Message elimination in multi-model risk correlation system | |
US10861094B1 (en) | Asynchronous computational engine | |
US20160035028A1 (en) | Method For Facilitating Futures Trading Of Synthetic Benchmark Corporate Bonds | |
US20170243261A1 (en) | Efficient Pricing System with Product Interdependencies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: CHICAGO MERCANTILE EXCHANGE INC., ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MILNE, ANDREW;REEL/FRAME:046678/0897 Effective date: 20090909 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |