Electronic Trading Platform and Method Thereof
Abstract
A computerized trading system having a plurality of independent trading environments for trading quotes relating to financial instruments received from quoting firms. A multicast data bus provides communication between a matching engine, a plurality of edge applications operating in each independent trading environment, and an order gateway which is common to the plurality of independent trading environments. Quotes are received from the quoting firms at the respective quote interface applications. The quotes are placed in the respective assigned areas of the shared memory. The matching engine matches the received quotes by polling and processing each area of the shared memory. The matching engine, upon completion of polling all areas of the shared memory, checks a port of the multicast data bus to receive messages transmitted by the edge applications and to receive incoming orders for financial instruments from the order gateway.
Claims
exact text as granted — not AI-modified1 . A method for trading quotes relating to financial instruments received from quoting firms in a computerized trading system having a plurality of independent trading environments, the method comprising:
providing a plurality of independent trading environments, wherein providing each independent trading environment comprises:
providing a communication network;
providing a matching engine executed by a server, wherein the matching engine accesses a shared memory;
providing a plurality of quote interface applications, executed by the server, wherein each quote interface application is associated with a particular quoting firm;
assigning areas of the shared memory to each of the plurality of quote interface applications; and
providing at least one multicast data bus providing communication between the matching engine, a plurality of edge applications operating in each independent trading environment, and an order gateway which is common to the plurality of independent trading environments,
the method further comprising: receiving quotes from the plurality of quoting firms at the respective quote interface applications, wherein the received quotes each comprise data representing an offer to buy and/or an offer to sell a financial instrument; placing, by the quote interface applications, the quotes received from the respective quoting firms in the respective assigned areas of the shared memory; matching, by the matching engine, the received quotes placed in the areas of the shared memory, wherein the matching comprises polling and processing for each area of the shared memory; the matching engine, upon completion of polling all areas of the shared memory, checking a port of the multicast data bus to receive messages transmitted by the edge applications and to receive incoming orders for financial instruments from the order gateway; and iteratively repeating, by the matching engine, said steps of matching the received quotes and checking the port of the multicast data bus.
2 . The method of claim 1 , wherein the order interface gateway comprises a plurality of order interface applications which each provide an order entry interface to an order provider.
3 . The method of claim 2 , wherein each of the plurality of order interface applications is assigned to a specific order provider.
4 . The method of claim 1 , wherein the order interface gateway reads a symbol representing a financial instrument associated with each of the incoming orders and routes each of the incoming orders to the order interface of a corresponding one of the independent trading environments based on the symbol of each incoming order.
5 . The method of claim 4 , wherein the order gateway uses a lookup table to determine an IP address associated with the symbol of each of the incoming orders and transmits each of the incoming orders to one of the plurality of independent trading environments using the IP address.
6 . The method of claim 4 , wherein each independent trading environment is assigned to execute orders associated with a specific one or more of the symbols.
7 . The method of claim 1 , further comprising filtering data on the multicast data bus of each independent trading environment to separate high bandwidth data from low bandwidth data and redirecting the low bandwidth data to a low bandwidth bus.
8 . The method of claim 7 , wherein the low bandwidth bus carries data to and from the order interface.
9 . The method of claim 1 , further comprising a step in which the matching engine, after processing a quote or quotes in an area of the shared memory, sends information relating to the processing of the quote or quotes over the multicast data bus.
10 . The method of claim 1 , wherein the matching by the matching engine comprises:
polling, by the matching engine, a first area of memory to find a quote or quotes;
processing the quote or quotes in the first area, the processing including searching for a matching contraside interest, allocating the resulting matching interest according to at least one allocation rule, and executing the quote according to the allocating; and
repeating said polling and processing for each area of the shared memory.
11 . The method of claim 1 , wherein the edge applications of the independent trading environment comprise applications configured to forward top of the market data, based on the processing of the quotes, to parties outside of the independent trading environment
12 . The method of claim 1 , wherein the independent trading environment includes a message retrieval application that records all messages sent between the matching engine and edge applications via the multicast data bus, the method further comprising:
in response to a request from an application to fill a gap in messages, the message retrieval application provides the requesting application with the messages necessary to fill the gap.
13 . A computerized electronic trading platform for performing trading of one or more types of financial instruments, the trading platform comprising:
a plurality of independent trading environments, each executed by a server comprising a processor and shared memory, each independent trading environment including:
a communication network;
a plurality of instances of an quote interface application executed by the processor of the server and configured to receive quotes, the plural instances of the quote interface application each being associated with a particular quoting firm, the received quotes each comprising data representing an offer to buy and/or an offer to sell a financial instrument, the plurality of instances of the quote interface application configured to write the quotes to the shared memory on the server, in respective areas of the shared memory assigned to each of the plurality of quote interface applications; a matching engine executed by the processor of the server and configured to perform a matching procedure comprising polling and processing for each area of the shared memory, at least one multicast data bus providing communication between the matching engine, a plurality of edge applications operating in each independent trading environment, and an order gateway which is common to the plurality of independent trading environments,
wherein the matching engine, upon completion of polling all areas of the shared memory, checks a port of the multicast data bus to receive messages transmitted by the edge applications and to receive incoming orders for financial instruments from the order gateway, and iteratively repeats said matching procedure for the received quotes and said checking of the port of the multicast data bus.
14 . The computerized electronic trading platform of claim 13 , wherein the order interface gateway comprises a plurality of order interface applications which each provide an order entry interface to an order provider.
15 . The computerized electronic trading platform of claim 14 , wherein each of the plurality of order interface applications is assigned to a specific order provider.
16 . The computerized electronic trading platform of claim 13 , wherein the order interface gateway reads a symbol representing a financial instrument associated with each of the incoming orders and routes each of the incoming orders to the order interface of a corresponding one of the independent trading environments based on the symbol of each incoming order.
17 . The computerized electronic trading platform of claim 16 , wherein the order gateway comprises a lookup table to determine an IP address associated with the symbol of each of the incoming orders, and the order gateway is configured to transmit each of the incoming orders to one of the plurality of independent trading environments using the IP address.
18 . The computerized electronic trading platform of claim 16 , wherein each independent trading environment is assigned to execute orders associated with a specific one or more of the symbols.
19 . The computerized electronic trading platform of claim 13 , further comprising a bandwidth-based filter which filters data on the multicast data bus of each independent trading environment to separate high bandwidth data from low bandwidth data and redirect the low bandwidth data to a low bandwidth bus.
20 . The computerized electronic trading platform of claim 19 , wherein the low bandwidth bus carries data to and from the order interface.
21 . The computerized electronic trading platform of claim 13 , wherein the matching engine, after processing a quote or quotes in an area of the shared memory, is configured to send information relating to the processing of the quote or quotes over the multicast data bus.
22 . The computerized electronic trading platform of claim 13 , wherein the matching procedure performed by the matching engine comprises:
polling, by the matching engine, a first area of memory to find a quote or quotes; processing the quote or quotes in the first area, the processing including searching for a matching contraside interest, allocating the resulting matching interest according to at least one allocation rule, and executing the quote according to the allocating; and repeating said polling and processing for each area of the shared memory.
23 . The computerized electronic trading platform of claim 13 , wherein the independent trading environment includes a message retrieval application that records all messages sent between the matching engine and edge applications via the multicast data bus, and the message retrieval application is configured to, in response to a request from an application to fill a gap in messages, provide the requesting application with the messages necessary to fill the gap.
24 . A non-transitory computer-readable medium storing instructions for execution by a processor to cause the processor to execute a method for trading quotes relating to financial instruments received from quoting firms in a computerized trading system having a plurality of independent trading environments, each of the independent trading environments having a matching engine executed by a server, plural instances of an quote interface application executed by the server, each quote interface application being associated with a particular quoting firm, and at least one multicast data bus providing communication between the matching engine, a plurality of edge applications operating in each independent trading environment, and an order gateway which is common to the plurality of independent trading environments, the method comprising:
receiving quotes from the plurality of quoting firms at the quote interface application applications in respective ones of the plurality of independent trading environments, wherein the received quotes each comprise data representing an offer to buy and/or an offer to sell a financial instrument; placing, by the quote interface applications, the quotes received from the respective quoting firms in the respective assigned areas of a shared memory; matching, by the matching engine, the received quotes placed in the areas of the shared memory, wherein the matching comprises polling and processing for each area of the shared memory; the matching engine, upon completion of polling all areas of the shared memory, checking a port of the multicast data bus to receive messages transmitted by the edge applications and to receive incoming orders for financial instruments from the order gateway; and iteratively repeating, by the matching engine, said steps of matching the received quotes and checking the port of the multicast data bus.
25 . The non-transitory computer-readable medium according to claim 24 , wherein the matching by the matching engine comprises:
polling, by the matching engine, a first area of memory to find a quote or quotes;
processing the quote or quotes in the first area, the processing including searching for a matching contraside interest, allocating the resulting matching interest according to at least one allocation rule, and executing the quote according to the allocating; and
repeating said polling and processing for each area of the shared memory.Join the waitlist — get patent alerts
Track US2015039489A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.