U.S. patent application number 16/271197 was filed with the patent office on 2019-06-06 for trade engine processing of mass quote messages and resulting production of market data.
The applicant listed for this patent is Chicago Mercantile Exchange Inc.. Invention is credited to Joe Lobraco, Fred Malabre, Vijay Menon, Ron Newell.
Application Number | 20190172137 16/271197 |
Document ID | / |
Family ID | 34556311 |
Filed Date | 2019-06-06 |
United States Patent
Application |
20190172137 |
Kind Code |
A1 |
Newell; Ron ; et
al. |
June 6, 2019 |
TRADE ENGINE PROCESSING OF MASS QUOTE MESSAGES AND RESULTING
PRODUCTION OF MARKET DATA
Abstract
Systems and methods are provided for processing mass quote
messages and generating market data. A mass quote message is
received and individual orders are parsed and processed. Individual
market data messages are stored in a market data message buffer.
After all orders are processed, the contents of the market data
message buffer is distributed as a single market data message.
Inventors: |
Newell; Ron; (Chicago,
IL) ; Menon; Vijay; (Chicago, IL) ; Malabre;
Fred; (Chicago, IL) ; Lobraco; Joe; (Hoffman
Estates, IL) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Chicago Mercantile Exchange Inc. |
Chicago |
IL |
US |
|
|
Family ID: |
34556311 |
Appl. No.: |
16/271197 |
Filed: |
February 8, 2019 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14094994 |
Dec 3, 2013 |
10242405 |
|
|
16271197 |
|
|
|
|
13168595 |
Jun 24, 2011 |
8626625 |
|
|
14094994 |
|
|
|
|
10903826 |
Jul 30, 2004 |
|
|
|
13168595 |
|
|
|
|
60517491 |
Nov 5, 2003 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06Q 40/025 20130101;
G06Q 40/04 20130101; H04L 51/18 20130101; G06Q 40/00 20130101; G06Q
30/0601 20130101; G06Q 20/10 20130101 |
International
Class: |
G06Q 40/04 20060101
G06Q040/04; G06Q 40/02 20060101 G06Q040/02; G06Q 40/00 20060101
G06Q040/00; H04L 12/58 20060101 H04L012/58; G06Q 20/10 20060101
G06Q020/10; G06Q 30/06 20060101 G06Q030/06 |
Claims
1. A system comprising: a computer device that includes a processor
and is configured to compile a group of orders for derivative
product financial instruments; a memory accessible by the computer
device and that stores a first template that defines a message
structure format that minimizes message length; wherein the
processor is configured with computer-executable instructions to
perform the steps comprising: (a) generating the first template;
(b) generating a single message that includes the group of orders
and that is formatted in accordance with the first template; (c)
transmitting the single message; and (d) generating multiple
additional templates on a real-time per message basis that define
message formats different from the first template; an exchange
computer system that includes a market data message buffer and that
is configured with computer-executable instructions to perform the
steps comprising: (a) receiving, at an order book module of the
exchange computer system, the single message, wherein the group of
orders included therein correspond to orders associated with a
plurality of order books; (b) processing, by the order book module,
the single message wherein order book module includes a plurality
of order book objects, and each of the plurality of order book
objects processes in a different thread, a different portion of the
group of orders; (c) generating market data by each order book
object; (d) storing, by a market data module, the generated market
data in the market data message buffer until a completion code is
received from each of the order book objects, wherein each order
book object generates the completion code when processing of its
associated portion of the group of orders has finished; and (e)
transmitting, by the market data module upon receipt of the
completion code from each of the plurality of order book objects,
the contents of the market data message buffer as a single market
data message.
2. The system of claim 1, wherein each of the message structure
format and the multiple additional templates further includes a
plurality of fields separated by delimiters.
3. The system of claim 1, wherein the single message is transmitted
to the plurality order book objects.
4. The system of claim 3, wherein each of the order book objects
corresponds to a financial instrument.
5. The system of claim 1, wherein the financial instruments
comprise option contracts.
6. The system of claim 1, wherein the financial instruments
comprise futures contracts.
7. The system of claim 1, wherein the computer device is further
configured with computer-executable instructions to receive the
first template from the exchange computer system.
8. The system of claim 1, wherein the computer device is further
configured with computer-executable instructions to transmit the
first template to the exchange computer system.
9. The system of claim 8, wherein the computer device is further
configured with computer-executable instructions to transmit the
second template to the exchange computer system.
10. The system of claim 9, wherein the computer device is further
configured with computer-executable instructions to generate a
single message that includes the group of orders and that is
formatted in accordance with the second template.
11. The system of claim 9, wherein the computer device is further
configured with computer-executable instructions to transmit to the
exchange computer system the single message that includes the group
of orders and that is formatted in accordance with the second
template.
12. A computer implemented method comprising: (a) generating, by a
processor of a computer device configured to compile a group for
orders for derivative product financial instruments, a first
template that defines a message structure format that minimizes
message length, and storing the first template in a memory coupled
with the processor; (b) generating, by the processor, a single
message that includes the group of orders and that is formatted in
accordance with the first template; (c) transmitting, by the
processor, the single message; and (d) generating, by the
processor, multiple additional templates on a real-time per message
basis that define message formats different from the first
template; (e) receiving, by an exchange computer system that
includes a market data message buffer, at an order book module of
the exchange computer system, the single message, wherein the group
of orders included therein correspond to orders associated with a
plurality of order books; (f) processing, by the order book module,
the single message wherein order book module includes a plurality
of order book objects, and each of the plurality of order book
objects processes in a different thread, a different portion of the
group of orders; (g) generating market data by each order book
object; (h) storing, by a market data module, the generated market
data in the market data message buffer until a completion code is
received from each of the order book objects, wherein each order
book object generates the completion code when processing of its
associated portion of the group of orders has finished; and (i)
transmitting, by the market data module upon receipt of the
completion code from each of the plurality of order book objects,
the contents of the market data message buffer as a single market
data message.
13. The computer implemented method of claim 12, wherein each of
the message structure format and the multiple additional templates
further includes a plurality of fields separated by delimiters.
14. The computer implemented method of claim 12, wherein the
processing further comprises transmitting the single message to the
plurality of order book objects.
15. The computer implemented method of claim 14, wherein each of
the order book objects corresponds to a financial instrument.
16. The computer implemented method of claim 12, wherein the
generating of the first template further comprises receiving the
first template from the exchange computer system.
17. The computer implemented method of claim 12, further comprising
transmitting the first template to the exchange computer
system.
18. The computer implemented method of claim 19, further comprising
transmitting the second template to the exchange computer
system.
19. The computer implemented method of claim 20, further comprising
generating a single message that includes the group of orders and
that is formatted in accordance with the second template.
20. The computer implemented method of claim 20, further comprising
transmitting to the exchange computer system the single message
that includes the group of orders and that is formatted in
accordance with the second template.
21. A computer implemented method comprising: receiving, by an
exchange computer system that includes a market data message
buffer, at an order book module of the exchange computer system, a
single message, generated by a processor of a computer device
configured to compile a group for orders for derivative product
financial instruments, that includes a group of orders and that is
formatted in accordance with a first template generated by the
processor that defines a message structure format that minimizes
message length and is different from multiple additional templates
generated by the processor on a real-time per message basis, the
processor having transmitted the single message to the exchange
computer system, wherein the group of orders included therein
correspond to orders associated with a plurality of order books;
processing, by the order book module, the single message wherein
order book module includes a plurality of order book objects, and
each of the plurality of order book objects processes in a
different thread, a different portion of the group of orders;
generating market data by each order book object; storing, by a
market data module, the generated market data in the market data
message buffer until a completion code is received from each of the
order book objects, wherein each order book object generates the
completion code when processing of its associated portion of the
group of orders has finished; and transmitting, by the market data
module upon receipt of the completion code from each of the
plurality of order book objects, the contents of the market data
message buffer as a single market data message.
Description
REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation under 37 C.F.R. .sctn.
1.53(b) of U.S. patent application Ser. No. 14/094,994 filed Dec.
3, 2013 (Attorney Docket No. 004672-03381Z-US)) now U.S. Pat. No.
______, which is a continuation under 37 C.F.R. .sctn. 1.53(b) of
U.S. patent application Ser. No. 13/168,595 filed Jun. 24, 2011,
now U.S. Pat. No. 8,626,625, which is a continuation under 37
C.F.R. .sctn. 1.53(b) of U.S. patent application Ser. No.
10/903,826, filed Jul. 30, 2004, now abandoned, which claims the
benefit of the filing date under 35 U.S.C. .sctn. 119(e) U.S.
Provisional Patent Application Ser. No. 60/517,491, filed Nov. 5,
2003, the entire disclosures of which is hereby incorporated by
reference.
FIELD OF THE INVENTION
[0002] Aspects of the present invention relate to the processing of
mass quote messages that include a plurality of orders. More
specifically, aspects of the present invention provide systems and
methods for processing mass quote messages and distributing market
data.
BACKGROUND
[0003] Current financial instrument trading systems allow traders
to combine orders for a group of financial instruments into a
single order called a mass quote message. For example, a trader may
use a mass quote message when transmitting orders for a group of
related option contracts, such as an option series belonging to one
option class. With conventional trade engines, each individual
order is processed separately and results in the creation of market
data. The market data produced for each trade is then distributed
to traders and other entities.
[0004] As the number of orders and traders increases, the
distribution of market data messages can strain computer systems
and networks that are used to transmit such messages. The
processing of numerous market data messages and associated overhead
consumes bandwidth and processing time.
[0005] Therefore, there is a need in the art for improved systems
and methods for processing mass quote messages and producing and
distributing market data messages.
SUMMARY OF THE INVENTION
[0006] The present invention overcomes at least some of the
problems and limitations of the prior art by providing systems and
methods for processing mass quote messages and producing a single
market data message. The orders within a mass quote message are
processed and result in the production of market data. The market
data is stored in one or more market data message buffers. The
contents of the market data message buffer(s) is transmitted as a
single market data message. In some embodiment of the invention the
mass quote message includes orders spread across different order
books. The mass quote messages may be formatted in accordance with
one or more of the formats described in U.S. provisional patent
application serial No. 60/517,491.
[0007] In various embodiments, aspects of the present invention can
be partially or wholly implemented on a computer-readable medium,
for example, by storing computer-executable instructions or
modules, or by utilizing computer-readable data structures.
[0008] Of course, the methods and systems disclosed herein may also
include other additional elements, steps, computer-executable
instructions, or computer-readable data structures.
[0009] The details of these and other embodiments of the present
invention are set forth in the accompanying drawings and the
description below. Other features and advantages of the invention
will be apparent from the description and drawings, and from the
claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The present invention may take physical form in certain
parts and steps, embodiments of which will be described in detail
in the following description and illustrated in the accompanying
drawings that form a part hereof, wherein:
[0011] FIG. 1 shows a computer network system that may be used to
implement aspects of the present invention;
[0012] FIG. 2 illustrates a system for processing mass quote
messages and a distributing corresponding market data in accordance
with an embodiment of the invention;
[0013] FIG. 3 illustrates a computer implemented method for
processing mass quote messages in accordance with an embodiment of
the invention; and
[0014] FIG. 4 illustrates a computer implemented method of
processing mass quote message that includes creating a market data
message buffer, in accordance with an embodiment of the
invention.
DETAILED DESCRIPTION OF THE DRAWINGS AND PRESENTLY PREFERRED
EMBODIMENTS
Exemplary Operating Environment
[0015] Aspects of the present invention are preferably implemented
with computer devices and computer networks that allow users to
exchange trading information. An exemplary trading network
environment for implementing trading systems and methods is shown
in FIG. 1. An exchange computer system 100 receives orders and
transmits market data related to orders and trades to users.
Exchange computer system 100 may be implemented with one or more
mainframe, desktop or other computers. A user database 102 includes
information identifying traders and other users of exchange
computer system 100. Data may include user names and passwords. An
account data module 104 may process account information that may be
used during trades. A match engine module 106 is included to match
bid and offer prices. Match engine module 106 may be implemented
with software that executes one or more algorithms for matching
bids and offers. A trade database 108 may be included to store
information identifying trades and descriptions of trades. In
particular, a trade database may store information identifying the
time that a trade took place and the contract price. An order book
module 110 may be included to compute or otherwise determine
current bid and offer prices. A market data module 112 may be
included to collect market data and prepare the data for
transmission to users. A risk management module 134 may be included
to compute and determine a user's risk utilization in relation to
the user's defined risk thresholds. An order processing module 136
may be included to decompose delta based and bulk order types for
processing by order book module 110 and match engine module
106.)
[0016] The trading network environment shown in FIG. 1 includes
computer devices 114, 116, 118, 120 and 122. Each computer device
includes a central processor that controls the overall operation of
the computer and a system bus that connects the central processor
to one or more conventional components, such as a network card or
modem. Each computer device may also include a variety of interface
units and drives for reading and writing data or files. Depending
on the type of computer device, a user can interact with the
computer with a keyboard, pointing device, microphone, pen device
or other input device.
[0017] Computer device 114 is shown directly connected to exchange
computer system 100. Exchange computer system 100 and computer
device 114 may be connected via a Ti line, a common local area
network (LAN) or other mechanism for connecting computer devices.
Computer device 114 is shown connected to a radio 132. The user of
radio 132 may be a trader or exchange employee. The radio user may
transmit orders or other information to a user of computer device
114. The user of computer device 114 may then transmit the trade or
other information to exchange computer system 100.
[0018] Computer devices 116 and 118 are coupled to a LAN 124. LAN
124 may have one or more of the well-known LAN topologies and may
use a variety of different protocols, such as Ethernet. Computers
116 and 118 may communicate with each other and other computers and
devices connected to LAN 124. Computers and other devices may be
connected to LAN 124 via twisted pair wires, coaxial cable, fiber
optics or other media. Alternatively, a wireless personal digital
assistant device (PDA) 122 may communicate with LAN 124 or the
Internet 126 via radio waves. PDA 122 may also communicate with
exchange computer system 100 via a conventional wireless hub 128.
As used herein, a PDA includes mobile telephones and other wireless
devices that communicate with a network via radio waves.
[0019] FIG. 1 also shows LAN 124 connected to the Internet 126. LAN
124 may include a router to connect LAN 124 to the Internet 126.
Computer device 120 is shown connected directly to the Internet
126. The connection may be via a modem, DSL line, satellite dish or
any other device for connecting a computer device to the
Internet.
[0020] One or more market makers 130 may maintain a market by
providing constant bid and offer prices for a derivative or
security to exchange computer system 100. Exchange computer system
100 may also exchange information with other trade engines, such as
trade engine 138. One skilled in the art will appreciate that
numerous additional computers and systems may be coupled to
exchange computer system 100. Such computers and systems may
include clearing, regulatory and fee systems.
[0021] The operations of computer devices and systems shown in FIG.
1 may be controlled by computer-executable instructions stored on
computer-readable medium. For example, computer device 116 may
include computer-executable instructions for receiving order
information from a user and transmitting that order information to
exchange computer system 100. In another example, computer device
118 may include computer-executable instructions for receiving
market data from exchange computer system 100 and displaying that
information to a user.
[0022] Of course, numerous additional servers, computers, handheld
devices, personal digital assistants, telephones and other devices
may also be connected to exchange computer system 100. Moreover,
one skilled in the art will appreciate that the topology shown in
FIG. 1 is merely an example and that the components shown in FIG. 1
may be connected by numerous alternative topologies.
Mass Quote Message Processing and Market Data Dissemination
[0023] FIG. 2 illustrates a system for processing mass quote
messages and a distributing corresponding market data in accordance
with an embodiment of the invention. A mass quote message 202
contains a plurality of orders for financial instruments. The
financial instruments may be derivative products. Derivative
products may include options on futures contracts, futures
contracts that are functions of or related to other futures
contracts, or other financial instruments that have their price
related to or derived from an underlying product. In one embodiment
of the invention, the orders are for options contracts that belong
to a common option class. Orders may also be for baskets,
quadrants, other combinations of financial instruments, etc. Mass
quote message 202 may be received at an exchange. As used herein,
an exchange is a place or system that receives and executes orders.
The orders in mass quote message 202 are delivered to appropriate
order book objects 204, 206 and 208. Each order book object may
correspond to a particular financial instrument, such as an option
contract and may track or maintain the order book for that
financial instrument. The market data produced by each order may be
delivered to a market data message buffer 210 where market data for
each order in mass quote message 202 is compiled. When all of the
market data has been received, the contents in market data message
buffer 210 may be distributed to traders and others tracking market
data. The transmission may be via the Internet 210 or other
mechanisms connecting traders to an exchange.
[0024] FIG. 3 illustrates a computer implemented method for
processing mass quote messages in accordance with an embodiment of
the invention. First, in step 302 a mass quote message is received.
The mass quote message includes a plurality of orders for financial
instruments and may be received at an exchange, match engine or any
other location or device that processes orders for financial
instruments. Next, in step 304 a thread iterates through the mass
quote message and passes orders to corresponding order book
objects. Step 304 may include sequentially reading all of the
orders within the message and passing the orders to corresponding
order book objects.
[0025] Order book objects process orders and generate market data
messages in step 306. The processing of orders and generation of
market data messages may utilize conventional methods known to
those of skill in the art. Each of the market data messages may be
stored in a market data message buffer in step 308. The use of a
market data message buffer facilitates compiling market data
messages so that such messages can be distributed together in a
single message. Finally, when market data has been received for all
orders in the mass quote message, the contents in the market data
message buffer is transmitted in step 310. Step 310 may include
transmitting a market data message across one or computer, audio,
video or data networks.
[0026] There are a number of alternative methods for determining
when a market data message buffer has received market data for all
of the orders in a mass quote message. An input thread may
determine how many orders are within a mass quote message and pass
this number to the market data message buffer. Mass quote messages
may also contain a fixed number of orders such that the market data
message buffer only needs to count individual market messages. In
another alternative embodiment, the last order within a mass quote
message may include a flag or code that signifies to the market
data message buffer or other module that the order is the last
order. In yet another embodiment of the invention, order book
objects may transmit a code to the market data message buffer when
each one is done processing the orders that they have received.
When the market data message buffer receives a code from each order
book object, the buffer knows that it has received market data for
each of the orders in the mass quote message. Each order book
object may utilize its own thread for processing orders.
[0027] Aspects of the invention may also use fixed, single and
multiple market data message buffers. For example, each order book
object may transmit market data messages to a unique market data
message buffer. FIG. 4 illustrates a computer implemented method of
processing mass quote message that includes creating a market data
message buffer, in accordance with an embodiment of the invention.
A mass quote message is received in step 402. Next, in step 404, a
market data message buffer is created. Step 404 may include
determining the required size of the buffer and selecting a buffer
from a pool of available buffers or allocating memory for the
buffer. In an alternative embodiment, step 404 may include creating
a plurality of market data message buffers, such that each order
book object that is used to process orders has access to a unique
market data message buffer. Of course, two or more order book
objects may also share a market data message buffer.
[0028] Next, in step 406 the plurality of orders included within
the mass quote message are processed by order book objects. Step
406 may include generating market data messages for each of the
orders with the mass quote message. Each of the market data
messages may be stored in a market data message buffer in step
408.
[0029] In step 410 it is determined whether the market data message
buffer contains market data for all of the plurality of orders.
Step 410 may be performed by using one or more of the processes
described above. When all market data has not been received, orders
are the processing of orders continues in step 412. When all market
data has been received, a single market data message containing the
market data stored in the market data buffer is transmitted in step
414.
[0030] In embodiments that use multiple market data message
buffers, the contents of the buffers may be transmitted as a single
market data message after all of the orders have been
processed.
[0031] The embodiments described above utilize a mass quote
message. In alternative embodiments individual orders may be
processed and produce market data that is compiled into a single
market data message. A variety of criteria may be used to group
orders that produce market data that is ultimately compiled into a
single market data message. For example, orders received within a
predetermined time period or orders for similar financial
instruments received within a predetermined time period may be
grouped together such that the resulting market data is transmitted
within a single market data message.
[0032] The embodiments described above also transmit a single
market data message after all orders have been processed. In
alternative embodiments of the invention a market data message may
be transmitted before all of the orders are processed. For example,
the message may be transmitted at a predetermined time after
receiving market data from the first order. This allows market data
to be distributed even when the processing of one or more orders
takes an undue length of time. After a first market data message is
transmitted, subsequent market data messages may be transmitted
upon receipt of additional market data.
[0033] The present invention has been described in terms of
preferred and exemplary embodiments thereof. Numerous other
embodiments, modifications and variations within the scope and
spirit of the invention will occur to persons of ordinary skill in
the art from a review of this disclosure. For example, aspects of
the invention may be used to process and communicate data other
than market data.
* * * * *