Randomization of orders at matching in electronic trading systems
AssigneeChicago Mercantile Exchange Inc.
InventorsEdward R. Howorka, Peter Robert Capuano, Michael Sean Merold
Life of this patent
Estimating the term…
Abstract
The disclosed embodiments relate to a latency floor mechanism for processing incoming orders to an electronic trading system which impart a delay on orders, not when they are received, but when they are matched by the match engine/CLOB thereby imparting zero added latency between order submission/modifications/cancellations and price market data publication by the electronic trading system because the disclosed randomization processing delay applies only to matched orders, which represent a small fraction of the market events.
Claims21
A computerized method for submission of orders to an electronic trading system for matching, comprising the steps of:
- receiving at a server via an electronic communications network, from a party trading on the electronic trading system, a first electronic order message comprising an order for trading an instrument;
- searching, at the server by a processor thereof, an order book database to identify a previously received, but not yet fully satisfied, order, in a set of previously received, but not yet fully satisfied, orders stored in the order book database that matches at least one portion of the order of the received first electronic order message;
- determining, by the processor, that a status of the identified order
- indicates that it is available and based thereon:
- engaging, by the processor, the identified order and the order of the received first electronic order message for a defined engagement delay duration and storing data indicative thereof in the order book database;
- and
- after expiry of the engagement delay duration, removing, by the processor, the engaged identified order and the order engaged thereto from the order book database and completing a transaction therebetween;
- and
- receiving at the server via the electronic communications network subsequent to the receiving of the first electronic order message, from a party trading on the electronic trading system, a second electronic order message comprising an order for trading the instrument;
- searching, at the server by the processor thereof, the order book database to identify a previously received, but not yet fully satisfied, order, in the set of previously received, but not yet fully satisfied, orders stored in the order book database that matches at least one portion of the order of the received second electronic order message;
- determining, by the processor, that a status of the identified order indicates that it is engaged and based thereon:
- determining, by the processor, a delayed engagement probability parameter value which, based on a probability function, randomly may or may not exceed a threshold delayed engagement probability value;
- upon determining, by the processor, that the delayed engagement probability parameter value is greater than the threshold delayed engagement probability value, searching, by the processor, the order book database for another previously received, but not yet fully satisfied, order in the set of previously received, but not yet fully satisfied, orders that matches the at least one portion of the order of the received second electronic order message, the identified order and the order engaged thereto remaining unmodified;
- upon determining, by the processor, that the delayed engagement probability parameter value is less than a threshold delayed engagement probability value:
- replacing, by the processor, the order that is currently engaged with the identified order with the order of the received second electronic order message;
- and
- searching, by the processor, the order book database for a previously received, but not yet fully satisfied, order in the set of previously received, but not yet fully satisfied, orders that matches at least one portion of the previously engaged order;
- and
- wherein the defined engagement delay is applied selectively in that only engaged orders are subject to the defined engagement delay and orders of the received first and second electronic order messages are not delayed when an order is not identified in the set of previously received, but not yet fully satisfied, orders stored in the order book database.
A computerized trading system for matching orders submitted by trading parties, the system comprising:
- at least one hardware processor coupled to a network;
- and
- at least one memory, coupled to the at least one processor, and carrying instructions to be executed by the at least one processor, wherein the instructions are for:
- receiving at a server via the network, from a party trading on the computerized trading system, an electronic order message comprising an order for trading an instrument;
- searching, at the server, an order book database coupled with the at least hardware processor to identify a previously received, but not yet fully satisfied, order, in a set of previously received, but not yet fully satisfied, orders stored in the order book database that matches at least one portion of the order of the received electronic order message;
- when a match is found, determining a status of the identified order;
- when the status of the identified order indicates that it is available:
- engaging the identified order and the order of the received electronic order message for a defined engagement delay duration and storing data indicative thereof in the order book database;
- and
- after expiry of the engagement delay duration, removing the engaged identified order and the order engaged thereto from the order book database and completing a transaction therebetween;
- and
- when the status of the identified order indicates that it is engaged:
- determining a delayed engagement probability parameter value which, based on a probability function, randomly may or may not exceed a threshold delayed engagement probability value;
- upon determining that the delayed engagement probability parameter value is greater than the threshold delayed engagement probability value, searching the order book database for another previously received, but not yet fully satisfied, order in the set of previously received, but not yet fully satisfied, orders that matches the at least one portion of the order of the received electronic order message, the identified order and the order engaged thereto remaining unmodified;
- upon determining that the delayed engagement probability parameter value is less than a threshold delayed engagement probability value:
- replacing the order that is currently engaged with the identified order with the order of the received electronic order message;
- and
- searching for a previously received, but not yet fully satisfied, order in the set of previously received, but not yet fully satisfied, orders that matches at least one portion of the previously engaged order;
- and
- wherein the defined engagement delay is applied selectively in that only engaged orders are subject to the defined engagement delay and orders of the received electronic order messages are not delayed when an order is not identified in the set of previously received, but not yet fully satisfied, orders stored in the order book database.
A system comprising:
- a latency leveling processor coupled with a matching engine of an electronic trading system, the matching engine comprising an order book database in which previously received but not fully satisfied data transaction requests are stored based, at least in part, on time of receipt relative to each other, the latency leveling processor being operative, for each of a plurality of incoming data transaction requests processed by the matching engine, each data transaction request message comprising one of an order for a quantity or a cancel of a previously received data transaction request, to:
- determine the transaction type of the incoming data transaction request;
- and
- where it is determined that the transaction type comprises an order for a quantity:
- determine whether at least one previously received but unsatisfied data transaction request counter to the incoming data transaction request was identified in the order book database by the matching engine;
- and
- where it is determined that at least one previously received but unsatisfied data transaction request counter to the incoming data transaction request was identified in the order book database by the matching engine:
- determining, where a total quantity of at least two of the identified at least one previously received but unsatisfied data transaction requests received within a configurable first threshold period time of each other exceeds the quantity of the incoming data transaction request, based on a first function, whether to cause the matching engine to process the at least two identified at least one previously received but unsatisfied data transaction requests in a sequence in which they were received or to cause the matching engine to process the at least two identified at least one previously received but unsatisfied data transaction requests in a sequence other than in which they were received;
- for each identified at least one previously received but unsatisfied data transaction request selected by the matching engine to match with the incoming data transaction request, determine whether the identified at least one previously received but unsatisfied data transaction request was previously identified by the matching engine as being counter to a previously received incoming data transaction request received within a threshold period of time of the incoming data transaction request;
- and
- only where it is determined that the identified at least one previously received but unsatisfied data transaction request was previously identified by the matching engine as being counter to a previously received incoming data transaction request received within a configurable second threshold period of time of a time of receipt of the incoming data transaction request, determine, based on a second function comprising a probability function which produces a value which randomly may or may not exceed a threshold value, whether, based on whether or not the value exceeds the threshold value, to replace the previously received incoming data transaction request with the incoming transaction request, and based thereon, one of cause the matching engine to replace the previously received incoming data transaction request with the incoming transaction request or not cause the matching engine to replace the previously received incoming data transaction request with the incoming transaction request;
- where it is determined that the identified at least one previously received but unsatisfied data transaction request was not previously identified by the matching engine as being counter to a previously received incoming data transaction request, delaying completion of the matching by the matching engine of the incoming data transaction request with the identified at least one previously received but unsatisfied data transaction request for the first threshold period of time;
- where it is determined that the transaction type comprises a cancel of a previously received data transaction request:
- determine whether the previously received data transaction request is stored in the order book database and has been identified as being counter to a previously received incoming data transaction request;
- and
- only where the previously received data transaction request is stored in the order book database and has been identified as being counter to a previously received incoming data transaction request within the first threshold period of time of the delay of the completion of the match of the previously received data transaction request with the previously received incoming data transaction request, determine, based on a third function, whether to cancel the previously received data transaction request and, based thereon, one of cause the matching engine to cancel the previously received data transaction request or cause the matching engine not to cancel the previously received data transaction request;
- and
- where the previously received data transaction request is stored in the order book database and has not been identified as being counter to a previously received incoming data transaction request, cause the matching engine to remove the previously received data transaction request from the order book database;
- and
- wherein completion of matching by the matching engine of the incoming data transaction request is selectively delayed in that matching is only delayed when the identified at least one previously received but unsatisfied data transaction request was not previously identified by the matching engine as being counter to a previously received incoming data transaction request.
Dependencies are inferred from the claim text.