~~~ Algorithmic Trading: Does it Really Work? ~~~


Also known as algotrading, robot trading, automated trading, or quantitative investing: Algorithmic trading simply means buying and selling financial assets based on some 'system' or algorithm. As opposed to 'manual trading' or 'discretionary trading' that's usually based on gut feeling. Or on some information about the traded asset that the trader hopes his competitors don't have.

Algorithmic trading systems analyze market data and detect trade opportunities. The problem: Today's financial markets are highly efficient. Price movements are almost random. Predicting prices and generating correct trade signals is therefore not trivial. Traditional methods such as technical analysis or technical indicators are not up to this task.  There are thousands of algorithmic trading systems around, but almost all fail completely in real market situations. Only a fraction of them generates true profit. All successful algo trading systems today employ advanced statistical or machine learning methods.

Any algorithmic trading system has 3 components: A trading algorithm or trading strategy that determines buy and sell rules based on market data; a trading software that connects to online exchanges, brokers, or data sources for receiving price data and placing the orders; and a backtesting software for determining the expected profit of the algorithm (or whether it is profitable at all). Normally the trading algorithm is realized by a software program or 'script'. But a computer is not always involved. The famous 'Turtle Trading' system of the 1980s was a manually executed algorithm, and backtesting was done with pen and paper. However, this simple system would not work anymore today. Since the markets have changed and large hedge funds have switched to algo trading, more complex algorithms are needed for achieving continuous profit with algorithmic trading. This does not mean that private traders are excluded. Advanced software tools such as Zorro allow algo trading with the same methods and algorithms that large hedge funds apply.

Profit curve of a Zorro deep learning trading system
Profit curve (blue) of a Zorro deep learning system


There are four main categories of trading algorithms:

Risk premium strategies

They accept a certain amount of risk in exchange for a certain amount of profit. Of course the profit should exceed the risk. Their algorithms normally accumulate small frequent profits with a low, or ideally negligible, risk of a rare high loss. A trivial example is entering arbitrary trades with a very tight profit target and a very distant stop loss - as often seen in 'live trading' webinars. More serious, classical risk premium examples are options selling systems and mean-variance optimization. Algo trading systems that exploit volatility, such as grid traders, can also fall in that category.

Model based strategies

These strategies take advantage of market inefficiencies. Behavior patterns of market participants can be described in a market model and produce particular price curve anomalies - deviations of the price curve from pure randomness. A correct model of a market inefficiency allows limited price prediction and thus profitable trading. Model based strategies that exploit anomalies in price curves can be based on detecting market regimes, market cycles, price borders or channels, price differences of correlated assets (statistical arbitrage), or short-lived price differences of similar assets at different exchanges (HFT arbitrage). More examples and details about building model based strategies can be found in an article series on the Financial Hacker blog. 

Data mining strategies

They have nothing to do with mining bitcoin, but evaluate the market with a machine learning algorithm for predicting short-term price trends. For this they use signals that are usually derived from the order book or the price curve, but sometimes also from fundamental data, like earnings reports or the Commitment Of Traders (COT) report. Even exotic data sources such as blockchain parameters or twitter keywords are used for data mining algorithms. Just as model based system, data mining also exploits market inefficiencies and would not work on a totally random market. But the details of those inefficiencies and the derived trading rules are unknown to the developer - the system is a 'black box'. More information and an example of a deep learning forex system can be found in this Data Mining article.

Indicator soups

They are usually based on 'technical analysis' - the belief that technical indicators, geometric price curve properties, or price patterns can predict future prices. Indicator soups are often found on trader forums or in trading books. They do not  always use indicators, but can also derive trade signals from traditional candle patterns or with exotic methods such as Elliott Waves or Harmonic Patterns. Although many studies have revealed that technical analysis is mostly useless, some complex indicator soups were found to be profitable in certain market situations, at least for a limited time. If you like playing roulette, you will probably also like algorithmic trading with technical analysis and a soup of indicators.


Fully automated or semi-automated algo trading?

Fully automated algo trading systems run permanently either on a computer at home or - better - on a rented VPS server. They observe  the markets and can anytime enter or exit positions without human intervention. Semi-automated systems are manually started, usually in regular intervals, like on the first trading day of a month. They enter an automated process of reading and analyzing recent market data, opening or closing trades, then shut down and until the next start. They are normally used for strategies that trade infrequently, like long-term portfolio rebalancing or options trading systems.

And how does an algo trading strategy look like? Here are some example scripts of indicator based, model based, data mining, and risk premium algo trading systems.

 

"Take Money From The Rich And Give It To The Poor"