Académique Documents
Professionnel Documents
Culture Documents
. . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
3
3
3
3
3
4
4
5
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
7
7
7
8
9
9
10
10
11
11
11
II
Trading Systems
3 Successful Backtesting . . . . . . .
3.1 Why Backtest Strategies? . . . .
3.2 Backtesting Biases . . . . . . . .
3.2.1 Optimisation Bias . . . .
3.2.2 Look-Ahead Bias . . . . .
3.2.3 Survivorship Bias . . . . .
3.2.4 Cognitive Bias . . . . . .
3.3 Exchange Issues . . . . . . . . . .
3.3.1 Order Types . . . . . . .
3.3.2 Price Consolidation . . .
3.3.3 Forex Trading and ECNs
3.3.4 Shorting Constraints . . .
3.4 Transaction Costs . . . . . . . .
3.4.1 Commission . . . . . . . .
3.4.2 Slippage . . . . . . . . . .
3.4.3 Market Impact . . . . . .
3.5 Backtesting vs Reality . . . . . .
13
. . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
15
15
16
16
16
17
17
18
18
18
19
19
19
19
19
20
20
4 Automated Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.1 Backtesting Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
4.2
III
4.1.1 Programming . . . . . . . . . . . . . .
4.1.2 Research Tools . . . . . . . . . . . . .
4.1.3 Event-Driven Backtesting . . . . . . .
4.1.4 Latency . . . . . . . . . . . . . . . . .
4.1.5 Language Choices . . . . . . . . . . .
4.1.6 Integrated Development Environments
Colocation . . . . . . . . . . . . . . . . . . . .
4.2.1 Home Desktop . . . . . . . . . . . . .
4.2.2 VPS . . . . . . . . . . . . . . . . . . .
4.2.3 Exchange . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
22
23
23
23
24
26
26
27
27
29
29
30
30
31
33
33
34
35
39
6 Software Installation . . . . . . . . . . . . . . . . . .
6.1 Operating System Choice . . . . . . . . . . . . . . .
6.1.1 Microsoft Windows . . . . . . . . . . . . . . .
6.1.2 Mac OSX . . . . . . . . . . . . . . . . . . . .
6.1.3 Linux . . . . . . . . . . . . . . . . . . . . . .
6.2 Installing a Python Environment on Ubuntu Linux .
6.2.1 Python . . . . . . . . . . . . . . . . . . . . .
6.2.2 NumPy, SciPy and Pandas . . . . . . . . . .
6.2.3 Statsmodels and Scikit-Learn . . . . . . . . .
6.2.4 PyQt, IPython and Matplotlib . . . . . . . .
6.2.5 IbPy and Trader Workstation . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
41
41
41
41
42
42
43
43
44
44
45
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
47
47
48
48
48
49
49
49
50
51
51
51
51
51
52
54
54
58
8.2
8.3
8.4
8.5
IV
8.1.1 Markets . . . . . . . . . . . . .
8.1.2 Instruments . . . . . . . . . . .
8.1.3 Fundamental Data . . . . . . .
8.1.4 Unstructured Data . . . . . . .
Frequency of Data . . . . . . . . . . .
8.2.1 Weekly and Monthly Data . . .
8.2.2 Daily Data . . . . . . . . . . .
8.2.3 Intraday Bars . . . . . . . . . .
8.2.4 Tick and Order Book Data . .
Sources of Data . . . . . . . . . . . . .
8.3.1 Free Sources . . . . . . . . . .
8.3.2 Commercial Sources . . . . . .
Obtaining Data . . . . . . . . . . . . .
8.4.1 Yahoo Finance and Pandas . .
8.4.2 Quandl and Pandas . . . . . .
8.4.3 DTN IQFeed . . . . . . . . . .
Cleaning Financial Data . . . . . . . .
8.5.1 Data Quality . . . . . . . . . .
8.5.2 Continuous Futures Contracts .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Modelling
61
61
62
62
63
63
63
63
63
64
64
65
66
66
66
71
73
73
73
77
9 Statistical Learning . . . . . . . . . . . . . . . . . . .
9.1 What is Statistical Learning? . . . . . . . . . . . . .
9.1.1 Prediction and Inference . . . . . . . . . . . .
9.1.2 Parametric and Non-Parametric Models . . .
9.1.3 Supervised and Unsupervised Learning . . . .
9.2 Techniques . . . . . . . . . . . . . . . . . . . . . . .
9.2.1 Regression . . . . . . . . . . . . . . . . . . . .
9.2.2 Classification . . . . . . . . . . . . . . . . . .
9.2.3 Time Series Models . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
79
79
79
80
81
81
81
82
82
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
85
85
86
87
87
89
90
93
11 Forecasting . . . . . . . . . . . . . . . . . . . . . . . .
11.1 Measuring Forecasting Accuracy . . . . . . . . . . .
11.1.1 Hit Rate . . . . . . . . . . . . . . . . . . . . .
11.1.2 Confusion Matrix . . . . . . . . . . . . . . . .
11.2 Factor Choice . . . . . . . . . . . . . . . . . . . . . .
11.2.1 Lagged Price Factors and Volume . . . . . . .
11.2.2 External Factors . . . . . . . . . . . . . . . .
11.3 Classification Models . . . . . . . . . . . . . . . . . .
11.3.1 Logistic Regression . . . . . . . . . . . . . . .
11.3.2 Discriminant Analysis . . . . . . . . . . . . .
11.3.3 Support Vector Machines . . . . . . . . . . .
11.3.4 Decision Trees and Random Forests . . . . .
11.3.5 Principal Components Analysis . . . . . . . .
11.3.6 Which Forecaster? . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
95
95
95
96
96
96
97
97
97
98
98
99
99
99
4
11.4 Forecasting Stock Index Movement . . . . . . . . . . . . . . . . . . . . . . . . . . 101
11.4.1 Python Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
11.4.2 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
105
12 Performance Measurement . . .
12.1 Trade Analysis . . . . . . . . .
12.1.1 Summary Statistics . . .
12.2 Strategy and Portfolio Analysis
12.2.1 Returns Analysis . . . .
12.2.2 Risk/Reward Analysis .
12.2.3 Drawdown Analysis . .
.
.
.
.
.
.
.
. . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
107
108
108
109
109
110
115
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
117
117
117
118
118
118
119
119
121
121
122
VI
Automated Trading
125
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
127
127
128
128
129
132
138
139
147
149
152
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
159
159
162
167
16 Strategy Optimisation . . . . . . . . . . . . . . . . .
16.1 Parameter Optimisation . . . . . . . . . . . . . . . .
16.1.1 Which Parameters to Optimise? . . . . . . .
16.1.2 Optimisation is Expensive . . . . . . . . . . .
16.1.3 Overfitting . . . . . . . . . . . . . . . . . . .
16.2 Model Selection . . . . . . . . . . . . . . . . . . . . .
16.2.1 Cross Validation . . . . . . . . . . . . . . . .
16.2.2 Grid Search . . . . . . . . . . . . . . . . . . .
16.3 Optimising Strategies . . . . . . . . . . . . . . . . .
16.3.1 Intraday Mean Reverting Pairs . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
175
175
175
176
176
177
177
182
184
185
.
.
.
.
.
.
.
.
.
.
5
16.3.2 Parameter Adjustment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
16.3.3 Visualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188