本書共10章,內容包括:Python和算法交易、Python基礎架構、處理金融數(shù)據(jù)、掌握向量化回測、通過機器學習預測市場動向、構建基于事件回測的類、使用實時數(shù)據(jù)和套接字、使用Oanda進行CFD交易、使用FXCM進行外匯交易、自動化交易操作。
本書的主要內容有:為算法交易配置合適的Python環(huán)境。了解如何從公共和專有數(shù)據(jù)源檢索金融數(shù)據(jù)。使用NumPy和pandas探索金融分析的矢量化。掌握不同算法交易策略的矢量化回測。使用機器學習和深度學習生成市場預測。使用套接字編程工具對流數(shù)據(jù)進行實時處理。使用OANDA和FXCM交易平臺實施自動算法交易策略。
前言 . 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 作為虛擬環(huán)境管理器 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 章 處理金融數(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 導出到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 獲取結構化歷史數(shù)據(jù)75
3.3.2 獲取非結構化歷史數(shù)據(jù) 79
3.4 存儲金融數(shù)據(jù) .82
3.4.1 存儲DataFrame 對象 83
3.4.2 使用TsTables 87
3.4.3 用SQLite3 存儲數(shù)據(jù) 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 數(shù)據(jù)窺探和過度擬合 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 預測指數(shù)水平 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 使用深度神經(jīng)網(wǎng)絡預測市場方向 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 章 使用實時數(shù)據(jù)和套接字 223
7.1 運行一個簡單的實時數(shù)據(jù)服務器 .225
7.2 連接報價數(shù)據(jù)客戶端 228
7.3 實時生成交易信號 229
7.4 使用Plotly 可視化流數(shù)據(jù) .233
7.4.1 基礎部分 .233
7.4.2 三個實時流 235
7.4.3 三個流的三個子圖 .236
7.4.4 流式數(shù)據(jù)與柱線圖 .238
7.5 小結 .239
7.6 參考資料和延伸資源 240
7.7 Python 腳本 .240
7.7.1 樣例報價數(shù)據(jù)服務器.240
7.7.2 報價數(shù)據(jù)客戶端 241
7.7.3 動量在線算法 242
7.7.4 為柱線圖提供樣例數(shù)據(jù)的服務器 243
第8 章 使用Oanda 進行CFD 交易 245
8.1 開設賬戶 248
8.2 Oanda 應用程序接口 250
8.3 獲取歷史數(shù)據(jù) .252
8.3.1 查詢可交易的金融工具 252
8.3.2 基于分鐘柱線圖回測的動量策略 253
8.3.3 杠桿和保證金因素 .256
8.4 處理流式數(shù)據(jù) .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 獲取數(shù)據(jù) 276
9.2.1 獲取報價數(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 小結 .288
9.5 參考資料和延伸資源 289
0 章 自動化交易操作 291
10.1 資本管理 .292
10.1.1 二項式設置中的凱利準則 292
10.1.2 股票和指數(shù)里的凱利準則 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 日志和監(jiān)控 322
10.6 可視化分步概覽 325
10.6.1 配置Oanda 賬號325
10.6.2 設置硬件 325
10.6.3 設置Python 環(huán)境 325
10.6.4 上傳代碼 325
10.6.5 運行代碼 328
10.6.6 實時監(jiān)控 328
10.7 小結 328
10.8 參考資料和延伸資源 330
10.9 Python 腳本 330
10.9.1 自動化交易策略 331
10.9.2 策略監(jiān)控 334
附錄 Python、NumPy、matplotlib 和pandas 335