跳转到正文

什么是回测?如何如实回测加密货币策略

回测详解:用历史价格测试交易规则,了解许多测试忽略的手续费和滑点、如何解读结果,以及哪些错误会造成误导。

简短回答

回测会将你的交易规则应用于历史价格,查看它们的表现:执行了哪些交易、计入成本后的结果,以及期间的最大回撤。可靠的回测会计入真实手续费和滑点,将结果与单纯持币进行对比,并使用不止一个时间段。过去的结果无法预测未来的结果。

什么是回测

回测是指将一组交易规则应用于历史价格,看看这些规则会产生怎样的结果。软件会逐个价格回放历史行情,严格按照规则运行,并记录规则会执行的每笔交易、每笔交易的成本,以及账户可能会如何增长或缩水。

回测回答一个问题:**计入成本后,这些规则在过去是否有效?**这是筛掉不理想策略成本最低的方法。如果一套规则在过去两年里亏了钱,它可能不是一个好的起点。

回测无法回答这些规则下个月是否仍然有效。市场会变化,适用于某个时期的规则可能在下个时期失效。因此,回测之后应该进行模拟交易,而不是投入真实资金。

回测如何运作

  1. **选择市场和时间段,**例如查看 Binance 上 BTC/USDT 过去 2 年的行情。
  2. 准确写明规则。“当 BTC 在 24 小时内下跌 5% 时买入,价格达到买入价上方 4% 时卖出,跌至买入价下方 6% 时止损,最多同时持有 2 笔买入仓位。”
  3. **重放价格走势。**测试会在每个步骤检查规则是否触发,并模拟以当时的价格下单。
  4. **计入成本。**每笔模拟订单都会计入交易所手续费和滑点预留。滑点是预期成交价与实际成交价之间的差额。
  5. **汇总结果。**测试会报告该时间段内的结果、交易次数、盈利交易占比,以及期间从高点到低点的最大跌幅。

如何客观解读回测结果

有四个数字比醒目的结果更重要:

  • **回测周期。**不说明周期的结果没有意义。包含市场暴跌的 12 个月,与价格持续上涨的 12 个月截然不同。
  • **最大跌幅。**也称最大回撤,指价格从高点到恢复前的最大跌幅。它能告诉你,实际执行该策略可能要承受多大的压力。TradeCorgi 会以与结果同样醒目的字号显示这一数据,绝不会把它藏在小字里。
  • **与持有的比较。**将策略与一开始买入并一直持有该币进行比较。许多规则在上涨行情中的表现不如持有,只在下跌行情中有所帮助。如果你了解这一点,这也未必有问题。
  • **交易次数。**5 笔交易只是个例。50 笔交易才开始能说明一些问题。回测交易次数很少的策略,几乎没有经过检验。

让回测结果产生误导的常见错误

  • 漏算手续费和滑点。 这是最常见的美化结果的错误。若一条规则每天交易,每笔订单的手续费为 0.1%,每次完整买卖大约要支付 0.2% 的手续费。一年下来,这可能完全抵消原本不大的优势。
  • 只测试一个时间段。 应在不同时间段测试同一套规则,例如上涨的一年、下跌的一年和横盘的一年。如果规则只在其中一个时间段有效,那就是在押注类似的市场行情会再次出现。
  • 过度拟合。 如果你不断调整数字,直到结果看起来完美(用 4.7% 代替 5%,用 3.9% 代替 4%),你很可能是在拟合过去,而不是发现规律。优先选择数值取整、简单易懂,并且在一系列数值范围内都有效的规则。
  • 前视偏差。 如果测试使用了规则当时不可能掌握的信息,例如中午就使用当天的收盘价,测试结果总会比现实表现更好。
  • 忽视最大回撤。 一项策略最终收益更高,但过程中曾下跌 40%,大多数人可能会在低点放弃它。

示例详解

以 BTC 逢低买入策略为例,在 Binance 上回测 90 天,每笔买入和卖出收取 0.1% 手续费,每笔订单计入 0.05% 滑点:

  • 这套规则共交易 9 次:6 笔盈利,3 笔触发止损。
  • 在这 90 天里,扣除手续费后,账户最终比开始时高 6.8%。
  • 同样 90 天内,单纯持有 BTC 最终高出 3.1%。
  • 期间最大回撤为从高点下跌 4.9%,单纯持有的最大回撤则为 10.7%。

客观来看,在这一个 90 天周期内,这套规则的表现优于持有不动,最大跌幅也更小,但单个周期只有 9 笔交易,证据还不充分。下一步可以延长回测周期,然后进行模拟交易。这只是示例,并非真实结果。

在 TradeCorgi 上进行回测

描述策略并确认规则后,TradeCorgi 会自动进行回测:

  • **始终计入手续费,**使用你所处等级在交易所适用的费率,并计入滑点和交易所的最低下单金额。
  • **在同一张图表上展示持有该币种的表现,**方便你判断这些规则是否带来了额外效果。
  • 同时展示最大回撤和结果。
  • **各套餐可用历史数据:**Sandbox 为 90 days,Copilot 为 2 years,Autopilot 为 4 years,Pro 使用交易所的全部历史数据。

每项结果都会标注对应的时间段和手续费。回测结果良好后,你可以开始模拟交易,但不能直接开始实盘交易。

回测检查清单

  • 明确注明了回测时间段,且涵盖不止一种市场行情。
  • 每笔交易都计入手续费和滑点。
  • 回测结果与单纯持有该币种的结果进行了比较。
  • 展示了最大跌幅,而且你能接受这个幅度。
  • 交易次数足够多,结果才有参考意义。
  • 规则简单、数字取整,而不是精细调到小数点。
  • 下一步是模拟交易,而不是投入全部实盘资金。

常见问题

回测结果好就能证明策略有效吗?

不是。它会显示这些规则在过去某一段时间内计入成本后的表现。未来情况可能不同,因此应把回测当作筛除糟糕想法的工具,而不是证明好想法有效的依据。

加密货币回测应使用多长时间的历史数据?

数据需要涵盖上涨、下跌和横盘行情。对于加密货币,这通常意味着至少一年,最好是数年。TradeCorgi 的 Sandbox 提供 90 天数据,Copilot 提供 2 年,Autopilot 提供 4 年,Pro 则提供交易所的完整历史数据。

为什么要计入手续费和滑点?

因为每笔真实交易都要支付这些费用。一条频繁交易的规则,扣除成本前看起来可能不错,扣除成本后却可能亏损。TradeCorgi 的回测始终会计入交易所手续费和滑点。

什么是过拟合?

不断调整规则,直到它们与历史价格完美契合。结果在测试周期内看起来非常出色,但之后通常会令人失望,因为规则学到的是噪声,而不是真实规律。

我可以免费回测吗?

可以。免费的 Sandbox 计划使用 90 天历史数据进行回测,包含手续费,并可运行一个纸面交易代理。

回测结果应该和什么进行比较?

将策略与同一时期单纯买入并持有同一种币进行比较。如果计入手续费后,这些规则的表现无法超过持有,或者只有承受大得多的最大跌幅才能胜过持有,那么运行这些规则可能并不值得。

将此策略作为智能体试用

使用以下产品实践本指南: BTC 逢低买入 策略会先以模拟交易的方式运行,使用虚拟资金。

BTC 逢低买入

Binance 上的 BTC/USDT

模拟交易
入场
BTC 在 24 小时内下跌 5% 时买入
数量
每次买入 $50,最多同时持有 2 笔未平仓买入
退出
高于买入价 +4% 时卖出
止损
低于买入价 -6% 时卖出
每日亏损限额
$25,达到后交易代理暂停,直到明天
v1,于 Oct 27 确认