最近看研报的时候,发现了一个比较有趣的策略:单向波动差值择时策略。于是溯源查找了一下相关的资料,在这个策略的基础上进行了一些修改以实现择时和择股(美其名曰创新?(^?^));不废话,直接进入正题。
背景知识
我们都知道波动率是衡量股票市场的一个重要指标,尽管很多人都讨厌波动的情况,但凡是有市场的地方,就有波动o(╯□╰)o。波动率就像一把双刃剑,向上的波动也就是上行波动率,往往暗示着一轮爬升的行情;向下的波动也就是下行波动率,往往暗示着跌跌不休。而股票市场作为一个宏观市场,上市公司作为一个微观个体往往很难逆势而行,其股价的波动情况也往往和大市场的趋势相似。因此,通过判断市场波动率情况,结合股票价格在近期的波动,可以选择在合适的时候进行买卖操作。
另一方面,如何选取股票?这里使用了一个股票相对RPS值来衡量,即在过去N天中涨幅最高的topK只股票,它们的RPS = (m-k)/m · 100,式中,m是当前指数下的股票总数,k是股票的顺序排名(感谢神父提醒添加)
策略步骤
1.选择一个指数,计算该指数种股票的相对强弱 RPS,并选取出topK只股票作为股票池
2.计算该指数在指定时间内指数值的上行波动率、下行波动率,并计算二者差值;
3.计算股票池中每一只股票在指定时间内的上行波动率、下行波动率,并计算二者差值;
4.分别计算指数和股票的波动率差值的移动均值,天数由 RPS 值确定,RPS 值越大相就取的天数越多(有线性、指数和平方函数可选,基本思想是让股票池中的股票能依据RPS顺位确定有差异的天数);
5.计算波动率均值的相关性,如果为正的进行买入操作(如已有该股票也可选择持仓操作,可选),如果为负则卖出
6.设定止损函数,计算市场信号止损,计算5日、15日和30日均值之差,并计算均线间的相关性,符合规则即发出止损信号清仓。
PS:在这里贴一下参考文献中的策略步骤,欢迎有兴趣的社区小伙伴去试试:
1.计算相应指数相对强弱 RPS;
2.计算相应指数上行波动率、下行波动率,并计算二者差值;
3.计算当天波动率差值的移动均值(天数由 RPS 值确定、RPS 值越大相就取的天数越多;
4.观察前一天的趋势(波动率差值的移动均值),如为正就持有或卖入、否则就空仓或卖出。
回测效果
选取了沪深300、上证、上证50、中小板、创业板分别回测,同时测试了在不止损情况下的沪深300回测效果,得出的策略风险和收益如截图中所示:
1.沪深300
2.上证
3.上证50
4.中小板
5.创业板
6.沪深300(未止损)
结论
1.止损函数虽然限制了策略的收益,但能有效地在本轮牛市结束的时候清仓,熊市阶段虽然没能利用短暂的上升行情,但也获取了些微收益;
2.上证50指数的波动率较小,策略所形成的收益有限;而创业板的收益最多;预想中能够形成较好收益的中小板并没有得到预期效果
3.本策略有待完善啦,希望大家一起讨论进步。^.^