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

技术指标大比拼——D-SMA指标的有效性回测

  • Python量化交易——`Dual-SMA`技术指标的有效性研究
    • 背景介绍
    • D-SMA技术指标介绍
    • 指标用法建议
    • `qteasy`中内置了D-SMA交易策略
    • 433支股票五年回测结果
      • -27.2% ——该指标平均跑输原始股票-27.2%
      • -30.0%——该指标平均适应度-30.0%,表现不算好

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

背景介绍

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

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

D-SMA技术指标介绍

SMA就是Simple Moving Average简单移动平均线。SMA是用统计分析的方法,将一定时期内的证券价格(指数)加以平均,并把不同时间的平均值连接起来,形成一根SMA,用以观察证券价格变动趋势的一种技术指标。

移动平均线 [1]常用线有5天、10天、30天、60天、120天和240天的指标。其中,5天和10天的短期移动平均线,是短线操作的参照指标,称做日均线指标;30天和60天的是中期均线指标,称做季均线指标;120天、240天的是长期均线指标,称做年均线指标。

指标用法建议

均线指标有很多中不同的使用方法,将一快一慢两根均线结合起来,根据两根均线的交叉情况确定买卖点是一种经典的技术指标。这也是D-SMA中的D的由来,D代表dual意为双均线。

通常的用法是,当快均线上扬穿过慢均线的时候,代表短期股价走强,产生买入信号,而当快均线下降穿越慢均线是,股价短期走弱,产生卖出信号。当然,这只是一种用法,还有其他很多中用法。

qteasy中内置了D-SMA交易策略

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

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

python -m pip install qteasy

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

信号规则:
用长短两个周期分别计算慢快两根均线:
1,当快均线高于慢均线时,设定持仓比例为1
2,当慢均线高于快均线时,设定持仓比例为-1

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

433支股票五年回测结果

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

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

-27.2% ——该指标平均跑输原始股票-27.2%

return 策略收益率 benchmark 基准收益率 mdd 最大回撤 sharp 夏普率 alpha 超额收益 diff
count 288 288 288 288 288 288
mean 79.24% 106.44% 50.47% -4595.71% -2.54% -27.19%
std 148.37% 178.18% 12.59% 78207.19% 10.57% 142.50%
min -69.13% -57.14% 14.91% -1327207.12% -39.29% -1176.22%
25% -12.24% -11.96% 41.86% -16.12% -8.96% -64.05%
50% 32.04% 40.12% 49.88% 11.36% -2.31% -13.56%
75% 108.87% 156.31% 58.22% 43.99% 3.52% 27.40%
max 1193.06% 1420.35% 81.48% 130.16% 36.61% 731.66%

288支股票的平均收益率是79.24%,而策略平均收益为106.44%,平均跑输了原始股票27.2个百分点。

再看策略适应性:

-30.0%——该指标平均适应度-30.0%,表现不算好

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

序号 组别 股票数量 该组平均基准收益 该组平均择时收益 该组平均超额收益
1 力挽狂澜 30 -25.10% 33.66% 58.76%
2 锦上添花 59 114.18% 215.65% 101.47%
3 差强人意 104 241.79% 111.75% -130.04%
4 无力回天 25 -42.45% -19.79% 22.66%
5 屋漏逢雨 32 -22.44% -40.19% -17.75%
6 乐极生悲 38 34.30% -19.80% -54.10%

综上,结论如下:

  • 该指标在大部分情况下会产生正收益,产生正收益的比例有约67%,这与本身就能产生正收益的股票的数量相当,并没有体现出择时的优势。
  • 在收益最高的一组股票上(平均收益240%),择时产生了反作用:择时收益只有110%,说明择时错过了涨势
  • 同时,在收益最差的几组股票上,择时产生正收益的比例也不高,只有30%左右

总体来说,该指标的择时效果不理想,抗跌性能较差,而且择时错过涨势的情况也较多。如果要看其他所有股票的结果,请点击这里

你可能感兴趣的:(量化投资,量化交易,python,python,技术指标,量化交易,选股择时,TA-Lib)