Before you can think about building a trading system, you need to determine what data to use for developing and testing the system. This is a fundamental consideration that can make or break your chances.
It depends on the type of system and what markets are being traded. For example, if the focus is on developing a trend-following system on a basket of futures markets, then there are many choices, such as Pinnacle data and CSI Data. These vendors both create back-adjusted contracts for long-term analysis.
Futures contract expire and positions need to be exited before the first notice day. Because of costs of carry there are often gaps between the price of the expiring contract and the next active contract. If the data are not adjusted, then the gaps can cause false signals in your backtesting.
A common way to solve this problem is what is called a back-adjusted contract. On the day of the contract rollover, which can be chosen several different ways, the data software simply adjusts all prices based on the gap between the new contract and the old one. The main benefit of this method is that it shows the real prices for the active contract, allowing them to be traded. Additionally, the backtested results are correct in dollars because the point returns are correct. The problem is that prices using this adjustment method can go negative. This happens in markets like crude oil. Systems using percentages or ratios cannot be created because the price level is destroyed during the back-adjust process.
Another method that is used is called Ratio-Adjusted contracts. This has the advantage that it can be used to calculate percent returns and prices never go negative. However, ratio-adjusted contracts cannot be used to calculate profit in dollars because daily ranges are reduced. The ratio-adjusted contract might show a 0.25-point daily range in the S&P 500 when the actual daily range was five points. Ratio-adjusted contracts allow ratios to be used for things such as intermarket analysis comparing the gold and dollar ratio to predict crude oil moves.