筆者編著的《金融數(shù)量分析——基于MATLAB編程》自2009年上市到現(xiàn)在已經(jīng)更新了4個版本。近十年,國內(nèi)金融市場變革迅速,金融產(chǎn)品日新月異,在此期間Python由于其免費與便捷的特點已經(jīng)開始在金融行業(yè)被廣泛應(yīng)用,為此筆者誠意邀請懷偉城、王瑋珩兩位Python專家將《金融數(shù)量分析——基于MATLAB編程》中的案例改寫為用Python編寫的案例。
也許大家是因為聽說Python功能強大,并能解決許多問題才開始學習Python的。但我相信如果有一個更好的、更能說服自己的理由,大家也許能夠更主動、積極地學習Python,并將Python用于金融數(shù)值計算,同時提高自己對于金融的理解。
1. 巨大的數(shù)據(jù)量
“大數(shù)據(jù)”時代,在金融方面我們需要處理的數(shù)據(jù)量越來越大。A 股股票數(shù)量早已超過3 000只,公募基金的數(shù)量也已經(jīng)超過5 000只,備案私募基金的數(shù)量超過40 000只;中證指數(shù)有限公司、深證信息公司、中信標普等指數(shù)編制機構(gòu)發(fā)布的各類指數(shù)也已數(shù)千,而且還在快速增長;開盤價、收盤價、PE、PB、ROE、ROA、夏普比率、波動率等各種指標數(shù)據(jù)不計其數(shù)。
2. 復雜的模型
隨著投資標的品種(股指期貨、股指期權(quán)、商品期權(quán)、可轉(zhuǎn)債)的增加,我們所需掌握的定價模型越來越復雜,例如,期權(quán)定期、Beta對沖、浮動利息債券等;同時,隨著程序化交易的快速發(fā)展,各種復雜的交易策略模型也在市場中被大量應(yīng)用。這些復雜的模型都需要強大的數(shù)值計算平臺的支持。
3. 避免主觀臆斷
人類大腦的思維具有局限性并且邏輯有時具有跳躍性,常常憑借直觀感覺判斷事物。例如,幾年前大家常見的一個量化案例: 某策略賺3%止贏即獲利平倉,虧損1%平倉止損,每一組止贏與止損交易可以獲利2%。如果這個策略進行高頻交易,將獲利豐富啊! 但我們卻忽略了一點,即賺3%與賠1%的概率并非一致,如果進一步思考就會發(fā)現(xiàn)我們忽略了交易成本。
再舉一個我常常使用的問例: 兩個[0,1]上的均勻分布的和是什么分布? 三個[0,1]上的均勻分布的和是什么分布? n 個呢? 有的讀者會直接回答還是均勻分布,有的讀者深思一下回答是正態(tài)分布。這兩個答案或許都不正確,但如何驗證呢? 我們可以通過編程的方式進行數(shù)值試驗,對兩個結(jié)論進行驗證。如果做數(shù)值試驗,那就需要編程實現(xiàn)。
4. 實現(xiàn)自動化辦公
大多數(shù)人在日常工作中都會面對很多重復性的勞動與煩瑣的計算。例如,某個報表每日(周、月)都要更新,且更新邏輯很明確:增加內(nèi)容,統(tǒng)計市場數(shù)據(jù),附加某些計算等;或者,在每天的工作中Excel或Word的重復工作占據(jù)了你大量的時間。如果有一種方法可以將你從中解脫出來,那么你就可以有更多的時間進行創(chuàng)造性的工作或享受生活了。
所謂重復勞動,大多都是規(guī)則明確化的,它包括腦力與體力兩個方面。從人工智能角度發(fā)展,就是讓機器代替人類執(zhí)行重復計算或勞動的過程。比如自從有了計算機,大家的勞動相比之前高效了許多。但是,我們在計算機上還是會進行某些重復性的勞動與煩瑣的計算,這又是為什么呢? 這是因為軟件、硬件作為商品都是普遍適用的,基于利潤或穩(wěn)定性方面的考慮,它不會針對某件事或某個人設(shè)定,所以面對各自的工作問題,就需要自己或請人來解決。由于某些業(yè)務(wù)的復雜性(非技術(shù)上的),其中的邏輯只有自己最清楚,所以自己編程解決是一條非常有效的路徑。例如,金融市場數(shù)據(jù)每日更新,通過Python,可以將自己從一定的重復勞動中解脫出來。
實現(xiàn)自動化辦公需要自己編程,但你或許會問: 不會編程怎么辦? 首先,必須說明的是,有些人適合編程而有些人不適合編程,適合不適合只有自己嘗試過才知道。其次,還有一條途徑——請別人幫你解決問題,如果你覺得貴就只有自己繼續(xù)重復勞動了。假設(shè)你工作30年,每天有50%的時間在重復勞動,那么你的15年時間就在重復勞動中度過了。是否嘗試一下由你自己決定! 在這里聲明,重復并非不好,或許大多數(shù)工作的性質(zhì)就是重復,每個人的生活態(tài)度不一樣。筆者厭惡重復,有時為了生活也不得不重復,但在重復的過程中我總是思考如何能自動化,如何擺脫重復。
5. 量化交易“賺錢”
量化交易者的楷模是數(shù)學家西蒙斯,關(guān)于他的文藝復興科技公司與大獎?wù)禄鸾榻B如下:華爾街賺錢機器文藝復興科技公司,依靠公司的旗艦產(chǎn)品大獎?wù)禄?Medallion Fund)20年的超群表現(xiàn)贏得無數(shù)贊譽。據(jù)《福布斯》雜志的統(tǒng)計,截至2012年9月,西蒙斯的身價已高達110億美元,在福布斯全球富豪榜上位居第82位。數(shù)據(jù)顯示,自1988年成立至2010年西蒙斯退休,大獎?wù)禄鹉昃貓舐矢哌_35%,不僅遠遠跑贏大市,還比索羅斯和巴菲特的操盤成績高十余個百分點,這使得西蒙斯在人才濟濟的華爾街笑傲群雄。他被投資界稱為“量化投資之王”。西蒙斯成功的秘訣主要有三:一是針對不同市場設(shè)計數(shù)量化的投資管理模型;二是以計算機運算為主導,排除人為因素干擾;三是在全球各種市場上進行短線交易。如果沒有仔細閱讀前面4點,直接看到“量化交易‘賺錢’”,或有圖急功近利之嫌。作者想提醒讀者先閱讀前面4點,尤其是“避免主觀臆斷”與“實現(xiàn)自動化辦公”,以“量化交易‘賺錢’”或許需要天賦與運氣,但實現(xiàn)“避免主觀臆斷”與“實現(xiàn)自動化辦公”只需要你用些時間去學習一下Python編程。
最后,希望本書能對各位讀者有所幫助,并且再次感謝懷偉城、王瑋珩兩位Python專家,以及北京航空航天大學出版社的各位老師卓有成效的工作。
6. 其 他
書中所有程序的源代碼可在北京航空航天大學出版社網(wǎng)站(http://www.buaapress.com.cn/mzs/welcome/index)“下載專區(qū)”免費下載。
由于作者水平有限,書中不當之處,敬請讀者批評指正。本書網(wǎng)絡(luò)支持:www.ariszheng.com,作者郵箱:ariszheng@gmail.com,編輯郵箱:shpchen2004@163.com。
鄭志勇
2018年5月于北京