本書有三大特色:第一,以實(shí)盤個(gè)案分析為主,全程配有Python代碼;第二,包含大量的圖文案例和Python源碼,無(wú)須專業(yè)編程基礎(chǔ),懂Excel即可開始學(xué)習(xí);第三,配有專業(yè)的zwPython、zwQuant量化軟件和zwDat數(shù)據(jù)包。主要內(nèi)容包括:從故事開始學(xué)量化、常用量化技術(shù)指標(biāo)與框架等。
本書包括:
近50萬(wàn)字的圖文課件;
數(shù)十套結(jié)合課件的Python教學(xué)代碼;
全套zwPython開源平臺(tái);
業(yè)內(nèi)首套面向初學(xué)者的開源量化系統(tǒng)zwQuant;
國(guó)內(nèi)較大的開源金融數(shù)據(jù)包zwDat,包括tick數(shù)據(jù)。
100%零基礎(chǔ),無(wú)須任何編程、交易經(jīng)驗(yàn),也不需要具備超強(qiáng)的數(shù)據(jù)分析能力,只要會(huì)使用Excel就可以輕松學(xué)會(huì)本書講解的知識(shí)點(diǎn)。讀完本書內(nèi)容和配套的教學(xué)代碼,就能夠編寫簡(jiǎn)單的量化策略函數(shù)。
2014年,美國(guó)銀行、美林證券的“石英”項(xiàng)目、摩根大通的“雅典娜”項(xiàng)目都不約而同地選擇了Python作為金融行業(yè)的標(biāo)準(zhǔn)編程語(yǔ)言。
全世界的金融工程行業(yè)全部重新洗牌,這為中國(guó)的金融工程從業(yè)人員帶來(lái)了前所未有的機(jī)遇。資本的力量是強(qiáng)大的,也是冷酷無(wú)情的。
2016年5月,《華爾街日?qǐng)?bào)》報(bào)道,目前華爾街的三大編程語(yǔ)言是:C、Java與Python。其中,C與Java成為三大語(yǔ)言之一有兩方面原因:一方面是由于歷史積累,另一方面是系統(tǒng)架構(gòu)設(shè)計(jì)的需要。而在應(yīng)用領(lǐng)域Python更勝一籌,因?yàn)镻ython已經(jīng)成為金融行業(yè)量化領(lǐng)域的標(biāo)準(zhǔn)編程語(yǔ)言。
本書是國(guó)內(nèi)較早關(guān)于Python大數(shù)據(jù)與量化交易的原創(chuàng)圖書。本書配合zwPython、zwQuant開源量化軟件學(xué)習(xí),是一套完整的大數(shù)據(jù)分析、量化交易的學(xué)習(xí)教材,可直接用于實(shí)盤交易。
本書內(nèi)容包括:
近50萬(wàn)字的圖文課件;
數(shù)十套結(jié)合課件的Python教學(xué)代碼;
全套zwPython開源平臺(tái);
業(yè)內(nèi)首套面向初學(xué)者的開源量化系統(tǒng)zwQuant;
國(guó)內(nèi)較大的開源金融數(shù)據(jù)包zwDat,包括tick數(shù)據(jù)。
100%零基礎(chǔ),無(wú)須任何編程、交易經(jīng)驗(yàn),也不需要具備超強(qiáng)的數(shù)據(jù)分析能力,只要會(huì)使用Excel就可以輕松學(xué)會(huì)本書講解的知識(shí)點(diǎn)。讀完本書內(nèi)容和配套的教學(xué)代碼,就能夠編寫簡(jiǎn)單的量化策略函數(shù)。
本書的內(nèi)容源自筆者的原版教學(xué)課件,雖然限于篇幅和載體,省略了視頻和部分環(huán)節(jié),但核心內(nèi)容都有保留,配套的近百套Python教學(xué)程序沒有進(jìn)行任何刪減。
考慮到廣大入門讀者的需求,筆者在各個(gè)核心函數(shù)環(huán)節(jié)增添了函數(shù)流程圖。
量化新人學(xué)習(xí)指南
1.多參考筆者的字王量化網(wǎng)站和筆者博客。
2.本書配套程序可在百度網(wǎng)盤下載。本書讀者QQ群(zwPython量化總?cè)海?24134140。網(wǎng)盤和群共享包含很多資源,讀者可自行下載,也可以上傳。建議先看“漫畫學(xué)××系列”,該系列比較經(jīng)典,而且簡(jiǎn)單;zwQuant開源量化軟件在群共享和網(wǎng)盤都可下載。
3.強(qiáng)烈建議初學(xué)者先下載zwPython集成版,閱讀zwPython中文手冊(cè),再開始學(xué)習(xí)Python,這樣可以少走很多彎路。
資源下載
為配合本書出版,方便廣大讀者學(xué)習(xí)Python量化系統(tǒng),筆者特意將與本書相關(guān)的教學(xué)資源打包成一個(gè)獨(dú)立的教學(xué)版本壓縮包,便于讀者使用。
教學(xué)版為一個(gè)獨(dú)立壓縮包,解壓即可,并配有說(shuō)明文檔。
教學(xué)版內(nèi)置了zwPython2016M10版開發(fā)平臺(tái)(Python 3.5版)、Python 2.7版開發(fā)平臺(tái)、zwDat金融數(shù)據(jù)包、zw_down25金融數(shù)據(jù)下載更新程序包和zw_k10配套量化教學(xué)課件程序。
教學(xué)版軟件和配套資源下載地址如下。
以上網(wǎng)址如果發(fā)生變動(dòng),請(qǐng)讀者瀏覽字王網(wǎng)站或者極寬公司網(wǎng)站獲取最新信息。
致謝
雖然很多網(wǎng)友在筆者博客留言,要求購(gòu)買本書,但本書的創(chuàng)作和正式出版還是經(jīng)歷了許多波折。
如今本書終于出版,在此,要特別感謝電子工業(yè)出版社的黃愛萍和戴新編輯,感謝她們?cè)谶x題策劃和稿件整理方面做出的大量工作。
同時(shí),在本書創(chuàng)作過程中,極寬開源量化團(tuán)隊(duì)和培訓(xùn)班的全體成員,提出很多寶貴的意見,并對(duì)部分課件程序做了中文注解。
特別是吳娜、余勤兩位同學(xué),為極寬開源量化文庫(kù)和zwQuant開源量化軟件編寫文檔,以及在團(tuán)隊(duì)成員管理方面做了大量工作,為他們的付出表示感謝。
何海群(字王)
北京極寬科技有限公司CTO
2016年11月25日
何海群,網(wǎng)名:字王,CHRD前海智庫(kù)CTO,《中華大字庫(kù)》發(fā)明人,出版書籍20余部,在人工智能、數(shù)據(jù)分析等方面具有20年一線專業(yè)經(jīng)驗(yàn);zwPython開發(fā)平臺(tái)、zwQuant量化軟件設(shè)計(jì)師,中國(guó)“Python創(chuàng)客”項(xiàng)目和“Python產(chǎn)業(yè)聯(lián)盟”發(fā)起人,國(guó)內(nèi)Python量化課程《Python量化實(shí)盤?魔鬼訓(xùn)練營(yíng)》創(chuàng)始人,也是極寬量化開源團(tuán)隊(duì)的創(chuàng)始人。其研究成果有:“小數(shù)據(jù)”理論、快數(shù)據(jù)模型、黑天鵝算法、人工智能“足彩圖靈法則”等;其論文《人工智能與中文字型設(shè)計(jì)》是中文字庫(kù)行業(yè)三大基礎(chǔ)建模理論之一。論文《人工智能與中文字型設(shè)計(jì)》是中文字庫(kù)行業(yè)三大基礎(chǔ)建模理論之一。
第1章 從故事開始學(xué)量化 1
1.1 億萬(wàn)富翁的“神奇公式” 2
1.1.1 案例1-1:億萬(wàn)富翁的“神奇公式” 2
1.1.2 案例分析:Python圖表 5
1.1.3 matplotlib繪圖模塊庫(kù) 7
1.1.4 案例分析:style繪圖風(fēng)格 10
1.1.5 案例分析:colormap顏色表 12
1.1.6 案例分析:顏色表關(guān)鍵詞 14
1.1.7 深入淺出 17
1.2 股市“一月效應(yīng)” 18
1.2.1 案例1-2:股市“一月效應(yīng)” 18
1.2.2 案例分析:“一月效應(yīng)”計(jì)算 19
1.2.3 案例分析:“一月效應(yīng)”圖表分析 24
1.2.4 案例分析:顏色表效果圖 26
1.2.5 “一月效應(yīng)”全文注解版Python源碼 27
1.2.6 大數(shù)據(jù)?宏分析 34
1.3 量化交易流程與概念 36
1.3.1 數(shù)據(jù)分析I2O流程 36
1.3.2 量化交易不是高頻交易、自動(dòng)交易 37
1.3.3 小資、小白、韭菜 38
1.3.4 專業(yè)與業(yè)余 38
1.4 用戶運(yùn)行環(huán)境配置 42
1.4.1 程序目錄結(jié)構(gòu) 43
1.4.2 金融股票數(shù)據(jù)包 44
1.5 Python實(shí)戰(zhàn)操作技巧 46
1.5.1 模塊檢測(cè) 46
1.5.2 Spyder編輯器界面設(shè)置 47
1.5.3 代碼配色技巧 48
1.5.4 圖像顯示配置 50
1.5.5 Python2、Python 3雙版本雙開模式 51
1.5.6 單版本雙開、多開模式 52
1.5.7 實(shí)戰(zhàn)勝于一切 54
1.6 量化、中醫(yī)與西醫(yī) 54
第2章 常用量化技術(shù)指標(biāo)與框架 56
2.1 案例2-1:SMA均線策略 56
2.1.1 案例要點(diǎn)與事件編程 58
2.1.2 量化程序結(jié)構(gòu) 61
2.1.3 main程序主入口 61
2.1.4 KISS法則 63
2.2 Python量化系統(tǒng)框架 64
2.2.1 量化行業(yè)關(guān)鍵詞 64
2.2.2 國(guó)外主流Python量化網(wǎng)站 65
2.2.3 我國(guó)主流Python量化網(wǎng)站 67
2.2.4 主流Python量化框架 70
2.3 常用量化軟件包 78
2.3.1 常用量化軟件包簡(jiǎn)介 79
2.3.2 案例2-2:模塊庫(kù)列表 80
2.4 常用量化技術(shù)指標(biāo) 82
2.4.1 TA-Lib金融軟件包 83
2.4.2 案例2-3:MA均線函數(shù)調(diào)用 84
2.4.3 TA-Lib函數(shù)調(diào)用 86
2.4.4 量化分析常用指標(biāo) 88
2.5 經(jīng)典量化策略 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 動(dòng)量交易策略 96
2.6.2 均值回歸策略 97
2.6.3 其他常用量化策略 98
2.7 起點(diǎn)與終點(diǎn) 100
第3章 金融數(shù)據(jù)采集整理 101
3.1 常用數(shù)據(jù)源API與模塊庫(kù) 102
3.1.1 大數(shù)據(jù)綜合API 102
3.1.2 專業(yè)財(cái)經(jīng)數(shù)據(jù)API 103
3.1.3 專業(yè)數(shù)據(jù)模塊庫(kù) 104
3.2 案例3-1:zwDatX數(shù)據(jù)類 104
3.3 美股數(shù)據(jù)源模塊庫(kù) 108
3.4 開源文檔庫(kù)Read the Docs 109
3.5 案例3-2:下載美股數(shù)據(jù) 110
3.6 財(cái)經(jīng)數(shù)據(jù)源模塊庫(kù)TuShare 113
3.6.1 滬深股票列表 115
3.6.2 案例3-3:下載股票代碼數(shù)據(jù) 116
3.6.3 CSV文件處理 119
3.7 歷史數(shù)據(jù) 121
3.7.1 歷史行情 121
3.7.2 案例3-4:下載近期股票數(shù)據(jù) 124
3.7.3 歷史復(fù)權(quán)數(shù)據(jù) 130
3.7.4 案例3-5:下載歷史復(fù)權(quán)數(shù)據(jù) 131
3.8 其他交易數(shù)據(jù) 134
3.9 zwDat超大股票數(shù)據(jù)源與數(shù)據(jù)更新 143
3.9.1 案例3-6:A股基本概況數(shù)據(jù)下載 144
3.9.2 案例3-7:A股交易數(shù)據(jù)下載 146
3.9.3 案例3-8:A股指數(shù)行情數(shù)據(jù)下載 150
3.9.4 案例3-9:美股交易數(shù)據(jù)下載 151
3.10 數(shù)據(jù)歸一化處理 153
3.10.1 中美股票數(shù)據(jù)格式差異 153
3.10.2 案例3-10:數(shù)據(jù)格式轉(zhuǎn)化 154
3.10.3 案例3-11:A股策略PAT實(shí)盤分析 156
3.10.4 案例3-12:數(shù)據(jù)歸一化 158
3.11 為有源頭活水來(lái) 160
第4章 PAT案例匯編 162
4.1 投資組合與回報(bào)率 163
4.1.1 案例4-1:下載多組美股數(shù)據(jù) 163
4.1.2 案例4-2:投資組合收益計(jì)算 165
4.2 SMA均線策略 168
4.2.1 SMA簡(jiǎn)單移動(dòng)平均線 168
4.2.2 案例4-3:原版SMA均線策略 169
4.2.3 案例4-4:增強(qiáng)版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動(dòng)量策略 181
4.4.1 案例4-8:VWAP動(dòng)量策略 182
4.4.2 案例4-9:A股版VWAP動(dòng)量策略 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整體架構(gòu) 196
5.1 發(fā)布前言 196
5.2 功能簡(jiǎn)介 197
5.2.1 目錄結(jié)構(gòu) 197
5.2.2 安裝與更新 198
5.2.3 模塊說(shuō)明 199
5.2.4 zwSys模塊:系統(tǒng)變量與類定義 200
5.2.5 zwTools模塊:常用(非量化)工具函數(shù) 201
5.2.6 zwQTBox:常用“量化”工具函數(shù)集 201
5.2.7 zwQTDraw.py:量化繪圖工具函數(shù) 203
5.2.8 zwBacktest:回溯測(cè)試工具函數(shù) 203
5.2.9 zwStrategy:策略工具函數(shù) 203
5.2.10 zw_TA-Lib:金融函數(shù)模塊 204
5.3 示例程序 207
5.4 常用量化分析參數(shù) 208
5.5 回溯案例:對(duì)標(biāo)測(cè)試 209
5.5.1 對(duì)標(biāo)測(cè)試1:投資回報(bào)參數(shù) 209
5.5.2 對(duì)標(biāo)測(cè)試2:VWAP策略 211
5.6 回報(bào)參數(shù)計(jì)算 214
5.7 主體框架 220
5.7.1 stkLib內(nèi)存數(shù)據(jù)庫(kù) 220
5.7.2 Bars數(shù)據(jù)包 221
5.7.3 案例:內(nèi)存數(shù)據(jù)庫(kù)&數(shù)據(jù)包 222
5.7.4 qxLib、xtrdLib 227
5.7.5 案例5-1:qxLib數(shù)據(jù) 228
5.7.6 量化系統(tǒng)的價(jià)格體系 230
5.7.7 數(shù)據(jù)預(yù)處理 231
5.7.8 繪圖模板 234
5.8 新的起點(diǎn) 236
第6章 模塊詳解與實(shí)盤數(shù)據(jù) 237
6.1 回溯流程 238
6.1.1 案例6-1:投資回報(bào)率 238
6.1.2 代碼構(gòu)成 242
6.1.3 運(yùn)行總流程 243
6.2 運(yùn)行流程詳解 244
6.2.1 設(shè)置股票數(shù)據(jù)源 244
6.2.2 設(shè)置策略參數(shù) 247
6.2.3 dataPre數(shù)據(jù)預(yù)處理 249
6.2.4 綁定策略函數(shù) 253
6.2.5 回溯測(cè)試:zwBackTest 253
6.2.6 輸出回溯結(jié)果數(shù)據(jù)、圖表 258
6.3 零點(diǎn)策略 260
6.3.1 mul多個(gè)時(shí)間點(diǎn)的交易&數(shù)據(jù) 263
6.3.2 案例6-2:多個(gè)時(shí)間點(diǎn)交易 264
6.4 不同數(shù)據(jù)源與格式修改 270
6.4.1 案例6-3:數(shù)據(jù)源修改 272
6.4.2 數(shù)據(jù)源格式修改 274
6.5 金融數(shù)據(jù)包與實(shí)盤數(shù)據(jù)更新 275
6.5.1 大盤指數(shù)文件升級(jí) 276
6.5.2 實(shí)盤數(shù)據(jù)更新 277
6.5.3 案例6-4:A股實(shí)盤數(shù)據(jù)更新 277
6.5.4 案例6-5:大盤指數(shù)更新 279
6.6 穩(wěn)定第一 281
第7章 量化策略庫(kù) 282
7.1 量化策略庫(kù)簡(jiǎn)介 282
7.1.1 量化系統(tǒng)的三代目 283
7.1.2 通用數(shù)據(jù)預(yù)處理函數(shù) 283
7.2 SMA均線策略 286
7.2.1 案例7-1:SMA均線策略 286
7.2.2 實(shí)盤下單時(shí)機(jī)與推薦 289
7.2.3 案例7-2:實(shí)盤SMA均線策略 290
7.3 CMA均線交叉策略 294
7.3.1 案例7-3:均線交叉策略 294
7.3.2 對(duì)標(biāo)測(cè)試誤差分析 296
7.3.3 案例7-4:CMA均線交叉策略修改版 299
7.3.4 人工優(yōu)化參數(shù) 300
7.4 VWAP策略 301
7.4.1 案例7-5:VWAP策略 301
7.4.2 案例7-6:實(shí)盤VWAP策略 303
7.5 BBands布林帶策略 304
7.5.1 案例7-7:BBands布林帶策略 305
7.5.2 案例7-8:實(shí)盤BBands布林帶策略 306
7.6 大道至簡(jiǎn)1 1 307
第8章 海龜策略與自定義擴(kuò)展 309
8.1 策略庫(kù) 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:數(shù)據(jù)預(yù)處理 313
8.7 案例8-3:數(shù)據(jù)預(yù)處理 314
8.8 tur海龜策略v4:策略分析 317
8.9 案例8-4:策略分析 317
8.10 tur海龜策略v5:數(shù)據(jù)圖表輸出 320
8.10.1 案例8-5:圖表輸出 320
8.10.2 參數(shù)優(yōu)化 324
8.10.3 案例8-6:參數(shù)優(yōu)化 324
8.11 tur海龜策略v9:加入策略庫(kù) 325
8.12 案例8-7:入庫(kù) 326
8.13 庖丁解牛 328
第9章 TA-Lib函數(shù)庫(kù)與策略開發(fā) 329
9.1 TA-Lib技術(shù)指標(biāo) 329
9.1.1 TA-Lib官網(wǎng) 329
9.1.2 矩陣版TA-Lib金融函數(shù)模塊 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 預(yù)留參數(shù)優(yōu)化接口 356
9.4.4 案例9-5:A股版RSI策略 357
9.5 基石、策略與靈感 358
第10章 擴(kuò)展與未來(lái) 360
10.1 回顧案例2-1:SMA均線策略 360
案例10-1:SMA均線策略擴(kuò)展 363
10.2 大盤指數(shù)資源 365
10.2.1 大盤指數(shù)文件升級(jí) 366
10.2.2 大盤指數(shù)內(nèi)存數(shù)據(jù)庫(kù) 367
10.2.3 擴(kuò)展zwQuantX類變量 368
10.2.4 大盤指數(shù)讀取函數(shù) 368
10.2.5 案例10-2:讀取指數(shù) 369
10.2.6 大盤數(shù)據(jù)切割 370
10.2.7 案例10-3:inxCut數(shù)據(jù)切割 372
10.3 系統(tǒng)整合 373
10.3.1 案例10-4:整合設(shè)置 375
10.3.2 案例10-5:修改指數(shù)代碼 376
10.3.3 修改sta_dataPre0xtim函數(shù) 377
10.3.4 案例10-6:整合數(shù)據(jù)切割 380
10.3.5 修改繪圖函數(shù) 381
10.4 擴(kuò)展完成 384
案例10-7:SMA均線擴(kuò)展策略 384
10.5 其他擴(kuò)展課題 386
10.5.1 復(fù)權(quán)數(shù)據(jù)沖突 386
10.5.2 波動(dòng)率指標(biāo)DVIX 386
10.5.3 修改回溯主函數(shù)zwBackTest 387
10.5.4 案例10-8:波動(dòng)率 390
10.5.5 空頭交易 392
10.5.6 虛擬空頭交易 392
10.5.7 修改檢查函數(shù) 393
10.5.8 案例10-9:空頭數(shù)據(jù) 396
10.6 終點(diǎn)與起點(diǎn) 397
附錄A zwPython開發(fā)平臺(tái)用戶手冊(cè) 398
附錄B Python量化學(xué)習(xí)路線圖 423