Backtesting can become a key factor in the success of a system. Not even all experienced traders understand how to correctly implement a backtest, which often results in erroneous outcomes. If it is done correctly, we can expect some excellent results.
In this article, we are going to talk about the key factors to be considered for a backtest, and what steps should be followed in order to obtain great results.
What is a backtest
A backtest is generally understood as an evaluation of a trading system, where the historical price series data of security prices are used for testing. Every trader knows that it is virtually impossible to survive in this business without the ability to correctly and efficiently analyze a trading system.
Trading signals may be generated using many different techniques, among which we can name technical analysis patterns, algorithmic trading systems, as well as financial modeling methods. Regardless of what methodology has been used for generating trading signals, every system must be tested thoroughly before it is put into use.
A backtest is used for evaluating trading systems because it offers the possibility of using actual market data to test trading ideas without actually trading (which can become very risky). In addition, a backtest allows for testing a system as though its signals had been generated at that time, which makes it possible to generate reliable projections about how profitable the system may be in the future.
How to backtest
The following are the basic steps that should be followed in order to correctly implement a backtest:
- Define system rules and variable definitions
- Select a period for backtesting/simulation
- Type in the starting capital
- Set up a trading account
- Run simulation/backtest and analyze results
First of all, system rules and variable definitions should be defined coherently. The next step is to select the period for backtesting. Even if the algorithm has been developed using long-term data, it is important to test it on at least one year’s worth of historical price series data so that its behavior over various periods can be evaluated.
Once we have defined system rules and variable definitions, as well as selected the period for backtesting/simulation, we need to type in the starting capital – which is important because it will define initial equity and cash flows.
For example: If a system has been developed using $100,000 as its starting capital, and a 100% allocation of capital has been used for each trade, then the total amount of invested cash will be equal to $100,000. In this way, we need to type in the starting capital so that it can be properly taken into account when calculating equity growth/decline.
The next step is setting up a trading account. In this case, we need to define an account number as well as a broker from whom trades will be executed. Once the backtest is performed, all transactions generated by the algorithm will be reflected on a chart of a particular broker with which the system has been set up for testing purposes.
The final step before running a simulation/backtest is to define transaction costs. Many traders make the mistake of forgetting about transaction costs, which may lead to losing a big portion of trading capital due to the high fees charged by brokers.
Once all steps mentioned above have been implemented, we need to launch the algorithm/system that has been developed for backtesting purposes. The results can be analyzed in a variety of different ways. In addition, depending on the type of system being tested, it is possible to run multiple iterations to increase accuracy by obtaining more reliable results.
Backtesting is an important and integral part of developing a profitable trading strategy. It enables traders to estimate how their strategies would have performed historically without actually trading, which makes it possible to run market projections that define the expected profitability of a system for future use.
By following the steps described above, anyone can perfectly implement backtesting. In addition, by running simulation/backtest multiple times, it is possible to obtain more reliable results.
Have an answer to the questions below? Post it here or in the forum