
本文是科普文,對之前個人所寫的量化投資相關(guān)的文章進行了一些整理,方便初次接觸量化的朋友進行學習。
如果你已經(jīng)看過我之前關(guān)于量化的文章,并且已經(jīng)走在了量化的路上,為了節(jié)省您的時間,那么本文可以不用繼續(xù)往下看了。
量化投資,可以按照字面分成兩部分,分別是“量化”和“投資”。“投資”是指我們把錢投出去,而“量化”指的是投資之前需要做的準備工作。
為什么量化?
量化是什么?
怎么學量化?
要注意什么?
下面,我將會從這幾個方面對量化進行展開,當你弄清楚這些問題之后,就可以快速上手量化投資了。
1 為什么要學習量化?
最近兩年,網(wǎng)絡(luò)上的量化平臺如雨后春筍一般涌現(xiàn)出來。
就算你沒有接觸過量化投資,也或多或少從別人那聽說過。
就算你沒有聽說過,也至少知道alphaGo戰(zhàn)勝了李世石、戰(zhàn)勝了柯潔的新聞。
機器人可以戰(zhàn)勝人類,這不再是一件新鮮事。
在可以預見的未來,投資也會如此。
1.1 量化可以給我們帶來更高的收益
對于常常和數(shù)字打交道的投資領(lǐng)域,量化能夠發(fā)揮出什么樣的光彩呢?
詹姆斯·西蒙斯[1]是量化投資的先行者,也是最早的一批人之一,更是其中最厲害的一個。
他在1988年3月成立的大獎?wù)禄?。?989-2009年期間,大獎?wù)禄鸾o客戶的平均年回報率高達35%。
如果不考慮高達44%的提成,大獎?wù)禄鸬哪晔找媛蕦嶋H上要超過60%。
詹姆斯·西蒙斯給投資界樹立了一個標桿,告訴了人們通過量化的方式,可以獲得遠遠超出平均水平的收益。
了解過詹姆斯·西蒙斯的人可能知道,他在進行量化投資之前,是一個數(shù)學家。
而我們大部分人都是普通人,他的那套“彈指神通”我們可以學得會嗎?
我不是專業(yè)學習數(shù)學的,也是普羅大眾的一員。
同樣作為量化的初學者,我的一些經(jīng)驗或許能夠給你提供一些參考。
之前,我寫了一篇文章《曾經(jīng),我找到了投資的圣杯》[2],介紹小市值策略在過去能夠達到的程度:

投資將近10年,收益6841.38倍,有沒有被這樣的收益率驚到?
驚嘆過后,我馬上就用于實盤,下圖是joinquant模擬盤至今的結(jié)果:

實盤是從2016年6月6日開始的,一年多一點的時間里,獲得了年化14.02%的收益。
去年6月份也正好是重組新政開始的時候,在這樣嚴峻的環(huán)境下,能夠獲得這樣的收益也還算不錯了。
當然,我實際上并沒有緊跟這個模擬盤,因為中間對小市值未來存疑,我在2017年4月24日開始更換策略,就是我之前發(fā)布過的動態(tài)因子策略:

所以實盤的結(jié)果是,從2016年6月6日至2017年7月13日,實現(xiàn)了24.49%的收益,折算成復合年化收益是21.95%。
熊途漫漫,能夠獲得這樣的收益我已經(jīng)比較滿足了。
對于一些牛人來說,量化的模擬盤可能是這樣的:

也可能是這樣的:

1.2 可以免受情緒的干擾
如果你交易過股票,肯定會有這樣的感受,在決策的時候,常常容易糾結(jié)。
買了是否還會跌呢?
賣了是否還會漲呢?
每當我們下定了決心,價格的變化,又將我們打回原形。
既浪費了時間,又消耗了精力,還對我們長期地投資結(jié)果沒有什么影響。
明明是一種撿芝麻丟西瓜的行為,很多人也清楚這個道理,但是常常就是忍不住。
我們的投資決策,常常會受到情緒的干擾,這源于人性,很難解決。
通過量化,其實可以很好地繞開這個干擾。
在制定好量化策略之后,策略會根據(jù)市場的情況,對標的進行輪動。
如果不進行同樣的計算,我們在當天往往不知道交易的股票是什么,甚至不清楚是否需要交易。
以我個人為例,我設(shè)置的策略交易時間為14:50。
在這之后,我了解到需要輪換的股票,并進行交易。先是賣出,然后買入,最多的時候,需要進行20筆。
因為后面三分鐘是深交所集合競價時間,實際上交易的時間只有不到10分鐘。
在這么段的時間里,我常常弄得手忙腳亂,有時候甚至沒有完全輪換完畢。
你說,這樣的情況下,還有心思去糾結(jié)嗎?
1.3 可以節(jié)省出很多時間
功課應(yīng)該在投資之前就做好。
但是這樣的功課,往往需要花費大量的時間和精力。
剛剛學習完價值投資,我就有這樣的感覺。
每投資一家企業(yè),我們都需要看它的年報,了解它的財務(wù)狀況。
我們還需要了解公司的商業(yè)邏輯,分析其競爭環(huán)境。
每投資一家公司,就需要付出一份時間和精力的。
在剛開始還不熟悉的時候,常常需要花費十天半月的時間,才能研究好一個公司,并且這個公司還不一定適合投資。
成本是放棄了的最大代價,我們在投資上多投入一份精力,就會在工作上少花費一份精力。
也不怪有人會說,年輕人最重要的是投資自己。
因為本金比較少,通過這樣的方式投資,往往得不償失。
量化投資,其實很好地解決了這樣的問題。
在制定了一個策略之后,我們只需要花費很少的時間進行維護,付出的成本比價值投資要低得多。
如果你是一個上班族,想要獲得不錯的收益,又不想在投資上花費太多的精力,量化就是一個非常好的選擇。
如果你是一個價值投資者,同樣也應(yīng)該學習量化。
因為通過量化,你可以節(jié)省很多采集數(shù)據(jù)的時間[3],讓自己專注于定性方面的研究和分析。
1.4 可以快速地檢驗自己的想法
對于投資,不知道你有沒有一些自己的看法?
我剛剛接觸投資的時候,想法不多,只求通過抄作業(yè)得到一個標準的答案。
但是隨著研究和理解的深入,我發(fā)現(xiàn)作業(yè)抄得再好,你也很難超越寫作業(yè)的人。
同時你能夠抄到的作業(yè),別人自然也能夠抄到,這就會有那么一些風險。
然后我就不滿足于抄作業(yè),也有了一些自己的想法。
第一次出現(xiàn)了問題,是對港股牛熊證的投機。
之前看到別人分享的方法論,勝率挺高的,并且實現(xiàn)起來也不困難。
然而我在實盤的時候,卻發(fā)現(xiàn)不是這個樣子,除了一開始稍有盈利,后面一直在虧損。
還好當時總投入的金額并不多,并且在虧損之后也沒有繼續(xù)出現(xiàn)想要回本的賭徒心態(tài)。
不過這樣的損失,其實是可以避免的。
在那之后,我通過量化的方式,使用歷史的數(shù)據(jù)進行了簡單的回測,結(jié)果是:短期能夠獲益,長期是要虧損的。
問題的主要原因是出在手續(xù)費和滑點上面。
很多投資策略,都可以先通過量化的方式進行回測驗證。
策略回測效果很好實盤效果不一定會很好,但策略的回測效果都不好,我們很難相信實盤會擁有良好的效果。
例如我覺得技術(shù)指標效果不是很好[4],然后我就統(tǒng)計了果仁網(wǎng)所有現(xiàn)成的技術(shù)指標數(shù)據(jù):

在經(jīng)過回測之后你會發(fā)現(xiàn),單獨使用的技術(shù)指標,大部分都跑不贏指數(shù),勝率也不高。
當然,也許經(jīng)過一定的組合可能獲得更好的效果,不過那是另外一回事了,需要進一步的驗證。
又例如,之前聽說在節(jié)假日前,市場一般都會上漲[5],我就忍不住去驗證了一下:

發(fā)現(xiàn)還真有這回事。
通過歷史的數(shù)據(jù),你可以看到這些節(jié)假日前一天的上漲的概率都大于50%。
再例如,我們說中國大部分都是散戶[6],怎么樣驗證這個說法呢?
我們可以對比新增投資者(開戶)數(shù)量和指數(shù)點位的變化趨勢:

我們可以對比交易投資者的數(shù)量和指數(shù)點位的變化趨勢:

2 量化是什么?
簡單來看,量化其實是對數(shù)據(jù)的統(tǒng)計。
量化的工具我們在工作和生活中,或多或少應(yīng)該都有用到過——Excel。
據(jù)說雪球大V持有封基,用了十年的Excel,量化十年賺了十倍。
在雪球有一個策略很出名,叫做蛋卷斗牛二八輪動。
第一次看到的是這個模型的2.0版本[7]:
每周五(或者本周的最后一個交易日)臨近收盤時,將滬深300指數(shù)和中證500指數(shù)切換到周線狀態(tài),分別查看兩者過去四周的累計漲幅。如果過去四周漲幅大的那個指數(shù)在四周中能夠獲得正回報,那么就在收盤前買入對應(yīng)的ETF持有一周,直至下一次的切換;但是如果過去四周漲幅大的那個指數(shù)在四周中依然是虧損的,那么就選擇空倉,直至下一次切換。
其實這個策略實現(xiàn)起來非常簡單,下面我就告訴你一個5分鐘內(nèi)就可以實現(xiàn)的方法:
第一步:打開通達信軟件,輸入代碼000300(滬深300),切換到周線,然后導出數(shù)據(jù)到Excel;
第二步:類似地將000905(中證500)的數(shù)據(jù)導出
第三步:數(shù)據(jù)拷貝到同一個表格中
第四步:計算四周漲幅(D6=B6/B2-1)
第五步:計算單周漲幅(F6=B6/B5-1)
第六步:根據(jù)四周漲幅,選擇單周漲幅(H7=IF(D6>E6,F7,G7))
第七步:添加漲幅小于零的止損(I7=IF(MAX(D6:E6)>0,H7,0))
第八步:根據(jù)漲跌幅計算投資凈值(J7=J6*(1+F7))
第九步:拉表格,插入折線圖


橙色的曲線就是該策略的實現(xiàn)效果。
之前我還在這個基礎(chǔ)之上,進行了些擴展,做了一個多指數(shù)輪動的策略,這是回測結(jié)果:

所以我們沒有必要將量化看成很高深的東西。
3 怎么學習量化?
使用excel量化,需要導出數(shù)據(jù),也需要編寫一些簡單的公式。
很多人對量化敬而遠之,其實是因為對編程的學習存在遲疑。學習需要花費巨額的時間,卻并且不一定能產(chǎn)生相應(yīng)的價值,這是很多人望而卻步的原因。
但是現(xiàn)在有很多量化平臺,例如果仁網(wǎng)、優(yōu)礦、京東量化平臺、聚寬,都會提供一些現(xiàn)成的指標,我們連這一步都可以省掉。
甚至很多策略在這些量化平臺上,都已經(jīng)實現(xiàn)了,我們直接拿來使用就可以了。
所以,我覺得“使用”是第一步,也是最重要一步。
我們之所以學了時間英語,卻不能和外國人正常交流,原因是什么你想過嗎?
但如果你立刻就開始使用的話,就不會存在這樣的問題。
我們可以直接找到一個應(yīng)用的切入點,例如拷貝別人的代碼,然后改成自己想要的樣子。
學習量化,我就是這樣開始的。
拿之前發(fā)布的動態(tài)因子策略[8]舉例,這個策略真正編程的時間只有半天。
為什么可以這么快?因為里面大量地復用了別人的代碼。
首先是回測部分,如果你看前面幾行,還能發(fā)現(xiàn)別人的版本標識:

其次是研究部分,代碼也是來源于別人的文章《【研究】量化選股-因子檢驗和多因子模型的構(gòu)建》[9]。
老實說,在一開始的時候,文章的很多內(nèi)容,我都看不懂。
但沒有關(guān)系啊,我逐行去執(zhí)行代碼,把每一個疑問都研究清楚。
最終,我在別人代碼的基礎(chǔ)上,進行了一些微調(diào),得到了自己想要的結(jié)果。
所以實際上,我只是代碼的搬運工。
一開始我對DataFrame一竅不通,因為數(shù)據(jù)統(tǒng)計的需要,就學會了數(shù)據(jù)的批量操作,周二到周六分享的基金回測數(shù)據(jù),就是使用得到的結(jié)果。
一開始我對matplotlib一竅不通,因為曲線展現(xiàn)的需要,就學會了如何繪圖,周二到周六分享的上證指數(shù)溫度計圖片,就是使用得到的結(jié)果。
通過這樣的方式學習量化,學習編程,你不會覺得枯燥,因為你沒走一步,都在應(yīng)用。
根據(jù)自己的需要,不斷地去使用就好。也不用強求自己一開始就能做得很好,日拱一卒就夠。
使用的需要,會給我們指引前進方向的。
4 量化的注意事項
量化的時候,有些東西[10]你是需要特別注意的:
未來數(shù)據(jù)
邊界條件
有效樣本
未來數(shù)據(jù)是指那些對于過去的過去而言,已經(jīng)發(fā)生的數(shù)據(jù)。例如前天的回測不應(yīng)該用到昨天的數(shù)據(jù)。
邊界條件一般是指那些我們不能達成或者很難達成交易的情況。例如停牌,例如漲跌停。
有效樣本[11]來源于樣本規(guī)模和樣本代表性。
樣本的規(guī)模和策略中規(guī)則觸發(fā)的頻次有關(guān)。觸發(fā)次數(shù)只有關(guān)鍵的幾次,很可能這些規(guī)則就是過度擬合[12]數(shù)據(jù)的結(jié)果,得到的樣本自然就是無效的。
樣本的代表性指的是數(shù)據(jù)量,數(shù)據(jù)量太小,不足以涵蓋市場類型和交易時間,這樣形成的策略,同樣也是不可信的。
附
文章中涉及到的一些內(nèi)容:
[1]:與橫掃華爾街數(shù)學家的珍貴對話
[2]:曾經(jīng),我找到了投資的圣杯
[3]:有了這幾個工具,我研究公司花費的時間下降了80%
[4]:看K線,賺大錢。
[5]:又是一年五一節(jié)了
[6]:跌跌不休,什么時候是個頭?
[7]:二八輪動模型升級至2.0版,更簡單更賺錢
[8]:動態(tài)因子策略,圣杯?
[9]:【研究】量化選股-因子檢驗和多因子模型的構(gòu)建
[10]:是什么,讓你對自己的策略確信無疑?
[11]:投資10年300倍,你相信嗎?
[12]:量化的實盤效果為什么總是不如回測?