Methods, apparatuses, and systems for implementing orders with minimal latency
Systems and methods for matching orders across a plurality of input ports are disclosed herein. A system may include a plurality of input ports, a processor, and a storage medium. The processor may be configured to receive a plurality of data packets from the input ports, defining a first message and a second message, wherein the first and second messages have a message type. The processor may be configured to sequence the first and second messages into a sequence of record based on one or more arbitration rules; evaluate the first message and the second message based on the sequence of record to generate matching information; and publish, over the network interface, the matching information. The processor may be further configured to perform immediate publication of the sequence of record.
1 . A system for managing a plurality of input ports comprising:
a plurality of input ports comprising a first input port and a second input port;
at least one processor; and
a non-transitory, processor-readable storage medium, wherein the non-transitory, processor-readable storage medium comprises one or more programming instructions that, when executed, cause the at least one processor to:
receive a plurality of data packets from the first input port and the second input port, wherein a first portion of the plurality of data packets define a first message and a second portion of the plurality of data packets define a second message, wherein each of the first message and the second message comprises a message type of at least one of an order message, a cancellation message, a triggered order message, or a limit order message;
collate the first portion of the plurality of data packets into the first message and the second portion of the plurality of data packets into the second message;
sequence the first message and the second message into a sequence of record based on one or more arbitration rules;
publish, over a network interface, the sequence of record;
evaluate, after publication of the sequence of record, orders associated with the first message and the second message, using a matching algorithm, based on the sequence of record to generate matching information; and
publish, over the network interface, the matching information.
2 . The system of claim 1 , wherein the first message is a triggered order message; and wherein the one or more programming instructions further cause the processor to:
store the triggered order message in a triggered order queue, wherein the triggered order queue comprises a triggering condition for the triggered order message;
evaluate a status of the triggering condition based on at least one of the second message, a received external condition, and the matching information; and
enter an underlying order of the first message in the sequence of record based on the evaluation.
3 . The system of claim 2 , wherein the one or more programming instructions that cause the processor to evaluate the status of the triggering condition further cause the processor to:
determine message information associated with the second message comprising at least one of symbol, price, and quantity; and
compare the message information to the triggering condition.
4 . The system of claim 1 , wherein the one or more programming instructions further cause the processor to omit the first message from the publication of the sequence of record based on the message type of the first message.
5 . The system of claim 1 , wherein the first message is a hidden limit order message; and
wherein the one or more programming instructions further cause the processor to:
store the hidden limit order message in a hidden limit order queue, wherein the hidden limit order queue comprises a triggering condition for the hidden limit order message;
evaluate a status of the triggering condition based on at least one of the second message and a change in displayed liquidity associated with the second message; and
enter an underlying order of the first message in the sequence of record based on the evaluation.
6 . The system of claim 1 , wherein the one or more programming instructions that cause the processor to publish, over the network interface, the sequence of record further cause the processor to redact a portion of the first message.
7 . The system of claim 1 , wherein the one or more programming instructions further cause the processor to receive third-party market data packets on at least one of the plurality of input ports.
8 . The system of claim 1 , wherein the one or more programming instructions further cause the processor to receive regulatory information data packets on at least one of the plurality of input ports.
9 . The system of claim 1 , wherein the first message arrives on the first input port at a detectably simultaneous time as the second message arrives on the second input port; and
wherein the one or more arbitration rules comprise the selection of the first input port and the second input port in a rotating sequence.
10 . The system of claim 1 , wherein the first message arrives on the first input port at a detectably simultaneous time as the second message arrives on the second input port; and
wherein the one or more arbitration rules comprises the selection of the first input port and the second input port according to an arbitration scheme.
11 . The system of claim 1 , wherein the one or more programming instructions further cause the processor to:
determine whether the first message is at least one of inauthentic and invalid, wherein the first message is inauthentic if the first message does not contain necessary identifying information that is sufficient to verify an authorized market participant, wherein the first message is invalid if a parameter associated with the first message is outside of a predefined threshold range; and
omit, based on the determination, the first message from the sequence of record.
12 . The system of claim 11 , wherein the identifying information comprises a shared secret key generated through at least one of symmetric cryptography and public-key cryptography.
13 . The system of claim 11 , wherein the identifying information comprises an authentication token.
14 . The system of claim 1 , further comprising a liquidity tracking unit configured to track aggregate amounts of liquidity of an asset associated with at least one of the first message and the second message.
15 . The system of claim 1 , wherein the one or more programming instructions further cause the processor to publish hypothetical future market data.
16 . The system of claim 15 , wherein the one or more programming instructions further cause the processor to generate a triggered order message, wherein a triggering condition is based on the hypothetical future market data.
17 . The system of claim 1 , wherein the first message is a triggered order message; and wherein the one or more programming instructions further cause the processor to:
store the triggered order message in a triggered order queue, wherein the triggered order queue comprises a triggering condition for the triggered order message;
evaluate a status of the triggering condition based on a cohosted predictive model; and
enter an underlying order of the first message in the sequence of record based on the status.
18 . A method for managing a plurality of input ports comprising:
receiving, by a processor, a plurality of data packets from a plurality of input ports comprising a first input port and a second input port, wherein a first portion of the plurality of data packets define a first message and a second portion of the plurality of data packets define a second message, wherein the first message and the second message comprise a message type of at least one of an order message, a cancellation message, a triggered order message, or a hidden limit order message;
collating, by the processor, the first portion of the plurality of data packets into the first message and the second portion of the plurality of data packets into the second message;
sequencing, by the processor, the first message and the second message into a sequence of record based on one or more arbitration rules;
publishing, by the processor, the sequence of record over a network interface;
evaluating, by the processor, after publication of the sequence of record, orders associated with the first message and the second message, using a matching algorithm, based on the sequence of record to generate matching information; and
publishing by the processor, the matching information over the network interface.
19 . The method of claim 18 , wherein the first message is a triggered order message, the method further comprising:
storing, by the processor, the triggered order message in a triggered order queue, wherein the triggered order queue comprises a triggering condition for the triggered order message;
evaluating, by the processor, a status of the triggering condition based on at least one of the second message, a received external condition, and the matching information; and
entering, by the processor, an underlying order of the first message in the sequence of record based on the status.
20 . A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform operations comprising:
receiving, by a processor, a plurality of data packets from a plurality of input ports comprising a first input port and a second input port, wherein a first portion of the plurality of data packets define a first message and a second portion of the plurality of data packets define a second message, wherein the first message is a triggered order message and the second message comprises a message type of at least one of an order message, a cancellation message, a triggered order message, or a limit order message;
collating, by the processor, the first portion of the plurality of data packets into the first message and the second portion of the plurality of data packets into the second message;
sequencing, by the processor, the second message into a sequence of record based on one or more arbitration rules;
storing, by the processor, the first message in a triggered order queue, wherein the triggered order queue comprises a triggering condition for the first message;
evaluating, by the processor, a status of the triggering condition based on at least one of the second message, a received external condition, and historical matching information;
entering, by the processor, an underlying order of the first message in the sequence of record based on the evaluation;
evaluating, by the processor, using a matching algorithm, orders associated with the first message and the second message based on the sequence of record to generate matching information; and
publishing, by the processor, the matching information over a network interface.