Python量化交易——股票择时到底能否赚钱?技术指标大比拼——ADX指标

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()
rtnbenchmarkmddsharpalphadiff
count296.000000296.000000296.000000296.000000296.000000296.000000
mean1.0476500.9231220.4732090.274161-0.0001170.124527
std2.2403401.7009600.1332600.4122510.2067612.227343
min-0.700151-0.6466020.184810-1.938087-2.752121-9.676332
25%0.012122-0.1195930.378482-0.023001-0.065888-0.407317
50%0.5502420.2969010.4742800.2788520.0146130.059788
75%1.3570021.3690480.5591620.5661070.0814920.586153
max26.65579314.2035130.8655471.4024570.58245925.113934

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

再看策略适应性:

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

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

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

综上,结论如下:

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

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

posted @ 2023-02-09 00:53  JackiePENG  阅读(28)  评论(0编辑  收藏  举报  来源