一、概念
**顶背离** 当股价K线图上的股票走势一峰比一峰高,股价一直在向上涨,而MACD指标图形上的由红柱构成的图形的走势是一峰比一峰低,即当股价的高点比前一次的高点高、而MACD指标的高点比指标的前一次高点低,称为顶背离。顶背离一般是股价在高位即将反转转势的信号,表明股价短期内即将下跌,是卖出股票的信号。 **底背离** 底背离一般出现在股价的低位区。当股价K线图上的股票走势,股价还在下跌,而MACD指标图形上的由绿柱构成的图形的走势是一底比一底高,即当股价的低点比前一次低点底,而指标的低点却比前一次的低点高,称为底背离。底背离一般是预示股价在低位可能反转向上的信号,表明股价短期内可能反弹向上,是短期买入股票的信号。
二、图形
图中可以看到,在顶背离后股价大概率暴跌,底背离后股价大概率上涨,MACD的顶背离在A股市场中是一个准确率极其高的指标,一旦出现即是清仓信号,来不得半点犹豫,底背离的准确率不是很高,或者说出现底背离信号后买入的回报率并没有明显高于其它指标信号,这个问题有待商榷,附后的策略中使用了底背离和顶背离作为买入卖出信号,有兴趣的宽客可以一起研究下,到底什么情况下、如何优化才能提高收益。
三、同花顺指标
有了聚宽后回测相当方便,但是不够直观,所以想好一个策略先在同花顺里实现一边,毕竟图形看起来更直观,然后才是策略回测,同花顺指标分别包含技术指标和选股指标,指标中没有采用常规的参数12、26、9,而是采用了11、26、5,策略中也是同样,参数可以调,或许你能发现最优的参数:
技术指标:
//SHORT=11//LONG=26//M=5//-MACDDIF : EMA(C, SHORT) - EMA(C, LONG), colorwhite; DEA : EMA(DIF, M), coloryellow; MACD: 2*(DIF-DEA), COLORSTICK, nodraw; MACD金叉=CROSS(DIF,DEA); MACD死叉=CROSS(DEA,DIF); DRAWICON(MACD金叉, DEA, 'BUY'); DRAWICON(MACD死叉, DEA, 'SELL'); STICKLINE(MACD>=0,0,MACD,1,0),colorred; STICKLINE(MACD< 0,MACD,0,1,0),colorgreen;//PARTLINE(MACD,MACD>=REF(MACD,1),RGB(255,0,0),MACD<ref(macd,1),rgb(0,255,0)),linethick1,layer1; -="" drawtext_fix(islastbar="" and="" dif="">REF(DIF,1), 1, 0.1, 1, '升'), colorwhite;DRAWTEXT_FIX(ISLASTBAR AND DIF=REF(DIF,1), 1, 0.1, 1, '平'), colorwhite; DRAWTEXT_FIX(ISLASTBAR AND DIF<ref(dif,1), 1,="" 0.1,="" '降'),="" colorwhite;="" -="" drawtext_fix(islastbar="" and="" dea="">REF(DEA,1), 1, 0.3, 1, '升'), coloryellow; DRAWTEXT_FIX(ISLASTBAR AND DEA=REF(DEA,1), 1, 0.3, 1, '平'), coloryellow; DRAWTEXT_FIX(ISLASTBAR AND DEA<ref(dea,1), 1,="" 0.3,="" '降'),="" coloryellow;="" -="" drawtext_fix(islastbar="" and="" macd="">REF(MACD,1), 1, 0.5, 1, '升'), colorred; DRAWTEXT_FIX(ISLASTBAR AND MACD=REF(MACD,1), 1, 0.5, 1, '平'), colorwhite; DRAWTEXT_FIX(ISLASTBAR AND MACD<ref(macd,1), 1,="" 0.5,="" '降'),="" colorgreen;="" -放量提示="" 量比="VOL/REF(VOL,1)," colormagenta,="" nodraw;="" fl02="量比">=02 AND 量比<06; FL06=量比>=06 AND 量比<10; FL10=量比>=10; DRAWGBK(FL02), color990000; DRAWGBK(FL06), colorCC0000; DRAWGBK(FL10), colorFF0000;//-底背离LATEST:=BARSLAST(REF(MACD金叉,1)); 底背离:=REF(C,LATEST 1)>C AND DIF>REF(DIF,LATEST 1) AND MACD金叉; DRAWLINE(LATEST=0,DEA,底背离,DEA,0),colormagenta,LINETHICK3;//-顶背离LATEST:=BARSLAST(REF(MACD死叉,1)); 顶背离:=REF(C,LATEST 1)<c and="" ref(dif,latest 1)="">DIF AND MACD死叉; DRAWLINE(LATEST=0,DEA,顶背离,DEA,0),colorcyan,LINETHICK3;
选股指标:
//-MACDDIF = EMA(C, SHORT) - EMA(C, LONG), colorwhite; DEA = EMA(DIF, M), coloryellow; MACD= 2*(DIF-DEA), COLORSTICK, nodraw; MACD金叉=CROSS(DIF,DEA); MACD死叉=CROSS(DEA,DIF);//-底背离选股LATEST:=BARSLAST(REF(MACD金叉,1)); 底背离:=REF(C,LATEST 1)>C AND DIF>REF(DIF,LATEST 1) AND MACD金叉; 底背离选股:COUNT(底背离,3)>=1;// AND CROSS(MACD,0);//-附加条件过滤停牌=DYNAINFO(8)>0; 过滤ST=NOT(NAMELIKE('ST') OR NAMELIKE('*ST') OR NAMELIKE('S')); 附加条件=过滤停牌;//-选股结果SELECT 附加条件 AND 底背离选股;
四、策略说明:
1、采用了小市值因子,在doSelect函数中有个scale参数,是选择所有上市公司的比例,默认为0.14,此值既不能太大,也不能太小;
2、剔除ST、*ST;
3、分别测了不加止损和加止损两种模式,策略分别附后;
4、持仓股票不超过七只;
5、doSafety函数是判断大盘风险的,也是MACD指标,沪深300指数MACD为正可入场,否则观望,但是在策略中注释掉了;
6、此策略计算量比较大,因此只测了2015年一月至今的数据。
第一个是无止损的: