TL;DR
Do you think you have great ideas on the market but donโt know how to put them to the test without risking your funds? Knowing how to backtest trade ideas is the bread and butter of a good systematic trader.
The underlying premise of backtesting is that what worked in the past may work in the future. But how do you go about doing this yourself and how should you evaluate the results? Letโs go through a simple backtesting process.
Introduction
Backtesting is one of the key components of developing your own charting and trading strategy. It entails reconstructing trades that would have happened in the past with a system based on historical data. The results of backtesting should give you a general idea of whether or not an investment strategy is effective.
What Is Backtesting?
First, if youโd like a deeper dive into backtesting, read our article What Is Backtesting?ย
In short, the main purpose of backtesting is to show you whether your trading ideas are valid. You start by using past market data to see how a strategy would have performed. If the strategy looks like it has potential, it may also be effective in a live trading environment.
What to Do Before Backtesting?
Before you start backtesting, you must establish what kind of trader you are. Are you a discretionary or a systematic trader?
Discretionary trading is decision-based โ traders use their own judgment to decide when to enter and exit. It's a relatively loose and open-ended strategy, where most of the decisions made depend on the trader's assessment of the conditions at hand. As such, backtesting is less relevant when it comes to discretionary trading since the strategy isnโt strictly defined.
Of course, this doesnโt mean that if youโre a discretionary trader, you shouldnโt backtest or paper trade at all. It just means that the results may not be as reliable as they usually are with systematic trading.
Systematic trading is more applicable to backtesting. Systematic traders rely on a trading system that defines and tells them exactly when to enter and exit. While systematic traders have control over most aspects of the strategy, it determines the entry and exit signals entirely for them. You could think of a simple systematic strategy in two simple steps:
When A and B happen at the same time, enter a trade.ย
When X happens after, exit the trade.ย
Some traders prefer this approach. It can eliminate emotional decisions from trading and provide a reasonable degree of assurance that a trading system is profitable. Of course, there are still no guarantees.
This is why itโs important to make sure you have very specific rules in your system for when to enter or exit positions. A strategy that isnโt well-defined will lead to inconsistent results. As you might expect, this trading style is more popular in algorithmic trading.
There is backtesting software you can buy if you want to automate the process โ you simply have to input your own data and the software will do the backtesting for you. In this example, however, weโll go with a manual backtesting strategy. It involves a little bit more work but itโs completely free.
How to Backtest a Trading Strategy?
You can find a Google Sheets spreadsheet template using this link. This is a rudimentary template you can use as a starting point to creating your own. It gives you a general idea of what information a backtesting sheet may contain. Some traders prefer to use Excel or code it in Python; there arenโt strict rules. You can add as much data as you need to it, alongside anything other information you may deem useful.
Letโs backtest a simple trading strategy:
We buy one Bitcoin at the first daily close after a golden cross. We consider a golden cross to be when the 50-day moving average crosses above the 200-day moving average.
We sell one Bitcoin at the first daily close after a death cross. We consider a death cross to be when the 200-day moving average crosses below the 50-day moving average.
As you can see, weโve also defined the time frame in which the strategy is valid. This means if a golden cross happens on the four-hour chart, we wonโt consider it a trading signal.
The time period in this example begins at the start of 2019. However, if youโd like to get more accurate and reliable results, you could go back much further in the history of Bitcoinโs price action.
Now, letโs see what trading signals this system produces for the stipulated time period:
Buy @ ~$5,400
Sell @ ~$9,200
Buy @ ~$9,600
Sell @ ~$6,700
Buy @ ~$9,000
Hereโs how our signals look when overlaid on the chart:
Our first trade turned a profit of about $3,800, while our second trade resulted in a loss of about $2,900. This means our realized PnL is currently $900.ย
Weโre also in an active trade, which, as of December 2020, had about $9,000 in unrealized profit. If we stick to our initially defined strategy, weโll close this when the next death cross happens.ย
Evaluating Backtesting Results
So, what do these results show? Our strategy would have resulted in a reasonable return but it doesnโt show anything outstanding so far. We could realize the currently open trade to drastically increase our realized PnL, but that would defeat the purpose of backtesting. If we donโt stick to the plan, the results wonโt be reliable, either.
Even though this is a systematic strategy, itโs also worth considering the context. The unprofitable trade from $9,600 to $6,700 occurred at the time of the March 2020 COVID-19 crash. Such a black swan event can have an outsized influence on any trading system. This is another reason why itโs worth going back further to see if this loss is an outlier or just a by-product of the strategy.
This is one example of a simple backtesting process. This strategy might have promise if we go back and test it with more data or include other technical indicators to potentially strengthen the signals it produces.
But what else can backtesting results show you?
Volatility measures: Your maximum upside and drawdown.
Exposure: The amount of capital you need to allocate from your entire portfolio to carry out the strategy.
Annualized return: The strategyโs percentage return over the course of a year.
Win-loss ratio: How many of the trades in the system are likely to result in a win and how many in a loss.
Average fill price: The average price of your filled entries and exits when using the strategy.
Do bear in mind that these aforementioned examples do not constitute an exhaustive list. Which metrics youโd like to track are completely up to you. In any case, the more details you include in your trading journal about relevant set-ups, the more opportunities youโll have to learn from the results. Some traders are very rigorous in their backtesting, which will likely be reflected in their results.
One last thing to consider is optimization. If youโve read our backtesting article, youโll know the difference between backtesting and forward-testing (or paper trading).ย
Closing Thoughts
Weโve gone through the basic process of how to perform a manual backtest of a trading strategy. However, itโs important to remember that past performance doesnโt guarantee future performance.
Market environments change, and you must adapt to those changes if you want to improve your trading strategy. You should also be careful not to blindly trust the data. Common sense is a useful โ albeit often overlooked โ tool when it comes to evaluating results.