The goal of a backtesting system is to provide a way of testing a given strategy in the real world. The system uses historical data against a strategy to set the expectation of how the strategy would have performed if applied to real data. However, testing a strategy using past data is not a guarantee of a successful future. There are many reasons why we must be careful when running the strategy on live data. I will study and discuss the common types of biases that should be considered and eliminated as much as possible.
In order to start a development of a backtest procedure, it is necessary to choose a platform. There are many possible ways of implementing such system, between dedicated backtest software to a full custom implementation in a programming language such as Python or C. We will discuss here the benefits of doing a full backtest software with execution system tightly integrated with statistical strategies.
The main concern when starting a backtesting system is historical data acquisition. There are a significant number of data vendors across all asset classes. To keep the costs of the system low I will start with the traditional point for beginner traders. I will use free data set from Yahoo Finance and Google Finance.
Execute gather data:
./bin/gather.py -x ETR -i BMW -i DTE -i DBK -i DPW -i ALV -i BAYN -i FRE -i N4G -i SIE -i LKC -i BAS -i EVT -i DB1 -i TDG -i RIB -i WFT -i ABR