# US 12,112,378 B2 · Pre-matching orders at wire rate in a central limit order book

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,112,378 B2
- Document ID: US12112378B2
- Status: Granted
- Kind: B2
- Application number: 18/367,666
- Filed: 2023-09-13
- Published: 2024-01-04
- Granted: 2024-10-08
- Earliest claimed: 2018-06-20
- Assignees: Chicago Mercantile Exchange Inc.
- Applicants: Chicago Mercantile Exchange Inc.
- Inventors: Zachary Bonig; Brian Alvin Bourn; Suchith Vasudevan; David Lariviere
- Web page: https://patentgrep.com/patent/US12112378B2

## CPC

- G06Q 40/04: Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
- G06Q 40/06: Asset management; Financial planning or analysis
- 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

## Abstract

Systems and methods are provided to increase the rate at which a system can accept and process data transaction request messages. The system includes a pre-processor that filters incoming data transaction request messages prior to transmitting the messages for further processing, for example, by a matching engine. The pre-processor quickly identifies whether a new arriving data transaction request is transactable. If the new arriving data transaction request is not transactable, then the data transaction request will be transmitted and stored in a main data structure and not transmitted to the matching engine.

## Claims

### Claim 1

A computer implemented method for optimizing processing of electronic data transaction request messages, the method comprising:
receiving, by a pre-processor coupled with a local data structure, a first electronic data transaction request message;
determining, by the pre-processor, that the first electronic data transaction request message is not transactable based on a comparison with one or more levels stored in the local data structure;
updating, by the pre-processor, the one or more levels stored in the local data structure with one or more values from the first electronic data transaction request message;
storing, by the pre-processor, the first electronic data transaction request message in a central limit order book data structure separate from the local data structure;
receiving, by the pre-processor, a second electronic data transaction request message;
determining, by the pre-processor, that the second electronic data transaction request message is transactable based on a comparison with the updated one or more levels stored in the local data structure; and
matching, by a matching processor coupled with the pre-processor and separate from the pre-processor, at least partially, the second electronic data transaction request message with at least one other previously received but unsatisfied electronic data transaction request message counter thereto stored in the central limit order book data structure.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving, by the pre-processor, a result of the match by the matching processor; and
updating, by the pre-processor, the one or more levels with one or more values from the match.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
locking the pre-processor after determining that the second electronic data transaction request message is transactable; and
unlocking the pre-processor after updating the local data structure with the one or more values from the match.

### Claim 4 (depends on 1)

The method of claim 1, wherein a quantity of the one or more levels in the local data structure is calculated based on an indicative opening price.

### Claim 5 (depends on 4)

The method of claim 4, wherein each of the one or more levels includes a portion of the local data structure in which data indicative of all electronic data transaction request messages at a same price are stored.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
verifying, by one or more integrity modules coupled between the pre-processor and the matching processor, that the first and the second electronic data transaction request messages passes one or more rules.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
determining, by the pre-processor, whether the first and the second electronic data transaction request messages are transactable by comparing each of the first and second electronic data transaction request messages to previously stored electronic data transaction request messages stored in the local data structure.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
storing, by the pre-processor, a copy of the first electronic data transaction request message in the local data structure.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
forwarding, by the pre-processor, the second electronic data transaction request message to the matching processor;
forwarding, by the pre-processor, the first electronic data transaction request message to the central limit order book data structure for storage therein; and
not forwarding, by the pre-processor, the first electronic data transaction request message to the matching processor.

### Claim 10

A system for optimizing processing of electronic data transaction request messages, the system comprising:
a pre-processor coupled with a local data structure, the pre-processor configured to:
receive a first electronic data transaction request message;
determine that the first electronic data transaction request message is not transactable based on a comparison with one or more levels stored in the local data structure;
update the one or more levels stored in the local data structure with one or more values from the first electronic data transaction request message;
store the first electronic data transaction request message in a central limit order book data structure separate from the local data structure;
receive a second electronic data transaction request message; and
determine that the second electronic data transaction request message is transactable based on a comparison with the updated one or more levels stored in the local data structure; and
a matching processor coupled with the pre-processor and separate from the pre-processor, the matching processor configured to match, at least partially, the second electronic data transaction request message with at least one other previously received but unsatisfied electronic data transaction request message counter thereto stored in the central limit order book data structure.

### Claim 11 (depends on 10)

The system of claim 10, wherein the pre-processor is further configured to:
receive a result of the match by the matching processor; and
update the one or more levels with one or more values from the match.

### Claim 12 (depends on 10)

The system of claim 10, wherein the pre-processor is further configured to:
be locked after determining that the second electronic data transaction request message is transactable; and
be unlocked after the update of the local data structure with the one or more values from the match.

### Claim 13 (depends on 10)

The system of claim 10, wherein a quantity of the one or more levels in the local data structure is calculated based on an indicative opening price.

### Claim 14 (depends on 13)

The system of claim 13, wherein each of the one or more levels includes a portion of the local data structure in which data indicative of all electronic data transaction request messages at a same price are stored.

### Claim 15 (depends on 10)

The system of claim 10, further comprising:
one or more integrity modules coupled between the pre-processor and the matching processor and configured to verify that the first and the second electronic data transaction request messages pass one or more rules.

### Claim 16 (depends on 10)

The system of claim 10, wherein the pre-processor is further configured to:
determine whether the first and the second electronic data transaction request messages are transactable by comparing each of the first and second electronic data transaction request messages to previously stored electronic data transaction request messages stored in the local data structure.

### Claim 17 (depends on 10)

The system of claim 10, wherein the pre-processor is further configured to:
store a copy of the first electronic data transaction request message in the local data structure.

### Claim 18 (depends on 10)

The system of claim 10, wherein the pre-processor is further configured to:
forward the second electronic data transaction request message to the matching processor;
forward the first electronic data transaction request message to the central limit order book data structure for storage therein; and
not forward the first electronic data transaction request message to the matching processor.

### Claim 19 (depends on 10)

The system of claim 10, wherein the pre-processor is configured as a FPGA.

### Claim 20

A system for optimizing processing of electronic data transaction request messages, the system comprising:
means for receiving a first electronic data transaction request message;
means for determining that the first electronic data transaction request message is not transactable based on a comparison with one or more levels stored in a local data structure;
means for updating the one or more levels stored in the local data structure with one or more values from the first electronic data transaction request message;
means for storing the first electronic data transaction request message in a central limit order book data structure separate from the local data structure;
means for receiving a second electronic data transaction request message;
means for determining that the second electronic data transaction request message is transactable based on a comparison with the updated one or more levels stored in the local data structure; and
means for matching at least partially, the second electronic data transaction request message with at least one other previously received but unsatisfied electronic data transaction request message counter thereto stored in the central limit order book data structure.
