在几乎所有股票的日数据中,最高、最低价的噪声远远大于开盘、收盘价。这意味着,即使你的限价买入指令低于最高价,也可能无法成交,反之,对于限价卖出指令也是如此。(这可能是因为在最高价成交的指令可能很少,或者交易是在一个指令无法送达的市场中发生的,甚至有可能记录下来的最高、最低价是不正确的且没有被筛掉。)所以,使用最高、最低价做回测不如开盘、收盘价可靠。
事实上,有时开盘市价指令或收盘市价指令也无法按数据库中的历史开盘、收盘价成交。因为这些历史价格可能来自大型交易所(如纽约证券交易所),也可能是一个包括所有区域性交易所在内的综合价格。指令送达的地点不同,其成交价格也与数据库中相应的历史开盘、收盘价不同。尽管如此,这种开盘、收盘价的差异对回测业绩的影响,通常比最高、最低价要小,因为后者总是抬高回测收益。
从数据库检索完数据后,应对其进行查错。最简单的方法就是算一下日收益。如果你有最高价、最低价、开盘价、收盘价的数据,还可以算一下不同组合的日收益(如昨天的最高价与今天的收盘价)。对偏离均值4个标准差的收益要仔细检查。一般而言,极端收益与消息发布或市场指数异动有关。不然的话,就是数据本身有问题。