Trading Order Validation System and Method and High-Performance Trading Data Interface
Abstract
A post-trade monitor receives feedback in the form of drop copy messages from an exchange server and validates orders placed with the exchange server by a sponsored access trading platform shortly after the orders have been placed. If a recently placed order is found to violate a rule or regulation, the monitor instructs the trading platform to change to a more restrictive trading mode, such as to cease placing all orders or certain types of orders, at least until certain parameters are met. A library provides an interface in a sponsored access trading platform between a client application program that generates proposed orders and an exchange server. The library provides pre-trade validation of the orders and sends only validated orders to the exchange server. A network enables monitors, trading platforms and libraries to share information about customers' trading activities and locally recalculate customer trading limits resulting from these trading activities. A low-latency interface between a customer server, such as a server that employs algorithmic trading methods to generate buy and sell orders for securities, and a brokerage server that validates such securities trading orders is optimized for handling the securities trading orders. The interface supports a trading command set specifically designed for orders from customer trading application programs, and the interface formats received trading commands into compact messages that are sent over a high-speed communication link to the brokerage server. The interface receives order acknowledgement messages and the like from the brokerage server and invokes callback routines in the customer trading application program to report status information.
Claims
exact text as granted — not AI-modified1 . A method of facilitating low-latency communication, to a brokerage server, of trading orders from a customer server, the method comprising:
receiving trading orders, via a switched fabric communications facility from a customer application running on the customer server, that have been formatted into commands of a dedicated trading command set for use over the facility; and directing the received commands to a brokerage application running on the brokerage server for processing by the brokerage server; so that the customer application communicates with the brokerage application over the facility without protocol processing by either an operating system of the customer server or an operating system of the brokerage server.
2 . A method according to claim 1 , further comprising controlling flow of the commands of the dedicated trading command set.
3 . A method according to claim 1 , wherein receiving trading orders comprises receiving trading orders according to a binary protocol.
4 . A method according to claim 1 , further comprising compiling an application programming interface (API) configured to be called directly by, and thereby receive the trading orders from, the customer application.
5 . A method according to claim 1 , wherein the dedicated trading command set comprises:
a place order command; a cancel order command; a cancel and replace order command; and a cancel all open orders command.
6 . A method according to claim 5 , wherein:
the place order command comprises:
a fixed-length quantity field, the contents of which are interpreted as a binary value and not a string value;
a fixed-length price field, the contents of which are interpreted as a binary value and not a string value; and
a fixed-length symbol field of a size less than a length of a longest symbol of a set of market symbols; the method further comprising:
if a the fixed-length symbol field is too small to store a symbol associated with an order, appending an additional field to a command of the dedicated trading command set, the appended field having a size sufficient to store the associated symbol.
7 . A method according to claim 5 , further comprising providing, in response to receipt of at least one command of the dedicated trading command set, an indication of an aggregated buying power to the customer application.
8 . A method according to claim 1 , wherein receiving the trading orders comprises:
if a parameter provided by the customer application is less than a predetermined length, storing the parameter in a fixed-length field of a command of the dedicated trading command set; and if the parameter is greater than a predetermined length, storing the parameter in an optional field of the command of the dedicated trading command set.
9 . A method according to claim 1 , further comprising, in response to receipt of a command of the dedicated trading command set, executing at least one callback routine in a first execution thread separate from a second execution thread of the customer application that generated the received trading orders.
10 . A method according to claim 9 , further comprising selectively executing the first execution thread by a first processor different than a second processor that executes the second execution thread, based on a parameter passed by the customer application.
11 . A method according to claim 9 , further comprising selectively executing the first execution thread by a first processor different than a second processor that executes the second execution thread, based on a compile-time parameter.
12 . A low-latency communication interface for communicating trading orders from a customer server to a brokerage server, the low-latency communication interface comprising:
an application programming interface (API) configured to:
be executed by the customer server;
receive trading orders from an application program being executed on the customer server;
format the received trading orders into commands of a dedicated trading command set; and
drive a first host channel adapter coupled via a switched fabric link to a second host channel adapter of the brokerage server, so as to direct the formatted trading commands, via the first and second host channel adapters and the switched fabric link, to a brokerage application program being executed on the brokerage server.
13 . A low-latency communication interface according to claim 12 , wherein the customer server defines a user process context, within which the application program is executed, and the API is further configured to be executed within the user process context to receive the trading orders.
14 . A low-latency communication interface according to claim 13 , wherein the API is further configured to drive the first host channel adapter from within the user process context, without operating system kernel mode protocol processing.
15 . A low-latency communication interface according to claim 12 , wherein the dedicated trading command set comprises:
a place order command; a cancel order command; a cancel and replace order command; and a cancel all open orders command.
16 . A low-latency communication interface according to claim 12 , wherein the API is further configured to provide an indication of an aggregated buying power to the customer application, in response to at least one command of the dedicated trading command set.
17 . A system for post-trade monitoring of orders placed by a customer trading platform with at least one exchange server, the system comprising:
a sponsored access post-trade monitor, distinct from the customer trading platform, configured to:
receive drop copy messages from the at least one exchange server, the drop copy messages relating to respective orders placed by the customer trading platform;
determine, based at least in part on at least one of the received drop copy messages, if one of the orders placed by the customer trading platform caused the customer to exceed a trading limit established for a customer; and
if one of the orders is determined to have caused the customer to exceed the trading limit, send a message, via a computer network, to the customer trading platform instructing the customer trading platform to change to a less permissive trading mode; and
an application programming interface on the customer trading platform and configured to receive messages from the sponsored access post-trade monitor and, responsive to the messages, to alter a trading mode of the customer trading platform.
18 . A system according to claim 17 , wherein the application programming interface is further configured to provide an indication of the trading mode of the customer trading platform.
19 . A system according to claim 17 , wherein the application programming interface is further configured to provide an indication of permissibility of a proposed trade, according to the trading mode of the customer trading platform.
20 . A system according to claim 17 , wherein the application programming interface is further configured, in response to receiving a given message from the sponsored access post-trade monitor, to alter the trading mode of the customer trading platform to one of:
a mode enabling unrestricted trading; a mode enabling restricted trading; and a mode disabling trading.
21 . A system according to claim 17 , wherein the application programming interface is further configured, in response to receiving a given message from the sponsored access post-trade monitor, to alter the trading mode of the customer trading platform to one of:
a mode permitting orders that increase account exposure and permitting orders that decrease account exposure; a mode permitting orders that decrease account exposure and prohibiting orders that increase account exposure; and a mode prohibiting orders that increase account exposure and prohibiting orders that decrease account exposure.
22 . A system according to claim 17 , wherein the sponsored access post-trade monitor is further configured to:
determine, based at least in part on at least one other of the received drop copy messages, if the limit is no longer exceeded; and if the limit is no longer exceeded, send a second message, via the computer network, to the customer trading platform instructing the customer trading platform to change to a less restrictive trading mode.
23 . A system according to claim 17 , wherein the sponsored access post-trade monitor:
further comprises a communication interface configured to communicate via a computer network; and is further configured to:
send, via the communication interface, information about trading events related to the customer trading platform;
receive, via the communication interface, information about trading events related to at least one trading platform other than the customer trading platform; and
recalculate the trading limit, based on the received information about the trading events.
24 . A computer-implemented method for post-trade monitoring of an order placed by a customer trading platform with at least one exchange server, the method comprising:
receiving, by a sponsored access post-trade monitor, distinct from the customer trading platform, an electronic drop copy message from the at least one exchange server, the electronic drop copy message relating to the order placed by the customer trading platform; automatically determining, based at least in part on the received electronic drop copy message, if the order placed by the customer trading platform caused the customer to exceed a trading limit established for a customer; if the order is determined to have caused the customer to exceed the trading limit, automatically sending a message, via a computer network, to the customer trading platform instructing the customer trading platform to change to a less permissive trading mode; and receiving, at the customer trading platform, the message from the sponsored access post-trade monitor; and responsive to the message, automatically altering a trading mode of the customer trading platform.
25 . A system for pre-trade validation of proposed orders generated by a client application program controlled by a customer and executed by a customer trading platform coupled to at least one exchange server, the system comprising:
a communication interface within the customer trading platform and configured to receive, via a computer network, at least one message containing information related to a trading limit for the customer; a market interface configured for connection, via a computer network, to the at least one exchange server; and an order verification module, within the customer trading platform, coupled to the communication interface and to the market interface and configured to:
receive the proposed orders from the client application program;
determine, based at least in part on the at least one message containing information related to a trading limit for the customer, if one of the received proposed orders would, if placed with the at least one exchange, cause the customer to exceed the trading limit; and
if the trading limit would not be exceeded, send the one of the received proposed orders, via the market interface, to the at least one exchange server.
26 . A system according to claim 25 , wherein the order verification module is implemented to run in a common address space with the client application program on the customer trading platform.
27 . A system according to claim 25 , wherein the order verification module and the market interface are implemented to run in a common address space with the client application program on the customer trading platform.
28 . A system according to claim 25 , wherein the order verification module is implemented to run in a same process as the client application program on the customer trading platform.
29 . A system according to claim 25 , wherein the order verification module is further configured to, if the trading limit would be exceeded, reject the proposed order.
30 . A system according to claim 25 , wherein the order verification module is further configured to, if the trading limit would be exceeded, enter a trading mode in which the verification module permits orders that decrease account exposure and prohibits orders that increase account exposure.
31 . A system according to claim 30 , wherein the order verification module is further configured to enter a trading mode, after a buying power of the customer exceeds a predetermined limit, in which the verification module permits orders that increase account exposure.
32 . A system according to claim 30 , wherein the order verification module is further configured to enter a trading mode, after at least a calculated aggregate value of sell orders have been filled, in which the verification module permits orders that increase account exposure.
33 . A system according to claim 25 , wherein the order verification module is further configured to, if the trading limit would be exceeded, enter a trading mode in which the verification module prohibits orders that increase account exposure and prohibits orders that decrease account exposure.
34 . A system according to claim 33 , wherein the order verification module is further configured to enter a trading mode, after a buying power of the customer exceeds a predetermined limit, in which the verification module permits orders that increase account exposure and permits orders that decrease account exposure.
35 . A system according to claim 33 , wherein the order verification module is further configured to enter a trading mode, after at least a calculated aggregate value of sell orders have been filled, in which the verification module permits orders that increase account exposure and permits orders that decrease account exposure.
36 . A system according to claim 25 , wherein the order verification module is further configured to dynamically alter a trading mode of the customer trading platform among: a mode enabling unrestricted trading, a mode enabling restricted trading and a mode disabling trading, wherein a transition of the mode of the customer trading platform is based at least on the proposed orders received from the client application program and the information related to the trading limit for the customer.
37 . A system according to claim 25 , wherein the order verification module is further configured to dynamically alter a trading mode of the customer trading platform among: a mode permitting orders that increase account exposure and permitting orders that decrease account exposure, a mode permitting orders that decrease account exposure and prohibiting orders that increase account exposure and a mode prohibiting orders that increase account exposure and prohibiting orders that decrease account exposure, wherein a transition of the mode of the customer trading platform is based at least on the proposed orders received from the client application program and the information related to the trading limit for the customer.
38 . A system according to claim 25 , wherein the order verification module is further configured to recalculate the trading limit, based on at least some of the proposed orders received from the client application program.
39 . A system according to claim 25 , further comprising:
a second communication interface within the customer trading platform, coupled to the order verification module and configured to communicate via a computer network; and wherein the order verification module is further configured to:
send, via the second communication interface, information about trading events related to the customer trading platform;
receive, via the second communication interface, information about trading events related to at least one trading platform other than the customer trading platform; and
recalculate the trading limit, based on the received information about the trading events.
40 . A system according to claim 25 , further comprising a broker control system coupled via the computer network to the communication interface and configured to send the at least one message containing information related to the trading limit for the customer.
41 . A system according to claim 40 , wherein the broker control system is coupled to at least one trading platform, other than the customer trading platform, and configured to send information related to the trading limit for the customer to each of the at least one trading platform.
42 . A system according to claim 40 , wherein the broker control system is coupled to at least one post-trade monitor server and configured to send information related to the trading limit for the customer to each of the at least one post-trade monitor server.
43 . A computer-implemented method for pre-trade validation of a proposed order generated by a client application program controlled by a customer and executed by a customer trading platform coupled to at least one exchange server, the method comprising:
receiving, via a computer network, at least one message containing information related to a trading limit for the customer; receiving a proposed order from the client application program; automatically determining, within the customer trading platform, if the proposed order would, if placed with the at least one exchange, cause the customer to exceed the trading limit, based at least in part on the information related to the trading limit for the customer; and if the trading limit would not be exceeded, automatically sending the proposed order to the at least one exchange server.
44 . A method according to claim 43 , further comprising:
if the trading limit would be exceeded, entering a trading mode in which orders that decrease account exposure are permitted and orders that increase account exposure are prohibited.
45 . A method according to claim 43 , further comprising dynamically altering a trading mode of the customer trading platform among: a mode enabling unrestricted trading, a mode enabling restricted trading and a mode disabling trading, wherein the mode of the customer trading platform is based at least on the proposed orders received from the client application program and the information related to the trading limit for the customer.
46 . A method according to claim 43 , further comprising recalculating the trading limit, based on at least some proposed orders received from the client application program.
47 . A brokered access trading server for pre-trade validation of proposed orders generated on behalf of a customer by a customer trading platform for placement with at least one exchange server, the brokered access trading server comprising:
a computer system including a communication interface configured to communicate via a computer network, the computer system configured to:
receive the proposed orders from the customer trading platform;
determine if one of the received proposed orders would, if placed with the at least one exchange, cause the customer to exceed a trading limit;
if the trading limit would not be exceeded, send the one of the received proposed orders to the at least one exchange server;
send, via the communication interface, information about trading events related to the customer trading platform;
receive, via the communication interface, information about trading events related to at least one trading platform other than the customer trading platform; and
recalculate the trading limit, based on the received information about the trading events.
48 . A computer-implemented method for pre-trade validation of a proposed order generated on behalf of a customer by a customer trading platform for placement with at least one exchange server, the method comprising:
receiving the proposed order from the customer trading platform; automatically determining if the received proposed order would, if placed with the at least one exchange, cause the customer to exceed a trading limit; if the trading limit would not be exceeded, automatically sending the proposed order to the at least one exchange server; automatically sending, via a computer network, information about trading events related to the customer trading platform; receiving information about trading events related to at least one trading platform other than the customer trading platform; and automatically recalculating the trading limit, based on the received information about the trading events.
49 . A system for validation of proposed orders generated on behalf of a customer by a plurality of customer trading platforms for placement with at least one exchange server, the system comprising:
a computer network interconnecting at least two servers, wherein each server is at least one of:
a pre-trade validating brokered access trading server;
a post-trade order monitor; and
a self pre-trade validating customer trading platform;
wherein each server includes a communication interface configured to communicate via the computer network, and each server is configured to:
determine if an order would cause the customer to exceed a trading limit established for the customer;
send, via the communication interface, information about trading events related to the server;
receive, via the communication interface, information about trading events related to the other of the at least two servers; and
recalculate the trading limit, based on the received information about the trading events.
50 . An improved system for validation of orders from a customer trade server to a set of exchange servers, the system being of the type including: (i) an order data base, on the customer trade server, that stores order and trade data of a customer being processed through the customer trade server, (ii) a broker order data base that stores order and trade data of the customer trade server made under authority of a broker and is used for pre-trade order validation purposes, and (iii) an interface between the customer trade server and the set of exchange servers for translating customer orders originating from an order output in the customer trade server into a standard protocol, wherein the improvement comprises:
a single order data base, resident on the customer trade server, coupled to the order output, and that stores order and trade data of the customer being processed through the customer trade server; an order validation module, operating under supervision of the broker, resident on the customer trade server, coupled to the single order database, that polices compliance of orders stored in the order database with trading parameters governing trading activity by the customer; and a market interface, resident on the customer trade server, and coupled to the single order database, and operating under supervision of the broker, that translates orders of the customer into a standard protocol and communicates them to the set of exchange servers; so that the single order database is used by the customer trade server in storing order and trade information of the customer while also being used for pre-trade order validation purposes by components under supervision of the broker.
51 . A system according to claim 50 , wherein the order validation module is coupled over a network to a sponsored access management module of a broker-operated server.
52 . A system according to claim 50 , wherein the order validation module, the market interface and the order output are implemented to run in a common address space on the customer trade server.
53 . A system according to claim 52 , wherein the order validation module, the market interface and the order output are implemented as a single process.
54 . A system according to claim 50 , wherein the single order data base is included in a single trading data base also resident on the customer trade server.
55 . A system for post-trade validation of orders from a customer trading server to at least one exchange server, the system comprising:
a communication path, to an application programming interface of a customer trading server, for sending control messages that control a trading mode of the customer trading server; and a sponsored access trading monitor, coupled over the communication path to the application programming interface and also, via a computer network, to at least one exchange server to which the customer trading server has transmitted at least one order, wherein the trading monitor: (i) receives drop copy messages relating to the at least one order from the at least one exchange; (ii) validates the at least one order; and (iii) responsive to a configured limit established for the customer, issues a control message over the communication path when required that can be used to control the trading mode of the customer trading server.
56 . A computer-implemented method for managing risk associated with trading of a customer utilizing a plurality of trading servers, the method comprising:
using a communication path to each of the trading servers, sending trading event messages to provide each server with updated trading event information from all of the other trading servers; at each of the trading servers, aggregating the updated trading event information in processes including at least one of assessing compliance and managing risk with configured trading limits of the customer.Join the waitlist — get patent alerts
Track US2011178915A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.