Patent ID: 11961140
Assignee: CHICAGO MERCANTILE EXCHANGE INC.
Field: IT methods for management (Electrical engineering)
Classification: CPC G | IPC G

Claim 20:
21. 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.