快速完成通达信MACD底背离二次金叉公式历史数据回测
MACD的二次金叉买入大家可能比较熟悉,那么在一些个股快速下跌后如果出现技术上的背离,同时也出现二次金叉则个股的反弹技术要求非常的高,对于短线超跌反弹也是一个非常好的买入的技术判断。不过,我们往往看到的都是个案,以点概面得出的结论,还是缺少点说服力,起码我个人是持怀疑态度。网上搜索了下,也没有针对这个交易系统的历史回测。
那么,接下来,我就将对这个交易系统做一下历史回测,来解开我的疑惑。通达信自带的回测系统真心有点简陋,只能放弃,这里我选用果仁网量化策略平台。
先看下通达信MACD底背离二次金叉选股公式:
MACD:=("MACD.DIF"-"MACD.DEA")*2*60;
JCCOUNT:=COUNT(CROSS("MACD.DIF","MACD.DEA"),BARSLAST("MACD.DEA">=0));
二次金叉:=CROSS("MACD.DIF","MACD.DEA") AND "MACD.DEA"<0 AND COUNT(JCCOUNT=2,21)=1;
A101:=BARSLAST(REF(CROSS("MACD.DIF","MACD.DEA"),1));
底背离:=REF(CLOSE,A101+1)>CLOSE AND "MACD.DIF">REF("MACD.DIF",A101+1) AND CROSS("MACD.DIF","MACD.DEA");
XG:二次金叉 AND 底背离;
这里需要把上面的公式通过果仁网的自定义函数改编成对应的自定义指标即可。
JCCOUNT:COUNTbars(CROSSOVER(MACD_DIF,MACD_DEA),BARSLAST(MACD_DEA>=0))
二次金叉:AND(AND(CROSSOVER(MACD_DIF,MACD_DEA), MACD_DEA<0), COUNTBARS(JCCOUNT=2,21)=1)
A101:BARSLAST(REF(CROSSOVER(MACD_DIF,MACD_DEA),1)>0)
底背离:and(and(REF(后复权收盘价,A101+1)>后复权收盘价, MACD_DIF>REF(MACD_DIF,A101+1)),CROSSover(MACD_DIF,MACD_DEA))
XG:and(二次金叉,底背离)
编写好指标后,我们需要先验证下两个平台选出的股票是否相同。
通达信条件选股器:
果仁选股设置:
任选两日(2月24日和2月27日),剔除st股和停牌股票,执行选股后,对比如下图:
通达信和果仁平台选出的股票一致。
然后,从2007年1月4日-2017年2月27日,以MACD底背离二次金叉、排除当日涨跌停股票和当日成交额大于1000万为筛选条件,调仓周期10日,持股数1只 ,开盘价交易,交易费用(双边各千二):按总市值、1日5日量比、5日平均成交量、20日股价涨幅、RSI等单因子作为排名条件进行买卖依据,进行数据回测。 结果如下图:
从回测结果看,总市值、5日平均成交量的回测收益跑赢沪深300,其他因子均跑输,其中1日5 日量比和PE策略还是负收益。如果我们简单地认为,只要个股出现MACD底背离二次金叉就买入持有,那风险是很高的。因此有兴趣的朋友,可以在此单因子策略回测基础上,结合其他的因子做多因子回测,并且还可以调整持仓周期、持股数等参数,进行调优回测。