楼主: Dear_Li
2130 0

[程序化交易] 量化策略之样本外数据测试的必要性 [推广有奖]

  • 0关注
  • 14粉丝

等待验证会员

博士生

64%

还不是VIP/贵宾

-

威望
0
论坛币
686 个
通用积分
7.6246
学术水平
12 点
热心指数
16 点
信用等级
2 点
经验
4905 点
帖子
186
精华
0
在线时间
246 小时
注册时间
2018-7-21
最后登录
2019-1-16

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
NO:01


人的一生,从小到大、从大到老,其实是一个不断犯错,又纠正,又犯错的过程,几乎谁也无法例外。或许曾经犯下许多,在现在看来很低级的错误;亦或许错过许多上车的机会,比如:房地产、互联网、数字货币等等......先别管是不是泡沫,就问你泡沫来的时候,你在不在场?


以至于,常听人说:

「我当初就不该……」

「假如……我会……」


我曾经抱着这个问题,很长时间都不能释怀,后来才渐渐明白。其实,这并不是一件值得恐惧的事情,因为当时每个选择,无论是对还是错,都将让我们远离预先设定的结果,走向一片未知;而我们的反思,只是在历史数据之外,开启了上帝视角。


NO:02

我见过许许多多交易系统,回测的时候成功率可以达到50%以上。在这么高胜率的前提下,还可以有1:1以上的盈亏比。可是,无一例外,这些系统一旦付诸实盘,基本上都是亏损的。导致亏损的原因有很多,其中就有,在回测的时候,不经意间,从右往左看,开启了上帝视角。


然而,交易就是这样一件纠结的事情,事后回看无比清晰,但如果我们不带上帝视角的光环,回到当初,依然不知所措。这就牵扯到量化的根源问题——历史数据的局限。那么,如果仅仅用有限的历史数据,来检验交易系统,则很难避免“看着后视镜开车”的问题。



NO:03

但在数据有限的情况下,怎么尽可能的充分利用有限的数据对交易策略进行全面的检验?通常有两种方法:递推式检验和交叉式检验。

递推式检验的基本原理:用前一段较长的历史数据去训练模型,并用随后相对较短的数据去检验模型,然后不断地向后移动取数据的窗口,重复训练与检验的步骤。

1、训练数据:2000年至2001年,测试数据:2002年;

2、训练数据:2001年至2002年,测试数据:2003年;

3、训练数据:2002年至2003年,测试数据:2004年;

4、训练数据:2003年至2004年,测试数据:2005年;

5、训练数据:2004年至2005年,测试数据:2006年;

...以此类推...

最后对(2002年、2003年、2004年、2005年、2006年...)的测试结果进行统计,来综合评估策略表现。


如下图,可以直观的解释递推式检验的原理:


上图分别展示了递推式检验的两种方法。

第一种:每次检验时,测试数据比较短,测试次数较多。

第二种:每次检验时,测试数据比较长,测试次数较少。


在实际应用中,可以通过改变测试数据的长度,进行多次测试,用来判断模型在应对非平稳数据的稳定性。



NO:04

交叉式检验的基本原理:把全部数据等分为N个部分,每次用其中的N-1个部分做训练,用剩下的部分做检验。


把2000年至2003年按照每年划分,分为4个部分。那交叉校验的操作过程如下:

1、训练数据:2001-2003,测试数据:2000;

2、训练数据:2000-2002,测试数据:2003;

3、训练数据:2000、2001、2003,测试数据:2002;

4、训练数据:2000、2002、2003,测试数据:2001;


如上图所示:交叉式检验最大的优点就是充分的利用有限的数据,每个训练数据同样也是测试数据。但交叉检验应用到策略模型的检验时也存在明显的缺点:

1、当价格数据非平稳时,模型的测试结果往往不可靠。例如,用2008年的数据做训练,用2005年的数据做测试。很有可能2008年的市场环境与2005年相比发生了很大的变化,所以模型测试的结果不可信。

2、与第一条类似,在交叉检验中,如果用最新的数据训练模型,而用较老的数据测试模型,这本身就不怎么符合逻辑。



NO:05

另外,在对量化策略模型进行检验时,无论是递推式检验还是交叉式检验都遇到到数据重叠的问题。


在开发交易策略模型时,大部分的技术指标是基于一定长度的历史数据。例如,利用趋势性指标,计算过去50天的历史数据,而下一个交易日,该指标又是该交易日前50天的数据计算得出,那么计算这两个指标的数据有49天是相同的,这会导致每相邻两天该指标的变化很不明显。


数据重叠会导致以下影响:

1、模型预测的结果变化缓慢导致持仓变化缓慢,这就是我们常说的指标的滞后性。

2、对模型结果检验的一些统计值不可用,由于重复数据导致的序列相关,使得一些统计检验的结果不可靠。


NO:06

优秀的交易策略应该能够在未来具有获利性。样本外测试,除了能客观检测交易策略外,更能有效率节省宽客的时间。

大部分情况下,直接采用全部样本的最优参数,投入实战是非常危险的。

如果对进行参数优化的时间点前的所有历史数据进行区分,划分为样本内数据与样本外数据,先利用样本内数据进行参数优化,再利用样本外数据进行样本外测试,则可以将这种错误排查出来,与此同时还能检验优化后的策略是否适用于未来的市场。


NO:07

就如同交易一样,我们永远没有办法穿越时间,为自己做一个一点错误都没有的正确决定。如果有上帝之手或者从未来穿越回来能力,那么不经过测试,直接上线实盘交易,也能赚的盆满钵满。而我等凡人,则必须在历史数据中检验我们的策略。

可是,即便拥有庞大数据的历史,但面对浩瀚无尽且不可预测的未来,历史就显得极度匮乏。所以基于历史自下而上倒推出来的交易系统,终究会随着时间而沉没。因为历史不能穷尽未来。因此一个完整的正期望交易系统必须由其内在原理/逻辑所支撑。   


转/宽客在线


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:交易策略 训练模型 递推式检验

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 02:08