●前言1
第1章 Python 和算法交易 11
1.1 Python 的金融之道 11
1.1.1 Python 與偽代碼 12
1.1.2 NumPy 和向量化 13
1.1.3 pandas 和DataFrame 類 15
1.2 算法交易 17
1.3 Python 的算法交易之道 22
1.4 本書的重點和先決條件 23
1.5 交易策略 24
1.5.1 簡單移動平均線 24
1.5.2 動量策略 24
1.5.3 均值回歸 25
1.5.4 機器學習和深度學習25
1.6 小結 25
1.7 參考資料和延伸資源 26
第2章 Python 基礎架構 29
2.1 Conda 作為軟件包管理器 31
2.1.1 安裝Miniconda 31
2.1.2 Conda 的基本操作 34
2.2 Conda 作為虛擬環境管理器 39
2.3 使用Docker 容器 43
2.3.1 Docker 鏡像和容器 44
2.3.2 構建一個帶Python 的Ubuntu Docker 鏡像 45
2.4 使用雲實例 50
2.4.1 RSA 公鑰私鑰 51
2.4.2 Jupyter Notebook 配置文件 52
2.4.3 Python 和Jupyter Lab 的安裝腳本 54
2.4.4 編排Droplet 初始化腳本 55
2.5 小結 58
2.6 參考資料和延伸資源 58
第3章 處理金融數據61
3.1 從不同數據源讀取金融數據 62
3.1.1 數據集 62
3.1.2 用Python 讀取CSV 文件 63
3.1.3 使用pandas 從CSV 文件讀取 65
3.1.4 導出到Excel 和JSON 67
3.1.5 從Excel 和JSON 讀取數據 67
3.2 使用開放數據源 68
3.3 Eikon 數據API 72
3.3.1 獲取結構化歷史數據75
3.3.2 獲取非結構化歷史數據 79
3.4 高效存儲金融數據 82
3.4.1 存儲DataFrame 對像 83
3.4.2 使用TsTables 87
3.4.3 用SQLite3 存儲數據 92
3.5 小結 94
3.6 參考資料和延伸資源 95
3.7 Python 腳本 96
第4章 掌握向量化回測 99
4.1 利用向量化 100
4.1.1 使用Numpy 進行向量化 101
4.1.2 使用pandas 進行向量化103
4.2 基於簡單移動平均線的策略 107
4.2.1 入門基礎 107
4.2.2 方法通用化 115
4.3 基於動量的策略 117
4.3.1 基礎入門118
4.3.2 方法通用化 122
4.4 基於均值回歸的策略 125
4.4.1 基礎入門 125
4.4.2 方法通用化 128
4.5 數據窺探和過度擬合 130
4.6 小結 132
4.7 參考資料和延伸資源 132
4.8 Python 腳本 134
4.8.1 SMA 回測類 134
4.8.2 動量回測類 137
4.8.3 均值回歸回測類 139
第5章 通過機器學習預測市場動向 143
5.1 使用線性回歸進行市場走勢預測 144
5.1.1 線性回歸快速回顧 144
5.1.2 價格預測的基本思路 147
5.1.3 預測指數水平 149
5.1.4 預測未來收益 152
5.1.5 預測未來市場方向 154
5.1.6 基於回歸策略的向量化回測 155
5.1.7 概括方法 157
5.2 使用機器學習進行市場動向預測 159
5.2.1 scikit-learn 的線性回歸 159
5.2.2 一個簡單的分類問題 161
5.2.3 使用邏輯回歸預測市場方向 166
5.2.4 方法通用化 171
5.3 使用深度學習進行市場走勢預測 174
5.3.1 再談簡單分類問題 175
5.3.2 使用深度神經網絡預測市場方向 177
5.3.3 添加不同類型的特征 183
5.4 小結 188
5.5 參考資料和延伸資源 188
5.6 Python 腳本 189
5.6.1 線性回歸回測類 189
5.6.2 分類算法回測類 192
第6章 構建基於事件回測的類 197
6.1 回測基礎類 198
6.2 做多回測類 204
6.3 多空回測類 208
6.4 小結 211
6.5 參考資料和延伸資源 212
6.6 Python 腳本 213
6.6.1 回測基礎類 213
6.6.2 做多回測類 216
6.6.3 多空回測類 219
第7章 使用實時數據和套接字 223
7.1 運行一個簡單的實時數據服務器 225
7.2 連接報價數據客戶端 228
7.3 實時生成交易信號 229
7.4 使用Plotly 可視化流數據 233
7.4.1 基礎部分 233
7.4.2 三個實時流 235
7.4.3 三個流的三個子圖 236
7.4.4 流式數據與柱線圖 238
7.5 小結 239
7.6 參考資料和延伸資源 240
7.7 Python 腳本 240
7.7.1 樣例報價數據服務器 240
7.7.2 報價數據客戶端 241
7.7.3 動量在線算法 242
7.7.4 為柱線圖提供樣例數據的服務器 243
第8章 使用Oanda 進行CFD 交易 245
8.1 開設賬戶 248
8.2 Oanda 應用程序接口 250
8.3 獲取歷史數據 252
8.3.1 查詢可交易的金融工具 252
8.3.2 基於分鐘柱線圖回測的動量策略 253
8.3.3 杠杆和保證金因素 256
8.4 處理流式數據 258
8.5 下訂單 259
8.6 實時實施交易策略 261
8.7 獲取賬號信息 267
8.8 小結 269
8.9 參考資料和延伸資源 269
8.10 Python 腳本 269
第9章 使用FXCM 進行外彙交易 273
9.1 入門 275
9.2 獲取數據 276
9.2.1 獲取報價數據 276
9.2.2 獲取K 線數據 279
9.3 使用API 281
9.3.1 獲取歷史數據 282
9.3.2 獲取流數據 284
9.3.3 下單 285
9.3.4 賬戶信息 287
9.4 小結 288
9.5 參考資料和延伸資源 289
第10章 自動化交易操作 291
10.1 資本管理 292
10.1.1 二項式設置中的凱利準則 292
10.1.2 股票和指數裡的凱利準則 298
10.2 基於機器學習的交易策略 303
10.2.1 向量回測 303
10.2.2 很優杠杆 310
10.2.3 風險分析 312
10.2.4 持久化模型對像 316
10.3 實時算法 316
10.4 基礎設施和部署 321
10.5 日志和監控 322
10.6 可視化分步概覽 325
10.6.1 配置Oanda 賬號325
10.6.2 設置硬件 325
10.6.3 設置Python 環境 325
10.6.4 上傳代碼 325
10.6.5 運行代碼 328
10.6.6 實時監控 328
10.7 小結 328
10.8 參考資料和延伸資源 330
10.9 Python 腳本 330
10.9.1 自動化交易策略 331
10.9.2 策略監控 334
附錄 Python、NumPy、matplotlib 和pandas 335