请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  量化策略 帖子:3353887 新帖:3

Hurst指数与应用(单股票)

随心所致发表于:5 月 10 日 02:04回复(1)

导语:真实中,股票收益率的分布并不像我们所期望的那样是独立正态分布,而是有偏的——收益率时间序列往往存在自相关性。如果能够根据收益率的记忆性分析出它的趋势,那么便可以将此作为一个择时的依据,制定量化交易策略。那么,如何刻画这一统计特性?使用Hurst指数便是其中一种办法。



在标准金融学模型中,我们基本都假定股票的波动是随机独立的。一个随机独立的波动率对应的股票变动如下图所示:
1.png


但是实际上,真实的股票数据并非这样——股票的低迷往往会持续很长的时间,而突然的增长则是远超过平均收益的暴涨。
QQ截图20160802113620.png


直观上的原因在于,看上去随机的收益率并不是那么的随机——它们具有一些自相关性。例如,在大部分股票市场,当前收益率持续较高的时候,之后的收益率也更可能高(牛市往往持续一段时间),当前收益率低时,之后的收益率也低(熊市往往也会持续很长时间)。
听起来有点像动量效应,其实吧,我们得再次声明下,任何CTA类策略,要么就是抓趋势(偏动量)的,要么就是抓震荡(偏均值回归)的。
自相关性的应用其实起源于其他场景。Hurst指数就可以刻画这一统计性质。Hurst指数的来源就是Hurst本人在研究河流流量之后发现,干旱的时间愈久,就更可能出现持续的干旱;大洪水之后,也更可能出现大洪水。
我们可以像hurst本人刻画河流流量一样,将hurst指数用于刻画股票的记忆性,通过识别股票价格的波动趋势,买入更有可能持续上涨的股票,实现收益。

1.1 Hurst指数的计算



8.png
(上图是计算hurst指数的流程图,可配合以下文字一起咀嚼)
简单来讲,hurst指数的计算,是计算一个序列(R/S)t(R/S)t

(R/S)t

(R/S)t

(R/S)_t

(接下来会具体介绍(R/S)t(R/S)t(R/S)t(R/S)t

(R/S)_t

的计算方法)对t的变化斜率。


4.png


如上图所示,如果我们有一系列(t,(R/S)t(R/S)t(R/S)t(R/S)t

(R/S)_t

)的数据,那么回归得到的红线的斜率就是hurst指数的值。
而这里的t就是选择的样本区间的长度(例如选择了八十天的数据,那么t=80),接下来的关键就是计算(R/S)t(R/S)t(R/S)t(R/S)t

(R/S)_t

值。


取沪深300日回报率(daily return)n天内的数据作为时间序列,记回报率X=X1,X2X3,,XnX=X1,X2X3,,XnX=X1,X2X3,…,XnX=X1,X2X3,,Xn

X=X_1,X_2 X_3,…,X_n

为一串时间序列。


第一步:计算这个序列的均值:

mt=1ti=1tXimt=1tti=1Xi

mt=1t∑i=1tXi


m<em>t=1t</em>i=1tXi

mt=\frac{1}{t} \sum{i=1}^t X_i


第二步:计算离差序列(deviation):

Yt=Xt?mtYt=Xt?mt

Yt=Xt?mt


Yt=Xt?mt

Y_t=X_t-m_t


第三步:将离差序列求和,计算出离差序列和的极差(widest difference):


Zn=ni=1YiZn=ni=1Yi

Zn=∑i=1nYi

Z<em>n=</em>i=1nY<em>i

Zn=\sum{i=1}^n Yi


Rt=max(Z1,Z2,,Zn)?min(Z1,Z2,,Zn)Rt=max(Z1,Z2,,Zn)?min(Z1,Z2,,Zn)Rt=max?(Z1,Z2,…,Zn)?min?(Z1,Z2,…,Zn)Rt=max(Z1,Z2,,Zn)?min(Z1,Z2,,Zn)

R_t=\max?{(Z_1,Z_2,…,Z_n)} -\min?{(Z_1,Z_2,…,Z_n)}


Y=Y=Y=离差序列Y=

Y = 离差序列


Z=Z=Z=离差序列和Z=

Z = 离差序列和


R=R=R=离差序列和的极差R=

R = 离差序列和的极差




第四步:计算序列X的标准差(standard deviation):


St=1t?1i=1t(Xi?X????)2?????????????????St=1t?1ti=1(Xi??X)2

St=1t?1∑i=1t(Xi?X?)2


St=1t?1</em>i=1t(Xi??X)2

S_t=\sqrt{\frac{1}{t-1}\sum
{i=1}^t (X_i-\overline{X})^2}




第五步:计算R/S值:


(R/S)t=Rt/St(R/S)t=Rt/St

(R/S)t=Rt/St

(R/S)t=Rt/St

(R/S)_t=R_t/S_t


R=3R=3

R=第3步中计算的离差序列和的极差

R=3

R = 第3步中计算的离差序列和的极差


S=4S=4

S=第4步中计算的标准差

S=4

S = 第4步中计算的标准差




根据上面1-5步的计算,我们得到了一个序列X=X1,X2,X3,,XnX=X1,X2,X3,,Xn

X=X1,X2,X3,…,Xn

X=X1,X2,X3,,Xn

X=X_1,X_2 ,X_3,…,X_n

对应的R/S,因为这个序列样本有n个,因此R/S可以写作(R/S)n(R/S)n

(R/S)n

(R/S)n

(R/S)_n


如前所述,我们需要计算一系列的(t,(R/S)t(R/S)t

(R/S)t

(R/S)t

(R/S)_t

),因此我们需要重复上面的步骤——


第六步:重复1-5步计算R/S,但分别取不一样的t值(t=2,3,…,n),这相当于我们对序列:


X1,X2X1,X2

X1,X2

X1,X2

X_1,X_2


X1,X2,X3X1,X2,X3

X1,X2,X3

X1,X2,X3

X_1,X_2 ,X_3


X1,X2,X3,X4X1,X2,X3,X4

X1,X2,X3,X4

X1,X2,X3,X4

X_1,X_2 ,X_3 ,X_4



X1,X2,X3,X4,,XnX1,X2,X3,X4,,Xn

X1,X2,X3,X4,…,Xn

X1,X2,X3,X4,,Xn

X_1,X_2 ,X_3 ,X_4,…,X_n


分别计算按照上述分段方法得到的(R/S)t(R/S)t

(R/S)t

(R/S)t

(R/S)_t

值。


第七步:计算Hurst指数
a. 将每种分段方法的片段大小(即所取得时间区间t)和R/S对10取对数
b. 这样我们就有了对数序列。将lg(R/S)tlg(R/S)t

lg(R/S)t

lg(R/S)t

lg(R/S)_t

作为被解释变量Y,lgt作为解释变量X,线性回归估计斜率H,H就是Hurst指数。


对Hurst指数的直观解释是:当所选取的样本越多,样本的变化也就越丰富,因此离差序列和的极差(以下简称极差)也会越大。如果序列有相关性时,序列长期向着一个方向变化,计算所得的极差就会比完全随机的情形更大,因此当极差随样本增加增长得越快时,序列的记忆性就越强。而hurst就是描述样本规模和R/S的上述关系,当hurst指数大的时候,其记忆性自然也就越强。
(我们这个是level0的理解深度,未来的量化课堂文章会讲原理)

1.2 Hurst指数的性质

Hurst指数体现了时间序列的自相关性,尤其反映了序列中隐藏的长期趋势,统计学上称为长期记忆(long-term memory)。Hurst指数居于0-1之间。以0.5为间隔,时间序列在不同的区间会表现不同的特性:

H=0.5:标准布朗运动。此时,序列为随机游走,表现马尔可夫链特性。
H≠0.5:分形布朗运动,这种运动不是完全随机的,具有长期相关性——

当H>0.5时,表现为持续性(即持续之前序列的性质);
当H<0.5时,表现为反持续性。


1.3 Hurst指数的应用

思路:根据收益率变化趋势与hurst指数,判断应该买入还是卖出——
如果过去收益率增加并且序列有正相关性,买入股票;
如果过去收益率降低并且序列有正相关性,卖出股票;
如果过去收益率降低并且序列有负相关性,买入股票;
如果过去收益率增加并且序列有负相关性,卖出股票;

具体而言,在我们的策略中,采用hurst指数来衡量序列相关性。当hurst>0.6时,认为序列有趋势性,当hurst<0.4时,认为hurst有负相关性;

而对于判断过去收益增加还是减少,一种办法是直接用当前收盘价和前N日收盘价比较,如果当日收盘价高,则认为收益增加。但是在我们的设定中,这种办法的缺陷是这实际上只能判断收益增加,但是不能判断收益率的变化,因此在本文的策略中,采用的是N日收益率对时间回归。如果回归所得的斜率为正,则认为在过去N日中收益率是增长的趋势(注意:是收益率向上,而不是股票走势向上哦!);如果回归所得的斜率为负,则认为在过去N日中收益率是减少的趋势。
注:在应用中,我们取N=59(收盘价数据取N=60天的数据)。


根据回测结果,可以看出hurst的择时在应对大跌时效果较好,但因为要保证收益率是持续增长,往往在大牛市中会提前空仓,但一整个牛熊市下来,收益率远高于大盘。

5.png


6.png



全部回复

0/140

量化课程

    移动端课程