目 錄
第1章 量化交易速覽 1
1.1 為何選擇量化交易 1
1.1.1 量化交易的概念 1
1.1.2 主觀交易與量化交易 2
1.2 量化交易的先驅們 5
1.2.1 硃爾斯·雷格納特 5
1.2.2 愛德華·索普 6
1.2.3 托馬斯·彼得菲 9
1.2.4 詹姆斯·西濛斯 14
1.3 美國量化投資的發展曆史 17
1.3.1 興起階段(1970—1990年) 17
1.3.2 快速發展階段(1990—2000年) 18
1.3.3 穩步增長階段(2000年至今) 19
1.4 中國量化投資的發展曆史 20
1.4.1 ETF套利時代(2010年以前) 20
1.4.2 多因子Alpha和高頻交易稱雄時代(2010—2015年) 21
1.4.3 多元化投資時代(2016年至今) 23
1.5 國內常用的量化交易策略 24
1.5.1 期貨CTA策略 24
1.5.2 股票Alpha策略 32
1.5.3 期權波動率套利策略 41
1.5.4 高頻交易策略 45
1.6 寬客 48
1.7 寬客的兩大陣形:P宗與Q宗 51
1.8 寬客的3種職能分類 52
1.8.1 量化IT工程師 52
1.8.2 量化研究員 53
1.8.3 量化交易員 54
1.9 寬客的四大派係 55
1.9.1 券商資管 56
1.9.2 公募基金 56
1.9.3 私募基金 57
1.9.4 期貨市場 57
第2章 Python量化編程基礎 59
2.1 Python運行環境搭建 60
2.1.1 安裝Anaconda2-5.0.0(32位) 61
2.1.2 設置Anancoda環境 62
2.1.3 創建共享環境 64
2.1.4 列齣共享環境 64
2.1.5 安裝Jupyter Notebook 65
2.2 數據 66
2.2.1 字符串 66
2.2.2 數字 67
2.2.3 容器 68
2.2.4 布爾值 73
2.2.5 空值 73
2.3 函數 74
2.3.1 自定義函數 74
2.3.2 第三方庫的函數 75
2.4 條件判斷 75
2.5 循環 76
2.6 類和實例 79
2.6.1 定義學生父類 79
2.6.2 定義父類實例 81
2.6.3 定義團體子類 82
2.6.4 定義子類實例 83
2.7 NumPy與Pandas 84
2.7.1 一維數組 84
2.7.2 二維數組 88
2.8 scikit-learn機器學習庫 92
2.8.1 機器學習的步驟 93
2.8.2 綫性迴歸 94
2.8.3 邏輯迴歸 100
2.9 Matplotlib繪圖庫 103
2.9.1 用列錶繪製綫條 103
2.9.2 用數組繪圖 105
2.9.3 多個圖的繪製 108
第3章 vn.py入門 109
3.1 vn.py介紹 109
3.2 搭建vn.py運行環境 113
3.2.1 安裝Visual Studio 2013社區版(特定版本) 113
3.2.2 安裝代碼編輯器工具:Sublime Text 114
3.2.3 安裝Wing IDE 115
3.2.4 安裝MongoDB數據庫 115
3.2.5 安裝Robo 3T 118
3.2.6 安裝vn.py 119
3.2.7 更新vn.py 121
3.3 VnTrader界麵功能介紹 122
3.3.1 連接CTP 122
3.3.2 界麵說明 123
3.4 vn.py架構 124
3.4.1 底層接口 125
3.4.2 中層引擎 126
3.4.3 上層應用 127
3.5 底層接口 128
3.5.1 CTP API的工作原理 128
3.5.2 CTP API的Python封裝設計 133
3.5.3 CTP API對接中層引擎原理 135
3.6 事件引擎 138
3.6.1 時間驅動 138
3.6.2 事件驅動 139
3.6.3 事件引擎工作流程 140
3.6.4 事件引擎結構 141
3.7 上層應用 143
3.7.1 PyQt介紹 143
3.7.2 GUI組件構成 144
第4章 在vn.py中實現CTA策略 147
4.1 數據解決方案 147
4.1.1 CSV加載模塊 147
4.1.2 開發新的CSV導入模塊 152
4.1.3 數據下載模塊 155
4.2 K綫生成模塊 157
4.2.1 1分鍾K綫 158
4.2.2 X分鍾K綫 161
4.3 K綫管理模塊 162
4.3.1 初始化參數 162
4.3.2 生成時間序列 163
4.3.3 定義屬性函數 164
4.3.4 生成計算指標 165
4.4 CTA策略模塊 167
4.4.1 定義成員變量 168
4.4.2 構建函數 169
4.4.3 迴調函數 170
4.4.4 主動函數 171
4.5 策略迴測模塊 174
4.5.1 CTA迴測引擎 174
4.5.2 參數優化設置 178
4.5.3 調用迴測和優化模塊 178
第5章 經典CTA策略 185
5.1 雙均綫策略 185
5.1.1 策略原理 185
5.1.2 嚮量迴測 186
5.1.3 vn.py迴測 191
5.2 Dual Thrust策略 200
5.2.1 策略原理 200
5.2.2 策略代碼解析 201
5.2.3 策略迴測 206
5.2.4 策略優化 208
5.2.5 滾動迴測 211
5.3 AtrRsi策略 212
5.3.1 ATR指標 213
5.3.2 RSI指標 215
5.3.3 策略原理 216
5.3.4 策略代碼解析 217
5.3.5 策略迴測 220
5.3.6 滾動迴測 221
5.4 金肯特納通道策略 223
5.4.1 策略原理 223
5.4.2 策略代碼解析 224
5.4.3 策略迴測 229
5.4.4 滾動迴測 229
5.5 布林帶通道策略 231
5.5.1 策略原理 231
5.5.2 CCI指標 232
5.5.3 ATR指標 234
5.5.4 策略迴測 235
5.5.5 滾動迴測 236
5.6 跨時間周期策略 238
5.6.1 策略原理 239
5.6.2 策略代碼解析 239
5.6.3 策略迴測 243
5.6.4 滾動迴測 244
5.7 多信號組閤策略 245
5.7.1 策略原理 246
5.7.2 信號生成部分 246
5.7.3 交易管理部分 251
5.7.4 多信號策略的重構 256
第6章 海龜策略本地化實證 259
6.1 海龜策略速覽 259
6.1.1 海龜策略的故事 259
6.1.2 海龜策略的局限性 260
6.1.3 原版海龜策略 261
6.1.4 策略迴測效果 266
6.2 本地化實現睏境與解決方案 268
6.2.1 本地化實現睏境 268
6.2.2 理想解決方案 270
6.3 vn.py實現的海龜策略 271
6.3.1 工具準備 271
6.3.2 數據準備 272
6.3.3 海龜策略代碼結構 275
6.3.4 海龜策略6大要素代碼解析 278
6.3.5 海龜策略的迴測 284
6.4 品種選擇驗證 285
6.4.1 原版投資組閤測試 285
6.4.2 篩選品種的傳統方法 287
6.4.3 構建海龜組閤的難點 295
6.4.4 海龜組閤篩選的解決方案 296
6.4.5 重新構建投資組閤 300
6.5 長短周期信號檢驗 320
6.6 上一筆贏利過濾檢驗 322
6.7 手續費、滑點測試 324
6.8 單位頭寸限製檢驗 325
6.9 關於海龜策略的其他研究方嚮 329
第7章 新策略實戰 330
7.1 開發新的策略 330
7.1.1 策略思路 330
7.1.2 增加AROON函數 332
7.1.3 策略代碼解析 333
7.1.4 策略迴測 335
7.2 多策略的組閤迴測 337
7.2.1 曆史錶現 338
7.2.2 預測錶現 341
7.2.3 迴測的注意事項 341
7.3 模擬測試 348
7.3.1 策略文件目錄 348
7.3.2 實盤/模擬盤配置文件 349
7.4 真實交易環境 352
7.4.1 交易環境的3套 352
7.4.2 交易環境的數據流 353
7.5 實際操作注意事項 354
7.5.1 計算 354
7.5.2 數據使用誤差 355
7.5.3 過擬閤 356
7.5.4 幸存者偏差 357
7.5.5 策略周期 358
7.5.6 動態變化的現實環境 359
7.5.7 人為乾預 360
附錄A 主流交易品種 361
A.1 股票 361
A.1.1 股票的定義 361
A.1.2 股票交易所 362
A.1.3 股票競價規則 363
A.1.4 T+1製度 367
A.1.5 股票交易策略 369
A.2 期貨 371
A.2.1 期貨的定義 371
A.2.2 期貨交易所 371
A.2.3 期貨交易策略 374
A.3 期權 376
A.3.1 期權的定義 376
A.3.2 期權的分類 379
A.3.3 期權的影響因素 381
A.3.4 期權投資組閤 383
A.3.5 期權波動率套利策略 386
A.4 外匯 387
A.4.1 外匯的定義 387
A.4.2 外匯市場的結構 389
A.4.3 外匯市場的組織形式 392
A.4.4 主要外匯交易中心 393
A.4.5 外匯交易策略 395
參考文獻 398
· · · · · · (
收起)