Picture by VICE

An upcoming feature in financial markets is algorithmic trading. Even though there are only a few big players in this market, the impact is huge. During 2009-2010, around 60% to 70% of U.S. trading was attributed to high-frequency-trading and algorithmic trading. This is an astonishing amount if you remember that there are only a few big players in this market. Let’s take a look into the world of algorithmic trading and high-frequency-trading.

Let us first define both algorithmic trading and high-frequency-trading. Both are trading strategies, mostly used by hedge funds and specialized trading firms, but also by investment banks. To give a definition of both strategies, first, note that high-frequency-trading is a subset of algorithmic trading and, in turn, high-frequency-trading includes ultra high-frequency-trading. Algorithms essentially work as middlemen between buyers and sellers, with high-frequency-trading and ultra high-frequency-trading being a way for traders to capitalize on infinitesimal price discrepancies that might exist only for a miniscule period of time. In the end, algorithmic trading (automated trading, black-box trading, or simply algo-trading) is the process of using computers programmed to follow a defined set of instructions for placing a trade in order to generate profits at a speed and frequency that is impossible for a human trader.

Computer-assisted rule-based algorithmic trading uses computer programs that make automated trading decisions to place orders. Algorithmic trading splits large-sized orders, places these split orders at different times and even manages trade orders after their submission. Large sized orders are placed by big institutional investors like pension funds or insurance companies. Due to the scale of the order, the price of the projected security is influenced (driving it up with a buy order and vice versa). This causes less yield on the investment made. Algorithmic trading aims to reduce that price impact by splitting large orders into many small-sized orders, thereby offering traders some price advantage. The algorithms control the schedule of sending orders to the market by reading real-time high-speed data feeds, detect trading signals, identify appropriate price levels and then place trade orders once they identify a suitable opportunity. Other kinds of algorithms can also detect arbitrage opportunities and can place trades based on trend following, news events and even speculation. This type of algorithms is mostly used by hedge funds with that specific investment strategy.

As mentioned above, high-frequency-trading is an extension of algorithmic trading and manages small-sized trade orders to be sent to the market at high speeds. To define speed, think about milliseconds or microseconds. A high-frequency-trading system can process orders in less than four hundred microseconds (0.0004 seconds). That is a thousand times faster than the blink of your eyes.  HFT algorithms typically involve two-sided order placements (buy-low and sell-high) in an attempt to benefit from bid-ask spreads. HFT algorithms also try to “sense” any pending large-size orders by sending multiple small-sized orders and analyzing the patterns and the time taken in the execution of the trade. If they sense an opportunity, HFT algorithms then try to capitalize on large pending orders by adjusting prices to fill them and make profits. Ultra HFT is a further specialized stream of HFT. By paying an additional exchange fee, trading firms get access to see pending orders a split-second before the rest of the market does.
There are a couple of algorithmic trading strategies. Any strategy for algorithmic trading requires an identified opportunity which is profitable in terms of improved earnings or cost reduction. The following are the trading strategies used mainly in algorithmic trading. If you have had some hedge fund classes, most of them will be familiar to you.

Trend Following Strategies:

The most common algorithmic trading strategies follow trends in moving averages, channel breakouts, price level movements and related technical indicators. These are the easiest and simplest strategies to implement through algorithmic trading because they do not involve making any predictions or price forecasts. Trades are initiated based on the occurrence of desirable trends, which are easy and straightforward to implement through algorithms without getting into the complexity of predictive analysis. An example is the 50 and 200 day moving average, which is a popular trend following strategy.

Arbitrage Opportunities:

Buying a dual listed stock at a lower price in one market and simultaneously selling it at a higher price in another market offers the price differential as risk-free profit or arbitrage. The same operation can be replicated for stocks versus futures instruments as price differentials do exists from time to time. Implementing an algorithm to identify such price differentials and placing the orders allows profitable opportunities in an efficient manner.

Index Fund Rebalancing:

Index funds have defined periods of rebalancing to bring their holdings to par with their respective benchmark indices. This creates profitable opportunities for algorithmic traders, who capitalize on expected trades that offer 20-80 basis points profits depending upon the number of stocks in the index fund, just prior to index fund rebalancing. Such trades are initiated via algorithmic trading systems for timely execution and best prices.

Mathematical Model Based Strategies:

Further, there are also a lot of proven mathematical models, like the delta-neutral trading strategy, which allows trading on combination of options and its underlying security, where trades are placed to offset positive and negative deltas so that the portfolio delta is maintained at zero. In this way, you will hedge the delta risk but still pocket the profits.

Trading Range (Mean Reversion):

The mean reversion strategy is based on the idea that the high and low prices of an asset are a temporary phenomenon that revert to their mean value periodically. Identifying and defining a price range and implementing an algorithm based on that allows trades to be placed automatically when the price of asset breaks in and out of its defined range.

Volume Weighted Average Price (VWAP):

The Volume Weighted Average Price strategy breaks up a large order and releases dynamically determined smaller chunks of the order to the market using stock specific historical volume profiles. The aim is to execute the order close to the Volume Weighted Average Price (VWAP), thereby benefiting on average price.

Time Weighted Average Price (TWAP):

The time weighted average price strategy breaks up a large order and releases dynamically determined smaller chunks of the order to the market using evenly divided time slots between a start and an end time. The aim is to execute the order close to the average price between the start and end times, thereby minimizing market impact.

Percentage of Volume (POV):

Until the trade order is fully filled, this algorithm continues sending partial orders, according to the defined participation ratio and according to the volume traded in the markets. The related “steps strategy” sends orders at a user-defined percentage of market volumes and increases or decreases this participation rate when the stock price reaches user-defined levels.

Implementation Shortfall:

The implementation shortfall strategy aims at minimizing the execution cost of an order by trading off the real-time market, thereby saving on the cost of the order and benefiting from the opportunity cost of delayed execution. The strategy will increase the targeted participation rate when the stock price moves favorably and decrease it when the stock price moves adversely.

Now that we have seen what algorithmic trading is and which strategies exist, we can look at technical requirements for algorithmic trading. Algorithmic trading relies heavily on these (technical requirements). First of all, you need computer programming knowledge to program the required trading strategy, hired programmers or pre-made trading software. Of course, network connectivity and access to trading platforms for placing the orders is necessary. Also, access to market data is a must because it will be monitored by the algorithm for trading opportunities to place orders. Historical data can be useful for back-testing, depending upon the complexity of rules implemented in the algorithm.

Risks in algorithmic trading might include another market participant’s algorithm being faster in executing the buy and sell order. This results in an open position. To illustrate this risk, suppose you place a buy and sell order. Prices fluctuate in milli- and even microseconds. What happens if your buy trade gets executed, but the sell trade does not as the sell prices change by the time your order hits the market? You will end up sitting with an open position, making your arbitrage strategy worthless. Also, system failures, network connectivity errors, time-lags between trade orders and execution, and most importantly, imperfect algorithms could be a risk.

Bottom line, it is very exciting that these developments take place and they might make financial markets more efficient. On the other hand, algorithmic trading highly depends on the technical conditions of systems and errors that might be out of control of human actions. Nevertheless, I think that people who pursue a career in financial markets should learn the basics of programming. Not because they can build systems on their own, but rather because of the ability to analyze the algorithms and to know what the engineers are doing so they can have a valuable discussion.