寫給你的(de)金融時(shí)間序列分(fēn)析:應用(yòng)篇
發布時(shí)間:2017-06-06 | 來(lái)源: 川總寫量化(huà)
作者:石川
摘要:使用(yòng)時(shí)間序列模型對(duì)收益率建模,必須對(duì)投資品和(hé)模型本身都非常了(le)解,這(zhè)樣才能使模型盡可(kě)能的(de)反應投資品的(de)特點。
1 書(shū)接前文
三周前,我們推出了(le)《寫給你的(de)金融時(shí)間序列分(fēn)析》系列,目的(de)是想通(tōng)過一系列文章(zhāng)使讀者了(le)解金融時(shí)間序列的(de)特點、熟悉金融時(shí)間序列分(fēn)析的(de)目的(de)、并使用(yòng)線性但實用(yòng)的(de)時(shí)間序列分(fēn)析模型對(duì)投資品收益率進行預測并以此制定量化(huà)投資策略。在本系列之前的(de)三篇文章(zhāng)中,我們以對(duì)收益率建模爲目标,按部就班的(de)解釋了(le)爲實現這(zhè)個(gè)目标所需要的(de)每一塊“積木(mù)”。作爲回顧,這(zhè)三篇文章(zhāng)的(de)結構爲:
基礎篇:介紹金融時(shí)間序列的(de)特性和(hé)進行金融時(shí)間序列分(fēn)析的(de)目的(de);解釋時(shí)間序列分(fēn)析中的(de)核心概念:自相關性。
初級篇:說明(míng)時(shí)間序列建模的(de)過程;介紹時(shí)間序列分(fēn)析中的(de)最基本模型:白噪聲和(hé)随機遊走。
進階篇:介紹時(shí)間序列分(fēn)析中常用(yòng)的(de)線性模型:自回歸模型、滑動平均模型、以及自回歸滑動平均模型。
本文是系列的(de)最後一篇:應用(yòng)篇。我們将利用(yòng) ARMA 對(duì)上證指數收益率序列建模,并以此産生交易信号、構建投資策略,以此展示時(shí)間序列分(fēn)析在量化(huà)投資領域的(de)應用(yòng)。
2 對(duì)時(shí)間序列模型預測的(de)正确預期
通(tōng)過本系列之前的(de)文章(zhāng)的(de)介紹,我們已經知道,時(shí)間序列建模的(de)目的(de)是挖掘收益率序列的(de)内在“特性”(自相關性),并在“該特性可(kě)以在未來(lái)重複”的(de)假設下(xià),對(duì)未來(lái)的(de)收益率做(zuò)判斷。如果我們想要根據這(zhè)個(gè)收益率預測來(lái)構建交易信号——比如如果預測的(de)收益率爲正則買入;如果預測的(de)收益率爲負則空倉(因爲不容易做(zuò)空)——那麽就必須要對(duì)時(shí)間序列模型的(de)預測效果有正确的(de)認識。
來(lái)看一個(gè)例子。下(xià)圖是上證指數在 2017 年 4 月(yuè) 24 日(含)之前 20 個(gè)交易日的(de)收益率(注:爲了(le)建模,我們當然可(kě)以也(yě)應該使用(yòng)更長(cháng)的(de)曆史數據;這(zhè)裏爲了(le)繪圖清晰僅顯示 20 個(gè)曆史交易日的(de)數據)。那麽一個(gè)時(shí)間序列模型對(duì)下(xià)一個(gè)交易日,即 2017 年 4 月(yuè) 25 日,的(de)收益率預測會是多(duō)少呢(ne)?該預測值會接近圖中的(de)點 1、2、3 或者 4 嗎?
也(yě)許你已經注意到了(le),我故意挑選的(de)這(zhè) 4 個(gè)點都滿足一個(gè)條件,就是她們的(de)絕對(duì)值都大(dà)于 0.5%(其中 1 和(hé) 4 兩個(gè)點的(de)絕對(duì)值都高(gāo)于 1%)。±0.5% 或者 ±1% 的(de)日收益率對(duì)于上證指數可(kě)以算(suàn)是正常的(de)取值,因此我們是否應該預期時(shí)間序列模型的(de)預測值也(yě)有類似的(de)量級呢(ne)?事實上,如果我們用(yòng) 1 年的(de)曆史數據來(lái)構建 ARMA 模型,并對(duì) 2017 年 4 月(yuè) 25 日的(de)收益率預測時(shí),得(de)到的(de)預測值和(hé)它的(de) 95% 的(de)置信區(qū)間如下(xià)圖所示(下(xià)圖中,模型同時(shí)對(duì) 2017 年 4 月(yuè) 25 日之後的(de) 5 個(gè)交易日進行預測)。
可(kě)以看到,收益率的(de)預測值實際上非常接近 0%,遠(yuǎn)沒有到達 ±0.5% 或者 ±1% 的(de)量級。且它的(de) 95% 的(de)置信區(qū)間非常寬。這(zhè)樣的(de)結果說明(míng):
當我們用(yòng)較長(cháng)的(de)一段曆史數據來(lái)對(duì)時(shí)間序列建模時(shí),序列的(de)内在自相關性相對(duì)于随機噪聲來(lái)說非常微弱。模型能夠解釋的(de)收益率的(de)波動較随機噪聲的(de)波動來(lái)說微乎其微(上圖中綠色的(de)樣本内拟合收益率和(hé)藍色的(de)實際收益率之間的(de)殘差很大(dà)很好的(de)說明(míng)了(le)這(zhè)一點)。這(zhè)樣的(de)結果就是,模型對(duì)于收益率的(de)預測的(de)絕對(duì)值将會非常接近 0,且該預測值的(de)标準差會很大(dà),造成很寬的(de)置信區(qū)間。
如果用(yòng)白話(huà)來(lái)解釋上面這(zhè)一大(dà)段話(huà)那就是:如果使用(yòng)太長(cháng)的(de)曆史數據建模,則序列中表現出來(lái)的(de)自相關性非常微弱,時(shí)間序列建模“然并卵”。既然太長(cháng)不行,那我們來(lái)看看少用(yòng)點數據建模又如何。假如我們僅僅使用(yòng) 10 個(gè)曆史收益率數據建模,則預測結果如下(xià):
這(zhè)會我們看到,數據少了(le)以後,拟合收益率和(hé)實際收益率更加接近;而預測出來(lái)的(de)收益率似乎在量級上也(yě)更加符合我們 ±0.5% 或者 ±1% 的(de)預期。但是,對(duì)于這(zhè)種預測結果我們敢相信嗎?
當我們用(yòng)很短的(de)一段曆史數據來(lái)對(duì)時(shí)間序列建模時(shí),幾乎“确定、一定以及肯定”的(de)會發生過拟合。事實上,上面的(de)模型是一個(gè)帶有常數項的(de) AR(4) 模型,相當于用(yòng) 10 個(gè)曆史數據來(lái)确定 5 個(gè)模型的(de)參數。過拟合的(de)結果是,模型過分(fēn)解讀了(le)樣本内的(de)随機擾動,以至于它對(duì)樣本外數據的(de)預測準确性會非常差(該模型在樣本外有很大(dà)的(de)方差)。我們無法肯定該模型捕捉到了(le)多(duō)少收益率内在的(de)特征,但可(kě)以肯定的(de)是它刻畫(huà)了(le)樣本内的(de)很多(duō)無效噪聲。
如果用(yòng)白話(huà)來(lái)解釋上面這(zhè)一大(dà)段話(huà)那就是:如果使用(yòng)太短的(de)曆史數據建模,則模型會過度關注樣本内的(de)随機擾動,因此時(shí)間序列建模依然“然并卵”。
歸根結底,ARMA 模型是一個(gè)統計建模的(de)方法。因此和(hé)所有統計模型一樣,它在預測的(de)時(shí)候既有偏差又有方差。此外,收益率序列中含有大(dà)量的(de)随機擾動,且頻(pín)率越高(gāo)擾動越強(比如日内高(gāo)頻(pín)數據比日數據的(de)噪聲更大(dà);日數據比周數據的(de)噪聲更大(dà)。關于這(zhè)一點,可(kě)以參看《不要被股市的(de)高(gāo)頻(pín)噪聲誤導》,我們用(yòng)已實現波動率證明(míng)了(le)這(zhè)一點)。這(zhè)也(yě)爲預測本身帶來(lái)了(le)巨大(dà)的(de)困難。因此,在使用(yòng)時(shí)有正确的(de)預期就非常重要。
上面的(de)分(fēn)析說明(míng),由于收益率的(de)特殊性(特别是我們研究的(de) A 股收益率的(de)特殊性),使用(yòng)太長(cháng)或者太短的(de)數據建模都沒什(shén)麽太大(dà)的(de)作用(yòng)。但是,隻要預期正确,這(zhè)些困難仍然不妨礙我們來(lái)嘗試一下(xià)。下(xià)面我們就用(yòng) ARMA 模型來(lái)爲上證指數構建一個(gè)投資策略。
3 基于 ARMA 模型的(de)投資策略
我們的(de)投資标的(de)爲上證指數。回測期爲 2013 年 7 月(yuè) 19 日到 2017 年 4 月(yuè) 24 日。基于時(shí)間序列建模的(de)交易策略如下(xià):
對(duì)于每一個(gè)交易日,使用(yòng)之前的(de) 60 個(gè)曆史日收益率(相當于 3 個(gè)月(yuè))滾動構建 ARMA 模型,并對(duì)該日的(de)收益率預測。在選擇模型參數時(shí),ARMA 的(de)階數 p 和(hé) q 的(de)取值範圍均爲 1 到 4,并根據 AIC 準則确定最優參數。如果收益率預測爲正則在下(xià)一個(gè)交易日持倉;反之則空倉。不考慮交易成本。
上述策略在回測期的(de)淨值和(hé)上證指數自身的(de)淨值比較如下(xià)圖所示:
淨值曲線的(de)具體參數如下(xià):
從結果上看,基于 ARMA 建模的(de)策略似乎還(hái)不錯:它較上證指數本身取得(de)了(le)更高(gāo)的(de)收益和(hé)更低的(de)回撤,因此有更高(gāo)的(de)夏普率(當然,這(zhè)部分(fēn)“得(de)益于”我們沒有考慮交易成本)。從淨值曲線圖上不難發現 ARMA 模型對(duì)收益率的(de)預測滿足以下(xià)幾點:
預測較好的(de)捕捉到了(le) 2014 年底到 2015 年中旬的(de)大(dà)牛市;
預測一定程度的(de)躲過了(le) 2015 年下(xià)半年開始到 2016 年初的(de)幾波下(xià)跌;
從 2016 年 3 月(yuè)份開始,ARMA 模型的(de)走勢和(hé)基準指數接近。
從 ARMA 的(de)參數上不難解釋出現上面結果的(de)原因。下(xià)圖是 ARMA 模型中的(de)常數項随時(shí)間的(de)變化(huà)。較 AR 或者 MA 部分(fēn)的(de)貢獻,常數項(收益率的(de)漂移率)的(de)量級對(duì)收益率的(de)預測貢獻更大(dà)。顯然,ARMA 模型在牛市時(shí)有顯著爲正的(de)常數項,而在熊市的(de)時(shí)候有顯著爲負的(de)常數項。而自 2016 年 3 月(yuè)開始,常數項接近 0 但是大(dà)部分(fēn)時(shí)間仍然爲證,這(zhè)樣的(de)結果就是策略在大(dà)比例的(de)時(shí)間中會持有上證指數,因此策略在這(zhè)個(gè)時(shí)期的(de)走勢和(hé)指數接近。
股災 n.0 之後,随著(zhe)監管的(de)加強,除去随機擾動之後的(de)收益率再難呈現大(dà)牛大(dà)熊市時(shí)的(de)那種大(dà)幅波動。具有中國特色的(de) A 股生生變成了(le)具有美(měi)國特色的(de)美(měi)股(長(cháng)期有一個(gè)正的(de)小幅漂移率,此外就是随機擾動)。由于監管的(de)變化(huà),我國的(de)股市已經悄然發生了(le)結構性變化(huà)(regime change)。如果 A 股以後維持這(zhè)種走勢,那麽最好的(de)策略也(yě)許就是(量化(huà))選股,即便是沒有對(duì)沖的(de)純多(duō)頭選股也(yě)大(dà)有可(kě)爲。
4 充滿希望?
上面的(de)結果也(yě)許讓人(rén)感到時(shí)間序列分(fēn)析在量化(huà)投資中是充滿希望的(de)。但正如本文第二節說明(míng)的(de)那樣,時(shí)間序列分(fēn)析有其自身存在的(de)問題,且股票(piào)的(de)收益率(尤其是高(gāo)頻(pín)的(de)收益率)預測這(zhè)件事本身幾乎沒有什(shén)麽規律可(kě)循。如果我們将回測期從過去 4 年拉長(cháng)到過去 11 年(即考慮過去的(de)兩個(gè)牛熊周期),結果會怎樣的(de)?下(xià)圖是策略和(hé)基準指數的(de)淨值曲線。策略可(kě)謂令人(rén)大(dà)跌眼鏡。
在回測期内,在尚未考慮交易成本的(de)前提下(xià),策略就遠(yuǎn)遠(yuǎn)地跑輸了(le)指數。我們當然不能草(cǎo)草(cǎo)的(de)下(xià)結論說 ARMA 模型沒有用(yòng)。但是這(zhè)個(gè)結果也(yě)清楚的(de)告訴我們,如果想使用(yòng)模型對(duì)收益率建模,我們必須對(duì)投資品和(hé)模型本身都非常了(le)解,這(zhè)樣才能将二者較好的(de)結合在一起、使模型盡可(kě)能的(de)反應投資品的(de)特點。如果僅僅是胡亂的(de)嘗試參數,結果往往是徒勞的(de)。
5 結語
作爲系列的(de)最終章(zhāng),本文介紹了(le)如何應用(yòng) ARMA 模型對(duì)上證指數收益率進行預測,并以此産生交易信号、構建交易策略。在上一篇最後,我們提出了(le)這(zhè)樣一個(gè)問題:時(shí)間序列分(fēn)析到底是紙上談兵(bīng)還(hái)是實戰利器?
也(yě)許通(tōng)過本文中簡單的(de)實證我們仍然無法确切的(de)回答(dá)這(zhè)個(gè)問題。但是,相信通(tōng)過今天的(de)文章(zhāng),你能對(duì)時(shí)間序列建模的(de)預測效果有一個(gè)正确的(de)預期,這(zhè)對(duì)于進一步使用(yòng)預測結果至關重要。我們看到,在過去 4 年的(de)回測期内,ARMA 模型還(hái)是取得(de)了(le)不錯的(de)結果。更進一步的(de),即便時(shí)間序列模型的(de)預測的(de)準确性不足以使它被獨立的(de)用(yòng)于産生交易信号,它所傳達的(de)信息也(yě)能夠爲我們理(lǐ)解投資品本身提供一些啓發。
此外,我們當然可(kě)以嘗試使用(yòng)更高(gāo)級的(de)時(shí)間序列分(fēn)析模型,比如用(yòng) ARMA 模型預測收益率并結合 GARCH 模型預測收益率波動率。這(zhè)會取得(de)比單純的(de)使用(yòng) ARMA 模型更加優異的(de)效果。在海外,有人(rén)使用(yòng) ARMA + GARCH 模型對(duì)标普 500 建模并取得(de)了(le)不錯的(de)效果(當然那和(hé)美(měi)股自身的(de)長(cháng)期慢(màn)牛且在股災時(shí)又可(kě)以做(zuò)空有一定關系)。雖然困難重重,但是新模型的(de)提出爲我們對(duì)收益率建模提供了(le)更廣闊的(de)空間和(hé)前所未有的(de)可(kě)能。
正如這(zhè)世上沒有完美(měi)的(de)模型一樣,交易中也(yě)沒有常勝的(de)策略。我們要做(zuò)的(de)是找到适合自己投資标的(de)以及符合自己交易風格的(de)策略。努力提升交易水(shuǐ)平的(de)過程,也(yě)正是我們拓寬知識面、曆練心性、提高(gāo)人(rén)生修爲的(de)過程。
免責聲明(míng):入市有風險,投資需謹慎。在任何情況下(xià),本文的(de)内容、信息及數據或所表述的(de)意見并不構成對(duì)任何人(rén)的(de)投資建議(yì)。在任何情況下(xià),本文作者及所屬機構不對(duì)任何人(rén)因使用(yòng)本文的(de)任何内容所引緻的(de)任何損失負任何責任。除特别說明(míng)外,文中圖表均直接或間接來(lái)自于相應論文,僅爲介紹之用(yòng),版權歸原作者和(hé)期刊所有。