System and Method for Delaying Execution of Financial Transactions
Abstract
A system, computer-readable storage medium storing at least one program, and a computer-implemented method for delaying execution of financial transactions. A first message including data for a first financial transaction is received, the first message being uncorrupted. A first trading symbol that is a target of the first financial transaction is determined. The first trading symbol is determined to be a target of at least one financial transaction that was included in at least one previous message that was determined to be corrupted. Execution of the first financial transaction is delayed.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A computer-implemented method for delaying execution of financial transactions, performed on a server having at least one processor and memory storing at least one program for execution by the at least one processor to perform the method, comprising:
receiving a first message including data for a first financial transaction, the first message being uncorrupted; determining a first trading symbol that is a target of the first financial transaction; determining that the first trading symbol is a target of at least one financial transaction that was included in at least one previous message that was determined to be corrupted; and in accordance with the determination that the first trading symbol is a target of at least one financial transaction that was included in at least one previous message that was determined to be corrupted, delaying execution of the first financial transaction.
2 . The computer-implemented method of claim 1 , wherein delaying execution of the first financial transaction includes:
adding the first financial transaction and a time that the first message was received to a quarantined transaction list; and after a first predetermined time interval from the time that the first financial transaction was received has elapsed,
removing the first financial transaction from the quarantine transaction list; and
processing the first financial transaction.
3 . The computer-implemented method of claim 2 , wherein processing the first financial transaction includes executing the first financial transaction.
4 . The computer-implemented method of claim 2 , wherein processing the first financial transaction includes transmitting the first financial transaction to a financial transaction server for execution.
5 . The computer-implemented method of claim 2 , wherein processing the first financial transaction includes:
adding the first financial transaction and a time that the first message was received to a latency fairness list, wherein the latency fairness list includes financial transactions that are waiting to be executed; identifying a set of financial transactions in the latency fairness list for which a second predetermined time interval from the time that each financial transaction in the set of financial transactions was received has elapsed, wherein the set of financial transactions includes the first financial transaction; determining an ordering of the financial transactions in the set of financial transactions based on at least one ordering rule; and processing the financial transactions in the set of financial transactions based on the ordering.
6 . The computer-implemented method of claim 5 , wherein processing the financial transactions in the set of financial transactions includes executing financial transactions in the set of financial transactions based on the ordering.
7 . The computer-implemented method of claim 5 , wherein processing the financial transactions in the set of financial transactions based on the ordering includes transmitting the set of financial transactions to a financial transaction server for execution in accordance with the ordering.
8 . The computer-implemented method of claim 5 , the at least one ordering rule is selected from the group consisting of:
a rule that orders financial transactions based on transaction type; a rule that orders financial transactions based on price; a rule that orders financial transactions based on a quantity of a trading symbol; and a rule that orders financial transactions based on trading symbols.
9 . The computer-implemented method of claim 1 , wherein determining that the first trading symbol was the target of the at least one previous financial transaction that was included in the at least one previous message that was determined to be corrupted includes determining that the first trading symbol is included in an interfered transaction list, wherein the interfered transaction list includes indicia of trading symbols that were targets of financial transactions that were included in messages determined to be corrupt.
10 . The computer-implemented method of claim 1 , wherein prior to receiving the first message, the method includes:
receiving the at least one previous message including data for the at least one previous financial transaction; determining that the at least one previous message is corrupted; determining that the first trading symbol is a target of the at least one previous financial transaction; and adding the first trading symbol and a time that the at least one previous message was received to an interfered transaction list.
11 . The computer-implemented method of claim 10 , further comprising transmitting an negative acknowledgment to a sender of the at least one previous message notifying the sender that the at least one previous message was received with errors, wherein the negative acknowledgement is transmitted using a same protocol as a protocol that was used to send the at least one previous message to the server.
12 . The computer-implemented method of claim 10 , further comprising removing the first trading symbol from the interfered transaction list after the first trading symbol has been in the interfered transaction list for at least a predetermined time period.
13 . The computer-implemented method of claim 1 , further comprising:
receiving a second message including data for a second financial transaction, the second message being uncorrupted; determining a second trading symbol that is the target of the second financial transaction; determining that the second trading symbol is not the target of the at least one financial transaction that was included in the at least one previous message that was determined to be corrupted; and processing the second financial transaction.
14 . The computer-implemented method of claim 13 , wherein processing the second financial transaction includes executing the second financial transaction.
15 . The computer-implemented method of claim 13 , wherein processing the second financial transaction includes transmitting the second financial transaction to a financial transaction server for execution.
16 . The computer-implemented method of claim 13 , wherein processing the second financial transaction includes:
adding the second financial transaction and a time that the second message was received to a latency fairness list; identifying a set of financial transactions in the latency fairness list for which a second predetermined time interval from the time that each financial transaction in the set of financial transactions was received has elapsed, wherein the set of financial transactions includes the second financial transaction; determining an ordering of the financial transactions in the set of financial transactions based on at least one ordering rule; and processing the financial transactions in the set of financial transactions based on the ordering.
17 . The computer-implemented method of claim 16 , wherein processing the financial transactions in the set of financial transactions based on the ordering includes executing the financial transactions in the set of financial transaction based on the ordering.
18 . The computer-implemented method of claim 16 , wherein processing the financial transactions in the set of financial transactions based on the ordering includes transmitting the set of financial transaction to a financial transaction server for execution in accordance with the ordering.
19 . The computer-implemented method of claim 13 , wherein the data for the second financial transaction is encrypted, and wherein prior to determining the second trading symbol that is the target of the second financial transaction, the method further comprises decrypting the data for the second financial transaction.
20 . The computer-implemented method of claim 13 , further comprising transmitting an acknowledgment to a sender of the second message notifying the sender that the second message was received without errors, wherein the acknowledgement is transmitted using a same protocol as a protocol that was used to send the second message to the server.
21 . The computer-implemented method of claim 1 , wherein the data for the first financial transaction is encrypted, and wherein prior to determining the first trading symbol that is the target of the first financial transaction, the method further comprises decrypting the data for the first financial transaction.
22 . The computer-implemented method of claim 1 , further comprising transmitting an acknowledgment to a sender of the first message notifying the sender that the first message was received without errors, wherein the acknowledgement is transmitted using a same protocol as a protocol that was used to send the first message to the server.
23 . A system to regulate execution of financial transactions, comprising:
at least one processor; memory; and at least one program stored in the memory and executable by the at least one processor, the at least one program comprising instructions to:
receive a first message including data for a first financial transaction, the first message being uncorrupted;
determine a first trading symbol that is a target of the first financial transaction;
determine that the first trading symbol is a target of at least one financial transaction that was included in at least one previous message that was determined to be corrupted; and
in accordance with the determination that the first trading symbol is a target of at least one financial transaction that was included in at least one previous message that was determined to be corrupted, delay execution of the first financial transaction.
24 . A computer-implemented method for delaying execution of financial transactions, performed on a server having at least one processor and memory storing at least one program for execution by the at least one processor to perform the method, comprising:
receiving at least one message including data for at least one financial transaction; determining that the at least one message is corrupted; identifying at least one trading symbol associated with the at least one financial transaction; adding the at least one trading symbol to an interfered transaction list; receiving a subsequent message including data for at least one subsequent financial transaction; and delaying the at least one subsequent financial transaction in accordance with a determination that the at least one subsequent financial transaction is associated with a trading symbol in the interfered transaction list.
25 . A computer-implemented method for ordering execution of financial transactions, performed on a server having at least one processor and memory storing at least one program for execution by the at least one processor to perform the method, comprising:
receiving messages that include data requesting execution of one or more financial transactions; ordering the requested financial transactions in accordance with at least one ordering rule to produce a first ordered set of requested financial transactions, wherein at least a subset of the ordered requested financial transactions are in a different order than an order in which the corresponding messages, requesting execution of said financial transactions, were received, and storing data identifying the ordered transactions; submitting at least a subset of the ordered financial transactions for execution; within a predefined time interval, receiving information identifying which of the submitted ordered financial transactions have been executed; identifying unexecuted financial transactions, including identifying which of the ordered financial transactions submitted for execution remain unexecuted at the end of the predefined time interval; during or after the predefined time interval, receiving further messages that include data requesting execution of one or more financial transactions, and ordering the requested financial transactions from the further messages and at least a subset of the identified unexecuted financial transactions in accordance with at least one ordering rule to produce a second ordered set of requested financial transactions; submitting at least a subset of the second ordered set of requested financial transactions for execution.Join the waitlist — get patent alerts
Track US2014214647A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.