美文网首页程序员的量化世界量化交易程序员
实战大数据 | 量化策略之样本外数据测试的必要性

实战大数据 | 量化策略之样本外数据测试的必要性

作者: 发明者量化FMZ | 来源:发表于2018-01-26 18:13 被阅读43次
image
  • NO:01

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

    以至于,常听人说:
    「我当初就不该……」
    「假如……我会……」

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

  • NO:02

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

    image

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

  • NO:03

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

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

    image

    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年...)的测试结果进行统计,来综合评估策略表现。

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

    image

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

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

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

  • NO:04

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

    image

    把2000年至2003年按照每年划分,分为4个部分。那交叉校验的操作过程如下:
    1、训练数据:2001-2003,测试数据:2000;
    2、训练数据:2000-2002,测试数据:2003;
    3、训练数据:2000、2001、2003,测试数据:2002;
    4、训练数据:2000、2002、2003,测试数据:2001;

    image

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

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

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

  • NO:05

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

    image

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

    image

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

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

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

  • NO:06

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

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

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

  • NO:07

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

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

    image
  • NO:08

    我们 ( BotVS 量化交易平台 ) 旨在改变当前量化圈无干货,交流闭塞, 骗子横行的现状,打造一个更纯净的量化圈子。这个世界从来没有人创造知识与理论,它们只是早已存在等待我们发掘。

    image

    分享是一种态度,更是一种智慧!

宽客在线
作者 Hukybo

相关文章

  • 实战大数据 | 量化策略之样本外数据测试的必要性

    NO:01人的一生,从小到大、从大到老,其实是一个不断犯错,又纠正,又犯错的过程,几乎谁也无法例外。或许曾经犯下许...

  • 大数据测试工程师入门级必备技能

    老生常谈大数据测试工程师,说来说去就那么几个内容! 关于大数据测试策略、大数据应用测试步骤、大数据测试流程等...

  • 量化投资课程大纲

    课程大纲 1. 理解正确的量化观 2. 对策略的全方位评估,识别出好的策略 3. 了解量化数据的组织结构和实战应用...

  • 量化交易策略之震荡大法: 51bitquant网格交易策略分析与

    量化交易策略之震荡大法: 51bitquant网格交易策略分析与实战 曾有人统计,从市场趋势而言,80%的时间都是...

  • 第二篇 程序构思

    量化系统主要由:策略、交易程序、情报系统组成。 行情数据广播给各个策略程序,程序根据量化策略的逻辑判断是否下单?挂...

  • 大数据测试学习笔记之测试工具集

    大数据测试学习笔记之测试工具集 本文主要记录大数据测试的一些基本工具,以便后续用的时候能深入的去学习。 Bigbe...

  • 数据分析的思路总结

    数据-数据指标-分析框架-分析方法 一、数据 数据:量化事物的指标 了解数据的来源看这个数据的样本范围,提取手段,...

  • 3-19

    在投资行为中,除了像索罗斯和巴菲特这些大佬的策略外,还有量化投资策略。量化投资策略是指把几千个股票的量价、基本面、...

  • 行为经济学-21

    在投资行为中,除了像索罗斯和巴菲特这些大佬的策略外,还有量化投资策略。量化投资策略是指把几千个股票的量价、基本面、...

  • 量化交易员应聘报告

    1、对于量化交易的理解 量化 数据+分析方法+ 投资策略 交易员 熟悉金融市场+金融直觉+数据敏感+健康身心 2、...

网友评论

    本文标题:实战大数据 | 量化策略之样本外数据测试的必要性

    本文链接:https://www.haomeiwen.com/subject/pnpwaxtx.html