量化投资入门指南:数据和研究

目录

7. 数据

7.1 数据类型

7.2 数据来源

7.3 数据清洗

7.4 数据存储

8. 研究

8.1 科学的方法

8.2 思想的产生

8.3 检验

8.3.1 样本内测试

8.3.2 模型好坏的度量指标

8.3.3 过拟合

8.3.4 样本外检验


7. 数据

俗话说,“输入垃圾,输出垃圾”。数据的重要性不言而喻。系统输入变量的属性决定了可以利用系统进行哪些工作。如果宽客得到的是缓慢变化的宏观经济数据,那么就不可能建立一个快速交易模型。此外存储和提取数据所使用的数据库技术很大程度上也取决于数据的属性。因此,绝大部分顶级的公司都是自己从源头直接搜集数据,而不是从数据供应商那里购买。

 

7.1 数据类型

宽客使用的数据基本上可以分为价格数据(price data)和基本面数据(fundamental data)。

价格数据不仅仅是和金融产品价格相关的数据,也包括从交易行为中提取或得到的其他信息。比如股票的交易量、每笔交易的时间和规模,以及各种指标水平相关的数据(如标普500指数每日记录的波动百分比)。实际上,整个指令簿都可以看作是价格数据。

基本面数据泛指价格数据以外的所有数据。这些数据有助于决定金融产品未来的价格或者至少描述产品目前的状况。常见的基本面数据种类有财务健康状况(financial health)、财务表现(financial performance)、财物价值(financial worth)和情绪(sentiment)等。

一般来说,使用价格数据的相关交易策略通常是短期策略,而使用基本面数据的大都是长期策略。这是因为价格数据通常比基本面数据更新的频率更高。

 

7.2 数据来源

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

  1. 交易所:价格、交易量、时间戳、持仓量、空头持仓量、订单簿数据;
  2. 监管机构:各个公司财务报表、个股的大股东持股情况、内部买卖活动;
  3. 政府:宏观经济数据,如失业率、通货膨胀、国民生产总值等;
  4. 公司:财务报告和其他公告(如红利的变化);
  5. 新闻机构:新闻报道;
  6. 数据专营供应商:可能有用的一些生产数据。如上市公司报告、基金的现金流数据等。

数据供应商可以解决把来自各种数据源的数据置于统一框架下并进行存储和分类的问题。但是,不同数据供应商提供的数据类型可能不同。比如,对某一只股票,数据供应商甲只提供价格数据,供应商乙只提供基本面数据,而且它们采用的识别股票的标识符可能也不一样。因此,宽客必须找到一种有效的方法,将不同数据供应商的关于同一产品的数据与自己已已有的内部数据库统一起来。

除了从数据供应商处购买数据以外,也可以从源头直接获取原始数据。好处是宽客可以最大限度地控制数据的清洗和存储,但是这么做往往也具有很高的成本。对每一个数据源,都需要相应的软件,把它们转化为量化交易系统可以使用的某种格式。

 

7.3 数据清洗

数据清洗是一项必不可少的工作。即使是从数据供应商处买来的数据,通常也无法避免地存在各种数据缺失或错误的情况。常见的数据问题包括以下五种:缺失值、错误观测值、由公司行为导致的数据错误、时间戳错误以及前视偏差

解决缺失值问题有两种常用方法。一是使用最近的一个已知价格数据,直至出现一个新的可用价格数据为止。二是在缺失值出现的位置进行插补,补上一个合理的数据。

错误观测值也被称为坏点(bad prints)。解决错误观测值问题的第一种方法是异常值过滤(spike filter)。该方法会对价格数据中那些幅度特别大、突然的变动进行平滑处理或者直接删除。有时候例外的异常值确实存在,因此需要辅以系统监管人员进一步查看确认。当某一数据有多个数据源时,另一种方法是使用来自不同数据源的数据进行交叉核实。此外,第三种方法与处理缺失值的方法类似,通过观察坏点出现时前后的数据或者相关产品的表现,计算出一个近似值。

另一个常见的数据错误问题与公司的行为有关,比如配股和分红。一支股票的价格在配股之后往往会发生明显的变动,如果数据供应商没有记录这次配股行为,很可能会把发生变动后的数据当成坏点来处理。解决这类问题主要依赖于对公司行为的独立追踪或者人工监管。

错误的时间戳通常出现在日间数据或者实时数据中。宽客可以通过对接收到的数据的时间戳与存储数据时内部的时间进行对比来保证时间戳的正确性。同时,也可以通过对来自不同数据源的数据进行交叉检验来解决这一问题。

前视偏差(look-ahead bias)是指在某些事情真实发生之前便错误地假设已经知道了相关信息。这类问题通常是由于数据的不同步性造成的。有些数据在初次发布几个月以后会进行修正。如果宽客没有仔细对数据的修正进行追踪,在之后的研究过程中,很可能就会以为自己第一次拿到的数据就是最可靠的数据。另一种去常见的前视偏差则是由世界上不同交易所收盘时间各不相同造成的。为了解决这类问题,宽客可以记录下数据更新的发布日期。此外,也可以在关注的数据上加入人工滞后项。

 

7.4 数据存储

数据存储主要有两种形式,即平面文件(flat file)和关系数据库

平面文件是没有相对关系结构的文件,类似于普通的二维表格,比较简洁。关系数据库则允许数据集中出现更为复杂的关系。

 

8. 研究

研究是量化交易的核心与灵魂。研究的目的是审查周密思考的投资策略。对于量化交易而言,要基于研究对投资策略进行选择。

 

8.1 科学的方法

由于市场是不断变化的,因此量化研究也是一个不断持续的过程。研究必须基于科学的方法。

首先,科学方法始于所观察的世界具有可解释性的事物。市场也具备某些可解释性的模式。其次,科学家形成理论去解释他的观察结果。第三,科学家必须对理论进行推断。最后,理论需要进行检验。理论的检验不是“证明”理论,而是证伪(falsification),即恰当地寻找所推断结论的反例。尚未被反驳的理论,就可以被认为暂时是正确的。

 

8.2 思想的产生

量化研究理论的产生有四个共同来源,即对市场的观察结果、学术文献、研究员或投资组合经理在量化公司之间的迁移以及来自主观判断型交易者的经验教训

 

8.3 检验

检验是研究的中心。其基本流程如下:首先,构建模型,并基于可行数据的某个子集(样本内数据,in-sample period)训练该模型;然后在数据集的另一个子集(样本外数据,out-sample period)检验其是否盈利。

 

8.3.1 样本内测试

检验的第一个步骤是基于样本内数据寻找最优参数训练模型。模型的参数是定义模型的某些特性并能影响其表现的变量。

样本内测试的过程中包含一个重要的决策:如何选择拟合模型样本的宽度和长度?对宽客而言,样本的宽度涉及到使用的股票数量以及如何选择这些股票,而长度则代表着适用于拟合模型的数据时间窗口。

通过使用更多的数据,宽客构建的模型适用于更广泛的情景和市场环境,这是的模型更加稳健。另一方面,模型使用的数据越多,当被调整的时候,风险就越大,因为此时的模型仅仅能对过去进行很好的解释。

 

8.3.2 模型好坏的度量指标

宽客使用各种方法衡量模型的好坏。常见的方法有累积盈利图、平均收益率、收益率随时间的变异性、波峰波谷间的最大降幅、预测力、胜率或盈利时间占比、回报相对于风险的不同比率、与其他策略的关系、时间延迟以及特定参数的敏感性等。

累积盈利图是检验过程最有力的输出量,可以直观地呈现盈利的时间段和持续时间、盈利的大小、回报流的波动起伏等信息。

平均收益率表明策略在过去的实际运行情况如何,常用的指标如年化收益率

收益率随时间的变异性描述的是平均收益率的不确定性。通常,变异性越小,策略越优。常用的指标如收益率的标准差。此外,块度(lumpiness),即显著高于平均收益的时间段内的收益占策略总收益的比例,也是一个备受关注的重要统计量。

波峰波谷间的最大降幅测量的是盈利曲线从任意一个累计波峰开始的最大回测。策略的回测越低,策略越优。

预测力表示预测模型解释被预测量的变异程度,通常用符号R2表示。如果该值为1,则表示模型解释了被预测量100%的变异信息。实际模型的预测力通常不会超过0.1。在模型检验中,宽客通常按照分位数的方法对金融产品的潜在预测的收益率进行分组。通常,具有可靠预测力的模型能够显示最坏的收益情况出现在最左边的分组,同时每一个分组的收益率都高于前一个分组。

利用盈利周期与总周期数的比值,可以对盈利的一致性进行度量。该指标可以告诉研究者,系统盈利是来自小比例的偶然表现极其优秀的交易,还是来自多次交易。

对于回报相对于风险的不同比率,比较有名的两个指标是夏普比率(Sharpe ratio)和信息比率(information ratio)。夏普比率是某周期内高于无风险利率的平均收益率与收益率的波动率之间的比值。夏普比率越高,策略越好。信息比率与之类似,不过在公式中去除了无风险利率。

许多宽客也会同时使用好几个策略,通过有效的管理策略组合,分担风险。但是,宽客需要频繁测量新策略如何适应于已经使用的策略,确保新策略能够增加价值。

时间延迟涉及到策略对接受信息及时性的敏感程度。但是,延迟信号的实施并不总是意味着导致坏结果。

如果小幅度改变模型的某个参数,结果发生很大变化,那么我们应该对该参数改变前后的两个结果都抱持怀疑态度,都不应该予以采用。这是因为模型被证明对于该参数在此处的微小改变过于敏感。

 

8.3.3 过拟合

过拟合的本质是研究员使用了过多的数据,建立了一个能够很好地解释过去,但是对未来解释性较差的模型。避免模型过于复杂和过于简单都是宽客应该注意的事情。

参数拟合的最后一个注意点是参数或者只能适用于过去,或者随着市场数据的不断更新,能在未来不断使用。

 

8.3.4 样本外检验

到目前为止,模型的参数已经通过样本内检验(训练)而固定下来,问题是基于已经被选定的这些参数,模型是否能在全新的样本外数据集中起到作用。

样本外检验有多种方法。最简单的就是使用去除样本内检验数据的剩下部分进行检验。一些研究员使用滚动样本外数据的方法(rolling out-of-sample technique)。此外也可以使用不断增长的数据窗口,随着时间不断改变,更多的数据被收集,样本外检验将持续进行。

在进行样本外检验之后,即使模型的检验效果不好,也不能在分析原因后重新对模型进行训练。因为这一做法实际上是把样本外数据集当成了样本内数据集来使用。因此,应该尽量避免在样本内数据集和样本外数据集之间来回切换。

 

Reference:

《打开量化投资的黑箱》,Rishi K. Narang

你可能感兴趣的:(其他内容,金融,数据挖掘,量化交易,宽客)