Setting up a strategy backtest – Data Acquisition

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.

https://github.com/luciannno/quentin/tree/gather_data

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