Accelerated trade matching using speculative parallel processing
First Claim
1. A computer implemented method of matching orders, the method comprising:
- receiving, by a first processor operative to execute program logic stored on a computer readable medium, a first real order;
calculating, by the first processor, a tradable combination involving the first real order and determining, by the first processor based thereon, if the first real order has been filled by one or more previously received but unfilled orders counter thereto;
generating, by a second processor, operative to execute program logic stored on a computer readable medium, coupled with the first processor, responsive to the determination that the first real order has not been filled, a speculative order which corresponds to another real order that is counter to the first real order and which is predicted to be, but not yet, received;
calculating, by the second processor, based on the generation of the speculative order and prior to receipt of the not-yet-received real order, a tradable combination involving the speculative order and the first real order and performing, by the second processor, at least a portion of calculations involved with matching the tradable combination involving the speculative order and the first real order as if the not-yet-received real order had actually been received and generating a plurality of messages associated therewith;
receiving, by the first processor subsequent to at least the generating of the speculative order, a second real order corresponding to the speculative order; and
executing, by the first processor, a trade based on the second real order and the first real order, the executing comprising utilizing the plurality of messages generated by the second processor, and subsequently outputting an update to the order book indicative of the trade.
1 Assignment
0 Petitions
Accused Products
Abstract
An electronic trading system is configured to create speculative orders based on real orders. The speculative order differs from the real order by the price, quantity, or the type of financial instrument. The match engine chooses one or more speculative orders in an attempt to predict the next real order. Even though processing multiple trades at the same time is impossible, the use of speculative orders can permit the match engine to perform the calculations involved with the trade and generate the messages associated with the trade ahead of time. If the prediction was correct and the next order received by the match engine corresponds to one of the speculative orders, some of the matching activity has already been performed. This in effect, allows the match engine to process trades more efficiently and increases the total trading volume that can be handled by the electronic trading system.
-
Citations
24 Claims
-
1. A computer implemented method of matching orders, the method comprising:
-
receiving, by a first processor operative to execute program logic stored on a computer readable medium, a first real order; calculating, by the first processor, a tradable combination involving the first real order and determining, by the first processor based thereon, if the first real order has been filled by one or more previously received but unfilled orders counter thereto; generating, by a second processor, operative to execute program logic stored on a computer readable medium, coupled with the first processor, responsive to the determination that the first real order has not been filled, a speculative order which corresponds to another real order that is counter to the first real order and which is predicted to be, but not yet, received; calculating, by the second processor, based on the generation of the speculative order and prior to receipt of the not-yet-received real order, a tradable combination involving the speculative order and the first real order and performing, by the second processor, at least a portion of calculations involved with matching the tradable combination involving the speculative order and the first real order as if the not-yet-received real order had actually been received and generating a plurality of messages associated therewith; receiving, by the first processor subsequent to at least the generating of the speculative order, a second real order corresponding to the speculative order; and executing, by the first processor, a trade based on the second real order and the first real order, the executing comprising utilizing the plurality of messages generated by the second processor, and subsequently outputting an update to the order book indicative of the trade. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An electronic trading system comprising:
-
a first match engine processor, operative to execute program logic stored on a computer readable medium, for receiving a first real order, calculating a first tradable combination involving the first real order, and determining, based thereon, if the first real order has been filled by one or more previously received but unfilled orders counter thereto; a second match engine processor, operative to execute program logic stored on a computer readable medium, in communication with the first match engine processor for generating, responsive to the determination that the first real order has not been filled, a speculative order which corresponds to another real order that is counter to the first real order and which is predicted to be, but not yet, received, calculating, a second tradable combination involving the speculative order and the first real order prior to receipt of the not-yet-received real order, and beginning to perform calculations involved with matching the second tradable combination involving the speculative order and the first real order as if the not-yet-received real order had actually been received and generating a plurality of outgoing messages and updates based thereon; and a gatekeeper processor, operative to execute program logic stored on a computer readable medium, in communication with both the first and second match engine processors for executing, upon receipt of a second real order subsequent to the generation of the speculative order which corresponds thereto, a trade between the first real order and the second real order based on the second tradable combination when the second match engine processor completes the generation of the plurality of outgoing messages and updates based thereon. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A computer implemented match engine comprising:
-
a processor operative to execute program logic stored on a computer readable medium, a first matcher module implemented by the processor for receiving a first real order, calculating a first tradable combination involving the first real order, and determining, based thereon, if the first real order has been filled by one or more previously received but unfilled orders counter thereto; a second matcher module implemented by the processor for generating, responsive to the determination that the first real order has not been filled, a speculative order which corresponds to a another real order that is counter to the first real order and which is predicted to be, but not yet, received, calculating, a second tradable combination involving the speculative order and the not-yet-received real order prior to receipt thereof, and begin performing calculations involved with matching the second tradable combination involving the speculative order and the first real order as if the not-yet received real order had actually been received and generating a plurality of outgoing messages and updates based thereon; and a gatekeeper module implemented by the processor for executing, upon receipt of second real order subsequent to the generation of the speculative order which corresponds thereto, a between the first real order and the second real order based on the second tradable combination when the second matcher module completes the generation of the plurality of outgoing messages and updates based thereon.
-
Specification