“性能回测”一向是程序化交易者的招牌武器之一,代表了量化交易者对主观交易的降维打击能力。然而,从第一代平台的回测功能诞生到现在为止,关于数据连续性和可靠性的处理一直让人难以满意。
TBQuant在数据处理的环节摸索了很久,最终决定以“后复权”的形式保证数据的连续性和可靠性。为什么会选择后复权?今天就来谈谈数据连续性可靠性处理的探索过程。
回测对于数据连续性和可靠性到底有什么需求?
首先,性能回测是基于统计学的原理。
我们都知道一种测定硬币重心的方法,就是反复投掷硬币,然后统计正面和反面的次数。如果在大量投掷后,正面和反面的统计结果有着较大的差别,那就说明这枚硬币的质量是不均匀的。这是用统计学的原理,而不是用具体的量表,来判断一个物体的质量分布。
对于策略模型来说,我们也可以在历史行情里面,模拟运行策略模型,然后统计可能发生的交易,统计所有的盈亏,从而评价这个策略模型的性能,这就是性能测试。
这种评价模型的方法,需要一个重要的前提,那就是我们需要统计的可能发生的交易,次数必须较为庞大,并且每次发生的交易的自相关性必须较低。数据连续性,主要无法满足对交易次数的需求。这是为什么呢?
大部分趋势性策略往往是非常低频的策略,很有可能一年之间只发生一两次交易,甚至好几年才有一次交易。在这种情况下,恐怕需要相当长时间的行情数据才能支持产生数十次交易信号。这就是我们遇到的问题:对于期货来说,每一个合约的行情数据至多只有一年,很难发生多次交易,这该如何做性能测试?
有些人认为,应该把到期月份一致的合约连起来,也就是所谓的cc指数。比如,1905合约到期以后,马上接上2005合约。