科普文 | 量化投資從0到1

本文是科普文,對之前個人所寫的量化投資相關的文章進行了一些整理,方便初次接觸量化的朋友進行學習。

如果你已經看過我之前關于量化的文章,并且已經走在了量化的路上,為了節省您的時間,那么本文可以不用繼續往下看了。

量化投資,可以按照字面分成兩部分,分別是“量化”和“投資”?!巴顿Y”是指我們把錢投出去,而“量化”指的是投資之前需要做的準備工作。

為什么量化?
量化是什么?
怎么學量化?
要注意什么?

下面,我將會從這幾個方面對量化進行展開,當你弄清楚這些問題之后,就可以快速上手量化投資了。

1 為什么要學習量化?

最近兩年,網絡上的量化平臺如雨后春筍一般涌現出來。

就算你沒有接觸過量化投資,也或多或少從別人那聽說過。

就算你沒有聽說過,也至少知道alphaGo戰勝了李世石、戰勝了柯潔的新聞。

機器人可以戰勝人類,這不再是一件新鮮事。

在可以預見的未來,投資也會如此。

1.1 量化可以給我們帶來更高的收益

對于常常和數字打交道的投資領域,量化能夠發揮出什么樣的光彩呢?

詹姆斯·西蒙斯[1]是量化投資的先行者,也是最早的一批人之一,更是其中最厲害的一個。

他在1988年3月成立的大獎章基金。在1989-2009年期間,大獎章基金給客戶的平均年回報率高達35%。

如果不考慮高達44%的提成,大獎章基金的年收益率實際上要超過60%。

詹姆斯·西蒙斯給投資界樹立了一個標桿,告訴了人們通過量化的方式,可以獲得遠遠超出平均水平的收益。

了解過詹姆斯·西蒙斯的人可能知道,他在進行量化投資之前,是一個數學家。

而我們大部分人都是普通人,他的那套“彈指神通”我們可以學得會嗎?

我不是專業學習數學的,也是普羅大眾的一員。

同樣作為量化的初學者,我的一些經驗或許能夠給你提供一些參考。

之前,我寫了一篇文章《曾經,我找到了投資的圣杯》[2],介紹小市值策略在過去能夠達到的程度:

2007年1月1日到2016年11月24日初始資金5萬的回測結果

投資將近10年,收益6841.38倍,有沒有被這樣的收益率驚到?

驚嘆過后,我馬上就用于實盤,下圖是joinquant模擬盤至今的結果:

二八輪動小市值

實盤是從2016年6月6日開始的,一年多一點的時間里,獲得了年化14.02%的收益。

去年6月份也正好是重組新政開始的時候,在這樣嚴峻的環境下,能夠獲得這樣的收益也還算不錯了。

當然,我實際上并沒有緊跟這個模擬盤,因為中間對小市值未來存疑,我在2017年4月24日開始更換策略,就是我之前發布過的動態因子策略:

動態因子策略

所以實盤的結果是,從2016年6月6日至2017年7月13日,實現了24.49%的收益,折算成復合年化收益是21.95%。

熊途漫漫,能夠獲得這樣的收益我已經比較滿足了。

對于一些牛人來說,量化的模擬盤可能是這樣的:

螞蟻搬家03_精選策略

也可能是這樣的:

銀行日內

1.2 可以免受情緒的干擾

如果你交易過股票,肯定會有這樣的感受,在決策的時候,常常容易糾結。

買了是否還會跌呢?
賣了是否還會漲呢?

每當我們下定了決心,價格的變化,又將我們打回原形。

既浪費了時間,又消耗了精力,還對我們長期地投資結果沒有什么影響。

明明是一種撿芝麻丟西瓜的行為,很多人也清楚這個道理,但是常常就是忍不住。

我們的投資決策,常常會受到情緒的干擾,這源于人性,很難解決。

通過量化,其實可以很好地繞開這個干擾。

在制定好量化策略之后,策略會根據市場的情況,對標的進行輪動。

如果不進行同樣的計算,我們在當天往往不知道交易的股票是什么,甚至不清楚是否需要交易。

以我個人為例,我設置的策略交易時間為14:50。

在這之后,我了解到需要輪換的股票,并進行交易。先是賣出,然后買入,最多的時候,需要進行20筆。

因為后面三分鐘是深交所集合競價時間,實際上交易的時間只有不到10分鐘。

在這么段的時間里,我常常弄得手忙腳亂,有時候甚至沒有完全輪換完畢。

你說,這樣的情況下,還有心思去糾結嗎?

1.3 可以節省出很多時間

功課應該在投資之前就做好。

但是這樣的功課,往往需要花費大量的時間和精力。

剛剛學習完價值投資,我就有這樣的感覺。

每投資一家企業,我們都需要看它的年報,了解它的財務狀況。

我們還需要了解公司的商業邏輯,分析其競爭環境。

每投資一家公司,就需要付出一份時間和精力的。

在剛開始還不熟悉的時候,常常需要花費十天半月的時間,才能研究好一個公司,并且這個公司還不一定適合投資。

成本是放棄了的最大代價,我們在投資上多投入一份精力,就會在工作上少花費一份精力。

也不怪有人會說,年輕人最重要的是投資自己。

因為本金比較少,通過這樣的方式投資,往往得不償失。

量化投資,其實很好地解決了這樣的問題。

在制定了一個策略之后,我們只需要花費很少的時間進行維護,付出的成本比價值投資要低得多。

如果你是一個上班族,想要獲得不錯的收益,又不想在投資上花費太多的精力,量化就是一個非常好的選擇。

如果你是一個價值投資者,同樣也應該學習量化。

因為通過量化,你可以節省很多采集數據的時間[3],讓自己專注于定性方面的研究和分析。

1.4 可以快速地檢驗自己的想法

對于投資,不知道你有沒有一些自己的看法?

我剛剛接觸投資的時候,想法不多,只求通過抄作業得到一個標準的答案。

但是隨著研究和理解的深入,我發現作業抄得再好,你也很難超越寫作業的人。

同時你能夠抄到的作業,別人自然也能夠抄到,這就會有那么一些風險。

然后我就不滿足于抄作業,也有了一些自己的想法。

第一次出現了問題,是對港股牛熊證的投機。

之前看到別人分享的方法論,勝率挺高的,并且實現起來也不困難。

然而我在實盤的時候,卻發現不是這個樣子,除了一開始稍有盈利,后面一直在虧損。

還好當時總投入的金額并不多,并且在虧損之后也沒有繼續出現想要回本的賭徒心態。

不過這樣的損失,其實是可以避免的。

在那之后,我通過量化的方式,使用歷史的數據進行了簡單的回測,結果是:短期能夠獲益,長期是要虧損的。

問題的主要原因是出在手續費和滑點上面。

很多投資策略,都可以先通過量化的方式進行回測驗證。

策略回測效果很好實盤效果不一定會很好,但策略的回測效果都不好,我們很難相信實盤會擁有良好的效果。

例如我覺得技術指標效果不是很好[4],然后我就統計了果仁網所有現成的技術指標數據:

技術指標勝率

在經過回測之后你會發現,單獨使用的技術指標,大部分都跑不贏指數,勝率也不高。

當然,也許經過一定的組合可能獲得更好的效果,不過那是另外一回事了,需要進一步的驗證。

又例如,之前聽說在節假日前,市場一般都會上漲[5],我就忍不住去驗證了一下:

節前最后一天上漲的概率

發現還真有這回事。

通過歷史的數據,你可以看到這些節假日前一天的上漲的概率都大于50%。

再例如,我們說中國大部分都是散戶[6],怎么樣驗證這個說法呢?

我們可以對比新增投資者(開戶)數量和指數點位的變化趨勢:

新增投資者數量和上證指數點位變化情況對比

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

交易A股的投資者數量和上證指數點位變化情況對比

2 量化是什么?

簡單來看,量化其實是對數據的統計。

量化的工具我們在工作和生活中,或多或少應該都有用到過——Excel。

據說雪球大V持有封基,用了十年的Excel,量化十年賺了十倍。

在雪球有一個策略很出名,叫做蛋卷斗牛二八輪動。

第一次看到的是這個模型的2.0版本[7]

每周五(或者本周的最后一個交易日)臨近收盤時,將滬深300指數和中證500指數切換到周線狀態,分別查看兩者過去四周的累計漲幅。如果過去四周漲幅大的那個指數在四周中能夠獲得正回報,那么就在收盤前買入對應的ETF持有一周,直至下一次的切換;但是如果過去四周漲幅大的那個指數在四周中依然是虧損的,那么就選擇空倉,直至下一次切換。

其實這個策略實現起來非常簡單,下面我就告訴你一個5分鐘內就可以實現的方法:

第一步:打開通達信軟件,輸入代碼000300(滬深300),切換到周線,然后導出數據到Excel;
第二步:類似地將000905(中證500)的數據導出
第三步:數據拷貝到同一個表格中
第四步:計算四周漲幅(D6=B6/B2-1)
第五步:計算單周漲幅(F6=B6/B5-1)
第六步:根據四周漲幅,選擇單周漲幅(H7=IF(D6>E6,F7,G7))
第七步:添加漲幅小于零的止損(I7=IF(MAX(D6:E6)>0,H7,0))
第八步:根據漲跌幅計算投資凈值(J7=J6*(1+F7))
第九步:拉表格,插入折線圖

表格
凈值曲線

橙色的曲線就是該策略的實現效果。

之前我還在這個基礎之上,進行了些擴展,做了一個多指數輪動的策略,這是回測結果:

多指數輪動

所以我們沒有必要將量化看成很高深的東西。

3 怎么學習量化?

使用excel量化,需要導出數據,也需要編寫一些簡單的公式。

很多人對量化敬而遠之,其實是因為對編程的學習存在遲疑。學習需要花費巨額的時間,卻并且不一定能產生相應的價值,這是很多人望而卻步的原因。

但是現在有很多量化平臺,例如果仁網、優礦、京東量化平臺、聚寬,都會提供一些現成的指標,我們連這一步都可以省掉。

甚至很多策略在這些量化平臺上,都已經實現了,我們直接拿來使用就可以了。

所以,我覺得“使用”是第一步,也是最重要一步。

我們之所以學了時間英語,卻不能和外國人正常交流,原因是什么你想過嗎?

但如果你立刻就開始使用的話,就不會存在這樣的問題。

我們可以直接找到一個應用的切入點,例如拷貝別人的代碼,然后改成自己想要的樣子。

學習量化,我就是這樣開始的。

拿之前發布的動態因子策略[8]舉例,這個策略真正編程的時間只有半天。

為什么可以這么快?因為里面大量地復用了別人的代碼。

首先是回測部分,如果你看前面幾行,還能發現別人的版本標識:

版本標識

其次是研究部分,代碼也是來源于別人的文章《【研究】量化選股-因子檢驗和多因子模型的構建》[9]。

老實說,在一開始的時候,文章的很多內容,我都看不懂。

但沒有關系啊,我逐行去執行代碼,把每一個疑問都研究清楚。

最終,我在別人代碼的基礎上,進行了一些微調,得到了自己想要的結果。

所以實際上,我只是代碼的搬運工。

一開始我對DataFrame一竅不通,因為數據統計的需要,就學會了數據的批量操作,周二到周六分享的基金回測數據,就是使用得到的結果。

一開始我對matplotlib一竅不通,因為曲線展現的需要,就學會了如何繪圖,周二到周六分享的上證指數溫度計圖片,就是使用得到的結果。

通過這樣的方式學習量化,學習編程,你不會覺得枯燥,因為你沒走一步,都在應用。

根據自己的需要,不斷地去使用就好。也不用強求自己一開始就能做得很好,日拱一卒就夠。

使用的需要,會給我們指引前進方向的。

4 量化的注意事項

量化的時候,有些東西[10]你是需要特別注意的:

未來數據
邊界條件
有效樣本

未來數據是指那些對于過去的過去而言,已經發生的數據。例如前天的回測不應該用到昨天的數據。

邊界條件一般是指那些我們不能達成或者很難達成交易的情況。例如停牌,例如漲跌停。

有效樣本[11]來源于樣本規模和樣本代表性。

樣本的規模和策略中規則觸發的頻次有關。觸發次數只有關鍵的幾次,很可能這些規則就是過度擬合[12]數據的結果,得到的樣本自然就是無效的。

樣本的代表性指的是數據量,數據量太小,不足以涵蓋市場類型和交易時間,這樣形成的策略,同樣也是不可信的。

文章中涉及到的一些內容:

[1]:與橫掃華爾街數學家的珍貴對話
[2]:曾經,我找到了投資的圣杯
[3]:有了這幾個工具,我研究公司花費的時間下降了80%
[4]:看K線,賺大錢。
[5]:又是一年五一節了
[6]:跌跌不休,什么時候是個頭?
[7]:二八輪動模型升級至2.0版,更簡單更賺錢
[8]:動態因子策略,圣杯?
[9]:【研究】量化選股-因子檢驗和多因子模型的構建
[10]:是什么,讓你對自己的策略確信無疑?
[11]:投資10年300倍,你相信嗎?
[12]:量化的實盤效果為什么總是不如回測?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容