金融中加入人工智能技術(shù)現(xiàn)在已經(jīng)是很常見的事情了,但是人工智能總有和人比起來不好的地方。
今天金程教育小編就來和大家說一說量化投資和機(jī)器學(xué)習(xí)大家繞不過的那些事兒。
1. 波動率預(yù)測
1.1. 歷史波動率概述
從2016年中旬左右開始,全球的波動率就一直處于歷史的低位。中國波指更是非常穩(wěn)定的一路下探,從的63.79一直到了的7.95。
.png)
如此長時間的低波動率確實在中國市場上不常見。下面我們統(tǒng)計了一下中證500和滬深300指數(shù)分年度的波動率分布情況,可以看到2017年近的波動率確實是處在歷史位的。》》點擊學(xué)習(xí)量化交易策略
.png)
.png)
1.2. 文獻(xiàn)綜述
波動率預(yù)測的方式有下列幾種;
(1)移動平均
使用過去一段時間窗口的已實現(xiàn)波動率作為下一期波動率的預(yù)測值。
(2)時間序列
使用ARCH/GARCH等等模型,通過時間序列的自回歸,來預(yù)測下一期波動率。傳統(tǒng)上認(rèn)為,波動率具有聚集效應(yīng),也即是,高波動率伴隨著高波動率,低波動率伴隨著低波動率。由于時間序列模型是回看近的過去一段時間的波動率,所以時間序列分析是波動率聚集假設(shè)的。
(3)隱含波動率
在中國市場,可以基于50ETF期權(quán)依賴期權(quán)定價模型來反推隱含波動率。
1.3. 策略簡介
1.3.1. 策略摘要
本篇報告我們提出用監(jiān)督式學(xué)習(xí)對日內(nèi)波動率進(jìn)行預(yù)測。結(jié)果表明,使用監(jiān)督式學(xué)習(xí)的預(yù)測效果超過簡單移動平均的效果。我們對日內(nèi)波動率的預(yù)測為定義為每天240根分鐘線收盤價的標(biāo)準(zhǔn)差。
1.3.2. 策略細(xì)節(jié)
策略標(biāo)的:中證500指數(shù)
預(yù)測生成:該策略的預(yù)測目標(biāo)就是下一交易日的日內(nèi)波動率。預(yù)測日內(nèi)波動率有很大的意義,除了期權(quán)交易之外,大多數(shù)的中高頻CTA策略的收益也與日內(nèi)波動率緊密相關(guān)。
考慮到波動率的聚集效應(yīng),我們使用過去一段時間的時間序列的日內(nèi)波動率作為輸入變量。輸入的變量例如,過去30天的日內(nèi)波動率的移動平均值,過去n日的日內(nèi)波動率值,過去n日日內(nèi)波動率的小值等等。
1.3.3. 策略表現(xiàn)
策略預(yù)測的R方為37.13%,顯示出策略監(jiān)督式學(xué)習(xí)對未來一日日內(nèi)波動率的預(yù)測是有一定效果的。下圖是日內(nèi)波動率的預(yù)測值和實際值之間的比較
.png)
.png)

可以看到,除了在股災(zāi)中之外,歷史上其他時候預(yù)測都比較準(zhǔn)確。
1.3.4. 與簡單移動平均的比較
簡單移動平均MA20,也即是過去20天的移動平均的日內(nèi)波動率作為下期的預(yù)測值,R方是34.42%,比機(jī)器學(xué)習(xí)的預(yù)測要少3%左右。

2. 如何判斷策略失效
在以上幾篇報告中間,我們具體討論了一些策略,以及在研究一些機(jī)器學(xué)習(xí)策略時候常見的錯誤,但是我們迄今沒有討論如何判斷機(jī)器學(xué)習(xí)策略的失效。在本文中我們并不將具體給出策略失效的解決方案,但是將就這個問題給出一些討論。
2.1. 機(jī)器學(xué)習(xí)對數(shù)據(jù)的依賴更強(qiáng)
機(jī)器學(xué)習(xí)相對于傳統(tǒng)策略對數(shù)據(jù)依賴性更強(qiáng),所以對未來市場結(jié)構(gòu)的變化會更為敏感。
量化的本質(zhì)是依賴于“已有之事后必再有,已行之事后必再行,日光之下并無新事”,而對于未來市場結(jié)構(gòu)的變化通常是無能為力的。例如如果一個Alpha策略的樣本是從2009年到2016年,在不做市值中性的情況下,那么回測下來大概率小市值因子給的權(quán)重會很大。換句話說,因為歷史樣本中幾乎都是小市值相對于大市值占優(yōu)(除了2014年末這段短暫的時間內(nèi)大市值占優(yōu)),所以模型對于2017年的大市值占優(yōu)是沒有準(zhǔn)備的,這直接導(dǎo)致了大部分Alpha策略在2017年大規(guī)?;爻?。
盡管所有量化策略都對未來市場結(jié)構(gòu)的變化無能為力,傳統(tǒng)的量化策略在面對未來市場結(jié)構(gòu)的變化還是會有一些天生的優(yōu)勢。因為傳統(tǒng)的量化策略往往是從假設(shè)出發(fā)的,這些假設(shè)可能是從自己經(jīng)驗而來,也可能是從學(xué)術(shù)文獻(xiàn)上來的,數(shù)據(jù)只是用來驗證這些假設(shè)是否正確的。所以當(dāng)傳統(tǒng)量化策略回撤的時候,策略研究人員大致能明白是自己的哪一條假設(shè)出錯了。
而在機(jī)器學(xué)習(xí)的世界中,事情卻不是這個樣子的,因為機(jī)器學(xué)習(xí)完全是數(shù)據(jù)驅(qū)動的(data driven)。事先我們對問題并沒有任何假設(shè),我們不知道自變量和因變量之間有沒有關(guān)系,如果有,我們也并不知道它們之間的關(guān)系是否是線性的,我們也并不一定能假設(shè)自變量與因變量的統(tǒng)計分布。因此,總而言之,我們所得出的所有結(jié)論都是機(jī)器學(xué)習(xí)基于數(shù)據(jù)給我們的。在機(jī)器學(xué)習(xí)的世界中,人的作用被縮小,而數(shù)據(jù)的作用被放大。所以,一旦新的數(shù)據(jù)與原來的數(shù)據(jù)發(fā)生系統(tǒng)性的不同,整個模型以及模型給出的結(jié)論都會出現(xiàn)系統(tǒng)性的偏差。因此,機(jī)器學(xué)習(xí)模型相對于傳統(tǒng)的量化模型更容易受到市場變化的不利影響。
2.2. 判斷機(jī)器學(xué)習(xí)策略失效的一些想法
下面提出一類方法。簡而言之就是,基于過去一段足夠長的時間n,計算預(yù)測值和實際值的IC,并判斷這個IC是否顯著。具體舉例,如果模型的預(yù)測目標(biāo)是T日到T+1日的收益,檢測天數(shù)是過去100天,那么我們顯然就可以得到這100個T日到T+1日的收益的預(yù)測值和實際值,然后根據(jù)計算出IC,y代表實際值, 代表預(yù)測值,兩者都是長度為100的向量。
,我們通過
來計算出t值,并且與進(jìn)行比較,看是否顯著。這里,n=100。如果t值并不顯著,那么策略可能已經(jīng)失效。
對n的選擇非常關(guān)鍵,對于一天幾百筆的高頻策略,可能一天就足夠達(dá)到統(tǒng)計顯著需要的量了。但對于低頻策略,可能需要天數(shù)數(shù)目非常大。
以波動率為例子,我們可以得到如下滾動的IC值,這里選取n=20
可以看到,在2016年7月到8月之間,有一次明顯的失效,t值小于-3,達(dá)到統(tǒng)計顯著水平。
3. 雜談
3.1. 計算落地相關(guān):我們需要什么級別的計算力?
Apache Spark和Hadoop是兩個主流的大數(shù)據(jù)框架。大多數(shù)的科技公司都會或多或少用到這些框架,如今一些對沖基金也在考慮使用ApacheSpark或者Hadoop。
上圖是Hadoop里的服務(wù)器角色。Hadoop主要的任務(wù)部署分為3個部分,分別是:Client機(jī)器,主節(jié)點和從節(jié)點。主節(jié)點主要負(fù)責(zé)Hadoop兩個關(guān)鍵功能模塊HDFS、Map Reduce的監(jiān)督(HDFS是Hadoop Distributed File System的簡稱,Map Reduce是一種算法)。當(dāng)Job Tracker使用Map Reduce進(jìn)行監(jiān)控和調(diào)度數(shù)據(jù)的并行處理時,名稱節(jié)點則負(fù)責(zé)HDFS監(jiān)視和調(diào)度。從節(jié)點負(fù)責(zé)了機(jī)器運行的絕大部分,擔(dān)當(dāng)所有數(shù)據(jù)儲存和指令計算的苦差。每個從節(jié)點既扮演者數(shù)據(jù)節(jié)點的角色又沖當(dāng)與他們主節(jié)點通信的守護(hù)進(jìn)程。守護(hù)進(jìn)程隸屬于Job Tracker,數(shù)據(jù)節(jié)點歸屬于名稱節(jié)點。
Client機(jī)器集合了Hadoop上所有的集群設(shè)置,但既不包括主節(jié)點也不包括從節(jié)點。取而代之的是客戶端機(jī)器的作用是把數(shù)據(jù)加載到集群中,遞交給Map Reduce數(shù)據(jù)處理工作的描述,并在工作結(jié)束后取回或者查看結(jié)果。在小的集群中可能會面對單物理設(shè)備處理多任務(wù),比如同時Job Tracker和名稱節(jié)點。作為大集群的中間件,一般情況下都是用獨立的服務(wù)器去處理單個任務(wù)。




