Python量化交易——ADX技术指标的有效性研究

背景介绍

技术指标是股票交易中最常用的技术手段之一,abc几乎所有的技术文章或股票分析文章都离不开通过MACD等各种指标来判断一支股票的买点和卖点,做量化的也会经常接触TA-Lib中提供的各种技术指标。从股评人的文章里看,似乎这些指标都有指哪打哪的能力,但是,我们既然做量化交易,就必须用数据说话,一个技术指标到底好不好,有没有用,不是靠嘴说的,是靠数据来验证的。因此,我这个系列文章的目标,就是把TA-Lib中的技术指标全都拿出来溜一溜,做一个横向大评比。俗话说,是骡子是马拉出来溜溜,通过大数据分析,我们就应该对指标的有效性有一个大致的了解。

为此,我通过一个系列文章,来综合评测33种TA-Lib中的技术指标的有效性,详情请点击这里

技术指标介绍

ADX指标全称 Average Directional Movement Index 平均定向运动指数,时用于衡量价格变动趋势的整体强度的技术指标。ADX指标通过价格变动范围变化值的平均值来衡量。也有人使用ADX配合DMI+和DMI-指标来共同衡量价格在正负方向上的波动强度。

指标用法建议

ADX衡量价格变动的趋势,因此,我们的交易信号可以根据价格变动的趋势强弱判断:

  • 当ADX高于25时,会出现强劲的趋势,而当低于20时,不会出现任何趋势。
  • 当ADX从高值下降时,趋势可能会结束。可能需要进行额外的研究,以确定是否平仓。
  • 如果ADX在下降,这可能表明市场的方向性正在减弱,目前的趋势正在减弱。随着趋势的变化,可能希望避免交进行趋势性交易。
  • 如果在长时间保持低位后,ADX上升了4或5个单位(例如,从15到20),那么它可能发出了交易当前趋势的信号。
  • 如果ADX在上升,那么市场呈现出增强的趋势。ADX的值与趋势的斜率成比例。ADX线的斜率与价格运动的加速度(变化趋势斜率)成正比。如果趋势是恒定斜率,则ADX值趋于平缓。

qteasy中的ADX内置策略

这里使用qteasy作为回测评测的工具。

qteasy是本人正在开发的一个快速量化交易工具包,使用这个工具包,可以快速灵活地生成各种量化交易策略,生成历史数据并回测策略的表现,有针对性地优化策略的性能;未来还将提供实时自动化交易功能。该项目正在开发中,Github项目地址在这里

qteasy 的安装方法:

python -m pip install qteasy

qteasy中有一个内置策略是基于ADX指标创建的,其创建规则如下:

ADX交易策略:
基于ADX指标判断当前趋势的强度,从而根据趋势强度产生交易信号

  • 当ADX大于25时,判断趋势向上,设定持仓比例为1
  • 当ADX介于20到25之间时,判断为中性趋势,设定持仓比例为0 3, 当ADX小于20时,判断趋势向下,设定持仓比例为-1

上述规则是qteasy内置策略的定义,用户完全可以根据自己的理解重新定义交易规则,或者选用其他策略参数。详细用法参见qteasy文档

433支股票五年回测结果

下面使用qteasy进行技术指标的回测
使用qteasy回测所有433支股票的回测结果,每次回测的时间跨度都是5年,从2015年1月1日开始投资于一个股票,在技术指标发出买入信号时全仓买入,在发出卖出信号后全仓卖出,一直到2019年21月31日为止,最后综合计算每个技术指标的指标强度适应性,通过两个数字来反映技术指标的有效性。关于计算方法的详细介绍,请参见这里

首先放出结果:ADX策略的强度为

12.45% ——该指标能平均产生12.45%的超额收益

result_df.describe()
rtn benchmark mdd sharp alpha diff
count 296.000000 296.000000 296.000000 296.000000 296.000000 296.000000
mean 1.047650 0.923122 0.473209 0.274161 -0.000117 0.124527
std 2.240340 1.700960 0.133260 0.412251 0.206761 2.227343
min -0.700151 -0.646602 0.184810 -1.938087 -2.752121 -9.676332
25% 0.012122 -0.119593 0.378482 -0.023001 -0.065888 -0.407317
50% 0.550242 0.296901 0.474280 0.278852 0.014613 0.059788
75% 1.357002 1.369048 0.559162 0.566107 0.081492 0.586153
max 26.655793 14.203513 0.865547 1.402457 0.582459 25.113934

296支股票的平均收益率是92%,而策略平均收益为104%,平均跑赢了大盘12.5个百分点。

再看策略适应性:

45.5%——该指标平均适应45.5%的股票

在所有有回测结果的296支股票中,六种典型结果的数量分别如下:

序号 组别 股票数量 该组平均基准收益 该组平均择时收益 该组平均超额收益
1 力挽狂澜 49 -26.8% 50.5% 77.3%
2 锦上添花 70 116% 247% 130%
3 差强人意 88 236% 100.7% -135.9%
4 无力回天 24 -38.3% -18.6% 19.6%
5 屋漏逢雨 27 -25.2% -37.6% -12.4
6 乐极生悲 27 37.5% -15.4% -52.9%

综上,结论如下:

  • 该指标在大部分情况下都可以取得正收益,约70%
  • 但是有大量的股票虽然产生了正收益,但结果差强人意:约30%,这是其最大弱点
  • 只有一半不到的股票产生了超额收益:约45%

总体来说,该指标的择时效果一般。如果要看其他所有股票的结果,请点击这里

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐