量化百科

大盘趋势预测:R/S方法计算Hurst指数

由polll创建,最终由polll 被浏览 36 用户

原文传送门:RQ:Hurst指数计算

计算的源代码请到RQ查询

  1. 文末策略代码传送门:Hurst+ETF轮动

赫斯特指数(Hurst Exponent)是用来衡量时间序列是否有长期记忆的一个指标,这一指标最初由英国水利学家Harold Edwin Hurst提出,也以他的名字命名。哈罗德最初提出这个指数是为了研究尼罗河发洪水和干旱的时间序列规律从而决定最优的大坝尺寸,然而金融界人士却发现这个指数对于金融市场也有作用,被广泛用于资本市场的混沌分形分析。

洪水过程是时间系列曲线,具有正的长时间相关效应。即干旱愈久,就可能出现持续的干旱;大洪水年过后仍然会有较大洪水。这种特性可以用赫斯特指数来表示。英国科学家赫斯特对尼罗河进行长期的水文观测,采用的数据分析方法,称为变标度极差分析法(Rescaledrangeanalysis简称R/S分析法)。通过分析认为各年的流量存在着一定的时间相关性,如尼罗河流量的时间系列曲线的赫斯特指数指数是0.72,相应的分维分形数为1.28,具有正的长时间相关效应。

人们作过试验,用计算机产生一个随机时间系列曲线,利用均匀随机数给出随机系列,计算它们的赫斯特指数指数,其值接近0.5。如果把尼罗河流量时间系列打乱,再进行R/S分析,得到的赫斯特指数指数值也接近0.5。说明没有时间相关性的随机时间系列曲线的赫斯特指数指数为0.5,R/S分析是分析时间系列曲线相关性的有效方法。也是得出时间系列曲线的分维D(D=2-H)的有效方法。赫斯特指数还对多种自然现象的时间系列曲线进行了R/S分析,如河湖水位H=0.72,降雨量H=0.70,泥浆沉积H=0.69,温度H=0.68,气压H=0.63,日斑指数H=0.75,树木年轮H=0.80。这些现象平均H=0.726。大多数河流的H为0.65到0.80之间,都具有正效应,表示未来的趋势与过去一致,H愈接近1,持续性愈强。当H<0.5时,序列具有负效应,表示未来的趋势与过去相反,H愈接近0,反持续性愈强。水文序列的所谓正效应,即干旱愈久,就可能出现持续的干旱;大洪水年过后仍然会有较大洪水。洪涝干旱与地区的气象、土壤、地质等自然地理条件有关,但赫斯特指数指数显示出洪涝干旱具有变化的长程效应。

Hurst指数体现了时间序列的自相关性,尤其反映了序列中隐藏的长期趋势,统计学上称为长期记忆(long-term memory)。这一指数与趋势的关系如下:

  • Hurst指数>0.5,记忆强,未来的增量和过去的增量相关,继续保持现有趋势的可能性强。
  • Hurst 指数< 0.5 ,很有可能是记忆的转弱,趋势结束和反转的开始(mean reversion)。
  • Hurst指数数值越靠近0.5说明随机性越强,无法判定走向(Random Walk)。
  • Hurst 指数的计算方法常见有多种,一种是标准差取对数的方法,论坛里有@流命仙 的帖子讨论这种算法,传送门:hurst指数预测大盘的趋势另外一种就是本贴实现的R/S分析法(rascaled range analysis)。

本帖运用R/S分析法对沪深三百指数进行分析,计算其每天的Hurst指数。由于主要目的是计算Hurst指数以供趋势判断,因此并没有加入交易策略,也没有做下单。

计算方法如下:

  1. 将时间序列分割成不同的片段。比如取沪深三百日回报率(daily return)一百天内的数据作为时间序列,将其按照以下六种规格分割:a. 单个片段大小是整个序列,分成1组b. 单个片段大小是序列的1/2,分成2组c. 单个片段大小是序列的1/4,分成4组d. 单个片段大小是序列的1/8,分成8组e. 单个片段大小是序列的1/16,分成16组f. 单个片段大小是序列的1/32,分成32组

  2. 计算每个片段的均值(mean),按照上一步的六种分法总共要计算1+2+4+8+16+32=63个mean值:

    {w:100}

    注意针对每个片段计算。

  3. 针对每个片段计算离差序列(deviation)(63个离差序列):


    Y = 每个片段计算出的新的离差序列X = 片段中的元素m = 第2步中计算的每个片段的均值

  4. 计算每个离差序列的最大差距(widest difference),因此我们会计算出63个最大差距R:

    {w:100}R = 每个片段的最大差距Y = 离差序列

  5. 计算每个片段的标准差(standard deviation):

    {w:100}

  6. 计算每个片段的R/S值:

    R = 第4步中计算的每个片段的最大距离σ = 每个片段的标准差

  7. 对每种分割方法,将其各个片段的R/S值求平均得到Average R/S(ARS),例如在分4个片段的时候:“Range 1/4”, part 1, R/S: 83.04“Range 1/4”, part 2, R/S: 63.51“Range 1/4”, part 3, R/S: 84.16“Range 1/4”, part 4, R/S: 88.09ARS for “Range 1/4” = (83.04 + 63.51 + 84.16 + 88.09) ÷ 4 = 79.70

  8. 计算Hurst指数:a. 将每种分段方法的片段大小(size)和ARS对10取对数b. 这样我们就有了6组对数序列。将lgARS作为被解释变量Y,lgSize作为解释变量X,线性回归估计斜率H,H就是Hurst指数。

计算得到的Hurst指数如下图所示:

{w:100}

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1882' height='864'></svg>)


参考文献:Rescaled Range Analysis: A Method for Detecting Persistence, Randomness, or Mean Reversion in Financial Markets示例Excel文档:Spreadsheets for rescaled range analysis of daily return data for the S&P 500 Index from 3 January 1950 through 15 November 2012

我们现在已经知道,Hurst指数是用来是否价格具有“长期记忆性”,通常Hurst > 0.5的时候我们觉得市场有长期记忆性,数值越高代表momentum越明显,这个可以用来判断是否可是使用趋势类的策略。

所以通常hurst指数用来辅助判断市场大行情,来帮助决定使用趋势策略还是反转策略。

下面是一个将Hurst指数和ETF轮动策略结合起来的例子:利用轮动大法每周调仓,每天根据当周的累计收益率和hurst进行止损,止损的条件是当周的收益率大于-5%或者hurst指数小于0.4(既趋势进入反转阶段),收益图如下:

{w:100}

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='2016' height='740'></svg>)

标签

时间序列分析