Corvil’s Electronic Trading transactions pack contains real-time decoding and analytics for native trading protocols across most major markets - including equities, derivatives, FX and fixed income. The pack also includes decoders for multiple versions/variants of FIX and middleware protocols.
Plug-ins start with a complete decoding of the network data for all of the trading protocols. This data is presented as stream of messages with the decoded fields in a normalized form and is available within the Corvil system for runtime classification, interrogation by users, calculation of analytics and export to external systems. But the plug-ins do much more than simply decode and normalize what is present in the network data messages - they enrich it in multiple ways:
Order tracking is the process by which Corvil plug-ins model the entire order lifecycle from initial placement of an order and its acknowledgment by the exchange, through modifications and ultimately cancellation or fulfillment. Each trading protocol has slightly different semantics for this lifecyle and the corresponding plug-in will reflect that - providing a coherent view of each order’s history.
Order tracking state is used to monitor the success or failure of orders through the fill-rate calculation - the percentage of the request volume that was filled. Average fill-rate gives a good indication of a session’s trading success.
Session auto-discovery is driven by plug-ins recognizing key fields identifying the session to which a message belongs. All other analytics can then be reported according to this session classification.
The drive for efficiency in electronic trading protocols means that any redundant information tends to be removed from the messages exchanged on the network. Corvil plug-ins will track important information and make it available in subsequent messages for various types of analysis:
Login credentials from the start of the session are reported against all subsequent messages to allow classification of orders into sessions.
Drop-copy streams are driven by execution reports from the exchange. These messages often need to be enriched with information about the order - for example, symbol or side - that are known to the client and hence redundant.
Trading patterns can be analyzed based on breaking down client messages according to type: Orders, Replaces, Cancels, and Quotes. These counts are reported per session and can be used to alert on anomalous behavior.
Messages from the exchange are analyzed to identify fills (partial or full) and rejects, and to identify when orders are closed.
Fill messages are enhanced with a total value so that trading sessions can be compared in terms of overall value traded.
Transmission latency is calculated where available. Some venues include a timestamp in the messages which indicates the sending time. This can be compared to the time at which the Corvil appliance sees the message arrive to determine a one-way latency from the venue.
In addition, there are many other analytics which are specific to the protocol and plug-in. For example:
Nasdaq’s OUCH servers enforce a limit of one outstanding request per session between the server and the matching engine. The Corvil plug-in for OUCH provides an estimate of the number of enqueued Enter Order requests along with every request or response.
Eurex’s ETI interface provides rich timestamping information about a requests path through their infrastructure and the Corvil plug-in uses this to report on gateway latency, matching engine latency and the overall network latency from the client to the Eurex gateways