- 2024 年 6 月 2 日
- 发布者: ChainEpic
- 类别: 名词解释和科普
您是否认为自己对市场有不错的想法,但却不知道如何在不损失真金白银的情况下将其付诸实践?了解如何对交易策略进行回溯测试是出色系统交易者的基本能力。
回溯测试背后的前提是过去有效的方法在将来也可能适用。但您要如何进行回溯测试,又该如何评估结果呢?让我们来了解一下简单的回溯测试流程。
简介
回溯测试是自行制定图表和交易策略的关键要素之一。它通过以历史数据为基础的系统来重建过去可能发生的交易。回溯测试的结果会让您大致了解一项投资策略是否有效。
什么是回溯测试?
首先,如果您想进一步了解什么是回溯测试,可以阅读我们的文章《什么是回溯测试?》
简言之,回溯测试的主要目的是向您展示您的交易想法是否有效。您可首先使用以往的市场数据来了解策略的执行情况。如果这项策略看起来有潜力,那么它在实际交易环境中也可能有效。
回溯测试前要做什么?
在开始回溯测试前,您需要确定您是哪类交易者。您是自主决策型交易者还是系统型交易者?
自主决策型交易基于决策 — 交易者利用自己的判断来决定何时开仓和平仓。这是相对宽松且开放的策略,大多数决定取决于交易者对手头情况的评估。因此,回溯测试在自主决策型交易中不那么重要,因为这种策略没有严格的定义。
当然,这并非意味着如果您是自主决策型交易者,就完全不该使用回溯测试或模拟交易。这只是意味着测试结果不如系统型交易者得到的结果可靠。
系统型交易更适合进行回溯测试。系统型交易者依赖于能够定义并告知开仓或平仓时机的交易系统。系统型交易者控制策略的大部分方面,但开仓和平仓的时机完全由策略决定。您可以将简单的系统型策略看作两步:
- 当A和B同时发生时,进入交易。
- 当X发生后,退出交易。
一些交易者更偏向于这种方法。它可以消除交易中的情绪化决策,并为交易系统的盈利提供合理的保证。当然,没有任何保证是绝对的。
也正因为如此,您务必要确保您的系统中制定了有关何时开仓或平仓的具体规则。如果策略没有明确的定义,结果也会不一致。正如您所料到的,这种交易风格在算法交易中更受欢迎。
如果您想将流程自动化,您可以购买回溯测试软件 — 您只需输入自己的数据,系统会为您进行回溯测试。但在这个例子中,我们会为您介绍手动回溯测试策略。它需要花费更多功夫,但是完全免费。
如何对交易策略进行回溯测试?
您可以通过此链接找到Google试算表电子表格模板。您可基于这一基本模板来创建自己的模板。它可以让您大致了解回溯测试试算表可能包含哪些信息。一些交易员更偏向于使用Excel或Python中的代码,在这方面并没有严格的规定。您可以添加需要的数据,以及您认为有用的其他任何信息。
日期 | 市场 | 方向 | 开仓 | 止损 | 止盈 | 风险 | 奖励 | 盈亏 |
12/08 | BTCUSD | 做多 | $18,000 | $16,200 | $21,600 | 10% | 20% | 3600 |
12/09 | BTCUSD | 做空 | $19,000 | $20,900 | $13,300 | 10% | 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月由新冠肺炎疫情导致的崩盘期间。这种黑天鹅事件可能会对任一交易系统产生巨大的影响。也正因为如此,我们要通过进一步回溯来了解这种亏损是属于异常情况,还是只是策略的副作用。
这是一次简单的回溯测试过程的示例。如果我们回溯并用更多数据对其进行测试,或纳入其他技术指标可能会使其产生更强的信号,从而让策略变得更有前景。
但是回测结果还能告诉您什么?
- 波动性测量:您的最大上升和回撤。
- 风险敞口:为执行该策略,您需要从整个投资组合中分配的资金量。
- 年化回报:此策略在一年内的百分比回报。
- 盈亏:系统中有多少交易可能盈利,有多少交易可能会亏损。
- 平均成交价格:您在策略中成交的开仓和平仓均价。
请知晓:上述示例不足以详尽说明回溯测试的作用。具体需要追踪哪些指标,完全取决于您。无论如何,您在有关设置的交易日记中记录的详细信息越多,您从得到的结果中学习的机会就越多。有些交易者对自己的回溯测试非常严格,这一点从他们的结果中可能也会有所体现。
最后要考虑的一个因素是优化。如果您已阅读我们的回溯测试文章,就会知道回溯测试和前瞻性测试(模拟交易)之间的区别。
结语
我们已经了解了对交易策略进行手动回溯测试的基本流程。但请务必记住,过去的表现不能代表未来的表现。
市场环境瞬息万变,如果您想改进交易策略,就必须顺应这些变化。您也需要谨记不能盲目信任数据。评估结果时,常识(虽然经常被忽视)也是一种非常有用的工具。