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