US2015127509A1PendingUtilityA1

Transactionally Deterministic High Speed Financial Exchange Having Improved, Efficiency, Communication, Customization, Performance, Access, Trading Opportunities, Credit Controls, and Fault Tolerance

Assignee: CHICAGO MERCANTILE EXCHANGEPriority: Nov 7, 2013Filed: Nov 7, 2013Published: May 7, 2015
Est. expiryNov 7, 2033(~7.3 yrs left)· nominal 20-yr term from priority
G06Q 40/04
66
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

The disclosed embodiments relate to implementation of a trading system, which may also be referred to as a trading system architecture, having improved performance which further assures transactional determinism under increasing processing transaction loads while providing improved trading opportunities, fault tolerance, low latency processing, high volume capacity, risk mitigation and market protections with minimal impact, as well as improved and equitable access to information and opportunities.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A system for improving efficiency of a trading system for a plurality of financial instruments, each of the plurality of financial instruments comprising at lease one component, the system comprising:
 an order memory operative to store data representative of a set of previously received but unsatisfied orders, each order being for a transaction for at least one of the plurality of financial instruments;   a plurality of match engines coupled with the order memory, each of the plurality of match engines comprising a first logic component operative to implement a market for a financial instrument of the plurality of financial instruments by being further operative to cause the first processor to attempt to match an incoming order provided thereto for a transaction for the financial instrument with at least one other of the set of previously received but unsatisfied orders, the at least one other previously received but unsatisfied order being for a transaction counter thereto for a financial instrument of the plurality of financial instruments having at least one component in common with the financial instrument of the incoming order, to at least partially satisfy one or both of the incoming order or the at least one other previously received order, and update the stored data in the order memory representative of the set of previously received but unsatisfied orders based thereon; and   a first logic component, coupled with the order memory and the plurality of match engines and operative to, upon receipt of an incoming order from a market participant for a transaction for a financial instrument, determine a subset of the set of previously received but unsatisfied orders each having at least one component of the associated financial instrument in common with the financial instrument of the incoming order, and determine if access to the subset has been previously allocated to one of the plurality of match engines and, where access to the subset has been previously allocated to one of the plurality of match engines, route the incoming order thereto for a match attempt thereby, and wherein access to the subset has not been allocated to one of the match engines, select one of the plurality of match engines, allocate access to the subset to the selected match engine and route the incoming order to the selected match engine for a match attempt thereby.   
     
     
         2 . A system for improving efficiency of a trading system for a plurality of financial instruments, each of the plurality of financial instruments comprising at lease one component, the system comprising:
 a memory operative to store data representative of a set of previously received but unsatisfied orders, each order being for a transaction for at least one of the plurality of financial instruments;   a plurality of match engines coupled with the memory, each of the plurality of match engines operative to implement a market for a financial instrument of the plurality of financial instruments by being further operative to attempt to match an incoming order provided thereto for a transaction for the financial instrument with at least one other of the set of previously received but unsatisfied orders, the at least one other previously received but unsatisfied order being for a transaction counter thereto for a financial instrument of the plurality of financial instruments having at least one component in common with the financial instrument of the incoming order, to at least partially satisfy one or both of the incoming order or the at least one other previously received order, and update the stored data in the memory representative of the set of previously received but unsatisfied orders based thereon; and   an order book allocator coupled with the memory and the plurality of match engines and operative to, upon receipt of an incoming order from a market participant for a transaction for a financial instrument, determine a subset of the set of previously received but unsatisfied orders each having at least one component of the associated financial instrument in common with the financial instrument of the incoming order, and determine if access to the subset has been previously allocated to one of the plurality of match engines and, where access to the subset has been previously allocated to one of the plurality of match engines, route the incoming order thereto for a match attempt thereby, and wherein access to the subset has not been allocated to one of the match engines, select one of the plurality of match engines, allocate access to the subset to the selected match engine and route the incoming order to the selected match engine for a match attempt thereby.   
     
     
         3 . The system of  claim 2  wherein the set of previously received but unsatisfied orders further comprises one more financial instrument subsets, each financial instrument subset comprising those previously received orders of the set which are for a transaction for the same financial instrument of the plurality of financial instruments, order book allocator is further operative to determine the subset of the set of previously received but unsatisfied orders by identifying those financial instrument subsets associated with financial instruments having at least one component thereof in common with each other and the financial instrument of the incoming order. 
     
     
         4 . The system of  claim 3  wherein the order book allocator further maintains a data structure which stores data representative of which financial instruments of the plurality of financial instruments have at least one component thereof in common with another of the financial instruments of the plurality of financial instruments. 
     
     
         5 . The system of  claim 4  wherein the data structure further stores the locations in the memory in which each of the set of previously received but unsatisfied orders is stored. 
     
     
         6 . The system of  claim 2  wherein each of the plurality of match engines is operative to update the stored data in the memory using a back channel protocol. 
     
     
         7 . The system of  claim 2  wherein each of the plurality of match engines is operative to update the stored data in the memory using a remote direct memory access (“RDMA”) protocol. 
     
     
         8 . The system of  claim 2  wherein the order book allocator is operative to select one of the plurality of match engines based on an availability thereof. 
     
     
         9 . The system of  claim 2  wherein each of the plurality of match engines may be further operative to attempt to identify an implied match for the incoming order among the orders of the allocated subset for financial instruments which are not identical to the financial instrument of the incoming order. 
     
     
         10 . The system of  claim 2  wherein the allocation of access to the subset further comprises provision of a match algorithm associated with the subset for the selected match engine to use when an incoming order may be matched with more than one previously received but unsatisfied order. 
     
     
         11 . The system of  claim 10  wherein the match algorithm comprises a pro-rata algorithm, a first in first out (“FIFO”) algorithm, a Price Explicit Time algorithm, an Order Level Pro Rata algorithm, an Order Level Priority Pro Rata algorithm, a Preference Price Explicit Time algorithm, a Preference Order Level Pro Rata algorithm, a Preference Order Level Priority Pro Rata algorithm, a Threshold Pro-Rata algorithm, a Priority Threshold Pro-Rata algorithm, a Preference Threshold Pro-Rata algorithm, a Priority Preference Threshold Pro-Rata algorithm, a Split Price-Time Pro-Rata algorithm, or combinations thereof. 
     
     
         12 . The system of  claim 2  wherein the order book allocator is further operative to deallocate access to the subset when the selected match engine has completed the attempt to match all incoming orders routed thereto prior to another incoming order being routed thereto. 
     
     
         13 . The system of  claim 2  wherein the allocation of the subset further comprises transferring at least a copy of the subset to a memory associated with the selected match engine. 
     
     
         14 . The system of  claim 2  wherein the plurality of match engines includes sufficient match engines such that a match engine is always available to have routed thereto an incoming order associated with an unallocated subset of the set of previously received but unsatisfied orders. 
     
     
         15 . The system of  claim 2  wherein the memory further comprises a plurality of memory portions each associated with one of the plurality of match engines and capable of storing at least the data representative of the subset of the set of previously received but unsatisfied orders. 
     
     
         16 . The system of  claim 15  wherein the order book allocator is further operative to detect an update to the stored data in one of the plurality of memory portions by the match engine associated therewith and cause the update to be available to the others of the plurality of match engines. 
     
     
         17 . The system of  claim 2  wherein the order book allocator is implemented by a field programmable gate array. 
     
     
         18 . The system of  claim 2  further comprising an implicator coupled with the memory, the plurality of match engines and the order book processor, and operative to, when a match engine is unable to match the incoming order with at least one previously received but unsatisfied order for a counter transaction for the particular financial instrument of the incoming order, identify at least one previously received but unsatisfied order for a counter transaction for a financial instrument having at least one component in common with the particular financial instrument of the incoming order, and generate a synthetic order therefore and submit the synthetic order to the trading system. 
     
     
         19 . The system of  claim 2  wherein each of the plurality of match engines comprises a set of redundant match engines, each operating on the incoming order. 
     
     
         20 . The system of  claim 2  further comprising an order router coupled with the plurality of match engines and the order book allocator and operative to route an incoming order to one of the plurality of match engines based on available processing capacity of each of the plurality of match engines, the one of the plurality of match engines being the same engine to which a prior incoming order for a transaction for the same financial instrument as the incoming order was routed, or a combination thereof. 
     
     
         21 . The system of  claim 2  wherein the order book allocator is operative to facilitate access to the subset by providing the data representative thereof to the particular match engine for use thereby and retrieving the data representative of the subset from the match engine subsequent to the updating thereby. 
     
     
         22 . A computer implemented method for improving efficiency of a trading system for a plurality of financial instruments, each of the plurality of financial instruments comprising at lease one component, the method comprising:
 storing, by a first processor in a memory coupled therewith, data representative of a set of previously received but unsatisfied orders, each order being for a transaction for at least one of the plurality of financial instruments;   implementing, by each of a plurality of second processors coupled with the memory, a market for a financial instrument of the plurality of financial instruments by attempting to match an incoming order provided thereto for a transaction for the financial instrument with at least one other of the set of previously received but unsatisfied orders, the at least one other previously received but unsatisfied order being for a transaction counter thereto for a financial instrument of the plurality of financial instruments having at least one component in common with the financial instrument of the incoming order, to at least partially satisfy one or both of the incoming order or the at least one other previously received order, and updating the stored data in the memory representative of the set of previously received but unsatisfied orders based thereon; and   determining, by a third processor upon receipt of an incoming order from a market participant for a transaction for a financial instrument, a subset of the set of previously received but unsatisfied orders each having at least one component of the associated financial instrument in common with the financial instrument of the incoming order, and determining if access to the subset has been previously allocated to one of the plurality of second processors and, where access to the subset has been previously allocated to one of the plurality of second processors, routing the incoming order thereto for a match attempt thereby, and wherein access to the subset has not been allocated to one of the second processors, selecting one of the plurality of second processors, allocating access to the subset to the selected second processor and routing the incoming order to the selected second processor for a match attempt thereby.   
     
     
         23 . The method of  claim 22  wherein the set of previously received but unsatisfied orders further comprises one more financial instrument subsets, each financial instrument subset comprising those previously received orders of the set which are for a transaction for the same financial instrument of the plurality of financial instruments, the method further comprising determining the subset of the set of previously received but unsatisfied orders by identifying those financial instrument subsets associated with financial instruments having at least one component thereof in common with each other and the financial instrument of the incoming order. 
     
     
         24 . The method of  claim 23  maintaining a data structure which stores data representative of which financial instruments of the plurality of financial instruments have at least one component thereof in common with another of the financial instruments of the plurality of financial instruments. 
     
     
         25 . The method of  claim 24  wherein the data structure further stores the locations in the memory in which each of the set of previously received but unsatisfied orders is stored. 
     
     
         26 . The method of  claim 22  wherein the implementing further comprises updating the stored data in the memory using a back channel protocol. 
     
     
         27 . The method of  claim 22  wherein the implementing further comprises updating the stored data in the memory using a remote direct memory access (“RDMA”) protocol. 
     
     
         28 . The method of  claim 22  wherein the receiving further comprises selecting one of the plurality of match engines based on an availability thereof. 
     
     
         29 . The method of  claim 22  wherein the implementing may further comprise attempting to identify an implied match for the incoming order among the orders of the allocated subset for financial instruments which are not identical to the financial instrument of the incoming order. 
     
     
         30 . The method of  claim 22  wherein the allocating of access to the subset further comprises provision of a match algorithm associated with the subset for the selected second processor to use when an incoming order may be matched with more than one previously received but unsatisfied order. 
     
     
         31 . The method of  claim 30  wherein the match algorithm comprises a pro-rata algorithm, a first in first out (“FIFO”) algorithm, a Price Explicit Time algorithm, an Order Level Pro Rata algorithm, an Order Level Priority Pro Rata algorithm, a Preference Price Explicit Time algorithm, a Preference Order Level Pro Rata algorithm, a Preference Order Level Priority Pro Rata algorithm, a Threshold Pro-Rata algorithm, a Priority Threshold Pro-Rata algorithm, a Preference Threshold Pro-Rata algorithm, a Priority Preference Threshold Pro-Rata algorithm, a Split Price-Time Pro-Rata algorithm, or combinations thereof. 
     
     
         32 . The method of  claim 22  wherein the determining further comprises deallocating access to the subset when the selected match engine has completed the attempt to match all incoming orders routed thereto prior to another incoming order being routed thereto. 
     
     
         33 . The method of  claim 22  wherein the allocation of the subset further comprises transferring at least a copy of the subset to a memory associated with the selected second processor. 
     
     
         34 . The method of  claim 22  wherein the plurality of second processors includes sufficient second processors such that a second processor is always available to have routed thereto an incoming order associated with an unallocated subset of the set of previously received but unsatisfied orders. 
     
     
         35 . The method of  claim 22  wherein the memory further comprises a plurality of memory portions each associated with one of the plurality of second processors and capable of storing at least the data representative of the subset of the set of previously received but unsatisfied orders. 
     
     
         36 . The method of  claim 35  further comprising detecting an update to the stored data in one of the plurality of memory portions by the second processor associated therewith and causing the update to be available to the others of the plurality of second processors. 
     
     
         37 . The method of  claim 22  further comprising, when a second processor is unable to match the incoming order with at least one previously received but unsatisfied order for a counter transaction for the particular financial instrument of the incoming order, identifying at least one previously received but unsatisfied order for a counter transaction for a financial instrument having at least one component in common with the particular financial instrument of the incoming order, and generating a synthetic order therefore and submitting the synthetic order to the trading system. 
     
     
         38 . The method of  claim 22  wherein each of the plurality of second processors comprises a set of redundant match engines, each operating on the incoming order. 
     
     
         39 . The method of  claim 22  further comprising routing an incoming order to one of the plurality of second processors based on available processing capacity of each of the plurality of second processors, the one of the plurality of second processors being the same second processor to which a prior incoming order for a transaction for the same financial instrument as the incoming order was routed, or a combination thereof. 
     
     
         40 . The method of  claim 22  further comprising facilitating access to the subset by providing the data representative thereof to the particular second processor for use thereby and retrieving the data representative of the subset from the second processor subsequent to the updating thereby. 
     
     
         41 . A system for improving efficiency of a trading system for a plurality of financial instruments, each of the plurality of financial instruments comprising at lease one component, the system comprising:
 means for storing, in a memory coupled, data representative of a set of previously received but unsatisfied orders, each order being for a transaction for at least one of the plurality of financial instruments;   a plurality of means for implementing a market for a financial instrument of the plurality of financial instruments, each of the means for implementing further including means for attempting to match an incoming order provided thereto for a transaction for the financial instrument with at least one other of the set of previously received but unsatisfied orders, the at least one other previously received but unsatisfied order being for a transaction counter thereto for a financial instrument of the plurality of financial instruments having at least one component in common with the financial instrument of the incoming order, to at least partially satisfy one or both of the incoming order or the at least one other previously received order, and means for updating the stored data in the memory representative of the set of previously received but unsatisfied orders based thereon; and   means for determining, upon receipt of an incoming order from a market participant for a transaction for a financial instrument, a subset of the set of previously received but unsatisfied orders each having at least one component of the associated financial instrument in common with the financial instrument of the incoming order, and determining if access to the subset has been previously allocated to one of the plurality of match engines and, where access to the subset has been previously allocated to one of the plurality of match engines, means for routing the incoming order thereto for a match attempt thereby, and wherein access to the subset has not been allocated to one of the match engines, means for selecting one of the plurality of match engines, means for allocating access to the subset to the selected match engine and means for routing the incoming order to the selected match engine for a match attempt thereby.

Join the waitlist — get patent alerts

Track US2015127509A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.