- MATLAB量化金融分析基礎與實戰
- 馬萌
- 1860字
- 2020-05-28 17:52:03
前言
“工欲善其事,必先利其器。”
有人說鋼琴演奏是一門藝術,鋼琴家用指尖將音符轉換為美妙旋律來傳遞思想感情,與聽眾交流,但不要忘記這一切是建立在爐火純青的演奏技術上的,所以鋼琴演奏首先是一門技術。量化投資亦是如此,對于市場,每個人都有自己獨到的見解、投資理念甚至具體的策略,但想把這些傳遞出來,則需要足夠的編程技巧。
本書側重的是MATLAB編程能力。編程能力可分為兩個層次,一是能寫出策略,二是寫出高效策略。第一個層次需要掌握一門語言的基本語法和函數功能等,第二個層次則需要較多的知識儲備與實際經驗積累。希望讀者通過學習本書至少熟練達到第一個層次以上,能夠用MATLAB語言輕松表達自己的投資邏輯。本書并不側重于揭示市場的運作原理或闡述模型和策略構建的合理性,因為策略本身的語言載體并不局限于MATLAB。
本書實戰篇包括了4個經典投資策略。在12.1節討論了一種最簡單的利用市場失效的策略——均線系統,當然失效特例還有很多,也不僅局限于技術指標。市場有效理論將市場狀態分為弱式、半強式和強式有效當然還有無效,實際上市場總是在這四種狀態中切換而不會永遠停留在一個狀態,不同市場狀態下有合適的應對策略且通過分形指標可捕捉市場狀態變化進而做策略擇時;在12.2節介紹了市值這個估值因子。這個因子為何有效以及股票投資中涉及的其他因子、擇時、中性等概念,都是值得細致論述的重要知識點;在13.1節中展示了一個期貨統計套利的例子——豆粕與菜粕的價差套利,這里想強調的是量化投資不僅是要尋找數字上的規律,更要理解數字背后的經濟學原理;在13.2節中講述了著名的海龜交易法則,同時也介紹了使用投資組合來分散風險的概念。
“授人以魚,不如授人以漁。”
本書盡量選取與量化投資相關的MATLAB功能模塊加以介紹,避免大而全地陳述或生澀地講解MATLAB各個函數的功能,取而代之的是大量的簡單例子,而這些例子可能是讀者在做量化投資時遇到的真正需求。建議讀者動手復寫一遍例子的同時仔細閱讀幫助文檔中函數的解釋以達到熟練應用的目的。為了讓讀者更好地再現書中例題,數據源限制在了MATLAB自帶數據、Tushare開源數據和新浪網頁數據。這些數據源會實時更新,讀者在復寫的時候由于新數據的加入可能會得到與書中不同的結果。
本書也無意將相關的數學、金融原理進行推導或詳細闡述,如本書在量化投資模型篇中并未闡述模型的原理、公式推導等過程。
1.讀者
本書適合具備數學、金融、計算機基礎及一定編程經驗的專業人員閱讀,也可作為相關專業院校本科高年級、研究生或教師的教學、參考用書。
2.增值服務及資源下載
本書受MATLAB中文論壇(www.ilovematlab.cn)鼎力支持,讀者可以登錄網址http://www.ilovematlab.cn/forum-269-1.html與作者進行在線交流,或者登錄網址http://www.ilovematlab.cn/thread-550784-1-1.html下載本書相關的程序源代碼。
讀者也可以關注機械工業出版社計算機分社官方微信訂閱號“IT有得聊”,回復60417來下載相關代碼或留言,您的反饋會幫助作者更好地改進書籍。同時作者會盡可能提供更多有用信息,以幫助讀者提高量化技能。如因Tushare和新浪的數據提取方式改變而導致書中代碼失效,作者會及時修正代碼。
3.文字格式
代碼及其輸出結果以灰色底紋顯示。
>>代碼
代碼輸出
function OUT=example(IN)
OUT=IN;
4.MATLAB版本
如無特殊說明,本書所使用環境為Windows 7操作系統下的MATLAB。
>>disp(version)
8.6.0.267246(R2015b)
書中提到的“matlabroot”為MATLAB安裝目錄,Windows系統默認為“C:\Program Files\MATLAB\R2015b”,而Linux系統默認為“/usr/local/Matlab/R2015b”。
讀者需注意Windows系統下的代碼有時并不能直接移植到Linux系統的MATLAB運行,比如Windows下的MATLAB支持使用‘\’與‘/’符號表示路徑,而Linux下僅支持使用‘/’表示路徑。
>>loadfindemos\disney.mat%Windows下可運行
>>loadfindemos/disney.mat%Windows和Linux下均可運行
還需注意的是Windows 7系統中的文件名不區分大小寫,而Linux系統需要區分。所以,讀者在有不同操作系統下代碼移植需求的時候要合理規劃工程中的文件名,以避免不必要的麻煩。
MATLAB雖然功能強大但為付費軟件,如果讀者經濟能力有限可以考慮使用開源項目軟件Octave。Octave與MATLAB語法格式基本相同,但部分工具箱或者函數功能可能未實現且性能表現亦可能略遜于MATLAB,詳細信息可參閱http://www.gnu.org/software/octave/。
5.熟悉界面
如下圖所示,MATLAB軟件界面中的【應用程序】包含了諸多應用工具,如第11章的報告生成器;右上角【搜索文檔】可以輸入關鍵字檢索MATLAB軟件手冊;【命令行窗口】用于指令的輸入與執行;【工作區】用于存儲變量,雙擊變量可查看變量的值與屬性等信息,亦可修改此信息;【當前文件夾】顯示當前文件夾下的所有文件目錄結構;【命令歷史記錄】中可用<Ctrl+F>快捷鍵查找使用過的指令,雙擊選定指令可直接運行。

MATLAB軟件界面
6.【命令行窗口】常用快捷鍵
<Tab> 自動補全指令
<Shift+Enter> 換行并執行所有指令
<Ctrl+C> 中斷當前正在運行的指令
<↑>、<↓> 切換到之前運行過的指令,可按多次直到找到需要的指令
<Ctrl+S> 將工作區全部變量存儲為“.mat”文件
<Ctrl+F> 彈出對話框,可用于尋找文件