精选技术指标系列(1):ADX

发布时间:2016-09-28  |   来源: 川总写量化

作者:石川

摘要:ADX 是个优秀的趋势强弱量化指标。


1 引言


技术分析(technical analysis)是指研究投资品已发生的量价信息来预测价格走势或者波动,从而决定投资策略。技术分析考虑市场的价格行为,假设“历史会不断重演”、试图借由大量的统计资料来预测行情走势。


在技术分析的发展中诞生了大量的技术指标,它们是通过价格和成交量按不同方法计算得到的,有的用来判断趋势有的用来度量波动;既有先行指标(leading indicators),又有滞后指标(lagging indicators)。打开任何一个主流的金融终端(比如 Wind 或者 Choice),都可以方便的看到常见的技术指标。本着科学的态度,我们对大量的技术指标做了定量的分析,希望验证它们在中国和美国股市的有效性。实证结果表明,这些技术指标良莠不齐因此,我们决定开设精选技术指标这个专栏,以宁缺毋滥为原则,为您去粗取精,甄选并介绍我们认为在中美股市都有较好效果的技术指标。


今天的第一期,我们就说说 Average directional movement index,简称 ADX,中文可译作平均方向性运动指标


2 公式和含义


ADX 由 J. Welles Wilder 在 1978 年提出,它是一个度量趋势强弱的滞后指标。换句话说,一旦当上涨或下跌的趋势形成后,ADX 就会发出有意义的信号表明趋势正在发生。但需要说明的是,ADX 不说明趋势的方向;即它仅仅描绘趋势的强弱,但并不指出该趋势是上涨的还是下跌的。ADX 的取值在 0 到 100 之间;数值越大说明趋势越高。一般的,可以认为,当 ADX 大于 40 的时候,趋势强劲;当 ADX 小于 20 的时候,趋势微弱。


ADX 的计算步骤需要用到 J. Welles Wilder 发明的另外两个指标,即 positive directional indicator(正向方向性指标,缩写为 DI_plus)和 negative directional indicator(负向方向性指标,缩写为 DI_minus)。为了计算 DI_plus 和 DI_minus,我们首先要计算投资品价格的正向和负向移动距离,缩写为 DM_plus 和 DM_minus。此外,在计算过程中,需要用到 true range(真实波动幅度,缩写为 TR),它是衡量波动率的指标。以(交易)日数据为例,根据 J. Welles Wilder 的原著《New concepts in technical trading systems》,ADX 的计算过程如下(在下面求平滑移动数值时,默认的期数 n=14):


1. 计算 UpMove = 今天的最高价 – 昨天的最高价


2. 计算 DownMove = 昨天的最低价 – 今天的最低价


3. 如果 UpMove 大于 max(DownMove, 0),则 DM_plus = UpMove,否则 DM_plus = 0


4. 如果 DownMove 大于 max(UpMove, 0),则 DM_minus = DownMove,否则 DM_minus = 0


5. 计算当日真实波动幅度(记为 TR),它等于以下三者的最大值:今天最高价与今天最低价的差值,今天最高价与昨天收盘价差值的绝对值,今天最低价与昨天收盘价差值的绝对值

 

6. 对于 DM_plus,DM_minus,以及 TR,使用平滑移动算法计算 n 期的总和,分别记为 DM_plus_n,DM_minus_n,以及 TR_n。以 TR_n 为例,它的计算方法为:

    - TR_n 的第一个值是过去 n 日(包括当日)TR 的

    - 从第二个值开始,当日的 TR_n = 前一日的 TR_n × (n - 1) / n + 当日 TR

DM_plus_n 和 DM_minus_n 可以按类似的方法得到。


7. 计算 DI_plus_n = 100×DM_plus_n / TR_n


8. 计算 DI_minus_n = 100×DM_minus_n / TR_n


9. 计算方向运动指标 DX,它等于 100×(DI_plus_n – DI_minus_n) / (DI_plus_n + DI_minus_n) 的绝对值


10. 计算 ADX。它是 DX 的 n 期平滑移动平均。它的计算方法为:

    - ADX 的第一个值是过去 n 日(包括当日)DX 的均值

   - 从第二个值开始,当日的 ADX = (前一日的 ADX×(n – 1) + 当日 DX) / n


下面两图为原著中求解 ADX 时作者用到的工作表。我们也可以利用 Excel,按照上述步骤计算出 ADX。


yz1.png


yz2.png


值得一提的是,由于辅助参数较多,且同时涉及移动平滑求和以及移动平滑均值,ADX 的计算过程比较繁琐。因此,像 wikipedia 这类第三方百科类网站上面的 ADX 计算公式介绍的比较模糊,不容易直接运用。一些金融网站上对 ADX 的计算方法更是与原著有一些差别。出于严谨的态度,本文坚持呈现原著中的计算过程。在 http://stockcharts.com/  网站上的  ADX  专题也有符合原著的计算方法介绍。


计算过程虽然繁琐,但 ADX 背后蕴含的意义十分清晰。DI_plus_n 和 DI_minus_n 分别描述用波动率修正后的近期上涨和下跌趋势。无论是在上涨或者下跌,只要趋势显著,则 DI_plus_n 和 DI_minus_n 之中总会有一个较大,因此 DX = 100 × abs((DI_plus_n – DI_minus_n) / (DI_plus_n + DI_minus_n)) 的取值会随着趋势的强弱从 0 向 100 逼近。由于 ADX 是 DX 的平滑均值,因此 ADX 可以描述近期趋势的强弱。因为在计算 DX 的时候取了绝对值,这导致 ADX 的取值在 0 到 100 之间,因此 ADX 本身仅描述趋势的强弱,并不说明趋势的方向。但仍然可以通过 DI_plus_n 和 DI_minus_n 的大小(或其他方法)来判断趋势的方向。


下图中的蓝色曲线为上证指数在过去 12 年内周频数据的 ADX 数值(在计算平滑均值时取 n = 8)。不难看出 2016 年以来,市场的趋势是非常微弱的,这也解释了为什么这段时间的赚钱效应非常差。当然,我们更从图中可喜的看到该指标对大趋势的精准刻画。在下一节中,我们基于 ADX 构建择时策略。


f2.png


3 基于 ADX 择时


从上图可以清晰的看到:


1. 在大牛和大熊市,ADX 的数值非常高;


2. 在牛熊转换时,ADX 数值有所减弱;


3. 在震荡市中,ADX 数值基本在低位区间波动。


根据这些特点,构建一个基于 ADX 择时的投资策略。由于 ADX 不描绘趋势的方向,因此需要其他辅助指标来说明上涨趋势。本节使用周收益率的 m 周指数平滑均值为趋势方向判断指标。具体的,投则策略如下:


如果 m 期的周收益率指数平滑均值为正, ADX 不小于 35,我们选择买入并持有该投资品;


如果 m 期的周收益率指数平滑均值为负, ADX 小于 35,我们选择卖出该投资品并空仓。


假设不考虑交易成本,取 m = 6,则该策略在上证指数的择时效果如下。


f3.png


图中,蓝色为策略净值。该策略没有错过两波大牛市,且在熊市的时候非常有效的清仓止损;在震荡市中,其抗击打能力也较好,没有随着指数的慢熊而逐渐下滑。在过去 12 年里,这个简单的择时策略可以取得年化收益率 19.2% 的成绩;它的最大回撤为 21.8%,平均回撤为 8.8%。


4 ADX 在美股表现如何


上述策略对美股表现如何呢?我们将上证指数换成标普 500 指数的周频数据。在不改变策略参数的情况下,该策略的净值曲线为:


f4.png


在过去 8 年,该策略在标普 500 指数上却无法取得正收益。其年化收益率为 -2.1%,最大回撤为 25.5%,平均回撤为 17.0%。这是为什么呢?标普 500 周频数据的 ADX 曲线可以告诉我们答案。


f5.png


从上图不难看出,美国股市在金融危机后呈现出了典型的慢牛走势(从 2009 年到 2016 年这近 8 年的时间晃晃悠悠的上涨了近 3 倍)。然而,从周频的角度来说,走势的波动性仍然很大,没有形成有效的周频趋势,这体现在 ADX 持续的在 20 到 40 的范围内震荡。由于没有趋势,因此我们基于周频数据构建的策略就自然失效了。


这启发我们在别的频率上寻找操作的空间。而 ADX 的大小可以帮助我们确定正确的投资频率。下图为标普 500 同期月频数据的 ADX 曲线。ADX 表明标普 500 的月频数据显示出了非常强的趋势。这源于在金融危机过后,美联储宽松的货币政策加上经济恢复,使得美股呈现出慢牛的走势。此外,由于美股多为机构投资者,更看重价值投资且投资行为更加市场化,这些都使得标普 500 的月频数据波动性较低。


f6.png


由此,可将上述策略运用于标普 500 的月频数据。在计算 ADX 和收益率平滑时,取期数为 3,并取 ADX 的阈值为 30,得到的策略净值曲线如下。


f7.png


在过去 12 年里,该策略成功躲过了金融危机时美股的腰斩;在股市恢复的时候又能很好的在趋势建立起来之后即使抓住上涨趋势。相比于使用周频数据的碌碌无为,该策略取得了 5.6% 的年化收益率,其最大回撤为 12.5%、平均回撤为 3.7%。


5 结语


要想挣大钱,就一定不要与趋势为敌。


投资品的价格走势变化莫测,因此与其想找到有效的先行指标来预判走势,还不如充分利用可以描绘趋势强弱的滞后指标。当趋势发生后,ADX 辅助我们在有效控制风险的前提下,充分的利用趋势。此外,对于不同的市场,趋势可能存在于不同频率的数据之中。ADX 可以帮助我们判断股票在哪种频率上存在趋势。这些都使得 ADX 成为一个优秀的技术指标。


最后想强调的是,无论是什么技术指标,若想通过它持续地赚到钱,必须充分理解该指标的原理和它们反映的本质、并坚持使用它。对于任何指标,必须判断它是否适合我们面对的市场。通过严格的历史回测和分析,计算出技术指标的有效性。随着市场自身内在的变化,回测中有效的技术指标也许会在将来的某一天失效。因此我们应用动态和发展的眼光看问题,不断的检验指标是否持续有效。



免责声明:入市有风险,投资需谨慎。在任何情况下,本文的内容、信息及数据或所表述的意见并不构成对任何人的投资建议。在任何情况下,本文作者及所属机构不对任何人因使用本文的任何内容所引致的任何损失负任何责任。除特别说明外,文中图表均直接或间接来自于相应论文,仅为介绍之用,版权归原作者和期刊所有。