你知道吗,你的回测结果可能都是错的

发布于: 修改于: 雪球转发:46回复:82喜欢:192
如果没有意外,你之前一直在使用前复权价格做回测,使用前复权价格回测存在未来函数(未卜先知,提前使用未来的数据),因此你的回测结果可能都是错的。


Tell me why?

使用前复权价格,不论回测开始时间、结束时间是何时,使用的数据都是基于今天(回测当天)或某个时间的复权因子进行前复权获得的价格,因此使用前复权价格进行回测,回测结果肯定有问题。示意图如下:



不论历史时刻1或历史时刻2,拿到的数据都是基于未来某一天的前复权价格,使用这样的数据存在未来函数(未来函数是回测最大的敌人之一)

真实价格回测是如何解决这个问题的?
使用真实价格回测模式,回测到历史时刻1,使用历史时刻1的真实价格撮合成交;如果需要复权,会使用历史时刻1的复权因子,对“历史时刻1”之前的价格进行前复权,这样有效避免了未来函数,因为回测全程都不可能使用未来的数据。



你可能没有看懂,下面举个例子:


如现有一只股票,股价一直没有波动,只进行了拆分
前复权回测模式
站在“历史时刻3”看历史数据:因为使用今天的复权因子,“历史时刻3”之前的股价均为2;
站在“历史时刻2”看历史数据:因为使用今天的复权因子,“历史时刻3”的股价是2;
站在“历史时刻1”看历史数据,因为使用今天的复权因子,“历史时刻2”和“历史时刻3”的股价是2;
真实价格回测模式
站在“历史时刻3”看历史数据:因为使用历史时刻3的复权因子,“历史时刻3”之前的股价均为8
站在“历史时刻2”看历史数据:因为使用历史时刻2的复权因子,“历史时刻3”的股价是4;
站在“历史时刻1”看历史数据:因为使用历史时刻1的复权因子,“历史时刻2”和“历史时刻3”的股价是2;
我们不难看出,前复权回测模式,回测过程中使用的价格是不正确的。

下面再举一个真实的例子,比较一下前复权回测模式和真实价格回测模式的区别


2007-01-30,波导股份的真实股价(绿色曲线)是低于格力电器(黑色曲线)的;但使用前复权价格,波导股份的价格会高于格力电器。
采用最简单的交易思路,购买股价低的股票并持有,前复权模式会买入格力电器,真实价格回测模式会买入波导股份。
下面我们使用JoinQuant进行回测,根据2007-01-30当天格力电器与波导股份的收盘价,买入低价位股票并持有到现在。回测结果如下所示:

前复权回测模式的回测结果:
初始资金:100,000
策略收益:776.54%
沪深300收益:21.98%
最大回撤:64.98%


真实价格回测模式的回测结果:
初始资金:100,000
策略收益:78.35%
沪深300收益:21.98%
最大回撤:79.78%


前复权回测模式因为存在未来函数,结果是不准确的,使用前复权回测模式可能会让你获得非常高的收益,但实盘时,效果却非常一般;

如果你想要获得正确的回测结果,请使用真实价格回测。



快告诉我,你用的什么平台做回测

作为最专业的量化交易平台,JoinQuant全球首推真实价格回测,从此,再也不用担心回测结果不准确了。

使用真实价格回测示例:网页链接

@量化钢铁侠 @量化小王子 @价值趋势技术派 @东边的小石头 @linnany @william_hsu @lomycat @ETF拯救世界 @湿湿碎 @草帽路飞 @唐僧爱理发 @数据驱动力 @Gyro @qs_cn @右侧投机者 @爱抽烟的猫 @今日话题 

本文由JoinQuant推出,版权归JoinQuant所有,商业转载请联系我们获得授权,非商业转载请注明出处。

全部讨论

草帽路飞2016-06-23 13:18

我之前也一直怀疑前复权有问题,能不能用真实价格回测一下我的“A股不死鸟,十年500倍”,
网页链接
我觉得前复权的结果可能高估了回测结论,很可能结果是十年100倍

ezailwoo2016-06-23 13:17

后复权是否会有类似问题?是否会有未来函数?@JoinQuant聚宽 @量化钢铁侠 @进化论一平

老明2016-06-23 13:15

涨跌幅,抓住了核心。高,实在是高

ezailwoo2016-06-23 13:10

如果全部采用后复权价格来回测呢?会有什么问题么

量化钢铁侠2016-06-23 13:10

明白了,数据源有单独的涨跌幅数据?

进化论一平2016-06-23 13:10

价值趋势技术派2016-06-23 13:08

涨跌幅才是证券时间序列分析的基础。任何建立在价格上的模型,都会遇到前复权或后复权的各种坑爹的问题。历史数据在每次回测时如果要重新计算一遍,那么10年的全市场数据回测就是噩梦般的运算了。
直接使用涨跌幅,一了百了。最后剩下的就是分红的影响了,也很容易在系统里解决的。

brianyang812016-06-23 13:08

幅度按照真实价格。

价值趋势技术派2016-06-23 13:05

哈哈

量化钢铁侠2016-06-23 13:05

幅度也得根据价格计算啊。