第4章4.2节介绍了均线趋势策略的基本运行模式,并提供了一个简单的回溯测试案例。在这一节中, 作者采用大体上相同的设置进行了均线趋势策略的推进分析,用来模拟实际交易中策略的运转流程,从而得到一个贴合实际环境的策略盈利能力结果,同时判断均线趋势策略两个均线参数的过度拟合程度。
双均线趋势策略的具体定义和第4章4.2节中保持致。在交易决策的时点需要根据已知数据计算短期均线和长期均线两个值。当短期均线高于长期均线时,判断交易决策时刻的趋势为上涨趋势,按照趋势会延续的思想,认为后市会继续上涨,因此看多。而当短期均线低于长期均线时,判断交易决策时刻的趋势为下跌趋势,后市继续下跌,因此看空。具体请参见图4-5和相关叙述。
数据方面也和前面所选取的数据一致,交易资产是以中证指数公司编制的沪深300指数为标的物的沪深300股指期货主力合约,收集得到2010年4月19日至2015年6月30日的日收盘价数据。虽然股指期货可以在最低交易保证金为8%的情况下进行杠杆交易,但是在本节的回溯测试环境下,依然将杠杆率设定为100%进行研究。
图7-1展示了均线趋势策略的推进分析在这段时间的样本下是如何进行的。2010年4月19日到2010年12月30日的日收盘价数据作为计算短期均线和长期均线的备用数据,数据长度为172日,也就是说只要长期均线的长度在173日以下,备用数据都可以支持整个推进分析的计算顺利完成。但是这部分数据的使用在图7-1中没有具体显示,希望读者注意。
在推进分析的第一行操作中, 白色框为优化期,从2010年12月31日的收盘开始,直到2011年12月30日的收盘结束,一共244个交易日。在这一部分样本数据下,可以通过测试不同均线组合的交易情况来寻找最优的均线趋势策略参数,具体的操作其实完全等同于第4章4.2节中所做的优化过程。由于将所有参数的可能组合都测试一遍的做法存在冗余且具有偏向性,因此优化过程在进行网格搜索时,依然使用斐波那契数列来处理均线的搜索范围,也就是使用1日均线、2日均线、3日均线、s日均线..14日均线-共11种均线的长短组合进行搜索,寻找盈利能力最好的组合,从而确定最优的均线趋势策略形式。同样限定短期均线最大搜索到34日均线,长期均线从短期均线的后一根开始一直到144日均线结束。在这一部分中,具有一致性的均线趋势策略实际上也等同于“短期均线从下向上穿过长期均线则做多,短期均线从上向下穿过长期均线则做空”。
第一行的优化操作结束之后,则按照最优结果固定短期和长期均线的长度,并用来计算2011年12月30日收盘时刻下的短期均线值和长期均线值。当短期均线值大于长期均线值时,就对2011年12月30日收盘到2012年1月4日收盘的走势看多,设定仓位为多头;当短期均线值小于等于长期均线值时,就对2011年12月30日收盘到2012年1月4日收盘的走势看空,设定仓位为空头。
在进行完一行的操作之后,将白色框和灰色框都分别向后推进一日, 重复这种样本外检验的过程,直到最后一行为止。前面介绍推进分析时已经说明过,这个时间周期应该以判断交易的间隔为准,在本案例中使用的是8度收盘价数据,因此交易判断的最短问隔也就是一日。
最后一行中,用来优化参数的白色框从2014年6月30日收盘开始到2015年6月29日收盘结束,一共244个交易日,与第一行中白色框的长度一致。虽然在样本期间某些年份的总交易日数可能不是244日,但是按照逐行推进一日的操作流程,所有白色框的长度都应该保持为244。最后一行中被检验的灰色框为2015年6月29日收盘到2015年6月30日收盘,也就是触及样本数据的最后一个数据。
总的来看,在推进分析的过程中,模拟买卖的行为从2011年12月30日收盘时开始到2015年6月30日收盘时结束,一共交易三年半的时间,也就是所有灰色框所覆盖的区间。
需要说明的是,在第4章4.2节均线趋势策略的简单优化中,策略的参数设置在四年半的模拟交易时间内始终保持不变,因此这段时间内的均线趋势策略也等同于“短期均线从下向上穿过长期均线则做多,短期均线从上向下穿过长期均线则做空”。但是这里的模拟交易情况则不尽相同。
在灰色框所代表的模拟交易期中,三年半的时间由相对独立的845个交易日组成,对每一个灰色框中运行的均线趋势策略而言,参数设置都由前面244个交易日下的优化结果决定,因此会在这三年半的期间内产生变化。同时,由于策略逐日进行判断,而我们又希望保证“股指期货交易的杠杆率为100%",因此约定在每个做空日之后都重新调整杠杆率为100%。
由于灰色框中策略设置的不一致,如果再用引号内所述的交易思维来看待整个交易过程,就会产生逻辑上的错误,出现诸如策略参数变化时买卖点不一致、杠杆率不等于100%之类的问题。因此,研究人员需要逐日地采用分类思维来判断多空、处理仓位变换。
当然,还有其他一些处理方法可以保证推进分析下模拟交易的正常运行,本书之所以选用这一套方法, 原因在于其最贴合前面给出的量化交易策略框架。但是使用分类变换的方法来处理仓位时,可能会由于策略参数的切换导致多空在短时间内来回变动,进而带来操作上的反复,这是该方法本身存在的不足之处。
在整个推进分析845行的过程中,均线趋势策略的参数组合一共变动了 44次。实际上,变动次数与用来优化的白色框的长度有内在关系,优化样本的长度越短,则变动越频繁。
将整体综合起来进行计算得知,用来优化的白色框内策略平均的年化收益率为40.37%,而用来检验策略的灰色框的年化收益率则为5.53%,两相比较,均线趋势策略的长短两个参数具有一定的过度拟合现象。
逐行的样本外检验结果则可以用来说明具体时间内参数的过度拟合情况,但是由于逐行下的结果波动很大、不易分辨,因此一般而言可以将总样本划分为若千个时间段并进行平均化研究。这里将灰色框三年半的时间按半年为单位划分为7个部分,每半年中的优化期年化收益率和检验期年化收益率情况如表7-1所示。
当然,这里只是用一个例子来说明具体的做法。由于检验期整体的年化收益率过低,与优化期整体的年化收益率相差也较大,因此再进一步细分从面判断过度拟合的意义已经不大。
图7-2展示了均线趋势策略在推进分析的框架下,模拟交易过程以1为初始值的净值走势情况。在2012年年底、2013 年年底和2014年年底,策略的净值分别变为0.8339、0.7297和1.1329。2012 年策略净值有所下跌,在2013年中期回归初始值附近,随后下跌至最低点。在样本期最后的一年多时间内,净值保持了一个上升态势,直到最后一段时间有一个较为明显的下跌,到2015年6月30 日收盘时的策略净值为1.2074。基于整个交易过程来看,三年半的策略收益率为20.74%,年化收益率为5.53%,可以说缺乏较为明显的盈利能力。同期对比来看,均线趋势策略的简单优化下,2011年12月30日收盘到2015年6月30日收盘时的收益率为95.54%,是这里20.74%的将近5倍。
在整个三年半的均线趋势策略模拟交易当中,净值的最大回撤率为36.71%,回撤的发生从2012年1月5日收盘的1.0283开始,一直到2014年4月9日收盘时的0.6508结束,整个回撤过程一共经历543个交易日,是一个相对而言较长的回撤时间。经过计算,均线趋势策略在整个交易过程中平均的年度最大回撤率为20.25%,回撤水平也是比较大的。