选择数据源:免费、低成本和付费选项
构建任何历史研究的第一步都是寻找数据,而搜索引擎通常是起点。网上有大量免费或低成本数据库。它们在覆盖范围上各不相同:有些提供股票日线数据,有些提供期货日线数据、外汇日线数据,或股票和期货的日内数据。它们还在三个不那么明显但更重要的维度上存在差异:是否对拆股和股息进行了调整、数据是否存在幸存者偏差,以及历史可以追溯到多久以前。 付费数据库通常提供更完整的拆股和股息调整,支持一次性批量下载多个标的,并包含基本面数据。一些供应商还提供无幸存者偏差的数据集。代价是成本,而且可能相当高。免费或廉价的数据源往往带有幸存者偏差,通常需要逐个标的下载,并且其价格调整应用的一致性也参差不齐。 由于这些差异,数据源的选择并不是一个中性的决定。覆盖同一市场、同一时期的两套数据集,对同一套规则可能产生不同的回测结果。一个正确处理公司行为并保留退市标的的数据集,其表现会与两者都不做的数据集截然不同。因此,实际做法是在使用数据源之前先弄清它究竟包含什么,而不是假定任何带有代码和日期的文件都与其他文件等价。覆盖范围、调整政策、历史长度和偏差处理,是决定一项研究是有意义还是具有误导性的属性。
拆股与股息调整:首先要问的问题
历史价格是否已针对拆股和股息进行调整,是使用任何数据库之前需要解决的核心问题。一旦逻辑清楚,其机制其实很直接。 当公司在除权日进行拆股时,每一股会变成若干新股。除权日之前的每一个历史价格都必须乘以拆股比例的倒数,也就是除以拆股倍数。例如,二比一拆股要求将所有更早的价格减半,以使价格序列在该事件前后保持连续。 股息则通过另一个因子起作用。当公司在除息日支付现金股息时,该日期之前的所有历史价格都要乘以这个因子:前一日收盘价减去每股股息,再除以前一日收盘价。这样可以保持股票在除息边界前后的日收益率连续。 请注意,标准方法是按乘法调整价格,而不是简单地减去股息金额,因为乘法能让收益率随时间保持连续且可比。减法会在百分比收益率中造成扭曲。 跳过这些调整的后果很严重。在除息日,开盘价自然会比前一日收盘价低大约相当于股息的金额,此外还会有正常的市场波动。这种人为缺口可能触发错误的交易信号。例如,一个扫描下行突破的系统,可能把这种机械性下跌解读为真正的破位,并在并不存在真实价格疲软的情况下发出做空指令。 最干净的解决方案是使用已经应用了拆股和股息调整的数据库。如果必须手动调整,就需要一个独立的拆股和股息信息来源来计算因子,而这既繁琐又容易出错。
手动调整:因子、乘法与错误风险
如果拿到的数据集未调整且无法替换,调整工作就落到使用者身上,而准确理解这涉及什么内容是值得的。 这个过程需要为每个标的单独保存一份可靠记录,涵盖每一次拆股和每一次股息。根据该记录,为每个公司行为计算一个调整因子:拆股用拆股比例的倒数,股息用收盘价减股息再除以收盘价。然后,将每个因子应用于对应除权日之前发生的每一个历史价格。 当一只股票在其历史中既有多次拆股又有多次股息支付时,任一给定历史价格的总调整因子,就是适用于该价格时间区间的所有单个拆股因子和股息因子的乘积。正是这种乘法结构使序列保持内部一致:每个事件都在此前事件的基础上复利叠加。 会出现两个实际困难。第一,数据收集本身很费力。拆股和股息必须从独立于价格文件的数据源收集,而任何遗漏事件都会在序列中留下永久性的不连续,可能被误认为是真实的价格变动。第二,算术错误会传播。一个错误因子会破坏该日期之前的每一个价格,而由此产生的扭曲可能看起来足够合理,从而逃过注意。 还有一个验证问题。不同供应商处理调整的方式可能略有不同,因此即使手动调整后的序列和供应商调整后的序列各自内部一致,它们也未必完全匹配。当结果取决于精确价格水平时,在将其与其他来源的数据结合之前,值得确认数据源如何定义其调整。在大多数情况下,只有当不存在足够的预调整数据源时,手动调整的付出才值得。
幸存者偏差:隐藏的扭曲
幸存者偏差是使用免费或低成本历史数据库时最常见的陷阱之一,这一点在策略筛选材料中已经讨论过。这个术语描述的是一种只包含今天仍然存在的标的的数据集。已退市、破产或被收购的公司已被移除,因此历史只反映了赢家。 对于刚起步的交易者来说,无幸存者偏差的数据库通常过于昂贵。正是这种成本差距使这个陷阱如此普遍:可负担的选项正是有偏差的那个,而除非你主动寻找,否则这种偏差是看不见的。 The distortion can be extreme. 同一策略在有偏差和无偏差的数据库上运行,可能得出完全相反的结论。一套在现实中实际亏钱的规则,在回测中却可能显得非常有利可图,因为数据库悄悄移除了那些中途失败的标的。仅仅因为保留了哪些标的,报告的表现就可能从负几十个百分点摆动到正几百个百分点。 其机制很容易说明。回测假定它本可以交易记录中的整个标的池。如果这个标的池是通过向后看并只保留幸存者来构建的,那么该测试实际上是在事后诸葛亮的优势下挑选股票。它根本不是对决策规则的测试;它是对该规则应用于一组已知成功者后的测试。要消除这种事后之见,就需要包含那些已消失标的的数据,而这恰恰是最廉价数据集所缺少的。



