统计历史上单位区间内回撤率和涨幅极值的分布情况,把止盈(止损)的值设定为略大于涨幅(回撤率)集中分布的区域,从而可以防止由于股票自身正常的波动而退出市场.
盈利来源:
模型可以根据价格的历史走势判断和调整回撤率和涨幅的分布,减少由人为确定止盈止损值的主观性.策略的盈利来源主要有:
1. 人为确定止盈止损值可能造成的的主观失误;
2. 采用固定的止盈止损值,对新产生的数据没有及时作出反应的损失.
一般计算一个选定的价格下降周期内回撤率的方法是,对周期内的每一个时点,选取从周期开始时间起,到这个时点为止的最高价格作为历史最高值,则:
某个时点的回撤率=(历史最高值-这个时点的价格)/历史最高值.
价格上升周期也是类似考虑,有:
某个时点的回撤率=(这个时点的价格-历史最低值)/历史最低值.
但事实上,这样选取回撤率有一个弊端,以价格下跌的情况为例:由于统计历史回撤率的目的是,看价格下跌时,历史上一般是跌了百分之多少价格就可以反弹.如果下图为一个选定的周期,显然A点为整个周期的最高点,此时B点的回撤率为正值.但事实上,B点是在经过了较长时间的上涨后达到的一个新高,为了达到上面所说的目的,我们希望B的回撤率应该是0,也就是B是一个以B为起始点的一个区间内的"历史最高值".此外,由于C到B价格处于上升的区间,所以在统计价格下跌的回撤率的时候并不希望统计到这个区间内的点.
为了避免上述问题,我们考虑在一个选定的大周期内定义一些"规则"来筛选出一些价格上涨或下跌的小区间("单位区间"),在所有价格下跌的单位区间中统计下跌的回撤率;在所有价格上涨的单位区间中统计上涨的回撤率.定义单位区间的时候同时要注意到,像上图的D到E是一个上升区间的一个小的下降的波动,我们并不希望这样的小波动被记录成一个下降区间,而是更希望D到B可以被记录为一个上升区间,所以下面的两种方法就是从不同的角度来过滤微小波动,从而定义这样的单位区间.
定义了单位区间后,便可以把之前定义在周期上的回撤率的计算方法限制在每个区间上来进行.故两种定义单位区间的方法也就对应了两种回撤率的计算方法.
阈值法是用一个固定的阈值u%(百分比)来过滤震荡小于区间内最高值u%的波动.例如,如果已经确定i为一个止损点,且属于下降区间[ki],j为i之后的某一天,满足:i到j价格一直上升,j到j+1价格下降,那么考虑i到j价格差值的绝对值a=|P(i)-P(j)|,若a P(i+1)而且P(i) > P(i-1);或者P(i) < P(i+1)而且P(i) < P(i-1),那么重新定义P(i) =(P(i+1)+P(i-1))/2,从而重新定义一条新的价格曲线.这条曲线比原始的曲线平滑一些,因为它过滤掉了一天以内价格的波动.同时,也可以对这条新曲线做类似的处理得到一条更平滑的曲线,它过滤掉了两天以内的价格波动.
然后,在这条处理过的曲线上,用平凡的方法找上升和下降单位区间:即若iP(j+1),则[ij]为一个上升区间.下降单位区间类似可定义.
如图3,蓝色的线是原始数据,绿色的线是平滑处理过一次的数据,则[AB]和[CD]为下降单位区间;[BC]和[DE]为上升单位区间.
需要注意的是,我们只是用处理后的数据找单位区间,一旦单位区间确定后,其上回撤率的计算还是按照原始数据进行.
两种方法的目的都是过滤微小波动,使得价格在上升(下降)趋势下的一个下降(上升)的小波动不至于被识别为一个下降(上升)区间而打断一个完整的上升(下降)区间.
从图2和图3可以看出,这两种方法的区别是明显的,图2会把2012/05/21至2012/05/24处理成两个区间,但图3会把2012/05/21至2012/05/24识别一个下降区间的一部分.大致上说,当两天之间的波动幅度较大,但是价格整体呈某种确定的走势(上升或下降),平滑法更容易把它识别为一个大区间,相比之下,只要波动超过一个界限,阈值法就会把它当做两个区间来处理.
从计算回撤率的角度考虑,由于平滑法得到的单位区间可能比阈值法更长,故统计的回撤率的值也可能整体上比阈值法偏大.
同时,由于阈值法计算回撤率时会过滤掉u%之内的波动,所以统计的回撤率不会分布在[0u%]的范围内(偶尔可能结果显示会有1个落在[0u%]的范围内,是由于大周期的开始或结束的地方,单位区间的选取受周期之外未知信息的限制,会得到一个回撤率较小的单位区间).
在确定好单位区间后,将周期分别限制在每个区间上求区间内各点的回撤率,统计每个区间内回撤率的极大值,做成直方图.
图6和图7是在周期2012/05/21至2015/05/21上分别用阈值法和平滑法划分下降单位区间,统计的所有下降单位区间的回撤率极值的分布情况.可以发现在这个区间上,阈值法(u=0.02)和平滑法(Time=2)得到的统计结果有很大的相似性,回撤率极值都呈现出先上升后下降的趋势,同时集中分布在1.5-3.0的范围内.
应用回撤率极值的止损策略就是统计历史上回撤率极值的分布情况,如图6和图7,回撤率极值集中分布在1.5-3.0的范围内,说明历史上,大多数情况下价格在下降不超过3%之后会反弹,故把止损的点设为3%或略大于3%,从而可以防止由于股票自身正常的波动而退出市场.止盈策略也是类似考虑.下面以沪深300为例,测试这种止损止盈策略是否有效.
下图分别是用阈值法(u=0.02)时,统计的下降单位区间和上升单位区间回撤率极值分布情况.
采用一种很简单的交易方式:周期开始时买入100支沪深300的股票,当其价格上涨u或下跌v的时候平仓,在卖出后的第5个交易日再次入市,重复之前的操作,直到周期结束,不考虑手续费和杠杆.
按照之前的想法,我们希望看到的是当止盈和止损的值设得略大于对应回撤率极值集中分布的区域时,策略可以取得较好的收益.图中几条线的含义分别是:
绿线v=0.03:止损时,平滑法(Time=2)得到的回撤率集中分布区域的右端点;
蓝线v=0.06:止损时,阈值法(u=0.02)得到的回撤率集中分布区域的右端点;
红线u=0.04:止盈时,平滑法(Time=2)得到的回撤率集中分布区域的右端点;
粉线u=0.045:止盈时,阈值法(u=0.02)得到的回撤率集中分布区域的右端点.
可以看出,图中红线和绿线框出来的右上角有一个灰度较大的区域,而粉线和蓝线则更准确的框出了右上角颜色最深的部分.