An integral part of trading plan development is testing the system to determine its expectancy – how much money could the system make in a live market? Most of us have seen the warnings posted on various financial Web sites and literature about how “Past performance is not indicative of future results.” While this is certainly true of trading plans, there are measures you can take to determine if a plan is likely to succeed in the future: Tebacktesting and forward performance testing.
The term "backtesting" refers to testing a trading system on historical data to see how it would have performed during that time period. Most of today’s trading platforms support backtesting, and you can quickly test ideas without risking the money in your trading account. Backtesting can be used to evaluate simple ideas, such as how a moving average crossover would perform or more complex systems with a variety inputs and triggers.
If necessary, you can hire a qualified programmer to translate an idea into a testable form. A programmer can code the idea using the proprietary language used by your trading platform, integrating user-defined input variables that will allow you to "tweak" the system. For example, a simple moving average crossover system could include inputs for the lengths of the two moving averages used in the system; you could then backtest to determine which lengths would have performed the best on the historical data.
Backtesting can be falsely encouraging because a non-profitable system can be magically transformed into a money making machine with a few optimizations. The reality, however, is that tweaking a system to find the greatest level of profitability usually leads to a system that performs poorly in live trading. With enough tweaking, virtually any trading system could show close to 100% profitability, but it would not be realistic.
Curve fitting involves tweaking or optimizing the system to create the highest percentage of winning trades or the greatest profit on the historical data used in the testing period. Though it makes a system look fantastic in backtesting results, it leads to unreliable systems since the results are essentially custom designed for one time period that has already passed. Backtesting and optimizing provide many benefits but it is only part of the process when evaluating a trading system. The next step is to apply the system to fresh historical data.
In-Sample Versus out-of-Sample Data
It is beneficial to reserve a period of historical data for testing purposes. The initial historical data on which an idea is tested and optimized is known as in-sample dataand the data set that has been reserved is called out-of-sample data. This "clean" set of data is an important part of the evaluation process because it provides a way to test the idea on data that has not influenced the optimization process. This can give you a better idea of how the system will perform in live trading.
Prior to starting any backtesting or optimizing, you can reserve a percentage of historical data for out-of-sample testing. One method is to divide the historical data into thirds and segregate one third for use in the out-of-sample testing. Remember, only the in-sample data should be used for the initial testing and any optimization.
Once a trading system has been evaluated using in-sample data, you can apply it to the out-of-sample data. If there is low correlation between the in-sample and out-of-sample testing, it is likely that the system is over-optimized and will not perform well in live trading. If there is strong correlation, the next phase of evaluation is an additional type of out-of-sample testing known as "forward performance testing."
Forward Performance Testing
Forward performance testing, also known as paper trading, provides you with another set of data on which to evaluate a system. Forward performance testing is a simulation of actual trading and involves following the system's logic in a live market. All trades are executed on “paper” only (i.e., no actual trades are taken), and trade entries and exits are documented along with any profit or loss for the system.
Many brokers provide simulated trading accounts where you can place trades without risking real money. Simulated trading (or “sim trading”) allows you to further test your system, while providing valuable order entry practice. If the system shows positive results with good correlation between in-sample, out-of-sample and forward performance testing, it may be ready to be put in a live market. If it lacks correlation, however, the system requires more research before it can be successfully traded.