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


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

JoinQuant聚宽
Tell me why?

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

JoinQuant聚宽

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

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

JoinQuant聚宽

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

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

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

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

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

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

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

JoinQuant聚宽

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

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

使用真实价格回测示例:https://www.joinquant.com/post/1629

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

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

精彩评论

量化钢铁侠 2016-06-23 12:11

如果只是拆分,前复权即使用到了未来的复权因子也是没问题的,因为拆分是成比例的,只会对根据个股价格进行决策的逻辑有影响。前复权的关键问题在于分红的处理,很多行情软件上分红这块处理的不对,会造成很大的偏差。如果用前复权,每次分红都必须根据那一时刻的除息因子特别处理。

使用真实价格没有这个问题,但拆分时会造成巨大的缺口,造成时间价格序列失去连续性,所有基于个股时间价格序列的逻辑都会失效。

这两种方法各有优缺点,用哪种要看具体需求。

风之弈 2016-06-23 11:47

这样说来,不去你那看看都不行啦

宏观经济算命师 2016-06-23 16:15

冲击成本其实是策略编写者考虑的事情。回测引擎不应该插足这一块

brianyang81 2016-06-23 13:08

幅度按照真实价格。

量化投资Quant 2016-06-27 05:53

全部评论

持有封基 2016-07-07 00:00

定点复权

香客斯 2016-07-06 23:30

感谢回复,大神

东边的石头 2016-07-06 20:46

我没想到后复权也有这个问题,封基老师用什么样的数据?

量化投资Quant 2016-06-27 05:53

做梦的Leon 2016-06-25 11:34

我刚赞助了这条评论 1 雪球币,也推荐给你。

乐思寞 2016-06-25 00:45

gg1933 2016-06-24 23:44

我只想问问蛋卷真实价格回测比现在差多少?

股市中的数据分析 2016-06-24 23:22

好文!

或多或少 2016-06-24 17:31

我觉得前复权更改为定点后复权,比如从2002年的价格为基数为起点,后复权到今天,就可以得到最近16年的真实数据。

劉米雪 2016-06-24 01:13

不懂看看

1 2 3 4 5 6 7 8 9