第1章 從故事開始學量化 1
1.1 億萬富翁的“神奇公式” 2
1.1.1 案例1-1:億萬富翁的“神奇公式” 2
1.1.2 案例分析:Python圖表 5
1.1.3 matplotlib繪圖模塊庫 7
1.1.4 案例分析:style繪圖風格 10
1.1.5 案例分析:colormap顏色表 12
1.1.6 案例分析:顏色表關鍵詞 14
1.1.7 深入淺出 17
1.2 股市“一月效應” 18
1.2.1 案例1-2:股市“一月效應” 18
1.2.2 案例分析:“一月效應”計算 19
1.2.3 案例分析:“一月效應”圖表分析 24
1.2.4 案例分析:顏色表效果圖 26
1.2.5 “一月效應”全文注解版Python源碼 27
1.2.6 大數據?宏分析 34
1.3 量化交易流程與概念 36
1.3.1 數據分析I2O流程 36
1.3.2 量化交易不是高頻交易、自動交易 37
1.3.3 小資、小白、韭菜 38
1.3.4 專業與業餘 38
1.4 用戶運行環境配置 42
1.4.1 程序目錄結構 43
1.4.2 金融股票數據包 44
1.5 Python實戰操作技巧 46
1.5.1 模塊檢測 46
1.5.2 Spyder編輯器界面設置 47
1.5.3 代碼配色技巧 48
1.5.4 圖像顯示配置 50
1.5.5 Python2、Python 3雙版本雙開模式 51
1.5.6 單版本雙開、多開模式 52
1.5.7 實戰勝於一切 54
1.6 量化、中醫與西醫 54
第2章 常用量化技術指標與框架 56
2.1 案例2-1:SMA均線策略 56
2.1.1 案例要點與事件編程 58
2.1.2 量化程序結構 61
2.1.3 main程序主入口 61
2.1.4 KISS法則 63
2.2 Python量化繫統框架 64
2.2.1 量化行業關鍵詞 64
2.2.2 國外主流Python量化網站 65
2.2.3 我國主流Python量化網站 67
2.2.4 主流Python量化框架 70
2.3 常用量化軟件包 78
2.3.1 常用量化軟件包簡介 79
2.3.2 案例2-2:模塊庫列表 80
2.4 常用量化技術指標 82
2.4.1 TA-Lib金融軟件包 83
2.4.2 案例2-3:MA均線函數調用 84
2.4.3 TA-Lib函數調用 86
2.4.4 量化分析常用指標 88
2.5 經典量化策略 90
2.5.1 阿爾法(Alpha)策略 90
2.5.2 Beta策略 92
2.5.3 海龜交易法則 93
2.5.4 ETF套利策略 95
2.6 常用量化策略 95
2.6.1 動量交易策略 96
2.6.2 均值回歸策略 97
2.6.3 其他常用量化策略 98
2.7 起點與終點 100
第3章 金融數據采集整理 101
3.1 常用數據源API與模塊庫 102
3.1.1 大數據綜合API 102
3.1.2 專業財經數據API 103
3.1.3 專業數據模塊庫 104
3.2 案例3-1:zwDatX數據類 104
3.3 美股數據源模塊庫 108
3.4 開源文檔庫Read the Docs 109
3.5 案例3-2:下載美股數據 110
3.6 財經數據源模塊庫TuShare 113
3.6.1 滬深股票列表 115
3.6.2 案例3-3:下載股票代碼數據 116
3.6.3 CSV文件處理 119
3.7 歷史數據 121
3.7.1 歷史行情 121
3.7.2 案例3-4:下載近期股票數據 124
3.7.3 歷史復權數據 130
3.7.4 案例3-5:下載歷史復權數據 131
3.8 其他交易數據 134
3.9 zwDat超大股票數據源與數據更新 143
3.9.1 案例3-6:A股基本概況數據下載 144
3.9.2 案例3-7:A股交易數據下載 146
3.9.3 案例3-8:A股指數行情數據下載 150
3.9.4 案例3-9:美股交易數據下載 151
3.10 數據歸一化處理 153
3.10.1 中美股票數據格式差異 153
3.10.2 案例3-10:數據格式轉化 154
3.10.3 案例3-11:A股策略PAT實盤分析 156
3.10.4 案例3-12:數據歸一化 158
3.11 為有源頭活水來 160
第4章 PAT案例彙編 162
4.1 投資組合與回報率 163
4.1.1 案例4-1:下載多組美股數據 163
4.1.2 案例4-2:投資組合收益計算 165
4.2 SMA均線策略 168
4.2.1 SMA簡單移動平均線 168
4.2.2 案例4-3:原版SMA均線策略 169
4.2.3 案例4-4:增強版SMA均線策略 173
4.2.4 案例4-5:A股版SMA均線策略 174
4.3 均線交叉策略 175
4.3.1 案例4-6:均線交叉策略 176
4.3.2 案例4-7:A股版均線交叉策略 178
4.4 VWAP動量策略 181
4.4.1 案例4-8:VWAP動量策略 182
4.4.2 案例4-9:A股版VWAP動量策略 183
4.5 布林帶策略 183
4.5.1 案例4-10:布林帶策略 185
4.5.2 案例4-11:A股版布林帶策略 186
4.6 RSI2策略 188
4.6.1 案例4-12:RSI2策略 190
4.6.2 案例4-13:A股版RSI2策略 190
4.7 案例與傳承 194
第5章 zwQuant整體架構 196
5.1 發布前言 196
5.2 功能簡介 197
5.2.1 目錄結構 197
5.2.2 安裝與更新 198
5.2.3 模塊說明 199
5.2.4 zwSys模塊:繫統變量與類定義 200
5.2.5 zwTools模塊:常用(非量化)工具函數 201
5.2.6 zwQTBox:常用“量化”工具函數集 201
5.2.7 zwQTDraw.py:量化繪圖工具函數 203
5.2.8 zwBacktest:回溯測試工具函數 203
5.2.9 zwStrategy:策略工具函數 203
5.2.10 zw_TA-Lib:金融函數模塊 204
5.3 示例程序 207
5.4 常用量化分析參數 208
5.5 回溯案例:對標測試 209
5.5.1 對標測試1:投資回報參數 209
5.5.2 對標測試2:VWAP策略 211
5.6 回報參數計算 214
5.7 主體框架 220
5.7.1 stkLib內存數據庫 220
5.7.2 Bars數據包 221
5.7.3 案例:內存數據庫&數據包 222
5.7.4 qxLib、xtrdLib 227
5.7.5 案例5-1:qxLib數據 228
5.7.6 量化繫統的價格體繫 230
5.7.7 數據預處理 231
5.7.8 繪圖模板 234
5.8 新的起點 236
第6章 模塊詳解與實盤數據 237
6.1 回溯流程 238
6.1.1 案例6-1:投資回報率 238
6.1.2 代碼構成 242
6.1.3 運行總流程 243
6.2 運行流程詳解 244
6.2.1 設置股票數據源 244
6.2.2 設置策略參數 247
6.2.3 dataPre數據預處理 249
6.2.4 綁定策略函數 253
6.2.5 回溯測試:zwBackTest 253
6.2.6 輸出回溯結果數據、圖表 258
6.3 零點策略 260
6.3.1 mul多個時間點的交易&數據 263
6.3.2 案例6-2:多個時間點交易 264
6.4 不同數據源與格式修改 270
6.4.1 案例6-3:數據源修改 272
6.4.2 數據源格式修改 274
6.5 金融數據包與實盤數據更新 275
6.5.1 大盤指數文件升級 276
6.5.2 實盤數據更新 277
6.5.3 案例6-4:A股實盤數據更新 277
6.5.4 案例6-5:大盤指數更新 279
6.6 穩定 281
第7章 量化策略庫 282
7.1 量化策略庫簡介 282
7.1.1 量化繫統的三代目 283
7.1.2 通用數據預處理函數 283
7.2 SMA均線策略 286
7.2.1 案例7-1:SMA均線策略 286
7.2.2 實盤下單時機與推薦 289
7.2.3 案例7-2:實盤SMA均線策略 290
7.3 CMA均線交叉策略 294
7.3.1 案例7-3:均線交叉策略 294
7.3.2 對標測試誤差分析 296
7.3.3 案例7-4:CMA均線交叉策略修改版 299
7.3.4 人工優化參數 300
7.4 VWAP策略 301
7.4.1 案例7-5:VWAP策略 301
7.4.2 案例7-6:實盤VWAP策略 303
7.5 BBands布林帶策略 304
7.5.1 案例7-7:BBands布林帶策略 305
7.5.2 案例7-8:實盤BBands布林帶策略 306
7.6 大道至簡1 1 307
第8章 海龜策略與自定義擴展 309
8.1 策略庫 309
8.1.1 自定義策略 310
8.1.2 海龜投資策略 310
8.2 tur海龜策略v1:從零開始 311
8.3 案例8-1:海龜策略框架 311
8.4 tur海龜策略v2:策略初始化 312
8.5 案例8-2:策略初始化 312
8.6 tur海龜策略v3:數據預處理 313
8.7 案例8-3:數據預處理 314
8.8 tur海龜策略v4:策略分析 317
8.9 案例8-4:策略分析 317
8.10 tur海龜策略v5:數據圖表輸出 320
8.10.1 案例8-5:圖表輸出 320
8.10.2 參數優化 324
8.10.3 案例8-6:參數優化 324
8.11 tur海龜策略v9:加入策略庫 325
8.12 案例8-7:入庫 326
8.13 庖丁解牛 328
第9章 TA-Lib函數庫與策略開發 329
9.1 TA-Lib技術指標 329
9.1.1 TA-Lib官網 329
9.1.2 矩陣版TA-Lib金融函數模塊 330
9.2 MACD策略 331
9.2.1 MACD策略1 331
9.2.2 案例9-1:MACD_v1 335
9.2.3 MACD策略2 336
9.2.4 案例9-2:MACD_v2 338
9.3 KDJ策略 340
9.3.1 KDJ策略1 340
9.3.2 案例9-3:KDJ01 343
9.3.3 KDJ策略2 346
9.3.4 案例9-4:KDJ02 347
9.4 RSI策略 350
9.4.1 RSI取值的大小 351
9.4.2 RSI策略 351
9.4.3 預留參數優化接口 356
9.4.4 案例9-5:A股版RSI策略 357
9.5 基石、策略與靈感 358
第10章 擴展與未來 360
10.1 回顧案例2-1:SMA均線策略 360
案例10-1:SMA均線策略擴展 363
10.2 大盤指數資源 365
10.2.1 大盤指數文件升級 366
10.2.2 大盤指數內存數據庫 367
10.2.3 擴展zwQuantX類變量 368
10.2.4 大盤指數讀取函數 368
10.2.5 案例10-2:讀取指數 369
10.2.6 大盤數據切割 370
10.2.7 案例10-3:inxCut數據切割 372
10.3 繫統整合 373
10.3.1 案例10-4:整合設置 375
10.3.2 案例10-5:修改指數代碼 376
10.3.3 修改sta_dataPre0xtim函數 377
10.3.4 案例10-6:整合數據切割 380
10.3.5 修改繪圖函數 381
10.4 擴展完成 384
案例10-7:SMA均線擴展策略 384
10.5 其他擴展課題 386
10.5.1 復權數據衝突 386
10.5.2 波動率指標DVIX 386
10.5.3 修改回溯主函數zwBackTest 387
10.5.4 案例10-8:波動率 390
10.5.5 空頭交易 392
10.5.6 虛擬空頭交易 392
10.5.7 修改檢查函數 393
10.5.8 案例10-9:空頭數據 396
10.6 終點與起點 397
附錄A zwPython開發平臺用戶手冊 398
附錄B Python量化學習路線圖 423