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

技术指标大比拼——AROON指标的有效性回测

  • Python量化交易——`AROON`技术指标的有效性研究
    • 背景介绍
    • 技术指标介绍
    • 指标用法建议
    • `qteasy`中的AROON内置策略
    • 433支股票五年回测结果
      • -82.09% ——该指标平均产生82.09%的超额负收益
      • -107.5%——该指标平均适应度-107.5%,几乎所有股票都会产生负收益

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

背景介绍

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

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

技术指标介绍

Aroon (阿隆)指标由 Tushar Chande 开发,指示价格是趋势还是在波动阶段内。 它还可以揭示新趋势的开始及其强度,并有助于预测从交易区间到趋势的变化。 阿隆下行Aroon Down指标和阿隆上行Aroon Up指标一起使用,组合起来称为阿隆指标。

指标用法建议

AROON判断价格变动的趋势,揭示目前的股价运行实在趋势阶段还是在波动阶段,这个指标的建议用法如下:

  • 如果 Aroon-Up 穿过 Aroon-Down,那么新的上升趋势可能很快就会开始。 相反,如果 Aroon-Down 穿过 Aroon-Up,那么新的下降趋势可能很快就会开始。
  • 当 Aroon-Up 达到 100 时,新的上升趋势可能已经开始。 如果它持续保持在 70 和 100 之间,并且 Aroon-Down 保持在 0 和 30 之间,那么新的上升趋势正在进行中。
  • 当 Aroon-Down 达到 100 时,新的下降趋势可能已经开始。 如果它持续保持在 70 和 100 之间,并且 Aroon-Up 保持在 0 和 30 之间,那么新的下降趋势正在进行中。 当 Aroon-Up 和 Aroon-Down 在大致相同的水平彼此平行移动(水平,向上或向下倾斜)时,则价格处于区间交易或盘整状态。

qteasy中的AROON内置策略

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

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

qteasy 的安装方法:

python -m pip install qteasy

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

AROON交易策略:
按照规则计算AROON UP / DOWN两条趋势线,并生成持仓比例信号:

  • 当UP在DOWN的上方时,输出弱多头
  • 当UP位于DOWN下方时,输出弱空头
  • 当UP大于70且DOWN小于30时,输出强多头
  • 当UP小于30且DOWN大于70时,输出强空头

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

433支股票五年回测结果

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

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

-82.09% ——该指标平均产生82.09%的超额负收益

result_df.describe()
rtn benchmark mdd sharp alpha diff
count 283 283 283 283 283 283
mean 10.95% 93.03% 26.45% 14.25% -16.54% -82.09%
std 28.30% 171.18% 8.84% 42.93% 34.55% 158.52%
min -50.32% -64.66% 8.05% -95.10% -128.62% -1283.33%
25% -9.84% -12.09% 20.11% -15.83% -38.32% -121.49%
50% 7.04% 30.88% 25.21% 14.09% -9.44% -25.68%
75% 28.38% 137.25% 31.35% 46.57% 8.69% 16.12%
max 137.02% 1420.35% 55.55% 120.42% 142.37% 96.95%

283支股票的平均收益率是93%,而策略平均收益为11%,平均跑输了原始股票82.1个百分点。

再看策略适应性:

-107.5%——该指标平均适应度-107.5%,几乎所有股票都会产生负收益

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

序号 组别 股票数量 该组平均基准收益 该组平均择时收益 该组平均超额收益
1 力挽狂澜 27 -20.61% 13.34% 33.95%
2 锦上添花 18 16.42% 31.01% 14.58%
3 差强人意 117 208.43% 29.78% -178.65%
4 无力回天 50 -37.38% -16.28% 21.09%
5 屋漏逢雨 9 -14.66% -27.35% -12.70%
6 乐极生悲 42 100.09% -12.47% -112.56%

综上,结论如下:

  • 该指标在大部分情况下会产生正收益,产生正收益的比例约57%
  • 有大量的股票产生差强人意的收益,约41%,而且平均跑输原始股票178个百分点
  • 只有1/3的股票产生了超额收益:约33%,这是造成指标评价结果低的又一大原因

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

你可能感兴趣的:(量化投资,python,量化交易,python,投资分析,技术指标,量化交易)