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

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

背景介绍

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

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

MACD技术指标介绍

MACD的中文直译是“移动平均收敛/发散”。它是一种动量振荡器,主要用于交易趋势。尽管它是一个振荡器,但它通常不用于识别过度买入或超卖的情况。它在图表上显示为两条无边界振荡的配置线。两条配置线的交叉给出了类似于两条移动平均线系统的交易信号。

指标用法建议

MACD的信号与零线有关:

  • 当MACD线从零线以下上穿时是看涨。当它从零以上下穿时是看跌。

MACD的信号也与信号线有关:

  • 当MACD线从信号线下方向上穿越信号线时,为看涨。交叉点离0线越远,信号就越强。
  • 当MACD线从信号线上方向下穿越信号线时,为看跌。交叉点离0线越远,信号就越强。

qteasy中内置了MACD交易策略

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

qteasy是本人正在开发的一个快速量化交易工具包,使用这个工具包,可以快速灵活地生成各种量化交易策略,生成历史数据并回测策略的表现,有针对性地优化策略的性能;还能模拟实盘自动化交易。qteasy目前最新版本为v1.0.14,可以通过pip安装,Github项目地址在这里,安装方法如下:

python -m pip install qteasy

qteasy提供了一个基于MACD的内置交易策略,其创建规则如下:

信号规则:
计算MACD值:

  1. 当MACD值大于0时,设置仓位目标为1
  2. 当MACD值小于0时,设置仓位目标为0

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

433支股票五年回测结果

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

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

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

result_df.describe()
return 策略收益率benchmark 基准收益率mdd 最大回撤sharp 夏普率alpha 超额收益diff
count296296296296296296
mean105.21%99.40%43.90%-178.66%1.67%5.82%
std176.29%160.75%10.49%3588.84%14.04%158.06%
min-58.71%-64.66%14.44%-61712.13%-42.42%-608.86%
25%9.38%-14.25%35.98%6.92%-6.34%-47.08%
50%51.87%37.21%42.90%28.46%1.90%11.41%
75%119.99%154.64%51.83%51.92%11.15%65.54%
max1384.88%678.90%69.00%124.94%53.77%1110.25%

296支股票的平均收益率是99.4%,而策略平均收益为105.21%,平均跑赢了原始股票6个百分点。

再看策略适应性:

182.9%——该指标平均适应度182.9%,较广泛地适用于各种股票

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

序号组别股票数量该组平均基准收益该组平均择时收益该组平均超额收益
1力挽狂澜63-28.73%53.25%81.98%
2锦上添花84112.30%228.40%116.10%
3差强人意98218.56%97.40%-121.17%
4无力回天23-36.41%-14.77%21.63%
5屋漏逢雨8-18.61%-34.40%-15.79%
6乐极生悲2068.28%-16.34%-84.62%

综上,结论如下:

  • 该指标在大部分情况下会产生正收益,产生正收益的比例有约57%
  • 该指标表现较好之处在于当股票本身走低时,在大部份情况下(超过90%)都能获得超额收益,这一点很难得。
  • 不足之处在于有大约1/3股票产生差强人意的收益,而且平均跑输原始股票121个百分点,这是导致指标失分的主要原因。

总体来说,该指标的择时效果较好,且有较好的抗跌性能,只是平均超额收益不够理想。如果要看其他所有股票的结果,请点击这里

posted @ 2023-12-25 23:35  JackiePENG  阅读(35)  评论(0编辑  收藏  举报  来源