As quantitative investment gains popularity amongst investors1, the use of advanced analytical tools is becoming increasingly central. Intertwined with this process is the development of backtesting software. This software is a form of strategy tester; allowing for the examination and optimisation of an investment strategy before its release into a live trading environment. When developing a systematic trading strategy, access to a robust backtesting engine is essential. Many discretionary strategies will also benefit from partly incorporating systematic analysis into their investment process. Backtesting can be a feature of a comprehensive trading platform which facilitates research, strategy design, analysis and optimization, production, and execution.
It was Charles Dow (a journalist who among others co-founded The Wall Street Journal and the widely followed Dow Jones Industrial Average index ) who first advanced the view that asset prices follow trends, exhibiting particular characteristics. This recognition eventually led to the development of technical analysis, which sought to determine the viability of investments and trading systems by evaluating price and volume movements. Historical price series are an indispensable part of technical analysis and, ergo, modern investment strategies.
What is Backtesting?
In essence, backtesting is the analysis of a trading or investment strategy using historical data. It can be performed on any quantifiable trading idea. If we imagine a trade system as being a set of rules, backtesting allows you to determine how profitable a rule would have historically been. Utilising historical price series, a retrospective assessment can be made of the viability of a particular trading system; analysing both profitability and risk prior to committing any capital. Backtesting facilitates the development and refinement of trade ideas and the identification of potentially profitable trades.
Once a backtest has been run and you are confident you have avoided the standard pitfalls (e.g. overfitting and look-ahead bias) it is advisable to subject your strategy to performance testing (commonly referred to as paper trading) prior to its execution in live markets.
Backtesting software packages facilitate the analysis and refinement of trade strategies. The core of this technology rests upon its ability to improve research to better inform the decision-making process through the discovery of patterns and relationships in time series. However, the backtesting software available in the marketplace ranges in both complexity and power. Not all packages enjoy the same functionality and features, and thus, vary in their potential for insight. Users of backtesting software must consider the range of functionality offered by any one package to assess its viability for their specific use case. Understandably, there is a tradeoff between complexity of use and value of insight. Whilst point-and-click or programming-light platforms may be simple to use for those with limited programming skills, it is rare they offer the range of functionality necessary to satisfy the needs of institutional investors.
Backtesting software will generally comprise a number of steps. The first step is to access validated and operationally-ready datasets. The second step will allow for the initial design of the strategy; the specification of market particulars to be submitted for analysis as well as the customisation of key parameters. These parameters include the financial instruments, factors (e.g. EPS growth, momentum and valuation ratios for stock trading) and investment universe to be analysed, the time period under consideration, and any trading costs the execution of the strategy in a live trading environment will likely incur. The third step will be the production of a report detailing backtest results; the trades executed and the profit or loss generated by the individual trades and the strategy itself. More advanced packages will allow for position sizing and strategy optimisation. The fourth step - if included - will generally comprise a production environment facilitating the implementation of the strategy in a real market environment.
Pre-written strategy building blocks are also a desirable feature. Whilst some software packages include pre-built strategies - such as momentum, carry and various options strategies - adhering to them without a thorough understanding of their logic is ill-advised. Rather, investors should use these for the purposes of efficiency and tailor them to suit their individual needs. Backtesting software should allow for the factoring in of trading costs. Furthermore, it is necessary that backtests use point-in-time data, so as to avoid the trap of constructing and refining a trading strategy with updated data unavailable to the market at the time. Additional features may include a mobile application, voice recognition, and trade execution. A vital component to systematic investing is the importance of non-intervention. However, financial markets are inherently volatile. Thus, the ability to override a system in response to unprecedented movements in real-time data is desirable.
Investors looking to acquire access to this software must consider the functionality offered by any one package in relation to their particular needs. They must ask, what does this allow us to backtest? Single instruments? Baskets of instruments? Baskets of baskets? Answering these questions will naturally give rise to further considerations; such as the markets available (exchange or OTC), as well as the financial instruments to trade (equities, bonds, FX, options, futures, etc.). It is essential that any chosen software also has access to clean and validated market data. Without sufficient scope in regards to markets, instruments, and data, the insights provided by any package will be of limited value.
SigTech’s Backtesting Software
SigTech offers a comprehensive systematic investing platform that facilitates the construction, backtesting, and execution of systematic investment strategies. Figure (1) describes how these processes are facilitated via an object oriented programming approach; with the SigTech Python framework linking together three distinct object categories:
Tradable financial instruments
Non-tradable market data
SigTech’s object-orientation provides a comprehensive backtesting engine
The rich functionality afforded by our research environment allows for the stipulation of trade signals which will guide a strategy’s behaviour in the market, the factoring in of trading costs, and the setting of parameters determining what is being traded and the volumes of those trades. Furthermore, users can simulate particular scenarios to test the viability of a strategy under conditions with no historical precedent.
The SigTech platform also allows for the generation of interactive portfolio tables. These tables chronologically order the states a strategy has passed through (e.g. positions held, orders pending, and cash held) and allow for the assessment of whether anticipated profits have materialised. Furthermore, SigTech provides a comprehensive P&L breakdown documenting the respective signal weights for each level of a strategy, as well as a granular account of the P&L attributable to specific assets and sub-strategies.
In addition, SigTech users benefit from access to a rich pool of clean and verified market data. In many instances this data goes back decades. Our production environment allows for the live performance testing of strategies once they have been refined through backtesting. Here, users are able to determine how the strategy would perform if released into live markets today without taking on market exposure, and tables the profit or loss associated with the intended trades.
Systematic investment is ultimately only as good as the systems we create to do it. The more we remove ourselves from the process and rely on machines to perform these complex tasks, the more confident we must be in the ability of those machines and the software they are operating. SigTech is committed to the continuous development and improvement of backtesting software and the widening of the functionality available to the market in its pursuit of building, testing, and executing profitable investment strategies.