摘要 本篇承接(一)、(二)的研究继续开展。前两篇讨论了指标选取及平滑的方法。本篇跟进探讨,关键点包括:1、平滑后指标形态的量化;2、交易信号的生成规则;3、基于简单的多空交易,实现完整回测,得到其收益曲线;4、回测结果分析框架。
基于相对强弱指标的轮动策略构建流程此处不详细介绍,详情可联系作者。
对于平滑后rs指标序列形态的量化,这里采用零阶导数value和一阶导数slope共同表征。其中slope的计算方式为:设置窗宽period下,计算末尾与起始值的差,再除以间隔。这种计算方式显然存在误差,但鉴于序列本身已经过一次平滑处理,可以认为相近点之间的变化不是十分剧烈,因此该斜率计算方式具备一定近似性(后续研究可以考虑对序列做滚动回归,取其斜率项回归系数作为slope)。
value与slope确定好后,参照(一)中的分析,认为value大于一个阈值value_thre时(默认value_thre=0),A标的(前项)强势,建议做多A;否则做多B。从生成交易信号的角度,value>value_thre,signal=1;否则signals=-1。
下图给出了中证1000指数与沪深300指数数据下,构建的两类rs指标(上一为rs1,上二为rs2,rs具体含义见研究(一)),以及对rs2的RMA平滑后曲线(下三),和对应信号(下四)。
由上图,最后的signals基本上响应了强势标的区间(表现为rs1的上涨或rs2为正)。基于此信号下的多空轮动交易理应能获取阿尔法。
交易策略为简单多空交易。假设投资组合里只有两类待轮动标的资产,当signals=1时,满仓持有A(前项);signal=-1时,满仓持有B;signals起始默认为0,此时50%各自持有A和B。
至此,一次轮动策略构建完成,过程中涉及到的关键参数包括:width、q、period、value_thre/slope_thre、delay、rate(参数详情可联系作者)
还是以2005年至今中证1000与沪深300指数日数据为例,探讨此策略在大小盘轮动中的效果。
各类参数暂时设置如下:
得到该参数设置下的累积收益曲线。同时给出单边持有中证1000、单边持有沪深300、初始等额持有中证1000及沪深300(基准),以及0费率下的轮动收益曲线。
由上图,轮动策略下的收益曲线能够表现出一定阿尔法,鉴于各参数值只是信手设置,可以预见经过参数优化后的策略回测效果会更好。
本部分结合上述回测结果,基于对R PerformanceAnalytics package的学习,大致归纳几类重要的回测分析指标。这里仅展示结果,不做深入分析。
计算不同投资策略下的收益率结果(含年化收益率、年化波动率、年化夏普比率)。
## reA reB re_5050 re_rota re_rota_addc
## Annualized Return 0.2191 0.1354 0.1832 0.2559 0.2492
## Annualized Std Dev 0.3374 0.2904 0.3075 0.3281 0.3280
## Annualized Sharpe (Rf=0%) 0.6492 0.4664 0.5959 0.7799 0.7596
可见自2005年11月交易起始至今,轮动策略的年化收益为24.92%,高于单独持有沪深300(13.54%) 或中证1000(21.91%)。
轮动策略下收益率的分布直方图如下:
波动率指标含:平均绝对标准差、月度标准差、年化标准差。
## reA reB re_5050 re_rota re_rota_addc
## Mean Absolute deviation 0.0152 0.0126 0.0137 0.0145 0.0145
## Monthly Std Dev 0.0213 0.0183 0.0194 0.0207 0.0207
## Annualized Std Dev 0.3374 0.2904 0.3075 0.3281 0.3280
同时下图给出了各类策略下风险-收益图。
下行风险指标含:下行概率(1-胜算率)、下行风险(DownsideRisk)、下行风险比率(DownsideRiskRatio),以及上行风险与下行风险的比值(VolatilitySkewness)。
## reA reB re_5050 re_rota
## Downside Frequency (MAR = 0%) 0.4178999 0.457012 0.4309373 0.4235377
## re_rota_addc
## Downside Frequency (MAR = 0%) 0.4235377
## reA reB re_5050 re_rota re_rota_addc
## Semi Deviation 0.0164 0.0135 0.0148 0.0158 0.0158
## Gain Deviation 0.0119 0.0120 0.0114 0.0121 0.0121
## Loss Deviation 0.0179 0.0144 0.0160 0.0173 0.0173
## Downside Deviation (MAR=210%) 0.0202 0.0177 0.0187 0.0196 0.0196
## Downside Deviation (Rf=0%) 0.0160 0.0132 0.0144 0.0153 0.0154
## Downside Deviation (0%) 0.0160 0.0132 0.0144 0.0153 0.0154
## Maximum Drawdown 0.7251 0.7230 0.7193 0.7692 0.7706
## Historical VaR (95%) -0.0383 -0.0302 -0.0336 -0.0361 -0.0361
## Historical ES (95%) -0.0568 -0.0466 -0.0507 -0.0550 -0.0551
## Modified VaR (95%) -0.0373 -0.0304 -0.0334 -0.0358 -0.0358
## Modified ES (95%) -0.0601 -0.0515 -0.0555 -0.0595 -0.0596
## reA reB re_5050 re_rota re_rota_addc
## Monthly downside risk 0.0160 0.0132 0.0144 0.0153 0.0154
## Annualised downside risk 0.2537 0.2096 0.2284 0.2436 0.2437
## Downside potential 0.0071 0.0060 0.0065 0.0068 0.0068
## Omega 1.1421 1.1119 1.1325 1.1653 1.1620
## Sortino ratio 0.0635 0.0509 0.0596 0.0730 0.0716
## Upside potential 0.0082 0.0067 0.0073 0.0079 0.0079
## Upside potential ratio 0.5666 0.6304 0.5874 0.5811 0.5797
## Omega-sharpe ratio 0.1421 0.1119 0.1325 0.1653 0.1620
## reA reB
## VolatilitySkewness (MAR = 0%, stat= volatility) 0.7720847 0.9217011
## re_5050 re_rota
## VolatilitySkewness (MAR = 0%, stat= volatility) 0.8151614 0.8194101
## re_rota_addc
## VolatilitySkewness (MAR = 0%, stat= volatility) 0.8165649
轮动策略收益回撤曲线如下。相应指标有最大回撤(maxDrawdown)、回撤波动率(DrawdownDeviation)。
## reA reB re_5050 re_rota re_rota_addc
## Worst Drawdown 0.7251256 0.7230382 0.719314 0.769237 0.7706216
## reA reB re_5050 re_rota
## Drawdown Deviation 0.02234339 0.01515822 0.01837673 0.01921266
## re_rota_addc
## Drawdown Deviation 0.01923113
各类策略的回撤表现较差,原因是测试期内两类指数经历过两次股灾,又此轮动策略目标为轮动持有获取阿尔法,缺乏必要止损机制。
该类指标包括,VaR及CVaR。
## reA reB re_5050 re_rota re_rota_addc
## VaR -0.03831547 -0.03018035 -0.03359794 -0.03605231 -0.03605231
## reA reB re_5050 re_rota re_rota_addc
## ES -0.05679081 -0.04663066 -0.05071532 -0.05502716 -0.05506727
下图给出了不同p值下的VaR值(基于三种分布推断方法)。
上述均是绝对指标,下面给出几个常用的相对性指标。这里将沪深300设为基准。相应的指标包括:CAPM阿尔法、主动收益、信息比率。
## [1] 0.0004235568
## [1] 0.1137585
## [1] 0.7579422
可见轮动相比单独持有沪深300可以带来年化10.01%的主动收益。
此外,Capture Ratio可以衡量轮动策略捕捉基准波动方向的力度,如下图所示。
最后,给出轮动策略之于基准的relative performance(累积收益率之比)。
后面会在此策略框架下跟进参数优化的工作,包括策略过程中涉及到的width、q、period,以及value_thre、slope_thre。