K线形态研究是图表型量化策略构建的一个重要环节,很多策略中都使用到了各种图表形态,常见的经典形态如:M顶,W底,双重底,双重顶等等。今天,主要为大家介绍一种均线形态——均线收敛形态,这也是实战中常用的一种形态。废话少说,接下来直接划重点。
均线收敛图形描述:
首先,在不同市场下均线收敛图形略有不同。这里,我们将均线收敛图形分为4类,即:底部均线收敛形态、上涨中继均线收敛形态、顶部均线收敛形态、下跌中继均线收敛形态。
(1)底部均线收敛形态
在一波大熊市底部,当市场已经完全没有卖压,但是又没有足够的利好来推动市场上行,这时候就会发现,不同周期的均线都开始聚合,最终收敛到一个零界区域。如下图沪深300股指指数2014年05月到2014年07月的走势:
底部均线收敛形态的特点就是,前期经历过一波较长时间的下跌,并且下跌幅度足够大,使得许多均线最终不断收敛集中到一个很狭窄的区域。
(2)上涨中继均线收敛形态
在一波牛市上涨行情中,由于前期涨幅过大,导致回调过程中,短期均线不断向长期均线靠拢,但是又不会向下突破长期均线,最终就会出现所有短期均线都收敛到长期均线附近,然后行情再次爆发。如下图沪深300股指指数2015年01月到2015年03月的走势:
上涨中继均线收敛形态的特点就是,许多均线最终不断收敛集中到一个很狭窄的区域,持续时间很短就重新向上突破,不会像底部均线收敛一样会持续很长时间。
(3)顶部均线收敛形态
上涨行情之后波动率放大,在大周期级别上市场在顶部很难形成顶部均线收敛形态,但是如果将K线周期缩小就能出现顶部均线收敛形态。2015年06月从日线图中看并没有均线收敛的迹象,但是从1小时k线图看,在2015年06月15日附近出现了明显的均线收敛而且持续较长时间,如下图所示:
顶部均线收敛形态形态的特点就是,需要在小级别周期上观察。这样许多均线在长期均线附近不断收敛集中到一个很狭窄的区域,并且价格是经过一轮大幅上涨之后,就可以看作是顶部均线收敛。
(4)下跌中继均线收敛形态
由于市场在经历一波上涨行情之后波动率都是放大的,在大周期级别上,这导致市场在顶部很难形成顶部均线收敛形态,因为下跌总是快速不可预料的。但是市场在第一轮下跌之后,有可能会反弹到长期均线附近使得短期均线向长期均线聚拢,消耗掉所有反弹动能之后继续下跌,最终形成下跌中继均线收敛形态,如下图沪深300股指指数2015年07月到2015年08月的走势:
下跌中继均线收敛形态的特点就是,许多均线反弹到长期均线附近,不断收敛集中到一个很狭窄的区域,持续时间很短就重新向下突破。
均线收敛定量描述:
经过前面的介绍,大致从图形上已经可以识别出均线收敛的各种图形形态了,接下来就是为大家展开如何定量描述让计算机能够识别出这些均线收敛的形态。
Step01、既然是均线收敛,第一步肯定就需要定义许多条均线,具体如下:
MA1 = AverageFC(Close,Length1);
MA2 = AverageFC(Close,Length2);
MA3 = AverageFC(Close,Length3);
MA4 = AverageFC(Close,Length4);
MA5 = AverageFC(Close,Length5);
这样我们就得到了5条均线,其中5条均线的参数分别为:10,20,30,60,100。
Step 02、接下来就需要描述均线收敛和均线发散。我们在TB中定义一个数组Distance来记录每条均线之间距离如下所示:
Distance[1] = abs(MA1[1] - MA2[1]);
Distance[2] = abs(MA2[1] - MA3[1]);
Distance[3] = abs(MA3[1] - MA4[1]);
Distance[4] = abs(MA4[1] - MA5[1]);
记录下数组Distance中的最大距离值MaxArr = NthHigherArray(Distance, 1)。只要让MaxArr小于某一个波动性阈值,就可以判断当前均线开始收敛,即:均线之间的最大距离小于某个波动率值。而波动率值按照公众号前文《量化研究04|不同市场状态与通道宽度之间的关系》所描述的,可以选择用ATR和Std和HL通道宽度表示,作者用MinRange = Min(Min(HL,Std),ATR)来表示三个波动率通道的最小值。
Step 03、只要MaxArr满足如下条件就可以认为均线是收敛的,具体条件如下:
MaxArr <= k*MinRange[1]
其中k = 0.2,k作为参数控制着均线收敛的比率,读者可以根据自己情况调节。
底部均线收敛形态:
用涨跌幅度来衡量底部或者顶部,那么底部均线收敛只需要满足两个条件,即:
(1) Close[1]-Close[m]<-k1*ATR
(2) MaxArr <= k*MinRange[1]
其中k1=5,m=120,根据作者自己的经验,最近120个k线如果下跌达到5个ATR,基本可以确认一波下跌行情。
顶部均线收敛形态:
同理,顶部均线收敛形态可以参照底部均线收敛形态的定义,用如下条件描述:
(1) Close[1]-Close[m]>k1*ATR
(2) MaxArr <= k*MinRange[1]
其中k1=5,m=120。
上涨中继均线收敛形态:
上涨中继这里需要用一种方法来描述,按照常理来说,上涨可以用Close[1]-Close[m]>k1*ATR表示,那么上涨中继就类似于上涨之后出现回调但并没有破位。所以除了要满足Close[1]-Close[m]>k1*ATR之外,还需要满足的条件是相对近期形成的高点回调幅度不超过一定比例,这样才能确保k线不出现破位形态,即:
(1) Close[1]-Highest[High[1],n]<k2*ATR
(2) Highest[High[1],n]- Close[m]>k3*ATR
其中k2要满足K2<k3。
综上所述,上涨中继均线收敛形态需要满足的三个条件如下:
(1) Close[1]-Highest[High[1],n]<k2*ATR
(2) Highest[High[1],n]- Close[m]>k3*ATR
(3) MaxArr <= k*MinRange[1]
下跌中继均线收敛形态:
下跌中继均线收敛形态只需要按照上涨中继均线收敛形态的反面来定义即可。具体需要满足的条件如下:
(1) Close[1]-Lowest[Low[1],n]<k2*ATR
(2) Close[m]-Lowest [Low [1],n]>k3*ATR
(3) MaxArr <= k*MinRange[1]
运用以上方法就可以在TB中标注出不同的均线收敛形态。最终结果如下图所示:
总结:
本篇文章带领大家一步步构建好了均线收敛形态,文章中所提到的方法和参数都是作者自己的经验之谈,读者在自己复现这个过程中可以有很多方法可以继续深入探讨,未来优化的方向主要有一下几点:
(1)均线的选择;
(2)波动性阈值选择;
(3)上涨、下跌、上涨中继和下跌中继的定义都值得进一步探讨。
在文章中,为了让大家能够更清楚认识均线收敛形态,作者分成了四类,但是实际策略构建过程中,可能只需要满足均线收敛即可,不要确定方向,因为可以通过突破的方向来确认交易方向。如果是股票市场,投资者更在意是底部均线收敛形态,叠加主观财务分析可以大幅度提高交易的胜率选出高胜率高盈亏比的股票。
欢迎大家多多关注,一起探讨投资与交易