策略回测是一种关键的量化交易方法,用于评估特定策略在历史市场数据上的表现。它提供了一个有效的方式来优化交易决策,并有助于理解市场行为和风险。在回测中,交易者使用过去的市场数据来测试他们的交易策略。该计算机模拟包括买入、卖出和保持头寸的规则。回测结果显示了策略在历史市场数据上的表现,包括收益率、夏普比率和回撤等指标。
但是要注意的是,回测仅仅是基于过去的市场数据进行的计算机模拟。市场会不断变化,而过去的结果并不能保证未来的表现。因此,回测结果应该被视为策略实际表现的理想化上限。存在各种偏差会导致在回测中夸大策略的表现。影响策略回测的偏差有很多,其中对策略影响最大的有以下四种:包括优化偏差、前瞻性偏差、幸存者偏差和心理容忍偏差。
优化偏差
优化偏差是所有回测偏差中最容易出现的一种。它指的是通过调整或引入额外的交易参数来使策略在回测数据集上表现出极具吸引力的结果。然而,一旦将这样的策略应用于实际交易中,其表现可能会与回测结果截然不同。另外,这种偏差还有其他名称,例如“过拟合”和“数据窥探偏差”。
由于算法策略往往涉及许多参数,因此在实际应用中消除优化偏差非常困难。这些参数可能包括进入/退出标准、回测时间、指标参数(即移动平均平滑参数)等。以下是减少优化偏差的一些方法:
-
限制参数数量:在设计交易策略时,应尽可能限制使用的参数数量。这有助于降低过度拟合训练数据的风险。 -
增加训练集数据点数:增加训练集数据点数可以提高模型的泛化性能,从而减少优化偏差的影响。 -
采用交叉验证:交叉验证是一种评估机器学习模型性能的技术。通过将数据集划分为多个子集,在不同的子集上训练和测试模型,可以有效地减少优化偏差。 -
进行敏感性分析:敏感性分析是一种用于评估模型对参数敏感性的技术。它通过逐渐改变模型的输入参数并观察输出结果的变化,来检测模型的鲁棒性和泛化性能。使用不同的参数值组合来训练模型,并记录模型在每个参数组合下的性能指标。最后,将这些性能指标绘制成“表面”,以显示模型在参数空间中的表现。通过观察性能表面的形状和变化,可以判断模型对参数的依赖程度,从而找到最优的参数组合。下图就是一个参数敏感性分析的热力图,可以通过观察热力图分布,判断参数是否敏感。

前瞻性偏差
前瞻性偏差是指当未来数据被意外地包含在模拟过程中,而在实际应用中该数据并不可用时,回测系统会引入前瞻性偏差。如果我们按时间顺序运行回测,并在到达某个时间点后发现任何数据都包含在内,就可能会出现前瞻性偏差。前瞻偏差的误差可能非常微妙。以下是三个引入前瞻性偏差的常见示例:
-
代码错误:代码中的数组/向量通常具有迭代器或索引变量。这些指数的不正确偏移可能通过合并数据而导致前瞻性偏差。 -
参数计算:另一个常见的前瞻偏差示例是在计算最优策略参数时发生的,例如两个时间序列之间的线性回归。如果整个数据集(包括未来数据)用于计算回归系数,并且由此进行回溯以应用于交易策略以达到优化目的,那么未来数据将被纳入其中,从而出现前瞻性偏差。 -
极值计算:某些交易策略在任何时间段内使用极值,例如将高价或低价纳入 OHLC 数据。然而,由于这些极值只能在时间段结束时计算,如果在当前时间段内使用这些值,则会引入前瞻性偏差。 -
交叉验证:交叉验证是一种常用的模型评估技术,通常涉及将数据集划分为若干子集,然后使用其中一个子集作为测试集,其余子集作为训练集,以多次迭代的方式来验证模型的性能。假设我们在训练集上选择了某种特征或参数,例如选取某个月份的数据。如果这个月份是未来的时间段,那么就会出现前瞻性偏差。因为在实际应用场景中,我们无法预知未来的数据,因此不能将未来的数据用于训练模型,否则将可能导致模型的表现不如预期。

幸存者偏差
幸存者偏差是一种特别危险的现象,可能导致某些策略类型的性能被显着高估。在回测中,当我们仅基于当前时间点“幸存”下来的资产进行测试时,就会发生这种情况,而忽略了那些在过去已经出局的资产。
一些较差的资产会提早退出市场,而另一些资产则一直甚至繁荣。如果我们只针对那些在市场上存活下来的资产进行测试,就会引入幸存者偏差,因为它们已经向我们证明了它们的成功。实际上,这只是前瞻性偏差的另一个具体案例,因为未来的信息被纳入了过去的分析中。减轻策略回测中幸存者偏差的两种主要方法如下:
-
使用无幸存者偏差的数据集——对于股票数据,可以使用包括已退市实体的数据集。此外,可以交易不容易出现生存偏差的资产类别,例如指数ETF。 -
使用最新的数据集——就股票而言,使用最新的数据集可以降低所选股票被视为“幸存者”的可能性,因为在较短的时间内整体股票退市的可能性相对较小。但是使用最近的数据也会带来数据样本较少的问题。

心理容忍偏差
在量化交易领域中,较少讨论一种特殊现象。但这种现象广泛存在,它被称为“心理容忍偏差”。在进行回溯测试时,经常会出现股票曲线呈上升趋势的情况,这通常使投资者满意,而且计算复合年回报率、夏普比率和回撤特征也对此予以支持。例如,动量策略可能具有最大相对回撤率达到25%和最长回撤期为4个月。然而,这些结果可能导致投资者认为能够轻松容忍4个月的回撤期,因为总体的情况是乐观的。
但如果回撤率达到25%或更高,那么在实时交易中也可能会出现类似的回撤期。这些回撤期可能会对投资者的心理产生影响,难以忍受。会由于我们个人的心理容忍程度,导致一个本质上成功的策略在回撤期间停止交易,从而带来亏损。因此,即使该策略本身是算法,心理因素仍然会对盈利能力产生重大影响。
参考 | Successful Backtesting of Algorithmic Trading Strategies – Part I
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/110964
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!