第二节 择时指标的选取

笔者还是通过一个例子来说明量化择时。选用最有代表性的沪深300,从最早的2005年1月4日到2016年9月30日,为了避免过度拟合,笔者把所有的数据分成两个部分,从2005年1月4日到2015年12月31日的数据,叫训练区;2016年1月4日到2016年9月30日的数据,叫观察区。优化参数用到的数据,只用训练区的;而看效果的数据,只看观察区的表现。这样基本避免了过度拟合问题。其中佣金按照单向0.025%、印花税以0.1%计算,未考虑冲击成本。笔者这里选用了四个技术指标来说明:MA、MACD、DMA、BIAS。

MA指标

MA即均线,如MA5,就是5天的收盘价的算术平均值。择时非常简单,当天收盘大于均线,买入或者持有;小于均线,卖出或者空仓。

均线系统是最简单但也非常有效的一个技术指标。那么,到底用多少天均线好呢?笔者用训练区(2005.1.4—2015.12.31)的数据进行回测,发现最佳值是56天,对应的年化收益率是26.34%,比沪深300指数的12.89%高了不少。再看观察区,指数是-12.80%,而MA策略是-7.37%,虽然也是亏损,但依然战胜了指数。再核对每年的指数收益率和MA策略收益率,就会清楚地看到一个现象:在2006年、2007年、2009年、2014年等大牛市,策略收益率小于指数本身;而在2005年、2008年、2010年、2011年、2013年、2016年等熊市年,MA择时策略的亏损远远小于指数本身。所以,如果我们要用择时策略,至少需要横跨一个牛熊周期才能起效果,特别是在牛市,别指望择时会提高收益率。

MACD指标

MACD主要通过EMA、DIF、DEA三者之间的关系进行研判。要说清楚MACD,先要从EMA说起。EMA(Exponential Moving Average),指数平均数指标,也叫EXPMA指标,也是一种趋向类指标,是以指数式递减加权的移动平均。其公式为:

EMA(当天)=α×当天收盘价+(1-α)×EMA(昨天)

其中α为平滑指数,一般取作2/(N+1)。

在计算MACD指标时,EMA计算中的N的经典值,短周期是12天,长周期是26天,但这些参数不一定是最佳。当公式不断递归,直至EMA1出现,EMA1是没有定义的。EMA1的取值有几种不同的方法,通常情况下取EMA1为第一天的收盘价。

计算出短周期EMA和长周期EMA后,就可以算出差离值:

DIF=短周期EMA-长周期EMA

有了DIF,就可以计算出它的离差平均值DEA:

今日DEA=前一日DEA×(N-1)/(N+1)+今日DIF×2/(N+1)

不管是EMA还是DEA,都是一个递推公式,那么最原始的第一个值等于多少呢?一般来说,EMA的第一个值我们取为当天的收盘价,而DEA的第一个值我们令它为0。

买入条件:

(1)当天DIF>上一天DIF;

(2)当天DIF>当天DEA;

(3)上一天DIF<上一天DEA,当天DIF>0。

卖出条件:

(1)当天DIF<上一天DIF;

(2)当天DIF<当天DEA;

(3)上一天DIF>上一天DEA,当天DIF<0。

注意:以上条件之间均是“与”的关系,如果均不符合以上条件,那么等于上一个交易日的状态,第一天状态为买入。

这样在EMA中,我们有三个参数可以优化:

(1)短EMA的天数;

(2)长EMA的天数;

(3)DEA对应的天数。

在经典的教科书里,这三个值分别为6、12、9。但如果我们采用这三个值,经过回测,沪深300策略收益率是-17.94%,还不如指数的-12.80%,显然需要优化。

经过遍历计算,找到最佳值分别对应的三个值是20、82、9,策略训练区对应的年化收益率是22.62%,观察区2016年是0.28%,分别战胜了对应的指数12.89%和-12.80%。应该说策略还是有效的。

DMA指标

DMA,平行线差指标,是利用两条不同期间的平均线,来判断当前买卖能量的大小和未来价格趋势。其公式为:

DMA=收盘价短均值-收盘价长均值

AMA=DAM的均值

同样,这里有三个参数:

(1)DMA短均值天数;

(2)DMA长均值天数;

(3)DMA均值天数。

经典参数是5、10、10。

买入条件:

(1)当天DMA>上一天DMA;

(2)当天DMA>当天AMA;

(3)昨天DMA<昨天AMA。

卖出条件:

(1)当天DMA<上一天DMA;

(2)当天DMA<当天AMA;

(3)昨天DMA>昨天AMA。

注意:以上条件均为“与”条件,其他状态维持上一天的状态,起始状态买入。

按照这样的条件进行遍历计算,得到三个值是20、405、11天,结果训练区年化收益率是26.58%,观察区2016年收益率是-6.49%,分别战胜了指数12.89%和-12.80%。而经典参数(5、10、10)对应的训练区年化收益率6.89%,观察区2016年收益率-14.63%,均跑输对应的指数12.89%和-12.80%。

BIAS指标

BIAS,乖离率,是在MA基础上发展起来的。在MA里面,只有线上或者线下之分,而BIAS则对线上多少、线下多少做了量化。经典的BIAS的定义为:

BIAS=当天收盘价/N天收盘价均值-1,BIAS最大值是100%,最小值是-100%。

笔者对BIAS指标做了量化改造,首先根据水满则溢、月圆则亏的中国传统哲学思想,把BIAS分了四段,分别对应四句话,增加了三个参数:A1、A2、A3,其中A1>A2>A3。四个区域分别是:

(1)当BIAS在A1和A2之间时,强者恒强,买入并持有;

(2)当BIAS大于A1时,过强转弱,卖出并空仓;

(3)当BIAS在A2和A3之间时,弱者恒弱,卖出并空仓;

(4)当BIAS小于A3时,过弱转强,买入并持有。

同样,有经典参数,A1=10%,A2=0,A3=-10%。

另外一个改造是,用短周期均值替代了当天的收盘价,这样做的好处是比较稳定,不会因为收盘价的剧烈波动导致来回买进卖出。