本書是國內(nèi)較早關(guān)于TensorFlow大數(shù)據(jù)與量化交易的原創(chuàng)圖書,配合zwPython開發(fā)平臺和zwQuant開源量化軟件學(xué)習(xí),是一套完整的大數(shù)據(jù)分析、量化交易的學(xué)習(xí)教材,可直接用于實盤交易。本書有三大特色:*,以實盤個案分析為主,全程配有Python代碼;第二,包含大量的圖文案例和Python源碼,無須專業(yè)編程基礎(chǔ),懂Excel即可開始學(xué)習(xí);第三,配有專業(yè)的zwPython集成開發(fā)平臺、zwQuant量化軟件和zwDat數(shù)據(jù)包。
本書采用獨創(chuàng)的黑箱模式、MBA案例教學(xué)機制,結(jié)合大量的經(jīng)典案例,介紹TensorFlow系統(tǒng)和常用的深度學(xué)習(xí)算法、神經(jīng)網(wǎng)絡(luò)模型,以及它們在量化分析當(dāng)中的具體應(yīng)用。
《零起點TensorFlow與量化交易》僅僅作為入門課程,具體的實盤策略,有待廣大讀者通過進(jìn)一步深入學(xué)習(xí)TensorFlow、PyTorch、MXNet等新一代深度學(xué)習(xí)平臺來獲得。*重要的是,還有待廣大的一線實盤操作人員結(jié)合專業(yè)的金融操盤經(jīng)驗,與各種神經(jīng)網(wǎng)絡(luò)模型融會貫通,構(gòu)建更加符合金融量化實際應(yīng)用的神經(jīng)網(wǎng)絡(luò)模型,從而獲得更好的投資回報。
推 薦 序
AlphaGo與柯潔的黑白大戰(zhàn),因為對陣的一方是中國頂級圍棋高手柯潔,所以引起國人的高度關(guān)注。利用百度搜索引擎輸入AlphaGo,一度可以得出7000多萬條搜索結(jié)果,這遠(yuǎn)遠(yuǎn)高于其他熱門詞條。
事實上,AlphaGo只是Google擁有的兩套人工智能系統(tǒng)中的一套。它是Google 2014年收購的DeepMind的人工智能系統(tǒng),專注于棋賽開發(fā)。Google的另外一套人工智能系統(tǒng)就是本書介紹的TensorFlow系統(tǒng)。
在TensorFlow等人工智能系統(tǒng)出現(xiàn)之前,計算機所做的事情往往是簡單重復(fù)的。計算機會按照人類編好的既定程序,簡單重復(fù)、按部就班地運行,沒有超越人類事先為其設(shè)定的思維邊界。
計算機與人類的大腦相比,根本的區(qū)別在于不具備學(xué)習(xí)和創(chuàng)新能力。
計算機頂多也就是記憶的信息多,重復(fù)計算的速度快,不受情緒的影響等。但是,在TensorFlow等人工智能系統(tǒng)出現(xiàn)之后,計算機所做的事情除簡單重復(fù)運行之外,更重要的是其具備了一定的自我學(xué)習(xí)和創(chuàng)新能力。
TensorFlow等人工智能系統(tǒng)使得計算機在一定程度上能夠自主學(xué)習(xí),自我提高,總結(jié)過去的經(jīng)驗,汲取以往的教訓(xùn),具備一定的創(chuàng)新性。這一點在AlphaGo與柯潔對壘的3場棋局的結(jié)果中不難看出。
這正是以AlphaGo和TensorFlow為代表的人工智能系統(tǒng)區(qū)別于以往任何計算機技術(shù)的關(guān)鍵所在,也是TensorFlow被稱為互聯(lián)網(wǎng)以來唯一的黑科技項目的原因。
具備了一定的自我學(xué)習(xí)和創(chuàng)造能力的人工智能系統(tǒng)的出現(xiàn),將對經(jīng)濟系統(tǒng)的各個領(lǐng)域產(chǎn)生重大影響。筆者有著超過20年境內(nèi)外金融行業(yè)從業(yè)經(jīng)歷,將從一個側(cè)面分享人工智能對金融領(lǐng)域的影響。
從整個金融業(yè)的歷史沿革來看,這大致經(jīng)歷了4個階段:純?nèi)斯るA段、單機電腦階段、互聯(lián)網(wǎng)(含移動互聯(lián)網(wǎng))階段和人工智能階段。
隨著每個階段的漸次演進(jìn),提供金融服務(wù)一方的人力成本投入在逐漸減少,提供金融服務(wù)的效率在提高;對于接受金融服務(wù)的一方來說,金融服務(wù)的可獲得性,以及便捷程度在逐漸增加,金融服務(wù)越來越圍繞著人進(jìn)行,以人為中心的全方位的社會經(jīng)濟服務(wù)體系正在形成。
在金融服務(wù)體系中,銀行服務(wù)、證券服務(wù)、保險服務(wù)等的內(nèi)部界限開始變得模糊,金融服務(wù)與其他非金融的社會經(jīng)濟服務(wù)之間的界限開始變得不清。
特別是金融業(yè)進(jìn)入人工智能階段之后,人工智能系統(tǒng)將接受金融服務(wù)一方的身份特征數(shù)據(jù)、交易數(shù)據(jù)和行為數(shù)據(jù)等大數(shù)據(jù),進(jìn)行實時分析和動態(tài)跟蹤,以遠(yuǎn)低于人工成本的成本,為每個人建立一個基于生命周期的綜合金融模型,對每個人未來的金融行為進(jìn)行預(yù)測,自動為他們提供賬戶資金管理、貨幣兌換、證券買賣、保險購買、購房購車計劃、旅行休閑、子女教育、養(yǎng)老規(guī)劃等方面的金融建議和授權(quán)代理操作,并將模型預(yù)測結(jié)果與實際情況相比對,自主學(xué)習(xí)和修正模型,以便更加貼合接受金融服務(wù)一方的真實金融意圖,使得人工智能模型的預(yù)測建議和人的實際金融行為無限接近。
由此人類將從日常繁雜的各種金融交易中解放出來,投身到更需要自己或自己更感興趣的方面。
展望未來,人工智能的應(yīng)用前景無限美好;探尋當(dāng)下,人工智能在世界各地的各行各業(yè)方興未艾。
千里之行,始于足下。何海群先生的《零起點TensorFlow與量化交易》是有志于人工智能領(lǐng)域的IT人士的一塊敲門磚和鋪路石。
祝愿人工智能在華夏大地生根發(fā)芽,開花結(jié)果。
梁 忠
梁忠:中國人民大學(xué)財政金融系博士,曾任里昂證券CLSA分析員;瑞銀證券UBSS董事,財富管理中國研究部主管;瑞士信貸(香港)有限公司中國研究部董事;瑞信方正證券執(zhí)行董事,研究部主管,具有20年國際頂級金融機構(gòu)從業(yè)經(jīng)歷。
前 言
感謝梁忠先生在百忙之中為本書撰寫序言。以TensorFlow為代表的神經(jīng)網(wǎng)絡(luò),被視為自互聯(lián)網(wǎng)以來唯一的黑科技,無遠(yuǎn)弗屆,無分行業(yè)領(lǐng)域,對社會各界從上至下帶來徹底的顛覆與革命。
梁忠先生作為非IT領(lǐng)域的學(xué)者、專家,從第三方角度,冷靜地觀察這場數(shù)字革命,同時向更多的大眾介紹這場革命的火花,推動行業(yè)變革,功莫大焉。
隨著類似于Titanic數(shù)據(jù)集案例、梵高畫風(fēng)等一系列,基于TensorFlow等神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)項目的不斷涌現(xiàn),未來的各個學(xué)科都會結(jié)合人工智能(AI),進(jìn)行新的學(xué)術(shù)重組。
Python量化三部曲
Python量化三部曲包括:
? 《零起點Python大數(shù)據(jù)與量化交易》(入門課程)
? 《零起點機器學(xué)習(xí)與量化交易》(重點分析SKLearn)
? 《零起點TensorFlow與量化交易》(重點分析TensorFlow)
此外,還有幾部補充作品:
? 《零起點Python足彩大數(shù)據(jù)與機器學(xué)習(xí)實盤分析》
? 《零起點Python機器學(xué)習(xí)快速入門》
? 《零起點TensorFlow快速入門》
? 《MXNet神經(jīng)網(wǎng)絡(luò)與量化交易》
? 《Plotly可視化數(shù)據(jù)分析》
本書是《零起點TensorFlow快速入門》的后續(xù)之作,原本是TopQuant.vip極寬量化培訓(xùn)課程高級班的教學(xué)課件,為了節(jié)省篇幅,刪除了Python基礎(chǔ)教程,以及SKLearn、TensorFlow等機器學(xué)習(xí)方面的入門內(nèi)容。沒有經(jīng)驗的讀者,建議先閱讀《零起點Python機器學(xué)習(xí)快速入門》《零起點TensorFlow快速入門》,再開始本書的學(xué)習(xí),這樣會收到事半功倍的效果。
本書是目前較好的TensorFlow神經(jīng)網(wǎng)絡(luò)與量化分析入門教程:
? 無需任何理論基礎(chǔ),全程采用MBA案例模式,懂Excel就可看懂本書。
? 獨創(chuàng)的逆向式課件模式,結(jié)合TensorBoard可視化系統(tǒng),案例、圖表優(yōu)先,層層剖析。
? 系統(tǒng)介紹TensorFlow在金融量化領(lǐng)域的具體應(yīng)用,提供多組配套案例。
? 全套神經(jīng)網(wǎng)絡(luò)股票趨勢預(yù)測、股票價格預(yù)測案例源碼。
? TDS金融數(shù)據(jù)集的創(chuàng)建與使用。
? 三位一體的課件模式:圖書 開發(fā)平臺 成套的教學(xué)案例,系統(tǒng)講解,逐步深入。
本書采用獨創(chuàng)的黑箱模式、MBA案例教學(xué)機制,結(jié)合大量的經(jīng)典案例,介紹TensorFlow系統(tǒng)和常用的深度學(xué)習(xí)算法、神經(jīng)網(wǎng)絡(luò)模型,以及它們在量化分析當(dāng)中的具體應(yīng)用。
進(jìn)一步學(xué)習(xí)
讀者如有興趣可以進(jìn)一步學(xué)習(xí)Python量化三部曲的內(nèi)容,以及《零起點Python足彩大數(shù)據(jù)與機器學(xué)習(xí)實盤分析》。
機器學(xué)習(xí)、人工智能、金融量化,它們的基本原理是相通的,本質(zhì)上都是數(shù)據(jù)分析。對于Python量化三部曲的讀者而言,本書也有很大的價值,特別是對于第一部入門課程的讀者。
Python量化回溯與TensorFlow、PyTorch、MXNet等神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)平臺,都是近年來興起的科技前沿領(lǐng)域,有關(guān)的理論、平臺、工具目前還處于摸索階段。Python量化三部曲圖書和TopQuant.vip極寬智能量化系統(tǒng),只是在這些領(lǐng)域的起步階段,作為入門教程,拋磚引玉。
本書中的案例、程序以教學(xué)為主,進(jìn)行了很多簡化,以便大家能夠快速理解相關(guān)內(nèi)容,用最短的時間,了解Python量化回溯的整個流程,以及數(shù)據(jù)分析、機器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)在這些領(lǐng)域的應(yīng)用操作技巧。
神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)在量化實盤當(dāng)中的應(yīng)用,是目前全世界都在研究的頂尖課題,當(dāng)前尚未有很好的模型與應(yīng)用案例。
本書僅僅作為入門課程,具體的實盤策略,有待廣大讀者通過進(jìn)一步深入學(xué)習(xí)TensorFlow、PyTorch、MXNet等新一代深度學(xué)習(xí)平臺來獲得。
最重要的是,還有待廣大的一線實盤操作人員結(jié)合專業(yè)的金融操盤經(jīng)驗,與各種神經(jīng)網(wǎng)絡(luò)模型融會貫通,構(gòu)建更加符合金融量化實際應(yīng)用的神經(jīng)網(wǎng)絡(luò)模型,從而獲得更好的投資回報。
網(wǎng)絡(luò)資源
為避免版本沖突,建議本書的讀者下載zwPython 2018m1版本的軟件和最新版本的《零起點TensorFlow與量化交易》配套課件程序,作為配套學(xué)習(xí)課件。配套程序的下載地址是http://www.broadview.com.cn/33584。
使用其他Python運行環(huán)境如Linux、Mac平臺的讀者,請盡量使用Python 3.5和TensorFlow 1.1版本,并自行安裝所需的其他模塊庫。
此外,需要注意的是,讀者在運行書中案例時得到的結(jié)果,可能與本書略有差別,甚至多次運行同一個案例的結(jié)果也會有所差異,這屬于正常情況。因為TensorFlow等深度學(xué)習(xí)系統(tǒng),內(nèi)部都使用了隨機數(shù)作為種子數(shù),用于系統(tǒng)變量初始化等操作,每次分析的起點或者中間參數(shù)都有所不同。
本書的案例程序已經(jīng)做過優(yōu)化處理,不需要GPU顯卡,全部支持單CPU平臺。不過,為了提高運行效率,筆者建議盡量使用NVIDA公司最新一代的GPU顯卡。
目前是大數(shù)據(jù)、人工智能 時代,在這樣的時代,計算力=生產(chǎn)力。
與本書相關(guān)的網(wǎng)絡(luò)資源如下。
? 網(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。
? 技術(shù)Blog:http://blog.sina.com.cn/zbrow。
? 字王Git項目總覽:https://github.com/ziwang-com/,包括:字王4k云字庫、zwPython、zwpy_lst。
與本書相關(guān)的程序和數(shù)據(jù)下載,請瀏覽網(wǎng)站:TopQuant.vip極寬量化社區(qū),在網(wǎng)站的下載中心有最新的程序和數(shù)據(jù)下載地址。
本書在TopQuant.vip極寬量化網(wǎng)站設(shè)有專欄,若對本書、人工智能和機器學(xué)習(xí)有任何建議,請在網(wǎng)站專欄或QQ群留言,我們會在第一時間進(jìn)行反饋和答復(fù)。
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量化軟件設(shè)計師,中國Python創(chuàng)客項目和Python產(chǎn)業(yè)聯(lián)盟發(fā)起人,國內(nèi)首個Python量化課程:《Python量化實盤·魔鬼訓(xùn)練營》創(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金融指標(biāo)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章 人工智能與趨勢預(yù)測112
4.1 TFLearn簡化接口112
4.2 人工智能與統(tǒng)計關(guān)聯(lián)度分析113
4.3 關(guān)聯(lián)分析函數(shù)corr113
4.3.1 Pearson相關(guān)系數(shù)114
4.3.2 Spearman相關(guān)系數(shù)114
4.3.3 Kendall相關(guān)系數(shù)115
4.4 open(開盤價)關(guān)聯(lián)性分析115
案例4-1:open關(guān)聯(lián)性分析115
4.5 數(shù)值預(yù)測與趨勢預(yù)測118
4.5.1 數(shù)值預(yù)測119
4.5.2 趨勢預(yù)測120
案例4-2:ROC計算120
案例4-3:ROC與交易數(shù)據(jù)分類123
4.6 n 1大盤指數(shù)預(yù)測128
4.6.1 線性回歸模型128
案例4-4:上證指數(shù)n 1的開盤價預(yù)測129
案例4-5:預(yù)測數(shù)據(jù)評估133
4.6.2 效果評估函數(shù)136
4.6.3 常用的評測指標(biāo)138
4.7 n 1大盤指數(shù)趨勢預(yù)測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趨勢預(yù)測150
第5章 單層神經(jīng)網(wǎng)絡(luò)預(yù)測股價156
5.1 Keras簡化接口156
5.2 單層神經(jīng)網(wǎng)絡(luò)158
案例5-1:單層神經(jīng)網(wǎng)絡(luò)模型158
5.3 神經(jīng)網(wǎng)絡(luò)常用模塊168
案例5-2:可視化神經(jīng)網(wǎng)絡(luò)模型170
案例5-3:模型讀寫174
案例5-4:參數(shù)調(diào)優(yōu)入門177
第6章 MLP與股價預(yù)測182
6.1 MLP182
案例6-1:MLP價格預(yù)測模型183
6.2 神經(jīng)網(wǎng)絡(luò)模型應(yīng)用四大環(huán)節(jié)189
案例6-2:MLP模型評估190
案例6-3:優(yōu)化MLP價格預(yù)測模型194
案例6-4:優(yōu)化版MLP模型評估197
第7章 RNN與趨勢預(yù)測200
7.1 RNN200
7.2 IRNN與趨勢預(yù)測201
案例7-1:RNN趨勢預(yù)測模型201
案例7-2:RNN模型評估209
案例7-3:RNN趨勢預(yù)測模型2211
案例7-4:RNN模型2評估214
第8章 LSTM與量化分析217
8.1 LSTM模型217
8.1.1 數(shù)值預(yù)測218
案例8-1:LSTM價格預(yù)測模型219
案例8-2:LSTM價格預(yù)測模型評估226
8.1.2 趨勢預(yù)測230
案例8-3:LSTM股價趨勢預(yù)測模型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)絡(luò)常用算法模型377
附錄C 機器學(xué)習(xí)常用算法模型414