本書是國內(nèi)較早關于TensorFlow大數(shù)據(jù)與量化交易的原創(chuàng)圖書,配合zwPython開發(fā)平臺和zwQuant開源量化軟件學習,是一套完整的大數(shù)據(jù)分析、量化交易的學習教材,可直接用于實盤交易。本書有三大特色:*,以實盤個案分析為主,全程配有Python代碼;第二,包含大量的圖文案例和Python源碼,無須專業(yè)編程基礎,懂Excel即可開始學習;第三,配有專業(yè)的zwPython集成開發(fā)平臺、zwQuant量化軟件和zwDat數(shù)據(jù)包。
本書采用獨創(chuàng)的黑箱模式、MBA案例教學機制,結(jié)合大量的經(jīng)典案例,介紹TensorFlow系統(tǒng)和常用的深度學習算法、神經(jīng)網(wǎng)絡模型,以及它們在量化分析當中的具體應用。
《零起點TensorFlow與量化交易》僅僅作為入門課程,具體的實盤策略,有待廣大讀者通過進一步深入學習TensorFlow、PyTorch、MXNet等新一代深度學習平臺來獲得。*重要的是,還有待廣大的一線實盤操作人員結(jié)合專業(yè)的金融操盤經(jīng)驗,與各種神經(jīng)網(wǎng)絡模型融會貫通,構(gòu)建更加符合金融量化實際應用的神經(jīng)網(wǎng)絡模型,從而獲得更好的投資回報。
推 薦 序
AlphaGo與柯潔的黑白大戰(zhàn),因為對陣的一方是中國頂級圍棋高手柯潔,所以引起國人的高度關注。利用百度搜索引擎輸入AlphaGo,一度可以得出7000多萬條搜索結(jié)果,這遠遠高于其他熱門詞條。
事實上,AlphaGo只是Google擁有的兩套人工智能系統(tǒng)中的一套。它是Google 2014年收購的DeepMind的人工智能系統(tǒng),專注于棋賽開發(fā)。Google的另外一套人工智能系統(tǒng)就是本書介紹的TensorFlow系統(tǒng)。
在TensorFlow等人工智能系統(tǒng)出現(xiàn)之前,計算機所做的事情往往是簡單重復的。計算機會按照人類編好的既定程序,簡單重復、按部就班地運行,沒有超越人類事先為其設定的思維邊界。
計算機與人類的大腦相比,根本的區(qū)別在于不具備學習和創(chuàng)新能力。
計算機頂多也就是記憶的信息多,重復計算的速度快,不受情緒的影響等。但是,在TensorFlow等人工智能系統(tǒng)出現(xiàn)之后,計算機所做的事情除簡單重復運行之外,更重要的是其具備了一定的自我學習和創(chuàng)新能力。
TensorFlow等人工智能系統(tǒng)使得計算機在一定程度上能夠自主學習,自我提高,總結(jié)過去的經(jīng)驗,汲取以往的教訓,具備一定的創(chuàng)新性。這一點在AlphaGo與柯潔對壘的3場棋局的結(jié)果中不難看出。
這正是以AlphaGo和TensorFlow為代表的人工智能系統(tǒng)區(qū)別于以往任何計算機技術的關鍵所在,也是TensorFlow被稱為互聯(lián)網(wǎng)以來唯一的黑科技項目的原因。
具備了一定的自我學習和創(chuàng)造能力的人工智能系統(tǒng)的出現(xiàn),將對經(jīng)濟系統(tǒng)的各個領域產(chǎn)生重大影響。筆者有著超過20年境內(nèi)外金融行業(yè)從業(yè)經(jīng)歷,將從一個側(cè)面分享人工智能對金融領域的影響。
從整個金融業(yè)的歷史沿革來看,這大致經(jīng)歷了4個階段:純?nèi)斯るA段、單機電腦階段、互聯(lián)網(wǎng)(含移動互聯(lián)網(wǎng))階段和人工智能階段。
隨著每個階段的漸次演進,提供金融服務一方的人力成本投入在逐漸減少,提供金融服務的效率在提高;對于接受金融服務的一方來說,金融服務的可獲得性,以及便捷程度在逐漸增加,金融服務越來越圍繞著人進行,以人為中心的全方位的社會經(jīng)濟服務體系正在形成。
在金融服務體系中,銀行服務、證券服務、保險服務等的內(nèi)部界限開始變得模糊,金融服務與其他非金融的社會經(jīng)濟服務之間的界限開始變得不清。
特別是金融業(yè)進入人工智能階段之后,人工智能系統(tǒng)將接受金融服務一方的身份特征數(shù)據(jù)、交易數(shù)據(jù)和行為數(shù)據(jù)等大數(shù)據(jù),進行實時分析和動態(tài)跟蹤,以遠低于人工成本的成本,為每個人建立一個基于生命周期的綜合金融模型,對每個人未來的金融行為進行預測,自動為他們提供賬戶資金管理、貨幣兌換、證券買賣、保險購買、購房購車計劃、旅行休閑、子女教育、養(yǎng)老規(guī)劃等方面的金融建議和授權代理操作,并將模型預測結(jié)果與實際情況相比對,自主學習和修正模型,以便更加貼合接受金融服務一方的真實金融意圖,使得人工智能模型的預測建議和人的實際金融行為無限接近。
由此人類將從日常繁雜的各種金融交易中解放出來,投身到更需要自己或自己更感興趣的方面。
展望未來,人工智能的應用前景無限美好;探尋當下,人工智能在世界各地的各行各業(yè)方興未艾。
千里之行,始于足下。何海群先生的《零起點TensorFlow與量化交易》是有志于人工智能領域的IT人士的一塊敲門磚和鋪路石。
祝愿人工智能在華夏大地生根發(fā)芽,開花結(jié)果。
梁 忠
梁忠:中國人民大學財政金融系博士,曾任里昂證券CLSA分析員;瑞銀證券UBSS董事,財富管理中國研究部主管;瑞士信貸(香港)有限公司中國研究部董事;瑞信方正證券執(zhí)行董事,研究部主管,具有20年國際頂級金融機構(gòu)從業(yè)經(jīng)歷。
前 言
感謝梁忠先生在百忙之中為本書撰寫序言。以TensorFlow為代表的神經(jīng)網(wǎng)絡,被視為自互聯(lián)網(wǎng)以來唯一的黑科技,無遠弗屆,無分行業(yè)領域,對社會各界從上至下帶來徹底的顛覆與革命。
梁忠先生作為非IT領域的學者、專家,從第三方角度,冷靜地觀察這場數(shù)字革命,同時向更多的大眾介紹這場革命的火花,推動行業(yè)變革,功莫大焉。
隨著類似于Titanic數(shù)據(jù)集案例、梵高畫風等一系列,基于TensorFlow等神經(jīng)網(wǎng)絡、深度學習項目的不斷涌現(xiàn),未來的各個學科都會結(jié)合人工智能(AI),進行新的學術重組。
Python量化三部曲
Python量化三部曲包括:
? 《零起點Python大數(shù)據(jù)與量化交易》(入門課程)
? 《零起點機器學習與量化交易》(重點分析SKLearn)
? 《零起點TensorFlow與量化交易》(重點分析TensorFlow)
此外,還有幾部補充作品:
? 《零起點Python足彩大數(shù)據(jù)與機器學習實盤分析》
? 《零起點Python機器學習快速入門》
? 《零起點TensorFlow快速入門》
? 《MXNet神經(jīng)網(wǎng)絡與量化交易》
? 《Plotly可視化數(shù)據(jù)分析》
本書是《零起點TensorFlow快速入門》的后續(xù)之作,原本是TopQuant.vip極寬量化培訓課程高級班的教學課件,為了節(jié)省篇幅,刪除了Python基礎教程,以及SKLearn、TensorFlow等機器學習方面的入門內(nèi)容。沒有經(jīng)驗的讀者,建議先閱讀《零起點Python機器學習快速入門》《零起點TensorFlow快速入門》,再開始本書的學習,這樣會收到事半功倍的效果。
本書是目前較好的TensorFlow神經(jīng)網(wǎng)絡與量化分析入門教程:
? 無需任何理論基礎,全程采用MBA案例模式,懂Excel就可看懂本書。
? 獨創(chuàng)的逆向式課件模式,結(jié)合TensorBoard可視化系統(tǒng),案例、圖表優(yōu)先,層層剖析。
? 系統(tǒng)介紹TensorFlow在金融量化領域的具體應用,提供多組配套案例。
? 全套神經(jīng)網(wǎng)絡股票趨勢預測、股票價格預測案例源碼。
? TDS金融數(shù)據(jù)集的創(chuàng)建與使用。
? 三位一體的課件模式:圖書 開發(fā)平臺 成套的教學案例,系統(tǒng)講解,逐步深入。
本書采用獨創(chuàng)的黑箱模式、MBA案例教學機制,結(jié)合大量的經(jīng)典案例,介紹TensorFlow系統(tǒng)和常用的深度學習算法、神經(jīng)網(wǎng)絡模型,以及它們在量化分析當中的具體應用。
進一步學習
讀者如有興趣可以進一步學習Python量化三部曲的內(nèi)容,以及《零起點Python足彩大數(shù)據(jù)與機器學習實盤分析》。
機器學習、人工智能、金融量化,它們的基本原理是相通的,本質(zhì)上都是數(shù)據(jù)分析。對于Python量化三部曲的讀者而言,本書也有很大的價值,特別是對于第一部入門課程的讀者。
Python量化回溯與TensorFlow、PyTorch、MXNet等神經(jīng)網(wǎng)絡深度學習平臺,都是近年來興起的科技前沿領域,有關的理論、平臺、工具目前還處于摸索階段。Python量化三部曲圖書和TopQuant.vip極寬智能量化系統(tǒng),只是在這些領域的起步階段,作為入門教程,拋磚引玉。
本書中的案例、程序以教學為主,進行了很多簡化,以便大家能夠快速理解相關內(nèi)容,用最短的時間,了解Python量化回溯的整個流程,以及數(shù)據(jù)分析、機器學習、神經(jīng)網(wǎng)絡在這些領域的應用操作技巧。
神經(jīng)網(wǎng)絡、深度學習在量化實盤當中的應用,是目前全世界都在研究的頂尖課題,當前尚未有很好的模型與應用案例。
本書僅僅作為入門課程,具體的實盤策略,有待廣大讀者通過進一步深入學習TensorFlow、PyTorch、MXNet等新一代深度學習平臺來獲得。
最重要的是,還有待廣大的一線實盤操作人員結(jié)合專業(yè)的金融操盤經(jīng)驗,與各種神經(jīng)網(wǎng)絡模型融會貫通,構(gòu)建更加符合金融量化實際應用的神經(jīng)網(wǎng)絡模型,從而獲得更好的投資回報。
網(wǎng)絡資源
為避免版本沖突,建議本書的讀者下載zwPython 2018m1版本的軟件和最新版本的《零起點TensorFlow與量化交易》配套課件程序,作為配套學習課件。配套程序的下載地址是http://www.broadview.com.cn/33584。
使用其他Python運行環(huán)境如Linux、Mac平臺的讀者,請盡量使用Python 3.5和TensorFlow 1.1版本,并自行安裝所需的其他模塊庫。
此外,需要注意的是,讀者在運行書中案例時得到的結(jié)果,可能與本書略有差別,甚至多次運行同一個案例的結(jié)果也會有所差異,這屬于正常情況。因為TensorFlow等深度學習系統(tǒng),內(nèi)部都使用了隨機數(shù)作為種子數(shù),用于系統(tǒng)變量初始化等操作,每次分析的起點或者中間參數(shù)都有所不同。
本書的案例程序已經(jīng)做過優(yōu)化處理,不需要GPU顯卡,全部支持單CPU平臺。不過,為了提高運行效率,筆者建議盡量使用NVIDA公司最新一代的GPU顯卡。
目前是大數(shù)據(jù)、人工智能 時代,在這樣的時代,計算力=生產(chǎn)力。
與本書相關的網(wǎng)絡資源如下。
? 網(wǎng)站:http://www.TopQuant.vip http://www.ziwang.com。
? 網(wǎng)盤地址:http://pan.baidu.com/s/1jIg944u。
? 極寬量化QQ群:總?cè)海?24134140;QQ 2群,650924099;QQ 3群,450853713。
? 技術Blog:http://blog.sina.com.cn/zbrow。
? 字王Git項目總覽:https://github.com/ziwang-com/,包括:字王4k云字庫、zwPython、zwpy_lst。
與本書相關的程序和數(shù)據(jù)下載,請瀏覽網(wǎng)站:TopQuant.vip極寬量化社區(qū),在網(wǎng)站的下載中心有最新的程序和數(shù)據(jù)下載地址。
本書在TopQuant.vip極寬量化網(wǎng)站設有專欄,若對本書、人工智能和機器學習有任何建議,請在網(wǎng)站專欄或QQ群留言,我們會在第一時間進行反饋和答復。
TopQuant極寬量化網(wǎng)站資源中心的網(wǎng)址:
http://www.topquant.vip/?p=56
http://ziwang.com/
致謝
本書的出版要特別感謝電子工業(yè)出版社的黃愛萍和葛娜編輯,感謝她們在選題策劃和稿件整理方面做出
何海群,網(wǎng)名:字王,CHRD前海智庫CTO,《中華大字庫》發(fā)明人,出版書籍20余部,在人工智能、數(shù)據(jù)分析等方面具有20年一線專業(yè)經(jīng)驗;zwPython開發(fā)平臺、zwQuant量化軟件設計師,中國Python創(chuàng)客項目和Python產(chǎn)業(yè)聯(lián)盟發(fā)起人,國內(nèi)首個Python量化課程:《Python量化實盤·魔鬼訓練營》創(chuàng)始人,極寬量化開源團隊的創(chuàng)始人。
目 錄
第1章 TensorFlow概述1
1.1 TensorFlow要點概括2
1.2 TensorFlow簡化接口2
1.3 Keras簡介3
1.4 運行環(huán)境模塊的安裝4
1.4.1 CUDA運行環(huán)境的安裝4
案例1-1:重點模塊版本測試5
案例1-2:GPU開發(fā)環(huán)境測試8
1.4.2 GPU平臺運行結(jié)果9
第2章 無數(shù)據(jù)不量化(上)12
2.1 金融數(shù)據(jù)源13
2.1.1 TopDat金融數(shù)據(jù)集14
2.1.2 量化分析與試錯成本15
2.2 OHLC金融數(shù)據(jù)格式16
案例2-1:金融數(shù)據(jù)格式17
2.3 K線圖18
案例2-2:繪制金融數(shù)據(jù)K線圖19
2.4 Tick數(shù)據(jù)格式22
案例2-3:Tick數(shù)據(jù)格式23
2.4.1 Tick數(shù)據(jù)與分時數(shù)據(jù)轉(zhuǎn)換25
案例2-4:分時數(shù)據(jù)25
2.4.2 resample函數(shù)26
2.4.3 分時數(shù)據(jù)26
2.5 離線金融數(shù)據(jù)集29
案例2-5:TopDat金融數(shù)據(jù)集的日線數(shù)據(jù)29
案例2-6:TopDat金融數(shù)據(jù)集的Tick數(shù)據(jù)31
2.6 TopDown金融數(shù)據(jù)下載33
案例2-7:更新單一A股日線數(shù)據(jù)34
案例2-8:批量更新A股日線數(shù)據(jù)37
2.6.1 Tick數(shù)據(jù)與分時數(shù)據(jù)40
案例2-9:更新單一A股分時數(shù)據(jù)40
案例2-10:批量更新分時數(shù)據(jù)43
2.6.2 Tick數(shù)據(jù)與實時數(shù)據(jù)45
案例2-11:更新單一實時數(shù)據(jù)45
案例2-12:更新全部實時數(shù)據(jù)48
第3章 無數(shù)據(jù)不量化(下)51
3.1 均值優(yōu)先51
案例3-1:均值計算與價格曲線圖52
3.2 多因子策略和泛因子策略54
3.2.1 多因子策略54
3.2.2 泛因子策略55
案例3-2:均線因子55
3.3 25日神定律59
案例3-3:時間因子61
案例3-4:分時時間因子63
3.4 TA-Lib金融指標66
3.5 TQ智能量化回溯系統(tǒng)70
3.6 全內(nèi)存計算70
案例3-5:增強版指數(shù)索引71
案例3-6:AI版索引數(shù)據(jù)庫73
3.7 股票池77
案例3-7:股票池的使用77
3.8 TQ_bar全局變量類81
案例3-8:TQ_bar初始化82
案例3-9:TQ版本日線數(shù)據(jù)85
3.9 大盤指數(shù)87
案例3-10:指數(shù)日線數(shù)據(jù)88
案例3-11:TQ版本指數(shù)K線圖89
案例3-12:個股和指數(shù)曲線對照圖92
3.10 TDS金融數(shù)據(jù)集96
案例3-13:TDS衍生數(shù)據(jù)98
案例3-14:TDS金融數(shù)據(jù)集的制作102
案例3-15:TDS金融數(shù)據(jù)集2.0105
案例3-16:讀取TDS金融數(shù)據(jù)集108
第4章 人工智能與趨勢預測112
4.1 TFLearn簡化接口112
4.2 人工智能與統(tǒng)計關聯(lián)度分析113
4.3 關聯(lián)分析函數(shù)corr113
4.3.1 Pearson相關系數(shù)114
4.3.2 Spearman相關系數(shù)114
4.3.3 Kendall相關系數(shù)115
4.4 open(開盤價)關聯(lián)性分析115
案例4-1:open關聯(lián)性分析115
4.5 數(shù)值預測與趨勢預測118
4.5.1 數(shù)值預測119
4.5.2 趨勢預測120
案例4-2:ROC計算120
案例4-3:ROC與交易數(shù)據(jù)分類123
4.6 n 1大盤指數(shù)預測128
4.6.1 線性回歸模型128
案例4-4:上證指數(shù)n 1的開盤價預測129
案例4-5:預測數(shù)據(jù)評估133
4.6.2 效果評估函數(shù)136
4.6.3 常用的評測指標138
4.7 n 1大盤指數(shù)趨勢預測139
案例4-6:漲跌趨勢歸一化分類140
案例4-7:經(jīng)典版漲跌趨勢歸一化分類143
4.8 One-Hot145
案例4-8:One-Hot格式146
4.9 DNN模型149
案例4-9:DNN趨勢預測150
第5章 單層神經(jīng)網(wǎng)絡預測股價156
5.1 Keras簡化接口156
5.2 單層神經(jīng)網(wǎng)絡158
案例5-1:單層神經(jīng)網(wǎng)絡模型158
5.3 神經(jīng)網(wǎng)絡常用模塊168
案例5-2:可視化神經(jīng)網(wǎng)絡模型170
案例5-3:模型讀寫174
案例5-4:參數(shù)調(diào)優(yōu)入門177
第6章 MLP與股價預測182
6.1 MLP182
案例6-1:MLP價格預測模型183
6.2 神經(jīng)網(wǎng)絡模型應用四大環(huán)節(jié)189
案例6-2:MLP模型評估190
案例6-3:優(yōu)化MLP價格預測模型194
案例6-4:優(yōu)化版MLP模型評估197
第7章 RNN與趨勢預測200
7.1 RNN200
7.2 IRNN與趨勢預測201
案例7-1:RNN趨勢預測模型201
案例7-2:RNN模型評估209
案例7-3:RNN趨勢預測模型2211
案例7-4:RNN模型2評估214
第8章 LSTM與量化分析217
8.1 LSTM模型217
8.1.1 數(shù)值預測218
案例8-1:LSTM價格預測模型219
案例8-2:LSTM價格預測模型評估226
8.1.2 趨勢預測230
案例8-3:LSTM股價趨勢預測模型231
案例8-4:LSTM趨勢模型評估239
8.2 LSTM量化回溯分析242
8.2.1 構(gòu)建模型243
案例8-5:構(gòu)建模型243
8.2.2 數(shù)據(jù)整理251
案例8-6:數(shù)據(jù)整理251
8.2.3 回溯分析262
案例8-7:回溯分析262
8.2.4 專業(yè)回報分析268
案例8-8:量化交易回報分析268
8.3 完整的LSTM量化分析程序279
案例8-9:LSTM量化分析程序280
8.3.1 數(shù)據(jù)整理280
8.3.2 量化回溯284
8.3.3 回報分析285
8.3.4 專業(yè)回報分析288
第9章 日線數(shù)據(jù)回溯分析293
9.1 數(shù)據(jù)整理293
案例9-1:數(shù)據(jù)更新294
案例9-2:數(shù)據(jù)整理296
9.2 回溯分析307
9.2.1 回溯主函數(shù)307
9.2.2 交易信號308
9.3 交易接口函數(shù)309
案例9-3:回溯分析309
案例9-4:多模式回溯分析316
第10章 Tick數(shù)據(jù)回溯分析318
10.1 ffn金融模塊庫318
案例10-1:ffn功能演示318
案例10-2:量化交易回報分析330
案例10-3:完整的量化分析程序343
10.2 Tick分時數(shù)據(jù)量化分析357
案例10-4:Tick分時量化分析程序357
總結(jié)371
附錄A TensorFlow 1.1函數(shù)接口變化372
附錄B 神經(jīng)網(wǎng)絡常用算法模型377
附錄C 機器學習常用算法模型414