前言
2015年6月15日,上證指數達到近7年新高,吸引了大批的投資者將更多的資金投入股市,由此使得股票優化預測成為廣大投資者關注的焦點。投資者較多地查看炒股軟件提供的QACD曲線、KDJ曲線、交易量柱狀(bar)圖等指標,而這些指標的指示作用早已褪去了往日的光鮮,本書正是基于此背景而編寫。本書以MATLAB2015b為工具,采用機器學習算法研究股票趨勢,可以給投資者和研究投資的人員提供強有力的量化投資支撐。
算法是大數據分析的靈魂,好的算法能夠簡化問題的求解,并且能夠從大數據的海洋里找到最有價值的信息,以提高用戶的工作效率。本書使用的算法區別于常用的群智能算法。群智能算法較多地應用于優化求解問題方面,學術味濃。而本書則是通過大數據,采用機器學習算法對數據內在規律進行學習,用戶根本無須知道機器學習算法的黑匣子,就能得到90%的有用信息,從而給投資者提供最有價值的信息。因此金融大數據算法具有較大的實際應用價值。
市場上的金融量化投資分析方法,很少分析與應用BP神經網絡、RBF神經網絡、Hopfield神經網絡、馬爾可夫(Markov)鏈、灰色理論、指數平滑、支持向量機SVM、貝葉斯(Bayes)網絡等方法。本書正是基于這樣一個出發點,從機器學習算法出發,采用MATLAB仿真軟件,對金融大數據進行仿真分析,并且給出了全部的可執行代碼,極大地豐富了MATLAB算法應用,并且可以讓讀者了解不同的算法原理及求解流程,從而真正掌握MATLAB金融算法分析。
本書所有案例均采用MATLAB進行設計,針對不同的工程背景,采用了不同的算法對涉及案例進行求解,讓讀者真正理解算法實質,從而將這些算法思想更好地應用于實際的金融分析與投資中。本書以機器學習算法應用為主,做到了理論和算法相結合,詳解設計思路和設計步驟,向讀者展示了如何運用MATLAB進行算法開發和設計。
值得說明的是,很多讀者可能并不關注算法本身的原理,只需要采用該算法解決自己的課題即可,那么本書也是很好的選擇。本書將核心算法代碼全部寫成了可調用的子函數腳本文件,讀者只需要查看主程序代碼,進行數據更改和參數設置等即可運行、求解。本書有著最精華、最通俗易懂的算法剖析過程,希望廣大讀者能夠學有所成。
本書特色1.內容講解不枯燥本書結合相關理論實際,抽出和算法相關的理論作為支撐,通過求解流程及算法迭代過程,讓讀者容易理解并且掌握。
2.全書覆蓋面廣本書涵蓋了MATLAB基礎知識、高級應用、時間序列數據處理、量化投資趨向指標、量化投資反趨向指標、BP神經網絡、RBF神經網絡、Hopfield神經網絡、馬爾可夫(Markov)鏈、灰色理論、指數平滑、支持向量機SVM、貝葉斯(Bayes)網絡、Pareto多目標優化分析等內容。針對分類預測和優化等問題,本書采用了不同的算法進行設計,初學者通過閱讀本書,可以開發出適用于解決自己問題的程序。
3.循序漸進,由淺入深本書從算法原理與求解流程出發,輔以程序驗證,通過算法代碼,可以反過來去理解算法原理中所涉及的公式,做到逐步地引導讀者去認識和掌握算法的思想。
4.真實案例,隨學隨用本書是一本注重實踐的書,書中有大量篇幅用在了MATLAB算法解決實際問題的案例中。讀者只需要稍加修改這些案列,即可用于自己的項目或課題上,從而實現問題的求解。
5.語言通俗易懂本書選擇了歷年的上證指數數據進行分析,并且對于趨勢量化投資指標和反趨勢量化投資指標均給出了最底層的可執行代碼。另外,本書還繪制了每個指標隨上證指數的變化圖,以加深讀者的理解。
6.圖示豐富,容易理解本書所有案例中的配圖相當豐富,通過前后的對比圖,讀者能很快地掌握知識點。
本書內容及體系結構第1篇MATLAB常用算法應用設計(第1~5章)本篇介紹了MATLAB常用算法,包括MATLAB入門與提高、MATLAB高級應用、時間序列數據處理、量化投資趨向指標、量化投資反趨向指標等案例,通過該類較為常用的算法引入,讀者可以應用這些案例解決一些常見問題,如函數優化預測、擬合回歸、分類、股票投資趨向指標、量化投資反趨向指標等,經過這些內容的學習,既適應了不同的讀者,也為第2篇的引入打下了堅實的算法基礎。
第2篇MATLAB機器學習算法應用設計(第6~15章)本篇涉及面較廣,列舉了BP神經網絡工具箱上證指數預測、BP神經網絡多指標預測、RBF神經網絡多指標預測、Hopfield神經網絡多指標預測、馬爾可夫(Markov)鏈上證指數預測、灰色理論下的上證指數預測、指數平滑下的上證指數預測、支持向量機SVM下的漲跌預測、貝葉斯(Bayes)網絡多指標預測、Pareto多目標優化分析等,通過案例分析,結合算法理論和程序代碼,真正地適合廣大師生的需要。MATALB高級算法應用,向更加廣泛、更加具體、更多應用發展,讓讀者真正掌握算法核心,開發和設計出自己的可移植性代碼。
本書讀者對象?MATLAB量化投資開發人員;?MATLAB金融算法愛好者;?剛入職的初中級程序員;?大、中專院校師生;?相關培訓學校的學員;?MATLAB愛好者;?MATALB相關從業人員。
本書配套資源及獲取方式本書涉及的源代碼文件等配套學習資源需要讀者自行下載。請讀者登錄機械工業出版社華章公司的網站www.hzbook.com,然后搜索到本書頁面,按照頁面上的說明進行下載即可。讀者也可以在http://halcom.cn社區的“量化投資指標”版塊下載。
本書作者本書由吳婷和余勝威主筆編寫。其他參與編寫的人員有李小妹、周晨、桂鳳林、李然、李瑩、李玉青、倪欣欣、魏健藍、夏雨晴、蕭萬安、余慧利、袁歡、占俊、周艷梅、楊松梅、余月、張廣龍、張亮、張曉輝、張雪華、趙海波、趙偉、周成、朱森。
筆者結合自己在工作和學習期間掌握的各類算法,以及出于對股票投資和MATLAB的愛好,通過參閱大量的相關資料,精心準備,編寫了本書。本書在寫作過程中參考了一些筆者平時積累的資料,部分資料來自于前輩們的著作,在此向這些前輩們表示深深的敬意和感謝!由于無法聯系到原作者,所以寫作時也無法一一征求意見。如果有不當之處,請聯系筆者或者本書編輯。
讀者在閱讀本書的過程中若有疑問,可以在MATLAB中文論壇的本書交流版塊提問,也可以發郵件到hzbook2017@163.com,我們會及時答復。
編者在線交流,有問有答國內非常知名的MATLAB&Simulink技術交流平臺——MATLAB中文論壇(www.ilovematlab.cn)聯合本書作者和編輯,一起為您提供與本書相關的問題解答和MATLAB技術支持服務,讓您獲得極佳的閱讀體驗。請隨時登錄MATLAB中文論壇,提出您在閱讀本書時產生的疑問,作者和相關編輯將定期為您解答。您對本書的任何建議,也可以在論壇上發帖,以便于我們后續改進。您的建議將是我們創造精品的最大動力和源泉。
“在線交流,有問有答”網絡互動參與步驟:
(1)在MATLAB中文論壇www.ilovematlab.cn上注冊一個會員賬號并登錄。
(2)完成論壇賬戶郵箱驗證,在論壇“MATLAB讀書頻道:與作者面對面交流”版塊上找到本書版塊,如圖1所示。
圖1“MATLAB讀書頻道:與作者面對面交流”版塊(3)進入書籍版塊,發帖提問,與作者在線交流。
(4)其他增值服務。讀者可以通過本書的“在線交流,有問有答”版塊下載本書源程序等教學資源,也可以查看本書的相關勘誤信息,如圖2所示(因本書版塊在圖書出版后才能申請成功,所以這里用已經出版的圖書示意圖來代替)。
圖2“在線交流,有問有答”版塊增值服務
目錄
前言
在線交流,有問有答
第1篇 MATLAB常用算法應用設計
第1章 MATLAB入門與提高2
1.1 矩陣運算4
1.2 放大局部視圖6
1.3 Monte Carlo方法7
1.4 金融工具箱繪圖函數的使用9
1.4.1 bolling(布林線)函數10
1.4.2 highlow(高低價)函數13
1.4.3 candle(陰陽燭圖)函數16
1.4.4 kagi(折線圖)函數21
1.4.5 renko(磚形圖)函數22
1.4.6 movavg(移動平均圖)函數23
1.4.7 priceandvol(成交量圖)函數27
1.4.8 pointfig(漲跌點圖)函數28
1.4.9 volarea(成交量面積圖)函數30
第2章 MATLAB高級應用32
2.1 正余弦函數計算32
2.2 pcode加密32
2.3 基本GUI設計33
2.4 GUI的優化布局41
2.5 日期格式函數43
2.6 日期轉化函數45
2.7 創建一個金融時間數據序列47
2.8 股票技術分析圖函數使用49
第3章 時間序列數據處理55
3.1 平均絕對離差55
3.2 序列最大值57
3.3 序列最小值60
3.4 簡單移動平均值62
3.5 動態移動平均值65
3.6 指數平滑移動平均值67
3.7 指數移動平均值69
第4章 量化投資趨向指標73
4.1 升降線指標73
4.2 動力指標76
4.3 變動速率線指標77
4.4 瀑布線指標79
4.5 上升動向指標81
4.6 下降動向指標83
4.7 動向平均數指標85
4.8 多空指數指標88
4.9 佳慶指標90
4.10 市場趨勢指標92
4.11 方向標準離差指數指標94
4.12 平均線差97
4.13 趨向指標98
4.14 簡易波動指標102
4.15 鬼道線指標104
4.16 絕路航標指標106
4.17 加速線指標109
4.18 平滑異同平均指標111
4.19 快速異同平均指標113
4.20 強弱值指標115
4.21 三重指數平滑平均線指標117
4.22 終極指標119
4.23 變異平均線指標122
第5章 量化投資反趨向指標124
5.1 幅度漲速指標124
5.2 動態買賣人氣指標126
5.3 布林極限指標128
5.4 乖離率指標131
5.5 異同離差乖離率指標133
5.6 順勢指標135
5.7 市場能量指標137
5.8 多空線指標139
5.9 區間震蕩線指標141
5.10 分水嶺指標142
5.11 隨機指標144
5.12 威廉指標148
5.13 L威廉指標150
5.14 變動速率指標152
5.15 相對強弱指標153
5.16 慢速隨機指標156
5.17 擺動指標159
5.18 動向速度比率指標162
5.19 引力線指標164
5.20 布林極限寬度指標166
第2篇 MATLAB機器學習算法應用設計
第6章 BP神經網絡工具箱上證指數預測170
6.1 BP神經網絡模型及其基本原理170
6.2 MATLAB BP神經網絡工具箱171
6.3 BP神經網絡執行流程173
6.4 基于BP網絡的上證指數預測174
6.5 改進分析178
第7章 BP神經網絡工具箱多指標預測186
7.1 BP神經網絡186
7.2 多指標選取187
7.3 基于趨勢指標的BP網絡預測195
7.4 基于反趨勢指標的BP網絡預測204
7.5 基于趨勢和反趨勢指標的BP網絡預測211
第8章 RBF神經網絡多指標預測216
8.1 RBF神經網絡216
8.2 RBF網絡結構216
8.3 多指標選取219
8.4 基于趨勢指標的RBF網絡預測220
8.5 基于反趨勢指標的RBF網絡預測224
8.6 基于趨勢和反趨勢指標的RBF網絡預測228
第9章 Hopfield神經網絡多指標預測232
9.1 Hopfield神經網絡232
9.2 多指標選取234
9.3 基于趨勢指標的Hopfield網絡預測234
9.4 基于反趨勢指標的Hopfield網絡預測237
9.5 基于趨勢和反趨勢指標的Hopfield網絡預測239
第10章 馬爾可夫(Markov)鏈上證指數預測242
10.1 馬爾可夫鏈模型242
10.2 馬爾可夫鏈模型流程242
10.3 馬爾可夫鏈預測243
10.4 隱馬爾可夫模型函數表253
第11章 灰色理論下的上證指數預測254
11.1 灰色理論分析254
11.2 灰色關聯分析流程254
11.3 多指標灰色關聯度計算255
11.4 灰色預測模型流程259
11.5 ACCER幅度漲速指標灰色預測260
第12章 指數平滑下的上證指數預測263
12.1 指數平滑分析263
12.1.1 一次指數平滑預測法263
12.1.2 二次指數平滑預測法264
12.1.3 三次指數平滑預測法264
12.2 指數平滑仿真265
12.2.1 一次指數平滑265
12.2.2 二次指數平滑268
12.2.3 三次指數平滑270
第13章 支持向量機SVM下的漲跌預測274
13.1 Logistic回歸274
13.2 Regularization正則化方程275
13.3 支持向量機SVM算法275
13.4 MATLAB優化工具箱277
13.4.1 線性規劃問題278
13.4.2 非線性規劃問題279
13.4.3 二次規劃問題280
13.4.4 線性最小二乘282
13.4.5 非線性曲線擬合283
13.4.6 非線性最小二乘284
13.5 SVM下的上證指數漲跌預測285
13.6 PSO優化的SVM多分類預測297
第14章 貝葉斯(Bayes)網絡多指標預測305
14.1 貝葉斯統計方法305
14.2 貝葉斯預測方法307
14.3 貝葉斯網絡的數據預測307
14.4 貝葉斯網絡下的價格指數建模與預測317
14.4.1 讀入采集到的數據318
14.4.2 建立貝葉斯網絡319
14.4.3 對構建的貝葉斯網絡進行參數學習319
14.4.4 條件概率分析321
第15章 Pareto多目標優化分析325
15.1 經典測試函數325
15.2 遺傳算法優化的單目標模型330
15.3 Pareto多目標求解GUI設