来源丨AI科学投资(
ID:
AItraders)
关于回测,很多人是完全不相信的。这也很好理解,回测有太多的细节,甚至策略研发者本人可能都发现不了回测过程中可能存在的问题。但是回测对策略研发者又是如此重要,它不仅可以帮助你更好的评测策略的可行性,评估风险和收益,甚至策略研发者对自己的评估,对自己的信心,对未来的憧憬和规划都是建立在自己的量化系统的回测的基础之上。
在我过去十多年做量化投资系统研发的过程中,也是走过很多很多弯路,踩过很多坑,也放过不少“卫星”。下面我就把我的一些经验跟大家分享一下。
一 别给我看短线趋势择时回测,对不起,我已经不信了
我是2007年开始做量化策略研发的,一开始我主要是做指数增强类的阿尔法策略,后来我对择时策略也有些兴趣,但是一直没有头绪,直到2009年的某一天,有个同行朋友跟我说,用周线的macd就可以很好的对股市择时,我一看,果真!07年的顶,08年的底 用macd看都不错,比宏观经济学家们靠谱多了,自那之后我在短线趋势择时策略上可没有少花时间。后来,我才慢慢发现,这是一条错误的道路,策略写的越复杂,就越容易过拟合, 回测效果再好,样本外执行起来都没有底儿。 因为业内还有很多朋友在做这种策略,泄气的话就不多说了,我只能说别给我看短线趋势择时回测,对不起,我已经不信了。简单的只说一句,这种策略不是基于大数定律的策略,样本量太少。
二 未来数据、未来函数很容易放卫星,但也很容易检测出来
一般情况下,策略中包含了未来数据或未来函数,回测结果经常会给你一个天文级的惊吓。 这个时候未来函数和未来数据的问题,还是比较容易发现的,但有些时候未来数据和未来函数的应用却是完全无意识之间的,而且还不容易察觉,但是很容易检测出来。检测的方法也很简单,以日频策略为例,就是把测试数据中第t日的数据去掉和不去掉两种情况下,t-1日的计算结果是不是相同,如果完全相同,就可以判断没有未来数据和未来函数。
当然,有些时候,未来数据不是藏在时间序列数据里,而是你取的截面数据里,比如股票的名称,带*可能是后来才知道带*的。这些也要小心,有时候你会觉得影响不大,但是实际上却影响不小。为了规避未来数据的影响,我们的股票选股系统中是不用一致预期数据的,怕数据商用了未来数据
三 忽视了策略的流动性问题
有些策略的回测收益率非常高,但是它的成交方式,决定了买不上量,冲击成本也高,所以回测过程中,一定要注意资金容量的问题,特别是一些日内高频类的策略。怎么评估选股系统的资金容量问题,请参考本公众
微信
号文章《人
工智能股票投资系统的组合管理方法及资金容量测算
》,里面介绍了本人原创的量化投资策略资金容量测算方法。
2016年有段时间,我在朋友圈里晒的回测阿尔法策略图,年化阿尔法超过了60%,就是忽略了流动性问题,我本意是做一个固定100只股票的组合,但是中间某段时间因为股灾时流动性的问题,选不出100只股票,后面组合中的股票数量就小于100只,只有二三十只,结果收益率超高,而我当时还不自知,以为策略效果提升了不少。
所以,现在大家在本公众
微信
号菜单AI实验室-智能投资系统子菜单下,看到的回测结果中,有统计每天股票组合中持仓的股票数量。
四 防止过拟合和过度优化
过拟合和过优化是一个老生常谈的问题。
前面第一条,我就提到了过拟合和过度优化的问题,那如何避免过拟合和过优化呢?我
建议
至少有这么五点需要注意。
第一,测试的样本数量要足够多,被选出的股票或者交易的次数也要足够多。这是大数定律的要求。
第二,测试的时间要足够长,时间足够长,暴露的风险才会足够多。
第三,保持策略的一致性,绝不能以时间为轴,划分时段,这在这段时间,这个因子多,那个时段用这个策略。
第四,不要有太多选择性和判断性的条件,即使有也要是很宽泛的条件,不能搞成萝卜招聘似的。
第五,可以借助可视化的分析方法。 如下图,横轴是打分的排名,纵轴是五日后表现的排名。从下图看明显两者呈正相关性,而且在尾部位置效果更加明显。
五 ,忽视可交易性
比如股票不在涨跌停板附近买卖,低价股价差成本高,有些个股流动性差等。
大概就这么多吧,对于回测,我们还是很认真的,一套好的回测系统,对量化策略的研发是至关重要的,错误百出的回测系统,无异于盲人骑瞎马,
我们的股票回测系统,自2015年中开始打造,一直在不断完善,在实盘和wind模拟盘上都有对比,
除了上面的几条肯定规避了之外,还可以肯定的是净值没有算错
在
本公众
微信
号菜单AI实验室-智能投资系统子菜单下,可以查看系统的最新回测结果。
来源:AI科学投资
声明:本文仅代表作者个人观点,版权归作者所有;我们尊重版权,转载不用于任何商业用途,若以上未能体现作者和原始出处,还望见谅;如有侵权,我们会在确认后第一时间删除。多谢!