量化交易基础 - 006 - 数据类型、来源和清洗

存储和提取数据所使用的数据库技术很大程度上取决于所使用数据的属性。如果数据的搜集和预处理工作没有做好,将会带来严重的后果,从另一方面阐明了数据的重要性。
毕竟,当你对结果进行仔细检查时,结果通常是带着很多小数的一串精确数字,但这只是虚假精确(false precision)。所以,面对一个带有很多位小数的精确数字时,我们并不可以完全信赖这一数字。因为我们所关心的交易类型是具有时效性的,因而时间因素显得很重要。

如果数据本身存在严重问题,无论检验方法多么复杂,模型多么完美,都不可能判断出待检验的交易系统是好是坏。

数据类型

数据基本上可以分为两大类:价格数据(price data)和基本面数据(fundamental data)。

价格数据并不仅仅是和金融产品价格相关的数据,也包括从交易行为中得到或提取的其他信息。股票的交易量、每笔交易的时间及规模等都属于价格信息。

基本面数据包含的范围很宽泛,因而难以进行有效分类。从某种意义上讲,基本面数据是指除了价格数据之外的所有数据。但是,所有类型数据的共同特征是,这些数据有助于决定金融产品未来的价格或者至少描述金融产品目前的状况。最常见的基本面数据种类有财务健康状况(financial health)、财务表现(financial performance)、财务价值(financial worth)和情绪(sentiment)等。

大部分价格数据倾向于关注短期效应,讨论的都是每日数据甚至日间连续数据。而在基本面数据中,我们看到的数据通常是周度、月度或季度数据。从这一不同的时间周期马上能够看出,一般来说使用价格数据(基本面数据)的相关交易策略通常是短期(长期)策略。这是因为,一般来说价格数据比基本面数据更新的频率更高。

数据来源

主要的数据源及数据种类包括以下几种。

  • 交易所:价格、交易量、时间戳、持仓量、空头持仓量、订单簿数据。

  • 监管机构:各个公司的财务报表、个股的大股东持股情况以及内部买卖活动。

  • 政府:宏观经济数据,如失业率、通货膨胀及GDP数据。

  • 公司:财务报告及其他公告(如红利的变化等)。

  • 新闻机构:新闻报道。

  • 数据专营供应商(或数据加工者):可能有用的一些生产数据。如经纪公司经常发布关于上市公司的报告,一些公司追踪并发布基金的现金流数据。

数据清洗

第一类常见的数据问题是缺失值。当部分信息确实存在,但由于各种原因数据提供者无法提供这些数据,便会发生数据缺失现象。若没有数据,交易系统什么也做不了,所以数据缺失是个很严重的问题。

常用的处理缺失值的一个方法是,使用最近的一个已知价格数据,直到一个新的价格数据可用为止。第二种方法是在缺失值出现的位置进行插补,补上一个合理的数据。这个方法对于历史数据有用,对实时数据并不奏效;但对实时数据也有很多方法可以使用。

第二类常见的数据问题是错误观测值。例如,小数点错误就很常见。以英国股票价格为例,有时以英镑为单位,而有时又以便士为单位。

交易所和其他数据源经常会排除坏点(bad prints),就是指那些根本不会出现的数值或者至少不会以数据源所预示的方式出现的数据。

目前解决这一问题最为常用的是被称为异常值过滤(spike filter)的方法。异常值过滤方法寻找价格数据中那些幅度特别大、突然的变动,并对这些变动进行平滑或直接删除。

但有时候,这种异常的数据点是真实存在的一个点。为了减少这一问题的影响,一些宽客使用异常值过滤方法来提醒,辅以系统监管人员进一步查看该数值,检测这一问题。基于所查看到的事实,人工可以做出判断,对这一异常价格应该怎么处理。当某一个数据有多个数据源时,另一种常用的有效方法是使用来自不同数据源的数据进行交叉核实。如果相互匹配,这很可能是个正确的价格数据。如果无法匹配,至少其中一个是有问题的。

另一个常见的数据错误类型和公司的行为有关,例如配股和分红等。如果数据供应商没有记录这次配股,因而没有调整历史数据以反映公司行为。量化交易系统可能会受到误导。

另一个令人头疼的问题是,有时数据中会含有错误的时间戳。这一问题通常出现在日间数据或实时数据中,但其他数据中也存在这个问题。这是个比较难解决的问题。显然,时间序列的路径至关重要,尤其对关注阿尔法收益的量化交易者而言需要指明金融产品的买入卖出以及清仓时机。这时,如果因为数据源的错误导致时间序列被打乱,会带来很大麻烦。

最后,需要提到一个不太明显的数据问题,被称为前视偏差(look-ahead bias),我们将在本书中对该主题进行多次探讨。前视偏差是指在某些事情真实发生之前便错误地假设已经知道了相关信息,还有另一种形象的表述“昨天之前就知道了昨天的新闻”。

为解决数据中的前视偏差问题,宽客可以记录下更新后的数据发布的日期,并且在模型验证时只在合理的时间段才使用这些数据。

另一类源于数据不同步性的前视偏差则是世界上不同交易市场收盘时间各不相同造成的。SPY(跟踪标准普尔500指数的ETF)在下午4点15分结束交易,但构成标准普尔500指数的股票4点后就不再交易。欧洲股票市场在纽约时间上午11点到晚上12点间不进行交易。一天中纽约开盘时亚洲市场已经收市了。很多情形下,美国的新闻和交易活动对欧洲和亚洲市场的重大影响直到第二天才能体现出来。

数据存储

第一种数据库是没有相对关系结构的平面文件(flat file),这种两维的数据库和普通的表格很类似。这种平面文件数据库不会因为需要加载太多内容而变慢,由于简洁而广受欢迎。这种简单的文件结构很容易进行搜索,通常是顺序搜索(如从第一行到最后一行)

第二类数据存储系统是关系数据库。关系数据库允许数据集中出现更加复杂的关系。例如,假设我们不仅想追踪股票自身的数据,还需要其所在产业、所在生产部门、所在国指数以及所处的股市的一些数据。

有一类很重要的关系数据库被称为数据立方体(data cube),数据立方体强调关系数据库的一致性,把所有金融产品所有属性的取值都放到一个三维数据表中。对某个日期而言,所有产品都列在这张表的一个坐标轴上。第二个轴则存储所有产品给定属性(如当日收盘价)的取值。第三个轴则存储其他属性的取值(如当日每股收益)。

posted @ 2023-02-22 21:14  NoMornings  阅读(236)  评论(0编辑  收藏  举报