IP Library › Granted Patent US 10,395,316
Granted Patent B2
US 10,395,316 · App. 14/797,891 · Granted Aug 27, 2019

Determination of implied orders in a trade matching system

Inventors: Andrew Milne (Maplewood, NJ); Aleksandr Sedlin (Brooklyn, NY)
Assignee: Chicago 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 10,395,316
App. No.
14/797,891
Filed
Jul 13, 2015
Granted
Aug 27, 2019
Kind
B2
Art Unit
3692
USPC
705/37
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 (48)

1. An electronic trading system comprising:

a validator that checks the properties of a new order against established criteria;

a database that stores orders;

a match engine that includes a processor and executes multiple threads, receives orders from the validator and transmits orders to the database;

a non-transitory computer-readable medium storing computer program instructions that, when executed by the processor, cause the match engine to perform steps comprising:

creating objects in the non-transitory computer-readable medium that extend a thread class and include a programmed set method call, wherein the programmed set method can both read and write local variables but only read those variables shared with a root node, wherein the multiple threads correspond to the objects and are each assigned to a subgroup of implied calculations;

maintaining, by each object, a shortest path tree and implied edge collection, wherein the shortest path tree is stored in the non-transitory computer-readable medium as a collection of one-dimensional arrays to further parallel processing by the multiple threads;

identifying, using the multiple threads and parallel processing, a plurality of implied orders from real orders that are not tradable against each other;

determining bid/ask spreads for the implied orders;

sending parameters to the multiple threads to reduce computing load on the processor of the match engine;

determining, using the parameters, a root-specific change set to effect adjustment of criteria for filtering;

filtering, with adjusted criteria, the implied orders to generate a first subset of the implied orders each having a bid/ask spread that is less than a threshold; and

publishing market data on the first subset of the implied;

wherein the identifying of the plurality of implied orders comprises calculation of one or more shortest path trees using a shortest path algorithm.

2. The electronic trading system claim 1 , further comprising computer program instructions that cause the processor to perform the steps comprising:

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

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

3. The electronic trading system of claim 1 , further comprising computer program instructions that cause the processor to perform the step comprising terminating the shortest path algorithm based on the threshold.

4. The electronic trading system of claim 1 , further comprising computer program instructions that cause the processor to perform the step comprising determining a shortest path by the shortest path algorithm as a function of price path, price volume, and path time.

5. The electronic trading system of claim 4 , wherein the price path is a sum of prices in the shortest path.

6. The electronic trading system of claim 4 , wherein the price volume is based on a minimum volume of any component edge within the shortest path.

7. The electronic trading system of claim 4 , wherein the path time is based on a time priority number of any component edge within the shortest path.

8. The electronic trading system of claim 1 , wherein the threshold is common to a plurality of contracts.

9. The electronic trading system of claim 1 , wherein the threshold is different for each of a plurality of contracts.

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

11. A system comprising:

a match engine that includes a processor and executes multiple threads, receives orders from a validator and transmits orders to a database;

a non-transitory computer-readable medium storing computer program instructions that, when executed by the processor, cause the match engine to perform steps comprising:

creating objects in the non-transitory computer-readable medium that extend a thread class and include a programmed set method call, wherein the programmed set method can both read and write local variables but only read those variables shared with a root node, wherein the multiple threads correspond to the objects and are each assigned to a subgroup of implied calculations;

maintaining, by each object, a shortest path tree and implied edge collection, wherein the shortest path tree is stored in the non-transitory computer-readable medium as a collection of one-dimensional arrays to further parallel processing by the multiple threads;

identifying using the multiple threads and parallel processing a plurality of implied orders from real orders that are not tradable against each other;

determining bid/ask spreads for the implied orders;

sending parameters to the multiple threads to reduce computing load on the processor of the match engine;

determining, using the parameters, a root-specific change set to effect adjustment of criteria for filtering;

filtering, with adjusted criteria, the implied orders to generate a first subset of the implied orders each having a bid/ask spread that is less than a threshold; and

publishing market data on the first subset of the implied;

a ticker plant that aggregates market data; and

a market data distribution server that receives the market data from the ticker plant and transmits the market data to client computer devices;

wherein the identifying of the plurality of implied orders comprises calculation of one or more shortest path trees using a shortest path algorithm.

12. The system of claim 11 , further comprising computer program instructions that cause the processor to perform the steps comprising:

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

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

13. The system of claim 11 , further comprising computer program instructions that cause the processor to perform the step comprising terminating the shortest path algorithm based on the threshold.

14. The system of claim 11 , further comprising computer program instructions that cause the processor to perform the step comprising determining a shortest path by the shortest path algorithm as a function of price path, price volume, and path time.

15. The system of claim 14 , wherein the price path is a sum of prices in the shortest path.

16. The system of claim 14 , wherein the price volume is based on a minimum volume of any component edge within the shortest path.

17. The system of claim 14 , wherein the path time is based on a time priority number of any component edge within the shortest path.

18. The system of claim 11 , wherein the threshold is common to a plurality of contracts.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2018
From: MILNE, ANDREW; SEDLIN, ALEKSANDR
To: NEW YORK MERCANTILE EXCHANGE, INC.
Reel/Frame 047259/0306 →
Continuity (4)
Continuation 13866785 · Apr 19, 2013
Continuation 13532352 · Jun 25, 2012
Continuation 12350788 · Jan 8, 2009
Related Publication 20150317735A1 · Nov 5, 2015
Cited By (5)
US 12,211,100 US 12,229,828 US 12,277,600 US 12,373,888 US 12,541,795