IP Library Granted Patent US 11,714,863
Granted Patent B2
US 11,714,863 · App. 17/235,364 · Granted Aug 1, 2023

Combinatorial matching techniques for electronic data messages

Inventor: Simon Karl Zonabend (Stockholm, SE)
Assignee: NASDAQ TECHNOLOGY AB
G06F16/9535G06Q10/087G06Q40/04
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,714,863
App. No.
17/235,364
Granted
Aug 1, 2023
Kind
B2
Abstract

A computer system includes a memory that stores two lists of electronic data transaction requests. Stored and received data transaction requests are associated with a size value and a counter-size requirement value. When data transaction requests are received they are added to one of the two lists and list to which the data transaction request is added is set to a working side. A working order is selected from the working side and a first sum of size values of data transaction requests is calculated from the working side. A second sum of size values is calculated from the non-working side from data transaction requests that have a counter-size requirement value that is less than the first sum. If the counter-size requirement value is less than or equal to the second sum, the electronic data requests from the respective lists are matched.

Claims (52)

1. A computer system comprising:

non-transitory memory configured to store a first dataset and a second dataset, each of the first and second datasets including multiple data transaction requests, each one of the multiple data transaction requests having a size value and a counter-size requirement value;

a processing system that comprises instructions that, when executed by at least one hardware processor of the processing system, are configured to cause the at least one hardware processor to perform operations comprising:

selecting one of the first dataset and the second datasets as a working dataset, with the other one of the first dataset and the second dataset being a non-working dataset;

selecting one of the multiple data transaction requests of the working dataset as a working data transaction request;

summing, to obtain a first sum, the size values of at least some of the data transaction requests that are included in the working dataset;

summing, to obtain a second sum, the size values of those ones of the data transaction requests on the non-working dataset that each have a counter-size requirement value that satisfies the first sum;

determining whether the counter-size requirement value of the working data transaction request satisfies the second sum; and

based on the determination that the counter-size requirement value of the working data transaction request satisfies the second sum, executing a match for a quantity of the working data transaction request to a corresponding quantity of at least one of the data transaction requests of the non-working dataset.

2. The computer system of claim 1 , wherein the working data transaction request is selected based on the size value that is associated with each one of the data transaction requests in the working dataset.

3. The computer system of claim 2 , wherein the working data transaction request is selected based on having a size value that is the largest among the data transaction requests in the working dataset.

4. The computer system of claim 1 , wherein those ones of the data transaction requests on the non-working dataset that satisfy the first sum to be included in summing the second sum are those that have size values that are less than or equal to the first sum,

wherein whether the counter-size requirement value of the working data transaction request satisfies the second sum includes determining that the counter-size requirement value of the working data transaction request is less than or equal to the second sum.

5. The computer system of claim 1 , wherein all of the at least some of the data transaction requests included in the working dataset that are summed into the first sum are lower priority than the working data transaction request.

6. The computer system of claim 1 , wherein the operations further comprise:

based on determining that the counter-size requirement value of the working data transaction request is greater than the second sum, selecting another one of the data transaction requests in the working dataset as another working data transaction request and repeating processing for the another working data transaction request.

7. The computer system of claim 6 , wherein the another working data transaction request is selected based on having a next highest priority on the working dataset.

8. The computer system of claim 1 , wherein the at least one of the data transaction requests of the non-working dataset that are executed includes multiple data transaction requests that are in the non-working dataset.

9. The computer system of claim 1 , wherein the operations further comprise:

processing a new data transaction request that is received from another computer system; and

adding the new data transaction request to one of the first dataset and the second dataset,

wherein the working dataset is selected based on which one of the first dataset and the second dataset the new data transaction request was added to.

10. A method comprising:

storing a first dataset and a second dataset, each of the first dataset and the second dataset including multiple data transaction requests, each one of the multiple data transaction requests having a size value and a counter-size requirement value;

executing, on a computer system that includes at least one hardware processor, a matching process to match at least one of the data transaction requests included in the first dataset to at least one of the data transaction requests included in the second dataset;

selecting one of the first dataset and the second datasets as a working dataset, with the other one of the first dataset and the second dataset being a non-working dataset;

selecting one of the multiple data transaction requests of the working dataset as a working data transaction request;

summing, to obtain a first sum, the size values of at least some of the data transaction requests that are included in the working dataset;

summing, to obtain a second sum, the size values of those ones of the data transaction requests on the non-working dataset that each have a counter-size requirement value that satisfies the first sum;

determining whether the counter-size requirement value of the working data transaction request satisfies the second sum; and

based on the determination that the counter-size requirement value of the working data transaction request satisfies the second sum, executing a match for a quantity of the working data transaction request to a corresponding quantity of at least one of the data transaction requests of the non-working dataset.

11. The method of claim 10 , wherein the working data transaction request is selected based on the size value that is associated with each one of data transaction requests in the working dataset.

12. The method of claim 11 , wherein the working data transaction request is selected based on having a size value that is the largest among data transaction requests in the working dataset.

13. The method of claim 11 , wherein those ones of the data transaction requests on the non-working dataset that satisfy the first sum to be included in summing the second sum are those that have size values that are less than or equal to the first sum,

wherein whether the counter-size requirement value of the working data transaction request satisfies the second sum includes determining that the counter-size requirement value of the working data transaction request is less than or equal to the second sum.

14. The method of claim 11 , further comprising:

receiving, via a transceiver that is coupled to the computer system, a new data transaction request, wherein the new data transaction request includes a data property indicating which one of the first dataset and the second dataset the new data transaction request is to be associated with,

wherein the working dataset is selected based on which one of the first dataset and the second dataset the data property of the new data transaction request is associated with.

15. The method of claim 10 , wherein all of the at least some of the data transaction requests included in the working dataset that are summed into the first sum are lower priority than the working data transaction request.

16. The method of claim 10 , further comprising:

based on determining that the counter-size requirement value of the working data transaction request is greater than the second sum, selecting another one of the data transaction requests in the working dataset as another working data transaction request and repeating processing for the another working data transaction request.

17. The method of claim 16 , wherein the another working data transaction request is selected based on having a next highest priority on the working dataset.

18. A non-transitory computer readable storage medium having stored thereon computer readable instructions for use with a computer system that includes at least one hardware processor and electronic memory, the stored computer readable instructions comprising instructions that cause the at least one hardware processor to perform operations comprising:

storing a first dataset and a second dataset, each of the first and second datasets including multiple data transaction requests, each one of the multiple data transaction requests having a size value and a counter-size requirement value;

selecting one of the multiple data transaction requests of a working dataset, which is one of the first and second datasets, as a working data transaction request;

summing, to obtain a first sum, the size values of at least some of the data transaction requests that are included in the working dataset;

summing, to obtain a second sum, the size values of those ones of the data transaction requests on a non-working dataset that each have a counter-size requirement value that satisfies the first sum;

determining whether the counter-size requirement value of the working data transaction request satisfies the second sum; and

based on the determination that the counter-size requirement value of the working data transaction request satisfies the second sum, executing a match for a quantity of the working data transaction request to a corresponding quantity of at least one of the data transaction requests of the non-working dataset.

19. The non-transitory computer readable storage medium of claim 18 , wherein the operations further comprise:

selecting one of the first dataset and the second dataset as the working dataset, with the other one of the first dataset and the second dataset being the non-working dataset.

20. The non-transitory computer readable storage medium of claim 19 , wherein the working data transaction request is determined based on the size value of the data transaction requests in the working dataset.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2021
From: ZONABEND, SIMON KARL
To: NASDAQ TECHNOLOGY AB
Reel/Frame 055976/0943 →
Continuity (4)
Continuation 16290685 · Mar 1, 2019
Continuation 15072596 · Mar 17, 2016
Provisional Application 62134906 · Mar 18, 2015
Related Publication 20210240790A1 · Aug 5, 2021