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

技术指标大比拼——S-BBAND指标的有效性回测

  • Python量化交易——`Soft-BBAND`技术指标的有效性研究
    • 背景介绍
    • BBAND技术指标介绍
    • 指标用法建议
    • `qteasy`中内置了Soft BBand交易策略
    • 433支股票五年回测结果
      • -59.08% ——该指标平均跑输原始股票-59.08%
      • -182.81%——该指标平均适应度-182.81%,表现较差

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

背景介绍

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

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

BBAND技术指标介绍

布林线指标,即BOLL指标,其英文全称是“Bollinger Bands”,布林线(BOLL)由约翰·布林先生创造,其利用统计原理,求出股价的标准差及其信赖区间,从而确定股价的波动范围及未来走势,利用波带显示股价的安全高低价位,因而也被称为布林带。其上下限范围不固定,随股价的滚动而变化。布林指标和麦克指标MIKE一样同属路径指标,股价波动在上限和下限的区间之内,这条带状区的宽窄,随着股价波动幅度的大小而变化,股价涨跌幅度加大时,带状区变宽,涨跌幅度狭小盘整时,带状区则变窄。

Soft-BBand是在普通的BBand交易策略基础上弱化买入卖出信号形成的交易策略。

指标用法建议

  1. 当布林线的上、中、下轨线同时向上运行时,表明股价强势特征非常明显,股价短期内将继续上涨,投资者应坚决持股待涨或逢低买入。
  2. 当布林线的上、中、下轨线同时向下运行时,表明股价的弱势特征非常明显,股价短期内将继续下跌,投资者应坚决持币观望或逢高卖出。
  3. 当布林线的上轨线向下运行,而中轨线和下轨线却还在向上运行时,表明股价处于整理态势之中。如果股价是处于长期上升趋势时,则表明股价是上涨途中的强势整理,投资者可以持股观望或逢低短线买入;如果股价是处于长期下跌趋势时,则表明股价是下跌途中的弱势整理,投资者应以持股观望或逢高减仓为主。
  4. 布林线的上轨线向上运行,而中轨线和下轨线同时向下运行,表明股价将经历一轮下跌,下跌的幅度将由开口的大小决定,反之,布林线的下轨线向下运行,而中轨线和上轨线同时向上运行,表明股价将经历一轮上涨,上涨的幅度将由开口的大小决定。这里不做展开讨论。
  5. 当布林线的上、中、下轨线几乎同时处于水平方向横向运行时,则要看股价目前的走势处于什么样的情况下来判断。

qteasy中内置了Soft BBand交易策略

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

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

python -m pip install qteasy

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

策略参数:
p: int, 均线周期,用于计算布林带线的均线周期
u: float,上轨偏移量,单位为标准差的倍数,如2表示上偏移2倍标准差
d: float,下轨偏移量,单位为标准差的倍数,如2表示下偏移2倍标准差
m: int,移动均线类型,取值范围0~8,表示9种不同的均线类型:
信号规则:
计算BBAND,检查价格是否超过BBAND的上轨或下轨:
1,当价格大于上轨后,每天产生10%的比例买入交易信号
2,当价格低于下轨后,每天产生33%的比例卖出交易信号

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

433支股票五年回测结果

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

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

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

return 策略收益率 benchmark 基准收益率 mdd 最大回撤 sharp 夏普率 alpha 超额收益 diff
count 288 288 288 288 288 288
mean 47.36% 106.44% 43.91% -9307.69% 1.11% -59.08%
std 83.52% 178.18% 11.34% 157622.01% 19.56% 123.49%
min -59.40% -57.14% 14.91% -2674952.85% -42.07% -1051.41%
25% -10.28% -11.96% 35.13% -39.54% -11.90% -89.88%
50% 18.84% 40.12% 43.48% -9.78% 0.08% -21.99%
75% 81.39% 156.31% 52.41% 25.05% 13.74% 11.61%
max 377.17% 1420.35% 79.60% 147.85% 119.56% 266.49%

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

再看策略适应性:

-182.81%——该指标平均适应度-182.81%,表现较差

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

序号 组别 股票数量 该组平均基准收益 该组平均择时收益 该组平均超额收益
1 力挽狂澜 24 -24.33% 20.47% 44.80%
2 锦上添花 28 64.63% 100.72% 36.09%
3 差强人意 133 224.63% 92.35% -132.28%
4 无力回天 43 -37.36% -17.85% 19.51%
5 屋漏逢雨 20 -17.10% -30.42% -13.32%
6 乐极生悲 40 37.52% -14.48% -52.00%

综上,结论如下:

  • 在所有的股票中,仅有64%能够产生正收益,低于闭眼买股票的67%正收益率,说明择时效果较差
  • 在收益率最高的一组股票中,平均跑输132个百分点,说明抓上涨波段的能力较差
  • 在所有负收益的股票中,仅有约1/4能够产生正收益,说明抗跌能力不强

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

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