回溯测试中的交易环境与真实的交易环境是有一定差异的,这种差异越大,回溯 测试的结果用于判断策略效用的能力就越低下。 回溯测试与真实环境之间差异的情况,大致可以分为两类。其中一类差异是可以通过人为设置回溯测试、或者人为限定真实交易的手段而基本消除的。在这一类差异 当中,实际交易时的买卖点与回溯测试下的买卖点不一致的问题是一个比较常见的例 子。具体来说,就是在中低频的量化交易策略研发中,回溯测试使用的数据往往不是 价格进行一次变化就记录一次的分笔数据,而是记录一段时间内的开始价格、最高价 格、最低价格、结束价格之类的二次处理后的数据。因此,如果真实交易中的买卖点 发生在开始价格和结束价格之间的某一个时间时,是不能反映在二次处理数据所构造 的回溯测试中的,也就会造成这两者买卖不一致的问题。
图 3.6 给出了一个日内买卖与回溯测试不符的实际案例。假设在这个例子当中, 研究人员在回溯测试中使用的数据是日度收盘价所组成的时间序列,测试的量化交易 策略为“当价格超过 10 日均价时买入,当价格低于 10 日均价时卖出”。图中给出的 是某一日全天的价格走势,假设这一天的价格达到 53.5 以上时,则触发“价格超过 10 日均价”的条件需要买入。可以看到,在回溯测试的流程中,由于当日价格报收于 53, 没有达到 53.5,因此回溯测试时是判断该日没有交易行为的。但是查看实际的全天价 格走势,可以发现价格突破了 53.5 一共三次,并又三次下跌到 53.5 以下,如果采用 回溯测试得到量化交易策略并全天候的应用于资产交易当中,这一天其实已经买入并卖出了该资产三次了。如果这里的资产是 A 股中交易的股票,那么情况可能更糟,在 日内第一次超过 53.5 时进行了买入操作之后,由于 T+1 的规定因此不能再在该日卖 出,最后的结果是回溯测试中该日没有交易,但是实际上该日收盘后持有了股票仓位, 这种差异将完全破坏掉回溯测试结果的可信程度。 对于如何处理这一类的差异,有三种可供参考的解决方案: 在回溯测试时,使得回溯测试的环境尽量与真实的交易环境保持一致。在上面 的例子当中,就是将回溯测试使用的二手数据换成更为精确的分笔数据,从而模拟整 个交易过程中都可以买卖的现实环境。 在实际的交易过程当中,尽量贴近回溯测试中的交易情况。以上面的例子而言, 就是在实际交易中忽略每一日盘中的走势,只在收盘时判断交易与否。但是值得注意 的是,由于得到收盘价的同时也就代表着当日交易的结束,完全按照收盘价进行交易 决策会导致不能执行的问题,因此这种解决方案需要在实际收盘点提前一小段时间进 行交易决策并执行。 合理估计实际环境下的交易与回溯测试之间的差异,并在回溯测试过程中通 过计算上的调整反映出这些差异。在上面的例子里,实际上就是估计出相对于回溯测 试中的收盘交易而言,盘中交易会带来的收益和损失,并在回溯测试里加入对估计收 益和损失的刻画。但是如果实际差异涉及到 A 股市场 T+1 造成的建仓不符之类的问 题,那么这种解决方案可能就不是一个很好的选择了。
此外,改变量化交易策略,使之能够适应这种回溯测试与真实环境之间差异,也 是一种在实际策略研发过程中可能会用到的处理手段。比如上面的例子中,可以在原 始的量化交易策略判断买卖点时,加入合适的限定条件或者缓冲条件,从而解决频繁 的来回买卖的问题。但是这种方法只能治标、不能治本,即使来回买卖的问题得到了 缓解,但是回溯测试与真实环境间的差异仍然会存在,如果希望将这种差异消除掉, 可能仍然要结合上面所述的三种方案或者其他方案来完成。 对于这三种方案而言,建议在有能力的情况下,优先考虑第一种解决方案, 即使很难获得相同样本期下的分笔数据,也尽量采用频率更高的数据来代替之前的数 据,从而更好的逼近真实的交易环境。随后的选择才是第二种和第三种解决方案,这两者之间没有一个固定的更优选择,需要结合具体的量化交易策略、研究环境和交易 环境进行人为判断。当然,也存在着其他一些具有实际意义的操作方案,例如将第一 种和第二种解决方案结合起来,同时更新回溯测试和实际环境中的交易行为。再以图 3.5 中所展示的例子来说明,完全在收盘时进行判断和买卖在现实环境中是不可能的。 而由于在收盘之前的短暂时间进行交易的判断和执行稳定性较差,而且用来判断交易 的数据点也不是收盘价,因此会存在较大的差异。在频率更高的样本数据无法获取的 情况下,其实可以在回溯测试中改用开盘价进行研究,如果测试结果也可以得到合适 的收益和风险情况,那么执行时就可以在开盘之后立即执行,这种情况下所使用的判 别点就是当日的开盘价,差异仅存在于开盘和执行之间的时间差,而且这种差异较之 前一种情况来说,一般会更小一些 另外一类回溯测试与真实环境之间的差异则是很难通过人为的修改和设置来消 除的,其中最常见的是实际环境中会产生的交易成本。估计交易成本是量化交易策略 从研发进入实际执行前一个必要的步骤。流动性也是一个是时常会导致回溯测试产生重大缺陷的问题,这个问题在 A 股 市场上同样格外明显,到目前为止国内的 A 股市场仍然设置涨跌停板,如果某交易策 略判断买入一支将会涨停的股票,在回溯测试中可以正常建仓,但是真实交易中可能由于当日的开盘时刻就涨停,因此实际上是没有机会买入这支股票的。将回溯测试使 用的二次处理数据更换为更精确的数据,例如分笔数据或者分钟数据、小时数据等来 进行研究,可以在一定程度上减小这种情况下回溯测试与真实环境之间的差异。当然 这只是流动性缺失的一个比较极端的例子,在大部分存在流动性问题的情况下,可能 会出现的结果是实际交易价格与回溯测试的虚拟交易价格不一致,研究者们通常将这 种差异也归为交易成本的一种,并通过预估来尝试解决。总的来说,处理这一大类的 差异主要还是采用前面提到的第三种方法,即合理估计实际环境下的交易与回溯测试 之间的差异,并在回溯测试过程中通过计算上的调整反映出来。 此外,很难通过人为的修改和设置来消除的差异还包括量化交易从业者对于量化 交易系统的整体判断和情感因素。诚然量化交易策略的优点之一就是可以规避策略研 发者的主观臆断、排除情绪化对于整个交易过程的干扰和影响,但是研究和控制量化 交易策略的毕竟还是人,因此总体上的行为偏误依然会存在。例如量化交易员对于量 化交易策略整体风险的承受能力,虽然在研发过程中,研究者可能会设定一个 30%的 警戒线,如果亏损达到 30%则判定策略失效并放弃策略,但是实际的运行过程中,5% 的亏损已经让人惴惴不安,10%的亏损则让人开始怀疑策略的正确性并重新检验,20% 的亏损可能就让人放弃坚持并修改策略了。有主观判断存在,就有偏误和差异存在, 这是交易策略都固有的问题。 |