The Report in Financial Technology class – FRE 6151 March 9, 2009
Review of RTS’ Algorithmic Trading Platform, RTD Tango
RTD Tango is high-performance, event based algorithmic trading system that allows users to quickly and easily code, test and deploy multiple trading strategies simultaneously. RTD tango is so helpful in the modern technology world that a broad range of industry professionals use it as platform to handle their trading strategies.
Tango is designed to quickly automate trading strategies which allows traders to easily test their trading models before putting them into action. It also can help users to test their models with real data before deploying them in the market. RTD Tango offers direct market access to over 100 exchanges worldwide via high-performance RTS Proximity Services. For example, RTD Tango has been successfully deployed in Dubai and Middle East since 2006 for market making, arbitrage and hedging (Leslie, 2009).
RTD tango is a client-server-based application and combines with RTD's infrastructure. Therefore, it can minimize internal latency for market data. Also the model can help users to easily test multiple strategies at the same time which decrease users' time to market. For users, the most attractive aspect is that RTD Tango is very easy to use, because it removes complexity by enabling users to build their own framework without in-depth programming knowledge. Steffen Gurmuenden, CEO of RTS Real time systems, said that they designed this technology to not only be fast and efficient but truly easy to use. It tests everything from the most basic trading strategy to the most complex side with very straightforward and easy performance technology (AutomatedTrader, 2009).
RTD Tango can combine with back testing to reach quick strategy development. The users can test their trading strategies by simulating transactions through real market data to decide which method can optimize performance.
RTS uses a client/server architecture. The central server is called the communication server (comm. server) and it can be hosted by either the client or by RTS in one of their data centers. RTS currently has data centers in New York, Chicago, Frankfurt, and Singapore. For certain exchanges, such as the Chicago Mercantile Exchange (CME) and the Intercontinental Exchange (ICE) the servers are co-located which means they are placed in the same room as the exchange’s matching engine. This eliminates line latency as the servers are directly connected to the exchange versus having to travel some distance to connect.
The comm. server acts as a middleware layer to manage the flow of messages to and from the exchanges, the databases and the graphical user interfaces (GUI’s or front ends). The calculations that are necessary are not done on the user’s computer and then sent to the server. Instead, they are completed on the server itself, which greatly reduces latency. The Tango GUI merely acts as a window into the server by which the user can create and manage their trading strategies.
There are four databases that are utilized. The first is the user database. It contains user data such as usernames and passwords, and also saved volatility curves and other unique data for each particular user. Then there is the Market Data database. As each piece of data is received from the exchange, the comm. server stores it into this database and retrieves it when any of the GUI’s demands it. The third and fourth databases are related. One is the Orders and Quotes database which is information the user sends to exchange and the other is the Trades and Positions database which stores information the exchange sends to the user.
Tango’s GUI is a simple to understand interface that allows the user to easily create and manage their trading strategies.
On the left hand side all the strategies are listed that the user created as well as the state of each strategy. There are columns to the right hand side of the state. In this area the user can post variables that they will need to view to manage their strategies regardless of which strategy is selected.
In the top pane in the middle, there is another view of variables that the user can post. This is called the detailed expressions window and it only shows the specific variable of the selected strategy. Below that pane in the middle is the user defined parameters window. Here, all the parameters for the selected strategy that the user created are listed and can be changed. There are two types of parameters, fixed and changeable. Fixed parameters cannot be changed while a strategy is on, while changeable parameters can be changed on the fly. Examples of each would be the instrument or account for fixed parameters and the spread or stop for changeable parameters.
On the right hand side, in the upper window, is a message log window that displays any major events occurring on either the GUI or the server. Below that there is the executed trades window. This window shows what strategy did a trade, in what instrument, how many, at what price, for which account and at what time.
Below that there is the Working Orders window. It shows any working orders that are live in the marketplace presently. Again, it is broken down by the strategy, instrument, account, price and quantity.
Finally, on the bottom right hand side is the market depth window. It presents the instruments that are involved in the selected trading strategy and shows the last traded price and the current market depth for each instrument. In addition, it presents the overall net position and the profit and loss for each instrument.
The heart of the system is the Rule Editor where the actual coding takes place.
Tango provides a blank template which when filled out, is everything needed to complete the algorithm. The top two lines are where the user creates the user defined parameters, fixed and changeable and declares what type they are, a number a Boolean, an instrument, a time of day, a time duration or a string.
The next section is the variable definitions. This is where the user calls pre-compiled functions to do whatever calculations need to be completed. Tango has over 200 functions that a user can use. For example, for the last traded price of an instrument,
a user would name the variable and call the function like so:
var Last := mLastPrice(Instrument);
The user calls these functions with the user defined inputs or variables derived from previous function calls as arguments. Then they can do whichever calculations need to be done. In this area, whenever a new piece of data comes from the exchange everything is re-calculated. However, that can be inefficient for certain calculations that only need to be computed when a certain piece of data changes. This is called event based processing and the user can utilize this tool in the Scripts section of the code.
There is also an Off Condition where whenever it is evaluated to be true, the strategy automatically turns off. The user can input risk controls or easily eliminate fat finger errors in this section.
The most important section is the Order Agents. This section determines when to buy or when to sell, for which instrument and account, how many and at what price. Tango provides another template here for easy entry.
Finally, in order to manage the strategy, the user needs to post whichever variable they will need to the front end. This is completed in the Overview Expressions and Detailed Expressions sections. The Overview Expressions are printed on the left hand side of the GUI, just to the right of the state of each strategy in the columns. These can be seen at all times. The Detailed Expressions are published in the Detailed Expressions window and are only seen for the selected strategy.
Using these templates, an experienced user can create an algorithm and test it in the market in hours. This is a tremendous advantage to traditional coding which can take months. The user can quickly find out if their strategy is feasible or profitable.
Here is an example of a filled out rule.
In order to do arbitrage, or other high frequency trading strategies, the system must have very low latency. A user can access the server logs to determine the internal latency of the system (how fast it reacts) as well as the latency to and from an exchange. Below is the actual log of the Tango system from a Natural Gas arbitrage between the CME and the ICE.
Internal Latency (186 microseconds)
22:07:18.246518 I: Position (exec occured): 'CME NG 0904' in "H/15070": L=0@0, S=922.4|7#922.4|7
22:07:18.246704 I: Add=>RTD[858]: 'IPE HENRY-M 0904' +312.4|0052#312.4|0052 (ICE_Hedge_Buy)
Roundtrip times
CME (8 milliseconds)
22:04:14.768408 I: Chg=>RTD[850]: OID 134884 'CME NG 0905' +762.4|8#762.4|8 (Nymex_Bid)
22:04:14.776010 I: RTD=>Chg[850]: OID 134884 'CME NG 0905' +762.4|8#762.4|8 (Nymex_Bid) {active T 8 M 0@0}
ICE (14.5 milliseconds)
22:04:14.795034 I: Chg=>RTD[851]: OID 134886 'IPE HENRY-M 0905' +532.4|0052#532.4|0052 (Ice_Bid)
22:04:14.809752 I: RTD=>Chg[851]: OID 134886 'IPE HENRY-M 0905' +532.4|0052#532.4|0052 (Ice_Bid) {active T 2500 M 0@0}
An internal latency of under 1ms is considered extremely fast and the log actually shows it to be 186 microseconds in this example. When dealing with roundtrip times, there is a factor that cannot be controlled by any trading system and that is how long it takes for the exchange to process the information and send it back. However, that should be equal for all participants. As can be seen from the above example, the roundtrip time for the CME is about 8ms and for the ICE, 14.5 ms.
The financial technology can make a company much more efficient and cost saving. Tango, the cutting-edge algorithmic trading system, will provide this kind of advantage when traders execute trades. Here is a good example to show the benefit to use the financial technology. Let us compare a company using the Tango system to another using C++. When the analytical report indicates there is a market arbitrage opportunity between two exchange markets, it might take couple months for company’s developers to program their own system to algorithmically trade. A C++ programmer would have to write up a program that knows how to handle things form the market data, to how the route orders, to when to buy and sell and then have databases to store all the information and code to make that info available. Then they would need a way to access which market or markets they want to trade. In addition, they would most likely be using a third party API that has exchange connectivity. So then the person would have to write a separate program that links their first program to that API.
Moreover, this can take a long time as well because most API’s are program specific. This means that if it was written in C++ then the linking program has to be written in C++. Then the programmer has to figure out how each message is formatted for everything that you send and receive. By doing this task, it may take couple of months, include a number of highly paid employees and by then the market trend may change. The company may lose the trading opportunity and also lose the potential profit. By using Tango, one may easily code the trading strategy in one day and put the software into testing/production. Another advantage is the cost savings for the company. For most companies, it is not cheap to formalize a software development team as the labor cost for the financial industry is not cheap. It may cost a company significantly to create a system like Tango. The profit from the trading sometimes may not be enough to cover the cost. Therefore, the third party technology will have the cost advantage. It also will provide the company another revenue source by using this kind of arbitrage trades mentioned in the last section. Finally, the technology efficiency also means the company needs fewer people to operate. Each trader can trade more strategies by doing it programmatically versus manually and all they would need is one developer versus having a development team that may number 20-30 people in the system. The cost of maintenance and management also can be a financial burden for the company, especially at this time with the financial crisis.
To sum up, the project illustrated the importance of using financial technology in the modern financial world. The low efficiency will put a company in the risk position and also increase the operation risk. The lower the latency of the trading system, the higher the profits will be obtained in the arbitrage. By doing this risk free arbitrage, the company will generate a great return just by using the advanced technology. The time to market efficiency would be also important for the traders. Getting the real time market data, and putting the orders in the market are all done by technology. Therefore, how to build an efficient way to get your idea into production is critical. The next question may be how flexible it is and how easy to use. Tango provides all the solutions for these questions. Tango is a high-performance, event-based algorithmic trading system that provide to users a great level of flexibility and ability to trade whatever strategies they can think of. In today’s financial market, one of the keys to success is applying the technology and using advanced systems in order to obtain the market advantage.
References:
Leslie, Realtime Systems Group to Offer Direct Market Access to NASDAQ Dubai, 1/29/2009, http://www.wallstreetandtech.com/trading-technology/showArticle.jhtml?articleID=212903505
AutomatedTrader, RTS Announces RTD Tango Backtester, 3/8/2009, http://www.automatedtrader.net/algo-trading-news-626.xhtm
http://www.advancedtrading.com/showArticle.jhtml?articleID=213000059
http://www.rtsgroup.net/fileadmin/mediapool/PDF/Download_Center/RTDTango.pdf





