IP Library › Granted Patent US 11,216,878
Granted Patent B2
US 11,216,878 · App. 16/459,744 · Granted Jan 4, 2022

Determination of implied orders in a trade matching system

Inventors: Andrew Milne (Maplewood, NJ); Aleksandr Sedlin (Brooklyn, NY)
Assignee: New York Mercantile Exchange, Inc.
G06Q40/04G06Q40/00G06Q40/06
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,216,878
App. No.
16/459,744
Granted
Jan 4, 2022
Kind
B2
Abstract

A computer implemented method for determining implied orders in an electronic trading system is provided. The method comprises receiving a first set of one or more real orders, wherein the orders are not tradable against each other. One or more implied orders are identified within the first set of real orders. Market data corresponding to the implied orders can also be identified. At least one additional order is received and the tradability of the additional order is determined against the real or implied orders within the first set of real orders. A resting set of orders is determined from those real and implied orders within the first set of orders not affected by the tradability of the additional order. Implied orders are determined from within the set of resting orders.

Claims (49)

1. A system comprising:

a match engine comprising a processor which executes computer program instructions stored in a non-transitory memory and operative to cause the processor to:

create a plurality of implied calculation threads, each of which is associated with an object and corresponds to a root node, the object including a programmed method call, wherein each object maintains a shortest path tree and implied edge collection, the shortest path tree being stored in the non-transitory computer-readable medium as a collection of one-dimensional arrays, each implied calculation thread operative to execute in parallel with the execution of the others of the plurality of implied calculation threads to identify a plurality of implied orders from an associated subset of the set of real orders that are not tradable against each other by calculating one or more shortest path trees using a shortest path algorithm;

send at least one parameter to each of the plurality of implied calculation threads to enable each to prematurely terminate execution so as to reduce a computing load on the processor by identifying less than all possible of the plurality of implied orders from the associated subset;

filter, based on filter criteria, the plurality of implied orders identified by each of the plurality of implied calculation threads to generate a first subset of implied orders; and

publish market data on the first subset.

2. The system of claim 1 wherein the programmed method call both reads and writes local variables but only reads variables shared with the root node.

3. The system of claim 1 wherein the at least one parameter specifies a limit and further wherein each of the implied calculation threads is operative to determine when the limit is attained before all of the plurality of implied orders are identified from the associated subset and, based thereon, terminate further identification of implied orders.

4. The system of claim 3 wherein the at least one parameter is defined to limit the identification of implied orders to those which would result in maximum revenue.

5. The system of claim 1 wherein the filter criteria comprises a number of events since last trade.

6. The system of claim 1 wherein the filter criteria comprises a threshold value of a bid/ask spread.

7. The system of claim 6 wherein each of the implied orders of the first subset are characterized by a bid/ask spread less than the threshold.

8. The system of claim 6 wherein the computer program instructions are further operative to cause the processor to:

determine a second subset of the plurality of implied orders, each having a bid/ask spread that exceeds the threshold, wherein the second subset differs from the first subset; and

publish market data on the second subset in response to determining that a number of messages exceeds a message count threshold.

9. The system of claim 6 wherein the threshold is different for each of a plurality of contracts.

10. The system of claim 6 wherein the threshold is based on a number of ticks between a best bid and a best ask.

11. The system of claim 1 wherein the filter criteria are defined to limit the first subset to include only those identified implied orders resulting in the largest revenue.

12. The system of claim 1 wherein the computer program instructions are further operative to cause the processor to determine, using the at least one parameter, a root-specific change set of nodes affected in a tree originating at the corresponding root node and, based thereon, adjust the filter criteria prior to the generation of the first subset of implied orders.

13. The system of claim 1 wherein the shortest path algorithm used in the calculation of one or more shortest path trees is based on price path, price volume, and path time.

14. The system of claim 13 wherein the price path is a sum of prices in the shortest path, the price volume is based on a minimum volume of any component edge within the shortest path, and the path time is based on a time priority number of any component edge within the shortest path.

15. The system of claim 1 wherein the at least one parameter and the filter criteria are based on a time, rate and threshold criteria translated from a filtering policy and provided to the processor.

16. A method comprising:

creating, by a processor coupled with a non-transitory memory, a plurality of implied calculation threads, each of which is associated with an object and corresponds to a root node, the object including a programmed method call, wherein each object maintains a shortest path tree and implied edge collection, the shortest path tree being stored in the non-transitory computer-readable medium as a collection of one-dimensional arrays;

executing each implied calculation thread in parallel with the execution of the others of the plurality of implied calculation threads, each implied calculation thread identifying a plurality of implied orders from an associated subset of the set of real orders that are not tradable against each other by calculating one or more shortest path trees using a shortest path algorithm;

sending, by the processor, at least one parameter to each of the plurality of implied calculation threads to enable each to prematurely terminate execution so as to reduce a computing load on the processor by identifying less than all possible of the plurality of implied orders from the associated subset;

filtering, by the processor based on filter criteria, the plurality of implied orders identified by each of the plurality of implied calculation threads to generate a first subset of implied orders; and

publishing, by the processor, market data on the first subset.

17. The method of claim 16 wherein the programmed method call both reads and writes local variables but only reads variables shared with the root node.

18. The method of claim 16 wherein the at least one parameter specifies a limit and further wherein each of the implied calculation threads is operative to determine when the limit is attained before all of the plurality of implied orders are identified from the associated subset and, based thereon, terminate further identification of implied orders.

19. The method of claim 18 wherein the at least one parameter is defined to limit the identification of implied orders to those which would result in maximum revenue.

20. The method of claim 16 wherein the filter criteria comprises a number of events since last trade.

21. The method of claim 16 wherein the filter criteria comprises a threshold value of a bid/ask spread.

22. The method of claim 21 wherein each of the implied orders of the first subset are characterized by a bid/ask spread less than the threshold.

23. The method of claim 21 further comprising:

determining, by the processor, a second subset of the plurality of implied orders, each having a bid/ask spread that exceeds the threshold, wherein the second subset differs from the first subset; and

publishing, by the processor, market data on the second subset in response to determining that a number of messages exceeds a message count threshold.

24. The method of claim 21 wherein the threshold is different for each of a plurality of contracts.

25. The method of claim 21 wherein the threshold is based on a number of ticks between a best bid and a best ask.

26. The method of claim 16 wherein the filter criteria are defined to limit the first subset to include only those identified implied orders resulting in the largest revenue.

27. The method of claim 16 further comprising determining, by the processor using the at least one parameter, a root-specific change set of nodes affected in a tree originating at the corresponding root node and, based thereon, adjust the filter criteria prior to the generation of the first subset of implied orders.

28. The method of claim 16 wherein the shortest path algorithm used in the calculation of one or more shortest path trees is based on price path, price volume, and path time.

29. The method of claim 28 wherein the price path is a sum of prices in the shortest path, the price volume is based on a minimum volume of any component edge within the shortest path, and the path time is based on a time priority number of any component edge within the shortest path.

30. The method of claim 16 wherein the at least one parameter and the filter criteria are based on a time, rate and threshold criteria translated from a filtering policy and provided to the processor.

31. A system comprising:

means for creating a plurality of implied calculation threads, each of which is associated with an object and corresponds to a root node, the object including a programmed method call, wherein each object maintains a shortest path tree and implied edge collection, the shortest path tree being stored in the non-transitory computer-readable medium as a collection of one-dimensional arrays, each implied calculation thread executing in parallel with the execution of the others of the plurality of implied calculation threads and identifying a plurality of implied orders from an associated subset of the set of real orders that are not tradable against each other by calculating one or more shortest path trees using a shortest path algorithm;

means for sending at least one parameter to each of the plurality of implied calculation threads to enable each to prematurely terminate execution so as to reduce a computing load on the processor by identifying less than all possible of the plurality of implied orders from the associated subset;

means for filtering, based on filter criteria, the plurality of implied orders identified by each of the plurality of implied calculation threads to generate a first subset of implied orders; and

means for publishing market data on the first subset.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2019
From: MILNE, ANDREW; SEDLIN, ALEKSANDR
To: NEW YORK MERCANTILE EXCHANGE, INC.
Reel/Frame 049650/0277 →
Continuity (5)
Continuation 14797891 · Jul 13, 2015
Continuation 13866785 · Apr 19, 2013
Continuation 13532352 · Jun 25, 2012
Continuation 12350788 · Jan 8, 2009
Related Publication 20190325519A1 · Oct 24, 2019