如何对交易策略进行回溯测试-传奇量化

简介

回溯测试是自行制定图表和交易策略的关键要素之一。它通过以历史数据为基础的系统来重建过去可能发生的交易。回溯测试的结果会让您大致了解一项投资策略是否有效。

什么是回溯测试?

首先,如果您想进一步了解什么是回溯测试,可以阅读我们的文章《什么是回溯测试?》

简言之,回溯测试的主要目的是向您展示您的交易想法是否有效。您可首先使用以往的市场数据来了解策略的执行情况。如果这项策略看起来有潜力,那么它在实际交易环境中也可能有效。

回溯测试前要做什么?

在开始回溯测试前,您需要确定您是哪类交易者。您是自主决策型交易者还是系统型交易者?

自主决策型交易基于决策 — 交易者利用自己的判断来决定何时开仓和平仓。这是相对宽松且开放的策略,大多数决定取决于交易者对手头情况的评估。因此,回溯测试在自主决策型交易中不那么重要,因为这种策略没有严格的定义。

当然,这并非意味着如果您是自主决策型交易者,就完全不该使用回溯测试或模拟交易。这只是意味着测试结果不如系统型交易者得到的结果可靠。

系统型交易更适合进行回溯测试。系统型交易者依赖于能够定义并告知开仓或平仓时机的交易系统。系统型交易者控制策略的大部分方面,但开仓和平仓的时机完全由策略决定。您可以将简单的系统型策略看作两步:

  1. 当A和B同时发生时,进入交易。
  2. 当X发生后,退出交易。

一些交易者更偏向于这种方法。它可以消除交易中的情绪化决策,并为交易系统的盈利提供合理的保证。当然,没有任何保证是绝对的。

也正因为如此,您务必要确保您的系统中制定了有关何时开仓或平仓的具体规则。如果策略没有明确的定义,结果也会不一致。正如您所料到的,这种交易风格在算法交易中更受欢迎。

如果您想将流程自动化,您可以购买回溯测试软件 — 您只需输入自己的数据,系统会为您进行回溯测试。但在这个例子中,我们会为您介绍手动回溯测试策略。它需要花费更多功夫,但是完全免费。

如何对交易策略进行回溯测试?

一些交易员更偏向于使用Excel或Python中的代码,在这方面并没有严格的规定。您可以添加需要的数据,以及您认为有用的其他任何信息。

日期市场方向开仓止损止盈风险奖励盈亏
12/08BTCUSD做多$18,000$16,200$21,60010%20%3600
12/09BTCUSD做空$19,000$20,900$13,30010%30%-1900


我们来对一些简单的交易策略进行回溯测试:

  • 我们在黄金交叉后以第一个每日收盘价买入一枚比特币。我们认为当50天移动平均线高于200天移动平均线时,就是黄金交叉。
  • 我们在死亡交叉后以第一个每日收盘价卖出一枚比特币。我们认为当200天移动平均线低于50天移动平均线时,是死亡交叉。

如您所见,我们还定义了策略有效的时间范围。也就是说,如果黄金交叉出现在4小时图表上,就不会被我们视为交易信号。

此示例中的时间段始于2019年初。然而,如果想获得更准确可靠的结果,您可以追溯到更远的比特币历史价格走势。

现在,我们来看一下系统在这一时段内产生了哪些交易信号:

  • 买入 @~$5,400
  • 出售 @ ~$9,200
  • 买入 @ ~$9,600
  • 出售 @ ~$6,700
  • 买入 @ ~$9,000

以下是我们的信号在图表上叠加时的视图:

如何对交易策略进行回溯测试-传奇量化

我们的第一笔交易获利约$3800,而第二笔交易将产生$2900的损失。这意味着我们的已实现盈亏是$900。

我们的交易也很活跃,截至2020年12月,未实现盈利约为$9000。如果我们坚持最初制定的策略,就会在下一次死亡交叉时平仓。

评估回溯测试结果

那么,这些结果说明了什么?我们的策略本应带来合理的回报,但到目前为止还没有任何出色的表现。我们可以通过执行目前的未平仓交易,来大幅增加我们的已实现盈亏,但这与回溯测试的目的背道而驰。如果我们不坚持按计划执行,结果也不会可靠。

即便这只是一项系统策略,也依然应该考虑当时的特定背景。从$9600到$6700之间的未盈利交易发生在2020年3月由新冠肺炎疫情导致的崩盘期间。这种黑天鹅事件可能会对任一交易系统产生巨大的影响。也正因为如此,我们要通过进一步回溯来了解这种亏损是属于异常情况,还是只是策略的副作用。

这是一次简单的回溯测试过程的示例。如果我们回溯并用更多数据对其进行测试,或纳入其他技术指标可能会使其产生更强的信号,从而让策略变得更有前景。

但是回测结果还能告诉您什么?

  • 波动性测量:您的最大上升和回撤。
  • 风险敞口:为执行该策略,您需要从整个投资组合中分配的资金量。
  • 年化回报:此策略在一年内的百分比回报。
  • 盈亏:系统中有多少交易可能盈利,有多少交易可能会亏损。
  • 平均成交价格:您在策略中成交的开仓和平仓均价。

请知晓:上述示例不足以详尽说明回溯测试的作用。具体需要追踪哪些指标,完全取决于您。无论如何,您在有关设置的交易日记中记录的详细信息越多,您从得到的结果中学习的机会就越多。有些交易者对自己的回溯测试非常严格,这一点从他们的结果中可能也会有所体现。

最后要考虑的一个因素是优化。如果您已阅读我们的回溯测试文章,就会知道回溯测试和前瞻性测试(模拟交易)之间的区别。

结语

我们已经了解了对交易策略进行手动回溯测试的基本流程。但请务必记住,过去的表现不能代表未来的表现。

市场环境瞬息万变,如果您想改进交易策略,就必须顺应这些变化。您也需要谨记不能盲目信任数据。评估结果时,常识(虽然经常被忽视)也是一种非常有用的工具。

延伸阅读