Midpoint matching system
First Claim
1. An automated system for matching orders to purchase and sell a financial instrument comprising:
- an interface adapted to receive best bid and offer prices and adapted to transmit and receive information from market participants, wherein the interface receives a plurality of buy orders to purchase the instrument and a plurality of sell orders to sell the instrument, the orders each having a size, and wherein the orders include reserve orders, request for cross (RFC) orders, and solicitation of interest (SOI) orders, wherein the SOI orders include instructions for disclosing information about the order to one or more market participants, the instructions for disclosing information about the SOI order including instructions to disclose one or more of (i) the identity of the instrument, (ii) the side, (iii) the size and (iv) the price of the order, and (v) the identity of the person or entity placing the order and wherein when the SOI order is received, the disclosed information about the order is transmitted to one or more other market participants and one or more orders in response to the transmitted information are received;
a memory connected with the interface;
a plurality of registers connected with the memory including;
a zeroth buy register;
a first buy register; and
one or more nth buy registers;
a zeroth sell register;
a first sell register; and
one or more nth sell registers;
a processor connected with the memory and with the interface;
program memory for a program that, when the processor executes program instructions;
arranges the plurality of buy orders in order of execution priority, wherein a first buy order has the lowest execution priority and each subsequent nth buy order has a next higher order of priority and where RFC orders have a higher priority than SOI orders and SOI orders have a higher priority than reserve orders;
arranges the plurality of sell orders in order of execution priority, wherein a first sell order has the lowest execution priority and each subsequent nth sell order has a next higher order of priority and where RFC orders have a higher priority than SOI orders and SOI orders have a higher priority than reserve orders;
populates the plurality of buy registers so that;
the zeroth buy register has an indication at a zeroth position;
the first buy register has an indication at a position copied from the zeroth buy register and an indication at a position shifted from the indication in the zeroth buy register by a number of positions equal to the size of the first buy order;
each subsequent nth buy register has indications at positions copied from the previous buy register and has indications at positions shifted from the previous buy register by a number of positions equal to the size of the nth buy order;
populates the plurality of sell registers so that;
the zeroth sell register has an indication at a zeroth position;
the first sell register has an indication at a position copied from the zeroth sell register and an indication at a position shifted from the indication in the zeroth sell register by a number of positions equal to the size of the first sell order;
each subsequent nth sell register has an indication at positions copied from the previous sell register and has indications at positions shifted from the previous sell register by a number of positions equal to the size of the nth sell order;
compares the last-populated nth buy and sell registers to find indications in the same position in each such register;
matches the buy and sell orders corresponding to the last-populated nth buy and sell registers at the calculated midpoint price;
subtracts the size of the smaller of the matched buy and sell orders from the larger of the matched buy and sell orders to determine an unmatched size of the larger of the matched buy and sell orders; and
in reverse order of the registers having been populated, inspects each register, and if there is a register with an indication in a position corresponding to the unmatched size, matches the unmatched size of the matched buy or sell order with the order corresponding to that register at the calculated midpoint price.
5 Assignments
0 Petitions
Accused Products
Abstract
An automated system for matching orders to buy and sell securities at the midpoint of a best bid and offer (“BBO”), wherein the automated system is adapted to (i) operate on a fully-anonymous and continuous basis, (ii) process multiple, computer-generated orders, of any size, transmitted by algorithmic, program, and other automated trading systems, (iii) automatically match multiple, executable orders according to a priority scheme, and (iv) execute a matching algorithm that maximizes tradable volume when an executable order can not be matched according to the priority scheme. The system may be executed at a server or participant system, or combination of the two.
79 Citations
19 Claims
-
1. An automated system for matching orders to purchase and sell a financial instrument comprising:
-
an interface adapted to receive best bid and offer prices and adapted to transmit and receive information from market participants, wherein the interface receives a plurality of buy orders to purchase the instrument and a plurality of sell orders to sell the instrument, the orders each having a size, and wherein the orders include reserve orders, request for cross (RFC) orders, and solicitation of interest (SOI) orders, wherein the SOI orders include instructions for disclosing information about the order to one or more market participants, the instructions for disclosing information about the SOI order including instructions to disclose one or more of (i) the identity of the instrument, (ii) the side, (iii) the size and (iv) the price of the order, and (v) the identity of the person or entity placing the order and wherein when the SOI order is received, the disclosed information about the order is transmitted to one or more other market participants and one or more orders in response to the transmitted information are received; a memory connected with the interface; a plurality of registers connected with the memory including; a zeroth buy register; a first buy register; and one or more nth buy registers; a zeroth sell register; a first sell register; and one or more nth sell registers; a processor connected with the memory and with the interface; program memory for a program that, when the processor executes program instructions; arranges the plurality of buy orders in order of execution priority, wherein a first buy order has the lowest execution priority and each subsequent nth buy order has a next higher order of priority and where RFC orders have a higher priority than SOI orders and SOI orders have a higher priority than reserve orders; arranges the plurality of sell orders in order of execution priority, wherein a first sell order has the lowest execution priority and each subsequent nth sell order has a next higher order of priority and where RFC orders have a higher priority than SOI orders and SOI orders have a higher priority than reserve orders; populates the plurality of buy registers so that; the zeroth buy register has an indication at a zeroth position; the first buy register has an indication at a position copied from the zeroth buy register and an indication at a position shifted from the indication in the zeroth buy register by a number of positions equal to the size of the first buy order; each subsequent nth buy register has indications at positions copied from the previous buy register and has indications at positions shifted from the previous buy register by a number of positions equal to the size of the nth buy order; populates the plurality of sell registers so that; the zeroth sell register has an indication at a zeroth position; the first sell register has an indication at a position copied from the zeroth sell register and an indication at a position shifted from the indication in the zeroth sell register by a number of positions equal to the size of the first sell order; each subsequent nth sell register has an indication at positions copied from the previous sell register and has indications at positions shifted from the previous sell register by a number of positions equal to the size of the nth sell order; compares the last-populated nth buy and sell registers to find indications in the same position in each such register; matches the buy and sell orders corresponding to the last-populated nth buy and sell registers at the calculated midpoint price; subtracts the size of the smaller of the matched buy and sell orders from the larger of the matched buy and sell orders to determine an unmatched size of the larger of the matched buy and sell orders; and in reverse order of the registers having been populated, inspects each register, and if there is a register with an indication in a position corresponding to the unmatched size, matches the unmatched size of the matched buy or sell order with the order corresponding to that register at the calculated midpoint price. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An automated system for matching orders to purchase and sell a financial instrument comprising:
-
an interface adapted to receive best bid and offer prices and to receive a plurality of buy orders to purchase the instrument and a plurality of sell orders to sell the instrument, the orders each having a size and each having an execution priority; a memory connected with the interface; a plurality of registers connected with the memory including; a zeroth buy register; a first buy register; and one or more nth buy registers; a zeroth sell register; a first sell register; and one or more nth sell registers; a processor connected with the memory and with the interface; program memory for a program that, when the processor executes program instructions; computes a midpoint of the best bid and offer prices; arranges the plurality of buy orders in order of execution priority, wherein a first buy order has the lowest execution priority and each subsequent nth buy order has a next higher order of priority; arranges the plurality of sell orders in order of execution priority, wherein a first sell order has the lowest execution priority and each subsequent nth sell order has a next higher order of priority; populates the plurality of buy registers so that; the zeroth buy register has an indication at a zeroth position; the first buy register has an indication at a position copied from the zeroth buy register and an indication at a position shifted from the indication in the zeroth buy register by a number of positions equal to the size of the first buy order; each subsequent nth buy register has indications at positions copied from the previous buy register and has indications at positions shifted from the previous buy register by a number of positions equal to the size of the nth buy order; populates the plurality of sell registers so that; the zeroth sell register has an indication at a zeroth position; the first sell register has an indication at a position copied from the zeroth sell register and an indication at a position shifted from the indication in the zeroth sell register by a number of positions equal to the size of the first sell order; each subsequent nth sell register has an indication at positions copied from the previous sell register and has indications at positions shifted from the previous sell register by a number of positions equal to the size of the nth sell order; compares the last-populated nth buy and sell registers to find indications in the same position in each such register; matches the buy and sell orders corresponding to the last-populated nth buy and sell registers at the calculated midpoint price; subtracts the size of the smaller of the matched buy and sell orders from the larger of the matched buy and sell orders to determine an unmatched size of the larger of the matched buy and sell orders; and in reverse order of the registers having been populated, inspects each register, and if there is a register with an indication in a position corresponding to the unmatched size, matches the unmatched size of the matched buy or sell order with the order corresponding to that register at the calculated midpoint price. - View Dependent Claims (12, 13)
-
-
14. An automated system for matching orders to purchase and sell a financial instrument, comprising:
-
an interface adapted to receive best bid and offer prices and to receive a plurality of buy orders to purchase the instrument and a sell order to sell the instrument, the orders each having a size, and the buy orders each having an execution priority; a memory connected with the interface; a plurality of registers connected with the memory including; a zeroth buy register; a first buy register; and one or more nth buy registers; a processor connected with the memory and with the interface; program memory for a program that, when the processor executes program instructions; computes a midpoint of the best bid and offer prices; arranges the plurality of buy orders in order of execution priority, wherein a first buy order has a lowest execution priority and each subsequent nth buy order has a next higher order of priority; populates the plurality of buy registers so that; the zeroth buy register has an indication at a zeroth position; the first buy register has an indication at a position copied from the zeroth buy register and an indication at a position shifted from the indication in the zeroth buy register by a number of positions equal to the size of the first buy order; each subsequent nth buy register has indications at positions copied from the previous buy register and has indications at positions shifted from the previous buy register by a number of positions equal to the size of the nth buy order; determines that there is an indication in the last-populated buy register at a position corresponding to the size of the sell order; matches the sell order against the buy order corresponding to the last-populated buy register at the midpoint of the best bid and offer prices; calculates a remaining quantity of the sell order; determines that there is an indication in a previously populated buy register at a position corresponding to the remaining quantity of the sell order; and matches the remaining quantity of the sell order against the buy order corresponding to the previously populated buy register at the midpoint of the best bid and offer prices. - View Dependent Claims (15, 16)
-
-
17. An automated system for matching orders to purchase and sell a financial instrument, comprising:
-
an interface adapted to receive best bid and offer prices and to receive a plurality of sell orders and a buy order, the orders each having a size and the sell orders each having an execution priority; a memory connected with the interface; a plurality of registers connected with the memory including; a zeroth sell register; a first sell register; and one or more nth sell registers; a processor connected with the memory and with the interface; program memory for a program that, when the processor executes program instructions; computes a midpoint of the best bid and offer prices; arranges the plurality of sell orders in order of execution priority, wherein a first sell order has the lowest execution priority and each subsequent nth sell order has a next higher order of priority; populates the plurality of sell registers so that; the zeroth sell register has an indication at a zeroth position; the first sell register has an indication at a position copied from the zeroth sell register and an indication at a position shifted from the indication in the zeroth sell register by a number of positions equal to the size of the first sell order; each subsequent nth sell register has indications at positions copied from the previous sell register and has indications at positions shifted from the previous sell register by a number of positions equal to the size of the nth sell order; determines that there is an indication in the last-populated sell register at a position corresponding to the size of the buy order; matches the buy order against the sell order corresponding to the last-populated sell register at the midpoint of the best bid and offer prices; calculates a remaining quantity of the buy order; determines that there is an indication in a previously populated sell register at a position corresponding to the remaining quantity of the buy order; and matches the remaining quantity of the buy order against the sell order corresponding to the previously populated sell register at the midpoint of the best bid and offer prices. - View Dependent Claims (18, 19)
-
Specification