- 十年十倍:散户也可以学习的量化投资方法
- 金伟民
- 1485字
- 2024-11-03 23:34:53
第二节 择时指标的选取
笔者还是通过一个例子来说明量化择时。选用最有代表性的沪深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%。
另外一个改造是,用短周期均值替代了当天的收盘价,这样做的好处是比较稳定,不会因为收盘价的剧烈波动导致来回买进卖出。