Local EPUB Text
数据的重要性
通常来说,模型的很多细节都是由所使用的输入变量的特征决定的。回到之前的例子,如果你得到的都是些缓慢变化的宏观经济数据,如美国每季度的GDP数据等;进一步假设在这些数据公开发布后一周你可以得到它们。这种情形下,你不可能建立一个快速交易模型并据此决定持有头寸的时间以分钟进行计算。此外,需要注意的是,你所得到的美国的数据在预测债券或货币相关产品时可能会比较有用,但在股票市场上这些数据并不足以建立一个有效的模型;美国的GDP数据也无法提供乌拉圭或者波兰证券市场上的信息。
存储和提取数据所使用的数据库技术很大程度上取决于所使用数据的属性,我们将在这一章的后半部分详细讨论这一话题。有时,数据决定了采用何种软硬件才能使得模型达到最好的效果。数据的属性(甚至数据的传输方式)很大程度上决定了我们可以利用数据做些什么以及具体可以怎么做。
如果数据的搜集和预处理工作没有做好,将会带来严重的后果,从另一方面阐明了数据的重要性。之前我们提到量化交易系统是输入/输出模型,如果模型的输入变量数据质量不够好,很难期望模型产生准确甚至仅仅是可用的结果。1999年的火星气候卫星(Mars Climate Orbiter,MCO)的失败就是个很典型的例子。价值两亿美元的卫星由于与大气层的摩擦而被烧毁,发生这一事故的原因是,项目组的软件工程师在编写控制卫星助推器的程序时按照牛顿为力学单位进行设计,而另一个项目组在处理传输到卫星的数据时用的力学单位是磅力。控制卫星助推器的模型运行准确,但是由于输入数据的单位不对(数据被缩小为原来的1/4.5),卫星下降时偏离轨道,距离火星的大气层过近而导致发生摩擦被毁掉。事故发生后,美国国家航空航天局(NASA)并没有把事故原因归咎于软件错误,而是认为对软件进行检验和重检的过程以及输入软件的数据造成了这次事故[1]。
但是,总会有些事先考虑不到的问题。毕竟,当你对结果进行仔细检查时,结果通常是带着很多小数的一串精确数字,但这只是虚假精确(false precision)。所以,面对一个带有很多位小数的精确数字时,我们并不可以完全信赖这一数字。因为我们所关心的交易类型是具有时效性的,因而时间因素显得很重要。假如你建立了一个模型可以对股票第2天的价格做出很好的预测,但你所需要用到的却是一周以后的数据,这样的模型有何意义呢?当然这是个极端的例子,但也基本说明了将准确信息输入正确模型的速度越快,所能得到的结果就会越好(至少在你计划得到一个好的收益时)。
错误的数据会导致花费大量的研究时间,在极端情形下甚至得到毫无意义的结论。通常,我们需要数据去改进和市场相关的理论或科学上的一些东西,就像物理学家利用对现实世界的观察来构造他们的理论一样。所以,如果我们提供给科学家的是错误信息,并且他却不知情,科学家可能会研究出在现实世界根本不适用的理论。错误的数据导致错误的结果。如果数据本身存在严重问题,无论检验方法多么复杂,模型多么完美,都不可能判断出待检验的交易系统是好是坏。
很多量化交易公司在经营过程中都意识到了这一点。因此绝大部分顶级的公司都是自己从源头直接搜集数据,而不是从数据供应商那里购买。这些公司在快速得到数据、清洗数据甚至在以更好的方式去存储数据等方面都投入了大量的资源。一些公司有几十个甚至上百个员工专职负责数据抓取、清洗以及最优化存储等工作。
[1] Greg Clark and Alex Canizares,“Navigation Team Was Unfamiliar with Mars Climate Orbiter,”Space.com,November 10,1999.