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

45 篇文章 5 订阅
30 篇文章 43 订阅

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

背景介绍

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

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

PPO技术指标介绍

PPO(Percentage Price Oscillator)指标它通过计算均线百分比变化,来衡量价格的动力和趋势!

PPO指标基于两个移动平均线之间的百分比差异来计算。具体而言,PPO指标计算以下两个移动平均线之间的百分比差异:

快速移动平均线(Fast Moving Average):通常使用较短的时间周期来计算移动平均线,例如12日移动平均线。
慢速移动平均线(Slow Moving Average):通常使用较长的时间周期来计算移动平均线,例如26日移动平均线。

PPO指标的计算公式如下:

PPO = ((Fast MA - Slow MA) / Slow MA) * 100

PPO指标数值越高,表示价格上涨的动能越强;

PPO指标数值越低,表示价格下跌的动能越强;

指标用法建议

PPO指标的交叉点和趋势线可以用于判断价格趋势的强弱和转折点。

  • 买入信号
    • 当PPO线从下向上突破PPO的信号线时,为买入信号;
  • 卖出信号
    • 当PPO线从上向下突破PPO的信号线时,为卖出信号。

qteasy中内置了PPO交易策略

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

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

qteasy 的安装方法:

python -m pip install qteasy

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

交易策略:
按照规则计算PPO,根据PPO的值生成持仓目标信号:
1, 当PPO > 0时,设置持仓目标为1
2, 当PPO < 0时,设置持仓目标为-1
3, 其余情况设置持仓目标为0

qteasy中的PPO策略有多个可调参数,用户可以通过调整这些参数实现不同的择时效果,从而调整择时的性能
策略参数:
fp: int, 快速均线计算周期
sp: int, 慢速均线计算周期
m: int, 移动均线类型(取值范围0~8)

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

433支股票五年回测结果

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

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

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

result_df.describe()
return 策略收益率benchmark 基准收益率mdd 最大回撤sharp 夏普率alpha 超额收益diff
count288288288288288288
mean79.24%106.44%50.47%-4595.71%-2.54%-27.19%
std148.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%
max1193.06%1420.35%81.48%130.16%36.61%731.66%

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

再看策略适应性:

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

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

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

综上,结论如下:

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

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

  • 36
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值