US20100094743A1 - Low latency trading system - Google Patents

Low latency trading system Download PDF

Info

Publication number
US20100094743A1
US20100094743A1 US11/801,957 US80195707A US2010094743A1 US 20100094743 A1 US20100094743 A1 US 20100094743A1 US 80195707 A US80195707 A US 80195707A US 2010094743 A1 US2010094743 A1 US 2010094743A1
Authority
US
United States
Prior art keywords
order
low latency
trade
exchange servers
latency system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US11/801,957
Other versions
US7685044B1 (en
Inventor
Chris Robertson
Rick Bruno
Saranyu Lavanyakul
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Morgan Stanley Services Group Inc
Original Assignee
Morgan Stanley
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Morgan Stanley filed Critical Morgan Stanley
Priority to US11/801,957 priority Critical patent/US7685044B1/en
Assigned to MORGAN STANLEY reassignment MORGAN STANLEY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BRUNO, RICK, LAVANYAKUL, SARANYU, ROBERTSON, CHRIS
Priority to PCT/US2008/000606 priority patent/WO2008140631A1/en
Priority to JP2010507382A priority patent/JP4610677B2/en
Priority to EP08724568A priority patent/EP2153394A4/en
Application granted granted Critical
Publication of US7685044B1 publication Critical patent/US7685044B1/en
Publication of US20100094743A1 publication Critical patent/US20100094743A1/en
Assigned to MORGAN STANLEY SERVICES GROUP INC. reassignment MORGAN STANLEY SERVICES GROUP INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MORGAN STANLEY
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/06Asset management; Financial planning or analysis

Definitions

  • FIG. 1 a is a simplified diagram of a known trading architecture.
  • the client trading engine 10 receives the market data, analyzes it, and based thereon sends a trade order over a Wide Area Network (WAN) 12 to a Direct Market Access (DMA) trading engine 14 that is hosted by a registered broker/dealer.
  • the DMA trading engine 14 performs risk checking and order validation on the trade order and, if the order is not rejected, sends it over another WAN 16 to the exchange server 18 , where the trade is executed.
  • the exchange server 18 then sends a report back to the DMA trading engine 14 for the trade order.
  • the DMA trading engine 14 then performs a variety of post-trade risk checks.
  • the order is sent over two WANs 12 , 16 , and through a number of firewalls.
  • the client trading engine 10 and the DMA trading engine 14 typically communicate using a different communication protocol than the DMA trading engine 14 uses to communicate with the exchange data center 18 .
  • the DMA trading center 14 must also convert the order from one protocol to another, adding to the latency.
  • the client trading engine 10 is also in communication with the client data center 22 , so that the client data center 22 can track the trades executed by the client trading engine 10 .
  • Another known architecture is for the client trading engine 10 to submit orders directly to the exchange servers 18 via the WAN 12 , as shown in FIG. 1 b .
  • This architecture has the advantage of reduced latency, but there is no pre-trade risk checking in this architecture (except for pre-trade risk checks performed by the client, if any) after the order is sent from the client trading engine 10 and before the order gets to the exchange servers 18 .
  • Post-trade risk checking is performed in this scenario after the trade is submitted to the exchange by a data center 26 in communication with the exchange server 18 via a WAN 23 .
  • the present invention is directed to systems and methods for transmitting trade orders from a client trading engine to a trading exchange, where the orders are executed by one or more servers of the exchange data center.
  • the system comprises a low latency system, comprising one or more servers, in communication with the client trading engine and the exchange server(s).
  • the low latency system is for receiving trade orders from the client trading engine, performing one or a limited number of pre-order risk checks on the trade orders, and, when the trade orders pass the risk check(s), transmitting the trade order to the exchange server(s).
  • the system also comprises a post-order risk checking data center in communication with the low latency system via a communications network (e.g., a WAN).
  • a communications network e.g., a WAN
  • the post-order risk checking data center is for performing post-order risk checks on the trade orders after the low latency system transmits the trade orders to the exchange server(s). That way, the server center can be relatively lightweight and perform only a small number of pre-trade risk checks in order to decrease latency.
  • the client trading engine there are zero network (e.g., WAN) hops between the client trading engine and the low latency system, and there are also zero network (e.g., WAN) hops between the client trading engine and the exchange server(s). Eliminating the network hops between the various servers can also decrease the system latency.
  • the client trading engine, the low latency system, and the exchange server(s) may be co-located at the exchange data center.
  • the low latency system may communicate with the client trading engine using the same exchange communication protocol that the low latency system uses to communicate with the exchange server(s).
  • the low latency system may be configured to maintain separate communication protocol sessions with the client trading engine and the exchange server(s).
  • the trade orders may be forwarded by the low latency system to the exchange server(s) using the same protocol session that the low latency server session received the trade orders from the client trading engine.
  • the low latency system in order to maintain the sequence numbering for messages sent between the client trading engine and the exchange server(s) on the common protocol session, the low latency system may be configured to send a modified trade order to the exchange server(s) when a trade order from the client trading engine fails a pre-trade risk check that causes the exchange server(s) to reject the trade.
  • the low latency system may be configured to send a non-trade order message to the exchange server(s) when a trade order from the client trading engine fails a pre-trade risk check to maintain the sequence numbering.
  • the low latency system may be configured to manage the sequence numbers of messages sent between the client trading engine and the exchange server(s) on the common protocol session and calculate the correct sequence numbers for the messages.
  • FIGS. 1 a and 1 b are diagrams of prior art trading systems
  • FIG. 2 is a diagram of a trading system according to various embodiments of the present invention.
  • FIGS. 3 a - c and 4 illustrate methods of operation for the trading system of FIG. 2 according to various embodiments of the present invention
  • FIG. 5 is a more detailed diagram of the trading system of FIG. 2 according to various embodiments of the present invention.
  • FIG. 6 is a diagram of a flowchart of a process according to various embodiments of the present invention.
  • FIG. 2 is a diagram of a trading system or architecture 30 according to various embodiments of the present invention.
  • the client trading engine 10 sends its trade order to a low latency system 32 , which may be hosted by a broker/dealer registered with the exchange.
  • the low latency system 32 which may comprise one or more low latency servers as described further below, performs pre-trade risk checking and order validation on the order and, if acceptable, transmits the order to the exchange servers 18 , where the trade is executed. If the trade order is determined not to be acceptable by the low latency system 32 , the low latency system 32 may reject the trade.
  • the trade order may be, for example, an order to buy or sell a quantity of units of a publicly traded security (such as a stock or bond). Also, the trade order could be an order to enter into a derivative contract where, for example, the exchange is a derivatives exchange.
  • the client trading engine 10 may be in communication with the client data center 22 via a communication network 20 .
  • the low latency system 32 may perform only one or a few pre-trade risk checks. For example, in one embodiment, the low latency system 32 may only check the quantity traded in the trade order (e.g., whether it is too high or too low). If the quantity is not within the prescribed limits, the low latency system 32 may reject the trade. If the quantity is within prescribed limits, the low latency system 32 may forward the order to the exchange servers 18 .
  • the low latency system 32 may also provide some non-risk pre-order checks that do not significantly negatively affect the latency, such as compliance checks for compliance with Regulation NMS.
  • a post-order risk checking data center 34 in communication with the low latency system 32 via a communications network 36 , may perform more sophisticated near-time post-order risk checking and validation on the order that the low latency system 32 does not perform.
  • Such post-order risk checks performed by the data center 34 may include, for example, complex market impact analysis (e.g., how will the trade impact the market) and determinations of whether the trade goes against other positions of the client. If a trade order fails a post-order risk check, in some instances it may still be possible to cancel the trade if it has not yet been executed by the exchange. Also, a failure of a post-order risk check could cause certain future orders to be rejected and/or cause the client trading engine 10 to change or revise its trading strategy.
  • the low latency system 32 can be relatively lightweight and perform only a small or limited number of pre-trade risk checks in order to decrease latency.
  • the communications networks 20 , 36 may be any suitable type of computer network, such as a LAN, WAN, MAN, etc., and may use any suitable communication protocol, such as TCP/IP.
  • the low latency system 32 in addition to sending the trade order to the exchange servers 18 (step 2 a ), may also send the order to the post-order risk checking data center 34 (step 2 b ), contemporaneously or nearly contemporaneously with sending the trade order to the exchange 18 , in order for the post-order risk checking data center 34 to commence the post-order risk checking.
  • the low latency system 32 transmits the order to the exchange 18 (step 2 ), which (at step 3 ) sends back a report for the trade to the low latency system 32 .
  • the low latency system 32 may then send the report to both the post-order risk checking data center 34 (step 4 a ) and the client trading engine (step 4 b ).
  • FIG. 3 c shows an embodiment that is basically the combination of the embodiments of FIGS. 3 a and 3 b .
  • the low latency system 32 After receiving the trade order from the client trading engine 10 (step 1 ), the low latency system 32 sends the trade order to both the exchange servers 18 (step 2 a ) and to the post-order risk checking data center (step 2 b ). Then, the exchange servers 18 send back a report for the trade to the low latency system 32 (step 3 ). The low latency system 32 may then send the report to both the post-order risk checking data center 34 (step 4 a ) and the client trading engine (step 4 b ).
  • the exchange servers 18 may send a report on the trade to the post-order risk checking data center 34 , via the network 36 , in order for the post-order risk checking data center 34 to commence the risk checking.
  • the data center 34 performs the more comprehensive risk checks after the low latency system 32 transmits the order to exchange 18 .
  • the data center 34 may send the results of its post-trade risk checking and order validation to the client data center 22 (see FIG. 2 ).
  • the low latency system 32 in FIG. 2 may provide only one or a small number of pre-trade risk checks in comparison with the more comprehensive risk checking performed by the DMA trading engine 14 in FIG. 1 a . These factors contribute to the low latency of the architecture of FIG. 2 in comparison with the architecture of FIG. 1 a.
  • the client trading engine 10 , the low latency system 32 , and the exchange servers 18 may be co-located at a data center 40 for the exchange in one embodiment. Co-locating the servers 10 , 32 , 18 at one data center 40 will ordinarily reduce the time that it takes the data packets to travel between components.
  • the client trading engine 10 and the low latency system 32 could be co-located in a co-location facility (not shown) that is physically near the exchange servers 18 (e.g., within 1 mile or within 5 miles).
  • the low latency system 32 could be co-located with the exchange servers 18 at the data center 40 , and the client trading engine 10 could be nearby (e.g., within 5 miles).
  • the client trading engine 10 may communicate with the low latency system 32 using a communication protocol that is the same as the exchange communication protocol used by the low latency system 32 to communicate with the exchange servers 18 .
  • both communication links may use the FIX (Financial Information eXchange) protocol, the OUCH protocol, the CMS (Common Message Switch) protocol, or any other suitable protocol.
  • the low latency system 32 may maintain two protocol sessions: one with the client trading engine 10 and another one with the exchange servers 18 .
  • the low latency system 32 may act only to receive and forward traffic between the client trading engine 10 and the exchange servers 18 on the session.
  • the sender and receiver maintain a sequence number of the messages sent to one another. This is a common mechanism for detecting lost messages.
  • the low latency system 32 performs one or more pre-trade risk checks on the trade orders and may reject a trade that fails a pre-trade risk check such that the trade order is not forwarded to the exchange servers 18
  • the low latency system 32 preferably addresses the sequence numbering issue in such an embodiment so that the next trade order after the rejection would not appear to the exchange servers 18 to have skipped a sequence number.
  • the sequence numbering is not addressed, if an exchange server 18 responded with its next sequence number, the client trading engine 10 would receive duplicated sequence numbers as the number was already sent by the rejected message to the client trading engine 10 from the low latency system 32 .
  • the low latency system 32 may be configured to reject the trade by sending a modified trade order to the exchange servers 18 , where the trade order is modified in such a way that the exchange servers 18 reject the trade.
  • the low latency system 32 can modify the trade order in such a way, for example, by modifying the data in the order or adding extra information (e.g., setting a flag) in the order that causes the exchange servers 18 to reject the trade. In such an embodiment, the sequence numbering remains correct.
  • the low latency system 32 may have to send many of these modified trade orders to the exchange servers 18 , which may negatively affect the latency of the low latency system 32 .
  • the low latency system 32 may be configured to drop the connection with the exchange servers 18 (or otherwise stop forwarding messages to the exchange servers 18 ).
  • the low latency system 32 may be configured to send a non-trade order message to the exchange servers 18 to maintain the sequence numbering.
  • the non-trade order message may be, for example, a heartbeat message. This type of session control message will effectively increase the sequence number of the exchange as if it received the rejected trade order.
  • the low latency system 32 may then use the sequence number from the exchange to create a reject message to send back to the client trading engine 10 .
  • the low latency system 32 may be programmed to manage the sequence number on both ends and calculate the correct sequence number to be sent to both sides.
  • FIG. 5 is a more detailed diagram of the architecture according to various embodiments of the present invention.
  • the client trading engine 10 comprising one or more servers 52 , transmits the trade order to the low-latency servers 53 of the low latency system 32 via the firewall(s) 24 , the client trading engine switches 54 , and the low-latency server center switches 56 .
  • the low-latency servers 53 after performing the pre-order risk check, may then transmit the order, as shown by the arrow 57 , to the server farm 18 of the exchange 58 via the low-latency server switches 56 , 60 , the firewall 24 , the exchange routers 62 , and the exchange switches 64 .
  • the switches 54 , 56 , 60 , 64 may be layer 2 and/or layer 3 switches, for example.
  • the servers 53 of the low latency system 32 may also transmit the order to the servers 63 of the post-order risk checking data center 34 via the server center routers 67 , the network 36 , the broker/dealer data center routers 68 , and the broker/dealer data center firewall 70 .
  • the servers 63 of the post-order risk checking data center 34 may perform the post-order risk checking and order validation, as described above.
  • FIG. 5 also shows the exchange WAN/extranet 75 .
  • the client data center 22 is shown in communication with the client trading engine 10 via the network 20 .
  • the client data center 22 may comprise servers 80 in communication with the client trading engine 10 via a firewall 82 , client data center routers 84 , the network 20 , and the client trading engine routers 86 .
  • the post-order risk checking data center 34 which may be administered by a broker/dealer that also administers the low latency system 32 , may be in communication with the client data center 22 via a network, such as a WAN (not shown). In other embodiments, the low latency system 32 and the data center 34 may be administered by different entities.
  • the low latency system 32 could perform additional pre-trade risk checks, so long as the additional checks do not increase the latency beyond acceptability.
  • additional pre-trade risk checks may include checks on the number of trade orders submitted by the client trading engine 10 in a certain time period. For example, if the number of trades per second from the trading engine 10 is above a threshold limit, the low latency system 32 may reject some or all of the trades. Also, the low latency system 32 could check the value of a trade to make sure it is within acceptable limits.
  • the post-order risk checking data center 34 may be able to make administrative changes to the low latency system 32 .
  • the data center 34 could send an instruction to the low latency system 32 to turn off during trading hours, thereby preventing all trades from the client trading engine 10 from getting through to the exchange servers 18 .
  • FIGS. 2-5 show only one client trading engine 10 and one low latency system 32 .
  • a single server 53 of the low latency system 32 could service a number of client trading engines 10 , or there could be a separate server 53 for each client trading engine 10 .
  • two or more servers 53 could service a single client trading engine 10 .
  • an enterprise such as a broker/dealer, could establish such low latency systems 32 at a number of exchanges 18 , and each of the server centers 32 could be in communication with a single data center 34 for post-order risk checking. Alternatively, there could be a number of data centers 34 for serving the numerous server centers 32 .
  • the architecture could be scaled by adding more clients to router pair 67 .
  • Route/packet filtering could be employed on the routers 67 to prevent different clients from communicating with each other via the routers 67 .
  • the components of the low latency system 32 of the client trading engine 10 shown in FIG. 5 could be co-located at the co-location facility. The latency in such an embodiment would be higher than if the low latency system 32 and the trading engine 10 where co-located at the exchange 18 , but such an environment could scale across multiple exchanges.
  • the switch pair 60 could be switches or wan routers, and multiple exchanges could be connected to router/switch pair 60 .
  • FIG. 6 is a flow chart of the process according to various embodiments of the present invention.
  • the low latency system 32 receives a trade order from the client trading engine 10 .
  • the order may be sent without a WAN hop to decrease latency.
  • the server center performs a limited number of pre-order risk checks on the trade order.
  • the pre-order risk checks may be limited in number so that the servers 53 of the low latency system 32 (see FIG. 5 ) can remain relatively lightweight, thereby decreasing the trade latency. If the order is acceptable, at step 104 the trade is transmitted by the low latency system 32 to the exchange 18 , where it is executed.
  • the order is also sent to the post-order risk checking data center 34 , which, at step 106 , performs the post-order risk checks.
  • steps 104 and 105 may be performed simultaneously or nearly simultaneously.
  • the low latency system 32 may only send the trade order to the exchange servers 18 , and the post-order risk checking data center 34 may perform the post-order risk checks based on a report, received directly or indirectly, from the exchange servers 18 .
  • the order is rejected at step 108 .
  • the low latency system 32 may provide other functionality while remaining low latency.
  • the trade order from the client trading engine 10 may be an order to enter into a swap contract based on the current price for an underlier (e.g., a security or commodity) traded on the exchange 18 .
  • the low latency system 32 may send a corresponding trade order to the exchange 18 to buy or sell the underlier, as the case may be, to hedge the swap.
  • the client wants to enter into an equity swap such that the client receives on its leg the return on an underlying equity traded on the exchange 18
  • the low latency system 32 may send a corresponding trade order to the exchange 18 to buy the equity to thereby hedge its exposure on the swap.
  • a single component may be replaced by multiple components and multiple components may be replaced by a single component, to perform a given function or functions. Except where such substitution would not be operative, such substitution is within the intended scope of the embodiments.
  • Any servers described herein, for example may be replaced by a “server farm” or other grouping of networked servers that are located and configured for cooperative functions. It can be appreciated that a server farm may serve to distribute workload between/among individual components of the farm and may expedite computing processes by harnessing the collective and cooperative power of multiple servers.
  • Such server farms may employ load-balancing software that accomplishes tasks such as, for example, tracking demand for processing power from different machines, prioritizing and scheduling tasks based on network demand and/or providing backup contingency in the event of component failure or reduction in operability.

Abstract

Systems and methods for transmitting trade orders from a client trading engine to an exchange where the trades are executed. The system may comprise a low latency system in communication with the client trading engine and the exchange server(s). The low latency system is for receiving trade orders from the client trading engine, performing one or a limited number of pre-order risk checks on the trade orders, and, when the trade orders pass the risk checks, transmitting the trade order to the exchange server(s). The system also comprises a post-order risk checking data center in communication with the low latency system via a network. The post-order risk checking data center is for performing post-order risk checks on the trade orders after the low latency system transmits the trade orders to the exchange server(s).

Description

    BACKGROUND
  • In the financial markets, many market participants implement investment strategies that require computerized trading engines that execute trades autonomously based on the most-up-to-date, or real time, market data. These trades are often executed in milliseconds after receiving the market data and, in some instances, a few milliseconds can be the difference a winning trade and a losing trade. One of the factors that contributes to the delay is the latency, or time interval, between (a) when the trading engine sends a trade order to the exchange and (b) when the trade order is acknowledged and acted upon by the exchange.
  • FIG. 1 a is a simplified diagram of a known trading architecture. The client trading engine 10 receives the market data, analyzes it, and based thereon sends a trade order over a Wide Area Network (WAN) 12 to a Direct Market Access (DMA) trading engine 14 that is hosted by a registered broker/dealer. The DMA trading engine 14 performs risk checking and order validation on the trade order and, if the order is not rejected, sends it over another WAN 16 to the exchange server 18, where the trade is executed. The exchange server 18 then sends a report back to the DMA trading engine 14 for the trade order. The DMA trading engine 14 then performs a variety of post-trade risk checks.
  • In such an architecture, the order is sent over two WANs 12, 16, and through a number of firewalls. Also, the client trading engine 10 and the DMA trading engine 14 typically communicate using a different communication protocol than the DMA trading engine 14 uses to communicate with the exchange data center 18. Thus, the DMA trading center 14 must also convert the order from one protocol to another, adding to the latency.
  • The client trading engine 10 is also in communication with the client data center 22, so that the client data center 22 can track the trades executed by the client trading engine 10.
  • Another known architecture is for the client trading engine 10 to submit orders directly to the exchange servers 18 via the WAN 12, as shown in FIG. 1 b. This architecture has the advantage of reduced latency, but there is no pre-trade risk checking in this architecture (except for pre-trade risk checks performed by the client, if any) after the order is sent from the client trading engine 10 and before the order gets to the exchange servers 18. Post-trade risk checking is performed in this scenario after the trade is submitted to the exchange by a data center 26 in communication with the exchange server 18 via a WAN 23.
  • SUMMARY
  • In one general aspect, the present invention is directed to systems and methods for transmitting trade orders from a client trading engine to a trading exchange, where the orders are executed by one or more servers of the exchange data center. According to various embodiments, the system comprises a low latency system, comprising one or more servers, in communication with the client trading engine and the exchange server(s). The low latency system is for receiving trade orders from the client trading engine, performing one or a limited number of pre-order risk checks on the trade orders, and, when the trade orders pass the risk check(s), transmitting the trade order to the exchange server(s). The system also comprises a post-order risk checking data center in communication with the low latency system via a communications network (e.g., a WAN). The post-order risk checking data center is for performing post-order risk checks on the trade orders after the low latency system transmits the trade orders to the exchange server(s). That way, the server center can be relatively lightweight and perform only a small number of pre-trade risk checks in order to decrease latency.
  • Also, in various implementations, there are zero network (e.g., WAN) hops between the client trading engine and the low latency system, and there are also zero network (e.g., WAN) hops between the client trading engine and the exchange server(s). Eliminating the network hops between the various servers can also decrease the system latency. Also, the client trading engine, the low latency system, and the exchange server(s) may be co-located at the exchange data center. In addition, the low latency system may communicate with the client trading engine using the same exchange communication protocol that the low latency system uses to communicate with the exchange server(s).
  • In various implementations, the low latency system may be configured to maintain separate communication protocol sessions with the client trading engine and the exchange server(s). In other embodiments, the trade orders may be forwarded by the low latency system to the exchange server(s) using the same protocol session that the low latency server session received the trade orders from the client trading engine. In such an embodiment, in order to maintain the sequence numbering for messages sent between the client trading engine and the exchange server(s) on the common protocol session, the low latency system may be configured to send a modified trade order to the exchange server(s) when a trade order from the client trading engine fails a pre-trade risk check that causes the exchange server(s) to reject the trade. In another embodiment, the low latency system may be configured to send a non-trade order message to the exchange server(s) when a trade order from the client trading engine fails a pre-trade risk check to maintain the sequence numbering. In another embodiment, the low latency system may be configured to manage the sequence numbers of messages sent between the client trading engine and the exchange server(s) on the common protocol session and calculate the correct sequence numbers for the messages.
  • These and other potential benefits and advantages of the present invention will be apparent from the description to follow.
  • FIGURES
  • Various embodiments of the present invention are described herein by way of example in conjunction with the following figures wherein:
  • FIGS. 1 a and 1 b are diagrams of prior art trading systems;
  • FIG. 2 is a diagram of a trading system according to various embodiments of the present invention;
  • FIGS. 3 a-c and 4 illustrate methods of operation for the trading system of FIG. 2 according to various embodiments of the present invention;
  • FIG. 5 is a more detailed diagram of the trading system of FIG. 2 according to various embodiments of the present invention; and
  • FIG. 6 is a diagram of a flowchart of a process according to various embodiments of the present invention.
  • DETAILED DESCRIPTION
  • FIG. 2 is a diagram of a trading system or architecture 30 according to various embodiments of the present invention. In the architecture 30 of FIG. 2, the client trading engine 10 sends its trade order to a low latency system 32, which may be hosted by a broker/dealer registered with the exchange. The low latency system 32, which may comprise one or more low latency servers as described further below, performs pre-trade risk checking and order validation on the order and, if acceptable, transmits the order to the exchange servers 18, where the trade is executed. If the trade order is determined not to be acceptable by the low latency system 32, the low latency system 32 may reject the trade. The trade order may be, for example, an order to buy or sell a quantity of units of a publicly traded security (such as a stock or bond). Also, the trade order could be an order to enter into a derivative contract where, for example, the exchange is a derivatives exchange.
  • As shown in FIG. 2, the client trading engine 10 may be in communication with the client data center 22 via a communication network 20.
  • In comparison with the prior art system shown in FIG. 1 a, where the DMA trading engine 14 performs a variety of pre-trade risk checks, the low latency system 32 may perform only one or a few pre-trade risk checks. For example, in one embodiment, the low latency system 32 may only check the quantity traded in the trade order (e.g., whether it is too high or too low). If the quantity is not within the prescribed limits, the low latency system 32 may reject the trade. If the quantity is within prescribed limits, the low latency system 32 may forward the order to the exchange servers 18. The low latency system 32 may also provide some non-risk pre-order checks that do not significantly negatively affect the latency, such as compliance checks for compliance with Regulation NMS.
  • A post-order risk checking data center 34, in communication with the low latency system 32 via a communications network 36, may perform more sophisticated near-time post-order risk checking and validation on the order that the low latency system 32 does not perform. Such post-order risk checks performed by the data center 34 may include, for example, complex market impact analysis (e.g., how will the trade impact the market) and determinations of whether the trade goes against other positions of the client. If a trade order fails a post-order risk check, in some instances it may still be possible to cancel the trade if it has not yet been executed by the exchange. Also, a failure of a post-order risk check could cause certain future orders to be rejected and/or cause the client trading engine 10 to change or revise its trading strategy. Because in such embodiments the more comprehensive and computationally expensive risk checks are performed by the post-order risk checking data center 34 after the trade order is sent to the exchange servers 18, the low latency system 32 can be relatively lightweight and perform only a small or limited number of pre-trade risk checks in order to decrease latency.
  • The communications networks 20, 36 may be any suitable type of computer network, such as a LAN, WAN, MAN, etc., and may use any suitable communication protocol, such as TCP/IP.
  • In one embodiment, as shown in FIG. 3 a, the low latency system 32, in addition to sending the trade order to the exchange servers 18 (step 2 a), may also send the order to the post-order risk checking data center 34 (step 2 b), contemporaneously or nearly contemporaneously with sending the trade order to the exchange 18, in order for the post-order risk checking data center 34 to commence the post-order risk checking. In another embodiment, as shown in FIG. 3 b, the low latency system 32 transmits the order to the exchange 18 (step 2), which (at step 3) sends back a report for the trade to the low latency system 32. The low latency system 32 may then send the report to both the post-order risk checking data center 34 (step 4 a) and the client trading engine (step 4 b).
  • FIG. 3 c shows an embodiment that is basically the combination of the embodiments of FIGS. 3 a and 3 b. After receiving the trade order from the client trading engine 10 (step 1), the low latency system 32 sends the trade order to both the exchange servers 18 (step 2 a) and to the post-order risk checking data center (step 2 b). Then, the exchange servers 18 send back a report for the trade to the low latency system 32 (step 3). The low latency system 32 may then send the report to both the post-order risk checking data center 34 (step 4 a) and the client trading engine (step 4 b).
  • In another embodiment, as shown in FIG. 4, the exchange servers 18 may send a report on the trade to the post-order risk checking data center 34, via the network 36, in order for the post-order risk checking data center 34 to commence the risk checking. In either case, the data center 34 performs the more comprehensive risk checks after the low latency system 32 transmits the order to exchange 18. Also, in either embodiment, the data center 34 may send the results of its post-trade risk checking and order validation to the client data center 22 (see FIG. 2).
  • As can be seen by comparing FIG. 1 a to FIG. 2, in the architecture of FIG. 2 there a no networks (hence, no network hops) between the client trading engine 10 and the exchange servers 18, whereas there are two WAN hops in the architecture of FIG. 1 a. Further, as mentioned above, the low latency system 32 in FIG. 2 may provide only one or a small number of pre-trade risk checks in comparison with the more comprehensive risk checking performed by the DMA trading engine 14 in FIG. 1 a. These factors contribute to the low latency of the architecture of FIG. 2 in comparison with the architecture of FIG. 1 a.
  • In addition, in order to further reduce latency, the client trading engine 10, the low latency system 32, and the exchange servers 18 may be co-located at a data center 40 for the exchange in one embodiment. Co-locating the servers 10, 32, 18 at one data center 40 will ordinarily reduce the time that it takes the data packets to travel between components. In other embodiments, if the exchange does not have the capability to physically host the client trading engine 10 and the low latency system 32, the client trading engine 10 and the low latency system 32 could be co-located in a co-location facility (not shown) that is physically near the exchange servers 18 (e.g., within 1 mile or within 5 miles). Also, in other embodiments, the low latency system 32 could be co-located with the exchange servers 18 at the data center 40, and the client trading engine 10 could be nearby (e.g., within 5 miles).
  • In various embodiments, the client trading engine 10 may communicate with the low latency system 32 using a communication protocol that is the same as the exchange communication protocol used by the low latency system 32 to communicate with the exchange servers 18. For example, both communication links may use the FIX (Financial Information eXchange) protocol, the OUCH protocol, the CMS (Common Message Switch) protocol, or any other suitable protocol. In one embodiment, the low latency system 32 may maintain two protocol sessions: one with the client trading engine 10 and another one with the exchange servers 18.
  • In another embodiment, there may be one protocol session between the client trading engine 10 and the exchange servers 18, with the low latency system 32 acting only to receive and forward traffic between the client trading engine 10 and the exchange servers 18 on the session. In most exchange protocols, the sender and receiver maintain a sequence number of the messages sent to one another. This is a common mechanism for detecting lost messages. Because the low latency system 32 performs one or more pre-trade risk checks on the trade orders and may reject a trade that fails a pre-trade risk check such that the trade order is not forwarded to the exchange servers 18, the low latency system 32 preferably addresses the sequence numbering issue in such an embodiment so that the next trade order after the rejection would not appear to the exchange servers 18 to have skipped a sequence number. Similarly, if the sequence numbering is not addressed, if an exchange server 18 responded with its next sequence number, the client trading engine 10 would receive duplicated sequence numbers as the number was already sent by the rejected message to the client trading engine 10 from the low latency system 32.
  • To solve this problem, in one embodiment, when the low latency system 32 determines that a trade order that fails a pre-trade risk check, the low latency system 32 may be configured to reject the trade by sending a modified trade order to the exchange servers 18, where the trade order is modified in such a way that the exchange servers 18 reject the trade. The low latency system 32 can modify the trade order in such a way, for example, by modifying the data in the order or adding extra information (e.g., setting a flag) in the order that causes the exchange servers 18 to reject the trade. In such an embodiment, the sequence numbering remains correct.
  • In rare instances where there are many rejections, the low latency system 32 may have to send many of these modified trade orders to the exchange servers 18, which may negatively affect the latency of the low latency system 32. In such instances, the low latency system 32 may be configured to drop the connection with the exchange servers 18 (or otherwise stop forwarding messages to the exchange servers 18).
  • In another embodiment, instead of sending a modified trade order to the exchange servers 18, the low latency system 32 may be configured to send a non-trade order message to the exchange servers 18 to maintain the sequence numbering, The non-trade order message may be, for example, a heartbeat message. This type of session control message will effectively increase the sequence number of the exchange as if it received the rejected trade order. The low latency system 32 may then use the sequence number from the exchange to create a reject message to send back to the client trading engine 10.
  • In yet another embodiment, instead of sending modified trade orders or non-trade order messages, the low latency system 32 may be programmed to manage the sequence number on both ends and calculate the correct sequence number to be sent to both sides.
  • FIG. 5 is a more detailed diagram of the architecture according to various embodiments of the present invention. As shown by the arrow 50, the client trading engine 10, comprising one or more servers 52, transmits the trade order to the low-latency servers 53 of the low latency system 32 via the firewall(s) 24, the client trading engine switches 54, and the low-latency server center switches 56. The low-latency servers 53, after performing the pre-order risk check, may then transmit the order, as shown by the arrow 57, to the server farm 18 of the exchange 58 via the low-latency server switches 56, 60, the firewall 24, the exchange routers 62, and the exchange switches 64. The switches 54, 56, 60, 64 may be layer 2 and/or layer 3 switches, for example. As shown by the arrow 66, the servers 53 of the low latency system 32 may also transmit the order to the servers 63 of the post-order risk checking data center 34 via the server center routers 67, the network 36, the broker/dealer data center routers 68, and the broker/dealer data center firewall 70. The servers 63 of the post-order risk checking data center 34 may perform the post-order risk checking and order validation, as described above.
  • FIG. 5 also shows the exchange WAN/extranet 75. Also, the client data center 22 is shown in communication with the client trading engine 10 via the network 20. As shown in FIG. 5, the client data center 22 may comprise servers 80 in communication with the client trading engine 10 via a firewall 82, client data center routers 84, the network 20, and the client trading engine routers 86. Also, although not show in FIG. 5, the post-order risk checking data center 34, which may be administered by a broker/dealer that also administers the low latency system 32, may be in communication with the client data center 22 via a network, such as a WAN (not shown). In other embodiments, the low latency system 32 and the data center 34 may be administered by different entities.
  • In various embodiments, in addition to quantity pre-trade risk checking, the low latency system 32 could perform additional pre-trade risk checks, so long as the additional checks do not increase the latency beyond acceptability. Such additional pre-trade risk checks may include checks on the number of trade orders submitted by the client trading engine 10 in a certain time period. For example, if the number of trades per second from the trading engine 10 is above a threshold limit, the low latency system 32 may reject some or all of the trades. Also, the low latency system 32 could check the value of a trade to make sure it is within acceptable limits.
  • In addition, according to various embodiments, the post-order risk checking data center 34 may be able to make administrative changes to the low latency system 32. For example, the data center 34 could send an instruction to the low latency system 32 to turn off during trading hours, thereby preventing all trades from the client trading engine 10 from getting through to the exchange servers 18.
  • FIGS. 2-5 show only one client trading engine 10 and one low latency system 32. It should be noted that in various embodiments, a single server 53 of the low latency system 32 could service a number of client trading engines 10, or there could be a separate server 53 for each client trading engine 10. Also, two or more servers 53 could service a single client trading engine 10. Also, an enterprise, such as a broker/dealer, could establish such low latency systems 32 at a number of exchanges 18, and each of the server centers 32 could be in communication with a single data center 34 for post-order risk checking. Alternatively, there could be a number of data centers 34 for serving the numerous server centers 32.
  • In addition, the architecture could be scaled by adding more clients to router pair 67. Route/packet filtering could be employed on the routers 67 to prevent different clients from communicating with each other via the routers 67. Also, in an embodiment where the client trading engine 10 and low latency system 32 are located at a co-location facility and not directly at the exchange 18, the components of the low latency system 32 of the client trading engine 10 shown in FIG. 5 could be co-located at the co-location facility. The latency in such an embodiment would be higher than if the low latency system 32 and the trading engine 10 where co-located at the exchange 18, but such an environment could scale across multiple exchanges. For example, the switch pair 60 could be switches or wan routers, and multiple exchanges could be connected to router/switch pair 60.
  • FIG. 6 is a flow chart of the process according to various embodiments of the present invention. At step 100, the low latency system 32 receives a trade order from the client trading engine 10. As mentioned above, the order may be sent without a WAN hop to decrease latency. At step 102, the server center performs a limited number of pre-order risk checks on the trade order. The pre-order risk checks may be limited in number so that the servers 53 of the low latency system 32 (see FIG. 5) can remain relatively lightweight, thereby decreasing the trade latency. If the order is acceptable, at step 104 the trade is transmitted by the low latency system 32 to the exchange 18, where it is executed. At step 105, the order is also sent to the post-order risk checking data center 34, which, at step 106, performs the post-order risk checks. As mentioned above, in certain embodiments steps 104 and 105 may be performed simultaneously or nearly simultaneously. Also, as shown in FIGS. 3 b and 4, in some embodiments the low latency system 32 may only send the trade order to the exchange servers 18, and the post-order risk checking data center 34 may perform the post-order risk checks based on a report, received directly or indirectly, from the exchange servers 18. Returning to step 102, if the order is not acceptable, the order is rejected at step 108.
  • In other embodiments, the low latency system 32 may provide other functionality while remaining low latency. For example, the trade order from the client trading engine 10 may be an order to enter into a swap contract based on the current price for an underlier (e.g., a security or commodity) traded on the exchange 18. In such cases, the low latency system 32 may send a corresponding trade order to the exchange 18 to buy or sell the underlier, as the case may be, to hedge the swap. For example, if the client wants to enter into an equity swap such that the client receives on its leg the return on an underlying equity traded on the exchange 18, the low latency system 32 may send a corresponding trade order to the exchange 18 to buy the equity to thereby hedge its exposure on the swap.
  • In various embodiments disclosed herein, a single component may be replaced by multiple components and multiple components may be replaced by a single component, to perform a given function or functions. Except where such substitution would not be operative, such substitution is within the intended scope of the embodiments. Any servers described herein, for example, may be replaced by a “server farm” or other grouping of networked servers that are located and configured for cooperative functions. It can be appreciated that a server farm may serve to distribute workload between/among individual components of the farm and may expedite computing processes by harnessing the collective and cooperative power of multiple servers. Such server farms may employ load-balancing software that accomplishes tasks such as, for example, tracking demand for processing power from different machines, prioritizing and scheduling tasks based on network demand and/or providing backup contingency in the event of component failure or reduction in operability.
  • While various embodiments have been described herein, it should be apparent that various modifications, alterations and adaptations to those embodiments may occur to persons skilled in the art with attainment of at least some of the advantages. For example, certain steps in the processes described above may be performed in different orders or at the same time. The disclosed embodiments are therefore intended to include all such modifications, alterations and adaptations without departing from the scope of the embodiments as set forth herein.

Claims (67)

1. A low-latency system for receiving electronic trade orders from a computer-implemented client trading engine and transmitting the electronic trade orders to one or more exchange servers of an exchange where the trade orders are to be executed, the system comprising:
a low latency system that communicates with the client trading engine and that communicates with the one or more exchange servers, wherein the low latency system comprises at least one server, and wherein the low latency system is configured to:
receive a trade order from the client trading engine;
perform one or more pre-order risk checks on the trade order, wherein the one or more pre-order risk checks are different from and computationally less expensive than post-order risk checks performed on the trade order by a post-order risk checking data center that comprises at least one server;
transmit the trade order to the one or more exchange servers when the trade order passes the one or more pre-order risk checks, wherein the one or more exchange servers implement a message protocol and maintain a message sequence number; and
maintain a single protocol session between the client trading engine and the one or more exchange servers such that consistent message sequence numbering is maintained between the client trading engine and the one or more exchange servers in the event the trade order fails the one or more pre-order risk checks, wherein configuration of the low latency system to maintain consistent message sequence numbering upon pre-order risk check failure comprises:
modifying the trade order received from the client trading engine; and
sending the modified trade order to the exchange servers, wherein the trade order is modified so that the one or more exchange servers reject the trade order.
2. The system of claim 1, wherein:
there are zero wide-area network (WAN) hops between the client trading engine and the low latency system; and
there are zero WAN hops between the low latency system and the one or more exchange servers.
3. The system of claim 1, wherein the client trading engine, the low latency system, and the one or more exchange servers are co-located at a data center.
4. The system of claim 1, wherein the low latency system and the one or more exchange servers are co-located at a data center.
5. The system of claim 1, wherein the low latency system communicates with the client trading engine using an exchange communication protocol that is the same as the exchange communication protocol used by the low latency system to communicate with the one or more exchange servers.
6. The system of claim 5, wherein:
there are zero WAN hops between the client trading engine and the low latency system; and
there are zero WAN hops between the low latency system and the one or more exchange servers.
7. The system of claim 6, wherein the one or more pre-order risk checks performed by the low latency system includes a trade quantity check.
8-12. (canceled)
13. A computer-implemented method for transmitting electronic trade orders from a computer-implemented client trading engine to one or more exchange servers of an exchange where the trade orders are to be executed, the method comprising:
receiving at a low latency system a trade order transmitted by the client trading engine, wherein the low latency system comprises at least one server;
performing, by the low latency system, one or more pre-order risk checks on the trade order, wherein the one or more pre-order risk checks are different from and computationally less expensive than post-order risk checks performed on the trade order by a post-order risk checking data center that comprises at least one server;
when the trade order passes the one or more pre-order risk checks, transmitting, by the low latency system, the trade order to the one or more exchange servers, wherein the one or more exchange servers implement a message protocol and maintain a message sequence number; and
maintaining, by the low latency system, a single protocol session between the client trading engine and the one or more exchange servers such that consistent message sequence numbering is maintained between the client trading engine and the one or more exchange servers in the event the trade order fails the one or more pre-order risk checks, wherein maintaining message consistent sequence numbering upon pre-order risk check failure comprises:
modifying, by the low latency system, the trade order received from the client trading engine; and
sending, by the low latency system, the modified trade order to the one or more exchange servers, wherein the trade order is modified so that the one or more exchange servers reject the trade order.
14. The method of claim 13, wherein:
there are zero WAN hops between the client trading engine and the low latency system; and
there are zero WAN hops between the low latency system and the one or more exchange servers.
15. The method of claim 13, wherein the client trading engine, the low latency system, and the one or more exchange servers are co-located at a data center.
16. The method of claim 13, wherein the low latency system and the one or more exchange servers are co-located at a data center.
17. The method of claim 13, wherein the low latency system communicates with the client trading engine using an exchange communication protocol that is the same as the exchange communication protocol used by the low latency system to communicate with the one or more exchange servers.
18. The method of claim 17, wherein:
there are zero WAN hops between the client trading engine and the low latency system; and
there are zero WAN hops between the low latency system and the one or more exchange servers.
19. The method of claim 18, wherein the one or more pre-order risk checks performed by the low latency system includes a trade quantity check.
20-24. (canceled)
25. The system of claim 1, wherein the one or more pre-order risk checks performed by the low latency system comprises three or less pre-order risk checks.
26. The system of claim 25, wherein the three or less pre-order risk checks performed by the low latency system comprise only one pre-order risk check.
27. The system of claim 26, wherein the only one pre-order risk check is a trade quantity check.
28. The system of claim 25, wherein the three or less pre-order risk checks performed by the low latency system comprise a trade quantity check and a check on the number of trade orders submitted by the client trading engine in a period of time.
29. The system of claim 25, wherein the three or less pre-order risk checks performed by the low latency system comprise a trade quantity check and a check on whether a value of the trade order is within limits.
30. The system of claim 1, wherein the low latency system comprises at least one router in communication with the at least one server of the low latency system.
31. The system of claim 1, wherein the low latency system modifies the trade order by changing data in the trade order that causes the one or more exchange servers to reject the trade order.
32. The system of claim 1, wherein the low latency system modifies the trade order by adding data to the trade order that causes the one or more exchange servers to reject the trade order.
33. The system of claim 1, wherein the low latency system is configured to stop transmitting modified trade orders in the event of many trade order failures.
34. The system of claim 56, wherein the non-trade order message is a type of control message that effectively increases a sequence number maintained by the one or more exchange servers as if the one or more exchange servers received the rejected trade order.
35. The system of claim 56, wherein the non-trade order message is a heartbeat message.
36. The system of claim 56, wherein the low latency system is further configured to receive a sequence number from the one or more exchange servers after transmitting the non-trade order message to the one or more exchange servers, and use the received sequence number to generate a reject message to be sent to the client trading engine.
37. The method of claim 13, wherein the low latency system modifies the trade order by changing data in the trade order that causes the one or more exchange servers to reject the trade order.
38. The method of claim 13, wherein the low latency system modifies the trade order by adding data to the trade order that causes the one or more exchange servers to reject the trade order.
39. The method of claim 68, wherein the non-trade order message is a type of control message that effectively increases a sequence number maintained by the one or more exchange servers as if the one or more exchange servers received the rejected trade order.
40. The method of claim 68, wherein the non-trade order message is a heartbeat message.
41. The method of claim 68, further comprising:
receiving, by the low latency system, a sequence number from the one or more exchange servers after transmitting the non-trade order message to the one or more exchange servers; and
sending, by the low latency system, to the client trading engine, a reject message that has a sequence number generated using the sequence number received from the one or more exchange servers.
42. The method of claim 13, further comprising performing the post-order risk checking on the trade order by a post-order risk checking data center that is in communication with the low latency system via a communications network, wherein the post-order risk checks are performed after the low latency system transmits the trade orders to the one or more exchange servers.
43. The system of claim 30, wherein the low latency system comprises at least one layer 2 switch connected to the at least one router and the at least one server of the low latency system.
44. The system of claim 1, wherein the low latency system communicates with the post-order risk checking data center and is configured to send the trade order to the post-order risk checking data center contemporaneously or nearly contemporaneously with sending the trade order to the one or more exchange servers.
45. The system of claim 44, wherein the trade order sent to the one or more exchange servers commences the post-order risk checking.
46. The system of claim 1, wherein the low latency system communicates with the post-order risk checking data center and is configured to receive an acknowledgement of order report from the one or more exchange servers and to send the report to the post-order risk checking data center.
47. The system of claim 1, wherein the post-order risk checking data center communicates with the one or more exchange servers and is configured to receive an acknowledgement of order report from the one or more exchange servers to commence the post-order risk checking.
48. The system of claim 1, wherein the post-order risk checks are performed on the trade order after the low latency system transmits the trade order to the one or more exchange servers.
49. The system of claim 1, wherein the post-order risk checks comprise a market impact analysis.
50. The method of claim 42, further comprising sending the trade order from the low latency system to the post-order risk checking data center contemporaneously or nearly contemporaneously with sending the trade order from the low latency system to the one or more exchange servers.
51. The method of claim 50, wherein the trade order sent to the one or more exchange servers commences the post-order risk checking.
52. The method of claim 42, further comprising receiving by the low latency system an acknowledgement of order report from the one or more exchange servers and sending the report from the low latency system to the post-order risk checking data center.
53. The method of claim 42, further comprising receiving by the post-order risk checking data center an acknowledgement of order report from the one or more exchange servers to commence the post-order risk checking.
54. The method of claim 42, wherein the post-order risk checks are performed on the trade order after the low latency system transmits the trade order to the one or more exchange servers.
55. The method of claim 42, wherein the post-order risk checks comprise a market impact analysis.
56. A low-latency system for receiving electronic trade orders from a computer-implemented client trading engine and transmitting the electronic trade orders to one or more exchange servers of an exchange where the trade orders are to be executed, the system comprising:
a low latency system that communicates with the client trading engine and that communicates with the one or more exchange servers, wherein the low latency system comprises at least one server, and wherein the low latency system is configured to:
receive a trade order from the client trading engine;
perform one or more pre-order risk checks on the trade order, wherein the one or more pre-order risk checks are different from and computationally less expensive than post-order risk checks performed on the trade order by a post-order risk checking data center that comprises at least one server;
transmit the trade order to the one or more exchange servers when the trade order passes the one or more pre-order risk checks, wherein the one or more exchange servers implement a message protocol and maintain a message sequence number; and
maintain a single protocol session between the client trading engine and the one or more exchange servers such that consistent message sequence numbering is maintained between the client trading engine and the one or more exchange servers in the event the trade order fails the one or more pre-order risk checks, wherein configuration of the low latency system to maintain consistent message sequence numbering upon pre-order risk check failure comprises sending a non-trade order message to the one or more exchange servers.
57. The system of claim 56, wherein the low latency system communicates with the client trading engine using an exchange communication protocol that is the same as the exchange communication protocol used by the low latency system to communicate with the one or more exchange servers.
58. The system of claim 56, wherein the one or more pre-order risk checks performed by the low latency system comprises three or less pre-order risk checks.
59. The system of claim 58, wherein the three or less pre-order risk checks performed by the low latency system comprise only one pre-order risk check.
60. The system of claim 59, wherein the only one pre-order risk check is a trade quantity check.
61. The system of claim 58, wherein the three or less pre-order risk checks performed by the low latency system comprise a trade quantity check and a check on the number of trade orders submitted by the client trading engine in a period of time.
62. The system of claim 58, wherein the three or less pre-order risk checks performed by the low latency system comprise a trade quantity check and a check on whether a value of the trade order is within limits.
63. The system of claim 56, wherein the low latency system communicates with the post-order risk checking data center and is configured to send the trade order to the post-order risk checking data center contemporaneously or nearly contemporaneously with sending the trade order to the one or more exchange servers.
64. The system of claim 63, wherein the trade order sent to the one or more exchange servers commences the post-order risk checking.
65. The system of claim 56, wherein the low latency system communicates with the post-order risk checking data center and is configured to receive an acknowledgement of order report from the one or more exchange servers and to send the report to the post-order risk checking data center.
66. The system of claim 56, wherein the post-order risk checking data center communicates with the one or more exchange servers and is configured to receive an acknowledgement of order report from the one or more exchange servers to commence the post-order risk checking.
67. The system of claim 56, wherein the post-order risk checks are performed on the trade order after the low latency system transmits the trade order to the one or more exchange servers.
68. A computer-implemented method for transmitting electronic trade orders from a computer-implemented client trading engine to one or more exchange servers of an exchange where the trade orders are to be executed, the method comprising:
receiving at a low latency system a trade order transmitted by the client trading engine, wherein the low latency system comprises at least one server;
performing, by the low latency system, one or more pre-order risk checks on the trade order, wherein the one or more pre-order risk checks are different from and computationally less expensive than post-order risk checks performed on the trade order by a post-order risk checking data center that comprises at least one server;
when the trade order passes the one or more pre-order risk checks, transmitting, by the low latency system, the trade order to the one or more exchange servers, wherein the one or more exchange servers implement a message protocol and maintain a message sequence number; and
maintaining, by the low latency system, a single protocol session between the client trading engine and the one or more exchange servers such that consistent message sequence numbering is maintained between the client trading engine and the one or more exchange servers in the event the trade order fails the one or more pre-order risk checks, wherein maintaining consistent message sequence numbering comprises sending, by the low-latency system, a non-trade order message to the one or more exchange servers.
69. The method of claim 68, wherein the low latency system communicates with the client trading engine using an exchange communication protocol that is the same as the exchange communication protocol used by the low latency system to communicate with the one or more exchange servers.
70. The method of claim 68, further comprising performing the post-order risk checking on the trade order by a post-order risk checking data center that is in communication with the low latency system via a communications network, wherein the post-order risk checks are performed after the low latency system transmits the trade orders to the one or more exchange servers.
71. The method of claim 70, further comprising sending the trade order from the low latency system to the post-order risk checking data center contemporaneously or nearly contemporaneously with sending the trade order from the low latency system to the one or more exchange servers.
72. The method of claim 71, wherein the trade order sent to the one or more exchange servers commences the post-order risk checking.
73. The method of claim 70, further comprising receiving by the low latency system an acknowledgement of order report from the one or more exchange servers and sending the report from the low latency system to the post-order risk checking data center.
74. The method of claim 70, further comprising receiving by the post-order risk checking data center an acknowledgement of order report from the one or more exchange servers to commence the post-order risk checking.
75. The method of claim 70, wherein the post-order risk checks are performed on the trade order after the low latency system transmits the trade order to the one or more exchange servers.
US11/801,957 2007-05-11 2007-05-11 Low latency trading system Active 2028-01-31 US7685044B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US11/801,957 US7685044B1 (en) 2007-05-11 2007-05-11 Low latency trading system
PCT/US2008/000606 WO2008140631A1 (en) 2007-05-11 2008-01-17 Low latency trading system
JP2010507382A JP4610677B2 (en) 2007-05-11 2008-01-17 Low latency trading system
EP08724568A EP2153394A4 (en) 2007-05-11 2008-01-17 Low latency trading system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/801,957 US7685044B1 (en) 2007-05-11 2007-05-11 Low latency trading system

Publications (2)

Publication Number Publication Date
US7685044B1 US7685044B1 (en) 2010-03-23
US20100094743A1 true US20100094743A1 (en) 2010-04-15

Family

ID=40002528

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/801,957 Active 2028-01-31 US7685044B1 (en) 2007-05-11 2007-05-11 Low latency trading system

Country Status (4)

Country Link
US (1) US7685044B1 (en)
EP (1) EP2153394A4 (en)
JP (1) JP4610677B2 (en)
WO (1) WO2008140631A1 (en)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110161220A1 (en) * 2009-10-28 2011-06-30 Ften, Inc. Method and System for Monitoring Financial Market Trading Activity to Establish and Track Aggregate Trading Limits Based on Trading Sub-Limits Assigned by Prime Brokers for Particular Trading Entities
US20110166982A1 (en) * 2003-10-14 2011-07-07 Ften, Inc. Intraday risk management data cloud computing system capable of controlling execution of orders
US20110225081A1 (en) * 2010-02-02 2011-09-15 Ften, Inc. Method and system for canceling orders for financial articles of trades
US20110320336A1 (en) * 2010-06-29 2011-12-29 Omx Technology Ab System and a method for generating market input
US20120166327A1 (en) * 2010-12-22 2012-06-28 HyannisPort Research Data capture and real time risk controls for electronic markets
WO2012151490A1 (en) * 2011-05-05 2012-11-08 Virtu Financial Services Llc Zero-latency risk-management system and method
WO2014043420A1 (en) * 2012-09-12 2014-03-20 Trudeau, Matthew Transmission latency leveling apparatuses, methods and systems
US8788410B1 (en) 2009-05-29 2014-07-22 Jpmorgan Chase Bank, N.A. System and method for risk evaluation in EFT transactions
US8832211B1 (en) * 2010-11-24 2014-09-09 Nyse Arca Llc Messaging methods and apparatus for use with an exchange system and/or client devices
US20150006354A1 (en) * 2007-06-01 2015-01-01 Ften, Inc. Methods and systems for monitoring market data to identify user defined market conditions
US20150106248A1 (en) * 2013-10-16 2015-04-16 The Nasdaq Omx Group, Inc. Customizable Macro-Based Order Entry Protocol and System
US9280791B2 (en) * 2012-12-20 2016-03-08 Trading Technologies International, Inc. Systems and methods for routing trade orders based on exchange latency
US9501795B1 (en) 2010-08-23 2016-11-22 Seth Gregory Friedman Validating an electronic order transmitted over a network between a client server and an exchange server with a hardware device
US9792649B1 (en) 2010-11-24 2017-10-17 Nyse Arca Llc Methods and apparatus for performing risk checking
US10346910B2 (en) 2014-04-16 2019-07-09 Iex Group, Inc. Systems and methods for providing up-to-date information for transactions
US10565646B2 (en) * 2015-08-05 2020-02-18 Trading Technologies International, Inc. Methods and apparatus to internalize trade orders
US10868707B1 (en) 2019-09-16 2020-12-15 Liquid-Markets-Holdings, Incorporated Zero-latency message processing with validity checks
US10880211B2 (en) 2019-05-06 2020-12-29 Seth Gregory Friedman Transaction encoding and verification by way of data-link layer fields
US11710181B1 (en) 2020-01-10 2023-07-25 Cboe Exchange, Inc. Exchange risk controls
US11935120B2 (en) 2020-06-08 2024-03-19 Liquid-Markets GmbH Hardware-based transaction exchange

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356498B2 (en) * 1999-12-30 2008-04-08 Chicago Board Options Exchange, Incorporated Automated trading exchange system having integrated quote risk monitoring and integrated quote modification services
US20230214924A1 (en) * 2008-01-09 2023-07-06 Bgc Partners, Inc. Automatic financial instrument transaction system
US20090182658A1 (en) * 2008-01-14 2009-07-16 Lutnick Howard W Automatic financial instrument transaction system
US9317537B2 (en) * 2009-09-25 2016-04-19 Adnan Fakeih Database and method for evaluating data therefrom
US9785683B2 (en) 2009-09-25 2017-10-10 Adnan Fakeih Database and method for evaluating data therefrom
US10263888B2 (en) 2010-09-30 2019-04-16 Trading Technologies International, Inc. Sticky order routers
AU2011200733B2 (en) * 2011-02-21 2015-08-13 Zomojo Pty Ltd A market access system and method
JP5928976B2 (en) * 2011-11-10 2016-06-01 新日鉄住金ソリューションズ株式会社 Survival monitoring system
US10453133B1 (en) * 2013-10-11 2019-10-22 Chicago Mercantile Exchange Inc. Computer system and a computerized method for central counterparty limit management
US9781027B1 (en) * 2014-04-06 2017-10-03 Parallel Machines Ltd. Systems and methods to communicate with external destinations via a memory network
US10296973B2 (en) * 2014-07-23 2019-05-21 Fortinet, Inc. Financial information exchange (FIX) protocol based load balancing
US10621666B2 (en) * 2014-09-17 2020-04-14 Iex Group, Inc. System and method for facilitation cross orders
US10147137B2 (en) * 2014-10-16 2018-12-04 Software Ag Systems and/or methods for automatic ordering of pre-trade order evaluations
US11108681B2 (en) 2016-05-20 2021-08-31 Arista Networks, Inc. Systems for transmitting a data stream and methods for transmitting a data stream
US11295382B2 (en) * 2017-09-12 2022-04-05 Mark Gimple System and method for global trading exchange
CN110460540B (en) * 2019-06-28 2023-03-14 杨涛 Low-delay high-frequency transaction system and method
US11727421B1 (en) 2020-09-21 2023-08-15 Cboe Exchange, Inc System and method for implementing a system execution delay in response to liquidity removal for resting orders
TWI769534B (en) * 2020-09-28 2022-07-01 凱基證券股份有限公司 Low-latency and real-time risk control system and method for securities trading
CN112613860B (en) * 2020-12-17 2022-08-09 东方证券股份有限公司 Deep traffic institute TGW-based cluster disk reporting system
US11915315B1 (en) 2022-08-10 2024-02-27 Bgc Partners, L.P. Method, apparatus and system for time stamping and sequencing data items

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020156719A1 (en) * 2000-11-17 2002-10-24 Market Axess Inc., Method and apparatus for trading bonds
US20050119965A1 (en) * 2000-05-25 2005-06-02 Omar Kathwari Solutions server
US20060015436A1 (en) * 2002-11-13 2006-01-19 Trading Technologies International, Inc. System and method for facilitating trading of multiple tradeable objects in an electronic trading environment
US20060085317A1 (en) * 2004-10-15 2006-04-20 Allen Gregory A Computer-based system and method for executing orders
US20060259417A1 (en) * 1999-10-14 2006-11-16 International Specialists, Inc., Automated trading system in an electronic trading exchange
US20070025351A1 (en) * 2005-06-27 2007-02-01 Merrill Lynch & Co., Inc., A Delaware Corporation System and method for low latency market data
US20080126832A1 (en) * 2006-08-04 2008-05-29 Tudor Morosan Failover system and method
US20080270283A1 (en) * 2003-12-31 2008-10-30 Intercontinental Exchange Electronic trading data integration and protection system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864827A (en) * 1997-06-27 1999-01-26 Belzberg Financial Markets & News International Inc. System and method for providing an information gateway
JP2001016274A (en) * 1999-04-30 2001-01-19 Hitachi Ltd Inter-system linkage system and method
JP3962211B2 (en) * 2000-12-27 2007-08-22 株式会社大和証券グループ本社 Data check device
JP4615247B2 (en) * 2004-05-07 2011-01-19 株式会社日立製作所 Computer system

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259417A1 (en) * 1999-10-14 2006-11-16 International Specialists, Inc., Automated trading system in an electronic trading exchange
US20050119965A1 (en) * 2000-05-25 2005-06-02 Omar Kathwari Solutions server
US7490061B2 (en) * 2000-05-25 2009-02-10 E*Trade Financial Corporation Solutions server
US20020156719A1 (en) * 2000-11-17 2002-10-24 Market Axess Inc., Method and apparatus for trading bonds
US20060015436A1 (en) * 2002-11-13 2006-01-19 Trading Technologies International, Inc. System and method for facilitating trading of multiple tradeable objects in an electronic trading environment
US20080270283A1 (en) * 2003-12-31 2008-10-30 Intercontinental Exchange Electronic trading data integration and protection system
US20060085317A1 (en) * 2004-10-15 2006-04-20 Allen Gregory A Computer-based system and method for executing orders
US20070025351A1 (en) * 2005-06-27 2007-02-01 Merrill Lynch & Co., Inc., A Delaware Corporation System and method for low latency market data
US20080126832A1 (en) * 2006-08-04 2008-05-29 Tudor Morosan Failover system and method

Cited By (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110166982A1 (en) * 2003-10-14 2011-07-07 Ften, Inc. Intraday risk management data cloud computing system capable of controlling execution of orders
US11610265B2 (en) 2003-10-14 2023-03-21 Ften, Inc. Processing over alternate communication sessions between a source node and a destination node having different paths in a communications network
US10867349B2 (en) 2003-10-14 2020-12-15 Ften, Inc. Method and system for processing intraday risk parameters over a communications network
US8788396B2 (en) 2003-10-14 2014-07-22 Ften, Inc. Intraday risk management data cloud computing system capable of controlling execution of orders
US20150006354A1 (en) * 2007-06-01 2015-01-01 Ften, Inc. Methods and systems for monitoring market data to identify user defined market conditions
US10296974B2 (en) * 2007-06-01 2019-05-21 Ften, Inc. Methods and systems for monitoring market data to identify user defined market conditions
US8788410B1 (en) 2009-05-29 2014-07-22 Jpmorgan Chase Bank, N.A. System and method for risk evaluation in EFT transactions
US20110161220A1 (en) * 2009-10-28 2011-06-30 Ften, Inc. Method and System for Monitoring Financial Market Trading Activity to Establish and Track Aggregate Trading Limits Based on Trading Sub-Limits Assigned by Prime Brokers for Particular Trading Entities
US20110225081A1 (en) * 2010-02-02 2011-09-15 Ften, Inc. Method and system for canceling orders for financial articles of trades
US8386371B2 (en) * 2010-02-02 2013-02-26 Ften, Inc. Method and system for canceling orders for financial articles of trades
US20110320336A1 (en) * 2010-06-29 2011-12-29 Omx Technology Ab System and a method for generating market input
US10269071B1 (en) 2010-08-23 2019-04-23 Seth Gregory Friedman Distributed network packet processing
US11315182B2 (en) 2010-08-23 2022-04-26 Seth Gregory Friedman Validation engine with dual processing capacity
US9501795B1 (en) 2010-08-23 2016-11-22 Seth Gregory Friedman Validating an electronic order transmitted over a network between a client server and an exchange server with a hardware device
US9792649B1 (en) 2010-11-24 2017-10-17 Nyse Arca Llc Methods and apparatus for performing risk checking
US10439833B1 (en) 2010-11-24 2019-10-08 Nyse Arca Llc Methods and apparatus for using multicast messaging in a system for implementing transactions
US9197428B1 (en) 2010-11-24 2015-11-24 Nyse Arca Llc Methods and apparatus for requesting message gap fill requests and responding to message gap fill requests
US9760946B1 (en) 2010-11-24 2017-09-12 Nyse Arca Llc Methods and apparatus for detecting gaps in a sequence of messages, requesting missing messages and/or responding to requests for messages
US8832211B1 (en) * 2010-11-24 2014-09-09 Nyse Arca Llc Messaging methods and apparatus for use with an exchange system and/or client devices
US20170236203A1 (en) * 2010-12-22 2017-08-17 Hyannis Port Research, Inc. Data capture and real time risk controls for electronic markets
US10489857B2 (en) * 2010-12-22 2019-11-26 Hyannis Port Research, Inc. Data capture and real time risk controls for electronic markets
US20120166327A1 (en) * 2010-12-22 2012-06-28 HyannisPort Research Data capture and real time risk controls for electronic markets
WO2012088436A3 (en) * 2010-12-22 2013-07-04 Amicangioli Anthony D Data capture and real time risk controls for electronic markets
WO2012088436A2 (en) 2010-12-22 2012-06-28 Amicangioli Anthony D Data capture and real time risk controls for electronic markets
US9607337B2 (en) * 2010-12-22 2017-03-28 Hyannisport Research, Inc. Data capture and real time risk controls for electronic markets
US20120284158A1 (en) * 2011-05-05 2012-11-08 Madison Tyler, LLC. Zero-latency risk-management system and method
WO2012151490A1 (en) * 2011-05-05 2012-11-08 Virtu Financial Services Llc Zero-latency risk-management system and method
US11568485B2 (en) * 2012-09-12 2023-01-31 Iex Group, Inc. Transmission latency leveling apparatuses, methods and systems
WO2014043420A1 (en) * 2012-09-12 2014-03-20 Trudeau, Matthew Transmission latency leveling apparatuses, methods and systems
JP2015532986A (en) * 2012-09-12 2015-11-16 アイイーエックス グループ,インコーポレーテッド Communication latency leveling apparatus, method, and system
US10467694B2 (en) * 2012-09-12 2019-11-05 Iex Group, Inc. Transmission latency leveling apparatuses, methods and systems
US10169818B2 (en) 2012-12-20 2019-01-01 Trading Technologies International, Inc. Systems and methods for routing trade orders based on exchange latency
US9280791B2 (en) * 2012-12-20 2016-03-08 Trading Technologies International, Inc. Systems and methods for routing trade orders based on exchange latency
US10896466B2 (en) 2012-12-20 2021-01-19 Trading Technologies International, Inc. Systems and methods for routing trade orders based on exchange latency
US11710183B2 (en) 2012-12-20 2023-07-25 Trading Technologies International, Inc. Systems and methods for routing trade orders based on exchange latency
US11562427B2 (en) 2013-10-16 2023-01-24 Nasdaq, Inc. Customizable macro-based order entry protocol and system
US20150106248A1 (en) * 2013-10-16 2015-04-16 The Nasdaq Omx Group, Inc. Customizable Macro-Based Order Entry Protocol and System
WO2015057149A1 (en) * 2013-10-16 2015-04-23 The Nasdaq Omx Group, Inc. Customizable macro-based order entry protocol and system
US10607289B2 (en) 2013-10-16 2020-03-31 Nasdaq, Inc. Customizable macro-based order entry protocol and system
US9123076B2 (en) * 2013-10-16 2015-09-01 Nasdaq OMX Group, Inc. Customizable macro-based order entry protocol and system
JP6017097B1 (en) * 2013-10-16 2016-10-26 ナスダック, インコーポレイテッドNasdaq, Inc. Customizable, macro-based order entry protocol and system
EP3058537A4 (en) * 2013-10-16 2017-01-18 Nasdaq, Inc. Customizable macro-based order entry protocol and system
US10346910B2 (en) 2014-04-16 2019-07-09 Iex Group, Inc. Systems and methods for providing up-to-date information for transactions
US11631134B2 (en) 2015-08-05 2023-04-18 Trading Technologies International, Inc. Methods and apparatus to internalize trade orders
US11270378B2 (en) 2015-08-05 2022-03-08 Trading Technologies International, Inc. Methods and apparatus to internalize trade orders
US10565646B2 (en) * 2015-08-05 2020-02-18 Trading Technologies International, Inc. Methods and apparatus to internalize trade orders
US11431628B2 (en) 2019-05-06 2022-08-30 Seth Gregory Friedman Line-speed messaging and validation using data-link layer fields
US10880211B2 (en) 2019-05-06 2020-12-29 Seth Gregory Friedman Transaction encoding and verification by way of data-link layer fields
US11743184B2 (en) 2019-05-06 2023-08-29 Seth Gregory Friedman Message validation using data-link layer fields
US11349700B2 (en) 2019-09-16 2022-05-31 Liquid-Markets-Holdings, Incorporated Encapsulation of payload content into message frames
US10868707B1 (en) 2019-09-16 2020-12-15 Liquid-Markets-Holdings, Incorporated Zero-latency message processing with validity checks
US11637917B2 (en) 2019-09-16 2023-04-25 Liquid-Markets-Holdings, Incorporated Processing of payload content with parallel validation
US11710181B1 (en) 2020-01-10 2023-07-25 Cboe Exchange, Inc. Exchange risk controls
US11908008B1 (en) 2020-01-10 2024-02-20 Cboe Exchange, Inc. Exchange risk controls
US11935120B2 (en) 2020-06-08 2024-03-19 Liquid-Markets GmbH Hardware-based transaction exchange

Also Published As

Publication number Publication date
JP2010527064A (en) 2010-08-05
US7685044B1 (en) 2010-03-23
JP4610677B2 (en) 2011-01-12
EP2153394A1 (en) 2010-02-17
WO2008140631A1 (en) 2008-11-20
EP2153394A4 (en) 2011-03-02

Similar Documents

Publication Publication Date Title
US7685044B1 (en) Low latency trading system
EP3406052B1 (en) Message processing protocol which mitigates manipulative messaging behavior
US10439833B1 (en) Methods and apparatus for using multicast messaging in a system for implementing transactions
US10504183B2 (en) Methods, apparatus, and systems for processing data transactions
US11393033B2 (en) System and method for error detection and recovery in an electronic trading system
JP2010527064A5 (en)
US20150039489A1 (en) Electronic Trading Platform and Method Thereof
US20090313160A1 (en) Hardware accelerated exchange order routing appliance
EP2639758B1 (en) Method and system for improving equity trade order acknowledgement times
JP6193492B2 (en) Financial product transaction system and financial product transaction control method
US20220261900A1 (en) Methods and Systems for Joining Market Making at Low Latency
EP4193657A1 (en) Local and global quality of service shaper on ingress in a distributed system
JP2023539430A (en) Electronic trading system and method based on point-to-point mesh architecture
US11049181B2 (en) Data feed without quantities
US20070244791A1 (en) System and method for linked execution of securities transactions
US10467696B1 (en) Timing mechanisms to enhance the security of online networks
AU2018201412A1 (en) Data feed without quantities

Legal Events

Date Code Title Description
AS Assignment

Owner name: MORGAN STANLEY,NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ROBERTSON, CHRIS;BRUNO, RICK;LAVANYAKUL, SARANYU;REEL/FRAME:019374/0553

Effective date: 20070510

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552)

Year of fee payment: 8

AS Assignment

Owner name: MORGAN STANLEY SERVICES GROUP INC., NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MORGAN STANLEY;REEL/FRAME:047186/0648

Effective date: 20180928

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12