Order management system for improved latency
AssigneeNasdaq Technology AB
InventorsAnders Green, Lars Baarman
Life of this patent
Estimating the term…
Abstract
The technology described herein relates to a system for managing order data for improved latency. In particular, the technology described herein relates to, among other aspects, a system for processing certain types of orders so that the orders may re-attempt matching against orders in an orderbook memory thereby preventing different disparate terminal devices from having to resubmit the order data messages.
Claims20
A system configured to process order data, the system comprising:
- a processor;
- and
- a memory configured to store computer readable instructions that, when executed by the processor, cause the system to:
- receive an order data message from a client device, wherein the order data message contains a data fie including data elements associated with an order;
- parse the data file in the order data message and extract the data elements associated with the order;
- identify an order type based on an order type element extracted from the data elements;
- in association with the order type being a non-immediate-or-cancel (IOC) order:
- forward the extracted data elements, associated with the order, to a first gateway operating under a first protocol;
- access an orderbook memory having one or more data records associated with one or more orders;
- attempt to match the order against the one or more data records associated with the one or more orders stored in the orderbook memory;
- process the order in associated with the order matching against the one or more orders and publish the completed order in the orderbook memory;
- and
- store the order in the orderbook memory in association with the order not matching against the one or more orders,
- in association with the order type being an IOC order:
- forward the extracted data elements, associated with the order, to a second gateway operating under a second protocol;
- submit a first request to fill the IOC order by attempting to match at least a portion of the order against the one or more data records associated with the one or more orders stored in the orderbook memory;
- upon matching the portion of the order:
- wait a first period of time after the portion of the order has attempted to match against the one or more data records associated with the one or more orders, wherein the first period of time includes a standard replenishment rate plus a randomized buffer;
- after waiting the first period of time, submit a second request to fill the IOC order for matching a remaining amount from the order;
- attempt to match the remaining amount from the order against the one or more data records associated with the one or more orders stored in the orderbook memory;
- upon successfully matching the remaining amount from the order, publish the completed order in the orderbook memory;
- and
- upon unsuccessfully matching the remaining amount from the order, repeat waiting the first period of time and submit a third request to fill the IOC order after waiting the first period of time.
A method for processing order data, comprising:
- at an information processing system having a memory and a processor:
- receiving an order data message having a data file including data elements associated with an order;
- parsing the data file in the order data message and extracting the data elements associated with the order,
- identifying an order type based on an order type element extracted from the data elements;
- in association with the order type being a non-immediate-or-cancel (IOC) order:
- forwarding the extracted data elements, associated with the order, to a first gateway operating under a first protocol;
- accessing an orderbook memory having one or more data records associated with one or more orders;
- attempting to match the order against the one or more data records associated with the one or more orders stored in the orderbook memory;
- processing the order in association with the order matching against the one or more orders and publishing the completed order in the orderbook memory;
- and
- storing the order in the orderbook memory in association with the order not matching against the one or more orders, and
- in association with the order type being an IOC order:
- forwarding the extracted data elements, associated with the order, to a second gateway operating under a second protocol;
- submitting a first request to fill the IOC order by attempting to match a portion of the order against the one or more data records associated with orders stored in an orderbook memory;
- upon matching the portion of the order:
- waiting a first period of time after the portion of the order has attempted to match against the one or more data records associated, with the one or more orders, wherein the first period of time includes a standard replenishment rate plus a randomized buffer;
- after waiting the first period of time, submitting a second request to fill the IOC order for matching a remaining amount of the order;
- and
- attempting to match the remaining amount of the order against the one or more data records associated with the orders stored in the orderbook memory;
- upon successfully matching the remaining amount from the order, publishing the completed order in the orderbook memory;
- and
- upon unsuccessfully matching the remaining amount from the order, repeating waiting the first period of time and submit a third request to fill the IOC order after waiting the first period of time.
A non-transitory computer readable storage medium configured to store computer readable instructions that, when executed by a processor of an information processing system, cause the information processing system to provide execution comprising:
- receiving an order data message having a data file including data elements associated with an order;
- parsing the data file in the order data message and extracting the data elements associated with the order;
- identifying an order type based on an order type element extracted from the data elements;
- in association with the order type being a non-immediate-or-cancel (IOC) order:
- forwarding the extracted data elements, associated with the order, to a first gateway operating under a first protocol;
- accessing an orderbook memory having one or more data records associated with one or more orders;
- attempting to match the order against the one or more data records associated with the one or more orders stored in the orderbook memory;
- processing the order in associated with the order matching against the one or more orders and publishing the completed order in the orderbook memory;
- and
- storing the order in the orderbook memory in association with the order not matching against the one or more orders, and
- in association with the order type being an IOC order:
- forwarding the extracted data elements, associated with the order, to a second gateway operating under a second protocol;
- submitting a first request to fill the IOC order by attempting to match a portion of the order against the one or more data records associated with orders stored in an orderbook memory;
- upon matching the portion of the order:
- waiting a first period of time after the portion of the order has attempted to match against the one or more data records associated with the one or more orders, wherein the first period of time includes a standard replenishment rate plus a randomized buffer;
- after waiting the first period of time, submitting a second request to fill the IOC order for matching the remaining amount of the order;
- attempting to match the remaining amount of the order against the one or more data records associated with the orders stored in the orderbook memory;
- upon successfully matching the remaining amount from the order, publishing the completed order in the orderbook memory;
- and
- upon unsuccessfully matching the remaining amount from the order, repeating waiting the first period of time and submit a third request to fill the IOC order after waiting the first period of time.
Dependencies are inferred from the claim text.