In this article, I’m going to introduce you to some fundamental concepts related to quantitative trading systems. Hopefully two audiences will find this post helpful. The first is for people trying to get a job with a fund as a quant trader. The second is for people who want to try their own “retail” algorithmic trading business.
Quantitative trading is an extremely complex area of quant finance. It can take a very long time to acquire the necessary knowledge for interviewing or building your own trading strategies. And not only that, since it will take a lot of experience in programming, at least in languages such as MATLAB, R or Python. However, as the frequency of trading strategies increases, the technical aspects become more important. Thus, familiarity with C / C ++ will be of utmost importance.
– Strategy identification – finding a strategy, developing an advantage and choosing a trading frequency.
– Strategy backtesting – getting data, analyzing strategy results and eliminating bias.
– Execution system – connecting with a broker, automating trading and reducing transaction costs.
– Risk management – optimal capital allocation, “bet size” / Kelly criterion and psychology of trading.
Let’s start by looking at how a trading strategy is identified.
All quantitative trading processes begin with an initial search period. This search process includes finding a strategy, checking to see if the strategy fits into the portfolio of your existing strategies, getting any data you need to test the strategy, and trying to optimize it for higher returns and / or lower risk. You will need to consider factors such as your own capital requirements (if you run the strategy as a “retail” trader) and the impact of any transaction costs on the strategy.
You may be wondering why people and firms are eager to discuss their profitable strategies, especially when they know that large-scale trading can prevent the strategy from working in the long run. The reason is that they will not discuss the exact parameters and custom methods used. Optimization is the key to turning a relatively mediocre strategy into a very profitable one. In fact, one of the best ways to create your own unique strategies is to find similar methods and then apply your own optimization procedure to them.
The purpose of backtesting is to provide evidence that the strategy chosen according to the above process is beneficial using both historical and validation data. This will help you find out the expected behavior of the strategy in the “real world”. However, backtesting for various reasons is not a guarantee of success. This is perhaps the most subtle area of quantitative trading as it entails numerous errors that must be carefully considered and eliminated as much as possible.
We will look at common types of errors, including upfront errors, survivorship bias, and optimization bias. Other important areas of backtesting include the availability and accuracy of historical data, factoring at real transaction costs, and the decision to choose a sound backtesting platform. We will discuss transaction costs further in the Execution System section.
Once the strategy is identified, it is necessary to obtain historical data on which testing and possibly optimization can be performed. There are a significant number of vendors of data across all asset classes. The cost depends on the quality, completeness and timeliness of the data. Traditionally, aspiring quant traders (at least at the retail level) use the open source dataset from Yahoo Finance.
The execution system is the means by which the list of orders generated by the strategy is sent to the broker and executed. Despite the fact that the trading system can be half, or even fully automated, the execution mechanism can be manual, half manual (that is, “one click”) or fully automated. Manual and semi-manual methods are common for LFT strategies. HFT strategies require the creation of a fully automated execution engine, which will often be closely linked to the order generator (due to the interdependence of strategy and technology).
The main factors in creating an execution system are the broker’s interface, minimization of transaction costs (including commissions, slippage and spread) and the discrepancy between live trading results and backtesting results.
The final part of quantitative trading is the risk management process. “Risk” includes all of the previous errors that we have discussed. It includes technological risk, such as when servers hosted by an exchange suddenly experience a hard drive failure. It includes brokerage risk when a broker goes bankrupt (not as crazy as it might seem, given the recent panic with MF Global). In short, it covers almost everything that can affect the implementation of trade, and which has many sources. Entire books are devoted to quantitative risk management strategies, so I will not try to describe all the possible sources of risk here.
Risk management also encompasses what is known as optimal capital allocation, which is part of portfolio management theory. These are the means by which capital is allocated to various strategies and trades within those strategies.
As you can see, quantitative trading is an extremely complex, albeit very interesting, area of quantitative finance. I just touched on the topic in this article and it’s getting pretty long already!
If you want to try to create your own algorithmic trading strategies, my first tip is to become a good programmer. In my opinion, it is necessary to independently develop the data collection device, backtesting strategy and execution system as much as possible. If all your capital was at stake, wouldn’t you sleep better at night knowing that you have fully tested your system and are aware of its mistakes and individual problems? Outsourcing this process to a vendor may save time in the short term, but can be extremely expensive in the long term.