While using algorithmic trading, traders trust their hard-earned money to the trading software they use. The right piece of computer software is very important to ensure effective and accurate execution of the trade orders. Faulty software, or one without the required features, may lead to huge losses. This article looks at key things to consider for picking the right software for algorithmic trading. (For more, see: "Basics of Algorithmic Trading: Concepts and Examples.")
A Quick Primer on Algorithmic Trading
An algorithm is defined as a specific set of step-by-step instructions to complete a particular task. Be it the simple-yet-addictive computer game like Pac-Man or a spreadsheet that offers huge number of functions, each program follows a specific set of instructions based on an underlying algorithm.
Algorithmic trading is the process of using a computer program that follows a defined set of instructions for placing a trade order. The aim of the algorithmic trading program is to dynamically identify profitable opportunities and place the trades in order to generate profits at a speed and frequency that is impossible to match by a human trader. Given the advantages of higher accuracy and lightning-fast execution speed, trading activities based on computer algorithms have gained tremendous popularity. (For more, see "The Pros and Cons of Automated Trading Systems.")
Who Uses Algorithmic Trading Software?
Algorithmic trading is dominated by large trading firms, such as hedge funds, investment banks and proprietary trading firms. Given the abundant resource availability due to their large size, such firms usually build their own proprietary trading software, including large trading systems with dedicated data centers and support staff.
At an individual level, experienced proprietary traders and quants use algorithmic trading. Proprietary traders, who are less tech-savvy, may purchase readymade trading software for their algorithmic trading needs. The software is either offered by their brokers or purchased from third-party providers. Quants have a good knowledge of both trading and computer programming, and they develop trading software on their own. (For more, see "Quants: What They Do and How They've Evolved.")
Algorithmic Trading Software: Build or Buy?
There are two ways to access algorithmic trading software: build or buy.
Purchasing ready-made software offers quick and timely access, while building your own allows full flexibility to customize it to your needs. The automated trading software is often costly to purchase and may be full of loopholes, which, if ignored, may lead to losses. The high cost of the software may also eat into the realistic profit potential from your algorithmic trading venture. On the other hand, building algorithmic trading software on your own takes time, effort and a deep knowledge, and it still may not be foolproof.
The Key Features of Algorithmic Trading Software
The risk involved in automatic trading is high, which can lead to large losses. Regardless of whether you decide to buy or build, it is important to be familiar with the basic features needed.
Availability of Market and Company Data. All trading algorithms are designed to act on real-time market data and price quotes. A few programs are also customized to account for company fundamentals data like EPS and P/E ratios. Any algorithmic trading software should have a real-time market data feed, as well as a company data feed. It should be available as a build-in into the system or should have a provision to easily integrate from alternate sources.
Connectivity to Various Markets. Traders looking to work across multiple markets should note that each exchange might provide its data feed in a different format, like TCP/IP, Multicast or a FIX. Your software should be able to accept feeds of different formats. Another option is to go with third-party data vendors like Bloomberg and Reuters, which aggregate market data from different exchanges and provide it in a uniform format to end clients. The algorithmic trading software should be able to process these aggregated feeds as needed.
Latency. This is the most important factor for algo-trading. Latency is the time-delay introduced in the movement of data points from one application to the other. Consider the following sequence of events. It takes 0.2 seconds for a price quote to come from the exchange to your software vendor’s data center (DC), 0.3 seconds from the data center to reach your trading screen, 0.1 seconds for your trading software to process this received quote, 0.3 seconds for it to analyze and place a trade, 0.2 seconds for your trade order to reach your broker, 0.3 seconds for your broker to route your order to the exchange.
Total time elapsed = 0.2 + 0.3 + 0.1 + 0.3 + 0.2 + 0.3 = Total 1.4 seconds.
In today’s dynamic trading world, the original price quote would have changed multiple times within this 1.4 second period. This delay could make or break your algorithmic trading venture. One needs to keep this latency to the lowest possible level to ensure that you get the most up-to-date and accurate information without a time gap.
Latency has been reduced to microseconds, and every attempt should be made to keep it as low as possible in the trading system. A few measures include having direct connectivity to the exchange to get data faster by eliminating the vendor in between; by improving your trading algorithm so that it takes less than 0.1+0.3 = 0.4 seconds for analysis and decision making; or by eliminating the broker and directly sending trades to the exchange to save 0.2 seconds.
Configurability and Customization. Most algorithmic trading software offers standard built-in trade algorithms, such as those based on a crossover of the 50-day moving average (MA) with the 200-day MA. A trader may like to experiment by switching to the 20-day MA with the 100-day MA. Unless the software offers such customization of parameters, the trader may be constrained by the built-ins fixed functionality. Whether buying or building, the trading software should have a high degree of customization and configurability.
Functionality to Write Custom Programs. Matlab, Python, C++, JAVA, and Perl are the common programming languages used to write trading software. Most trading software sold by the third-party vendors offers the ability to write your own custom programs within it. This allows a trader to experiment and try any trading concept he or she develops. Software that offers coding in the programming language of your choice is obviously preferred. (For more, see "Trading Systems Coding.")
Backtesting Feature on Historical Data. Backtesting simulation involves testing a trading strategy on historical data. It assesses the strategy’s practicality and profitability on past data, certifying it for success (or failure or any needed changes). This mandatory feature also needs to be accompanied by an availability of historical data, on which the backtesting can be performed.
Integration With Trading Interface. Algorithmic trading software places trades automatically based on the occurrence of a desired criteria. The software should have the necessary connectivity to the broker(s) network for placing the trade or a direct connectivity to the exchange to send the trade orders.
Plug-n-Play Integration. A trader may be simultaneously using a Bloomberg terminal for his or her price analysis, a broker’s terminal for placing trades and a Matlab program for trend analysis. Depending upon individual needs, the algorithmic trading software should have easy plug-n-play integration and available APIs across such commonly used trading tools. This ensures scalability, as well as integration.
Platform-Independent Programming. A few programming languages need dedicated platforms. For example, certain versions of C++ may run only on select operating systems, while Perl may run across all operating systems. While building or buying trading software, preference should be given to trading software that is platform-independent and supports platform-independent languages. You never know how your trading will evolve few months down the line.
The Stuff Under the Hood. A common saying goes, “Even a monkey can click a button to place a trade.” Dependency on computers should not be blind. It is the trader who should understand what is going under the hood. While buying trading software, one should ask for and take time to go through the detailed documentation that shows the underlying logic of a particular algorithmic trading software. Avoid any trading software that is a complete black box and that claims to be a secret moneymaking machine.
While building software, be realistic about what you are implementing and be clear about the scenarios where it can fail. Thoroughly back-test it before putting it to use with real money.
Where to Begin?
All ready-made algorithmic trading software usually offers free limited functionality trial versions or limited trial periods with full functionality. Explore them in full during these trials before buying anything. Do not forget to go through the available documentation in detail.
If you plan to build your own system, a good free source to explore algorithmic trading is Quantopian. It offers an online platform for testing and developing algorithmic trading. Individuals can try and customize any existing algorithm or write a completely new one. The platform also offers built-in algorithmic trading software to be tested against market data.
The Bottom Line
Algorithmic trading software is costly to purchase and difficult to build on your own. Purchasing ready-made software offers quick and timely access, and building your own allows full flexibility to customize it to your needs. Before venturing into algorithmic trading with real money, you must fully understand the core functionality of the trading software. Failure to do so may result in big losses.