Method and system for improving equity trade order acknowledgement times
Abstract
A method and system for improving stock exchange equity trade order acknowledgment times including a network appliance (“trade accelerator”) in the sub-network of the trading platforms, having a specialized network flow processor with associated micro-code and a host processor running specialized software. Specialized network appliance software sensitive to trading protocols for communicating between trading platforms and exchange servers detects latency variations in trade order acknowledgments at the exchange and recommends to subscribing trading platforms a least latency trade order path.
Claims
exact text as granted — not AI-modified1 . A method for facilitating at least one trading engine in selecting from amongst a plurality of flows associated with a plurality of matching engines, comprising:
computing, using an electronic computing device, for each of the plurality of flows, order acknowledgment times based at least on a time difference between a trade order associated with the flow and a trade order acknowledgment; computing, using an electronic computing device, for each of the plurality of flows, a moving average of the order acknowledgment times; generating a ranking of at least some of the plurality of flows based at least on the moving average; and transmitting the ranking to at least, one trading engine.
2 . The method of claim 1 , further comprising:
computing, for at least one of the plurality of flows, at least one additional order acknowledgment time based at least on a time difference between a trade order associated with the flow and an additional trade order acknowledgment; and computing, for at least one of the plurality of flows, an updated moving average of the order acknowledgment times based on at least one additional order acknowledgment, time; determining whether an updated ranking based upon the updated moving average would be different than the ranking; and selectively transmitting the updated ranking to at least one trading engine if the updated ranking would be different than the ranking.
3 . The method of claim 1 , further comprising:
receiving a subscription request from each of a plurality of trading engines, wherein transmitting the ranking to at least one trading engine comprises sending a multicast message to the plurality of trading engines.
4 . The method of claim 1 , further comprising:
determining whether, for at least one of the plurality of flows, there is an absence of trading traffic; selectively computing a line latency for at least one of the plurality of flows and generating a ranking of at least some of the plurality of flows based at least on the line latency if there is an absence of trading traffic for at least one of the plurality of flows.
5 . The method of claim 4 , further comprising:
computing the line latency during a TCP connection establishment based on a time difference between a TCP SYN packet and a TCP SYN ACK packet.
6 . The method of claim 1 , wherein:
the computing order acknowledgment times is carried out by providing a host processor and a network processor configured such that the network processor delivers socket-level traffic with time stamps to the host processor and such that the host processor calculates the omen acknowledgment times based at least on the time stamps.
7 . The method of claim 6 , wherein:
the network processor and host processor communicate over a PCI bus; and the network processor is connected to the SPAN port of a packet switch.
8 . The method of claim 6 , wherein:
the generating a ranking of at least some of the plurality of flows based at least on the moving average and the transmitting the ranking to at least one trading engine are carried out by the host processor.
9 . The method of claim 6 , wherein:
the network processor and host processor communicate using a control path and a data path.
10 . The method of claim 9 , wherein:
the host processor uses the control path to configure the network processor and receive responses to commands and notifications about the availability of a trading protocol packet; and the network processor uses the date processor to deliver assembled socket data received from the plurality of flows.
11 . The method of claim 9 , wherein: the network processor delivers trading protocol packets to the host processor and selectively sends indications on the control path to the host processor when it detects a TCP SYN packet or TCP SYN ACK packet associated with one of the plurality of flows.
12 . The method of claim 1 , further comprising:
computing, using an electronic computing device, for at least one of the plurality of flows, at least one order cancellation time based at least on a time difference between a cancel order request associated with the flow and a cancel order acknowledgment; and computing, using an electronic computing device, for at least one of the plurality of flows, a moving average of the order cancellation times based on at least one order cancellation time; computing, using an electronic computing device, for at least one of the plurality of flows, an expected time of completion of all pending trade orders and order cancellations based at least on the number of pending trade order requests, the number of pending order cancellation requests, the moving average of the order acknowledgment times, and the moving average of the order cancellation times; generating an updated ranking of at least some of the plurality of flows based at least on the expected time of completion; and transmitting the updated ranking to at least one trading engine.
13 . A financial transaction reporting system, comprising:
a trade accelerator configured for communication with at least one trading engine and a plurality of matching engines associated with a plurality of flows, the trade accelerator comprising a host processor and a network flow processor, the trade accelerator configured to monitor the plurality of flows and generate and transmit flow recommendations to at least one trading engine.
14 . The system of claim 13 , wherein the trade accelerator comprises a PCI bus over which the network flow processor and host processor communicate, a first ethernet port configured to transmit trade order information to the network flow processor, and a second ethernet port configured to transmit the flow recommendations.
15 . The system of claim 13 , wherein the trade accelerator is located in the same sub-network as at least one trading engine.
16 . The system of claim 14 , wherein the trade accelerator located in the same sub-network as the plurality of matching engines.
17 . A method for a trading engine to select from amongst a plurality of flows associated with a plurality of matching engines for the execution of financial transactions, comprising:
requesting a trade accelerator to provide recommendations regarding the plurality of flows over a computer network, wherein the trade accelerator comprises a host processor and a network processor and the network processor and host processor communicate and the network processor is connected to a SPAN post of a packet switch; receiving over the computer network from the trade accelerator recommendations regarding the plurality of flows; executing a financial transaction using a flow selected from amongst the plurality of flows based on the recommendations.
18 . The method of claim 17 , further comprising:
tracking times of initiation and completion of at least one trade transaction on at least one of the plurality of flows; generating updated recommendations based at least upon the times of initiation and completion and the recommendations regarding the plurality of flows; executing a financial transaction using a flow from amongst the plurality of flows based on the updated recommendations.
19 . The method of claim 17 , wherein the recommendations received from the trade accelerator are multicast recommendations, and further comprising:
reserving at least one of a plurality of slots in the multicast recommendations, wherein the requesting a trade accelerator to provide recommendations regarding the plurality of flows over a computer network further comprises requesting that the recommendations be located on at least one of the plurality of slots.
20 . The method of claim 19 , wherein at least one of the plurality of slots in the multicast recommendations comprise a plurality of bytes, and further comprising:
receiving, from a first byte in a first position of the multicast recommendations, a first unique flow identifier corresponding to the identity of a top ranked flow from amongst the plurality of flows; and receiving, from a second byte in a second position of the multicast recommendations, a second unique flow identifier corresponding to the identity of a second ranked flow from amongst the plurality of flows.Join the waitlist — get patent alerts
Track US2014089162A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.