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