
交易中的回测:如何回测交易策略而不自欺欺人
交易中的回测——完整指南:什么是回测、如何分步执行、需要分析哪些指标,以及7个导致测试显示盈利而实际交易亏损的错误。附有真实策略的示例和截图。
什么是回测以及为什么需要它
回测是在历史市场数据上模拟交易策略。交易者设定一组规则:进场条件、出场条件、止损和止盈水平、仓位大小。软件根据价格档案运行这些规则,并生成报告:执行了多少笔交易、盈利百分比、最大回撤和总收益率。
回测的价值不在于预测未来。市场没有义务重复过去。价值在于:回测筛选掉明显不可行的策略。如果一个算法在每个价格走势都已知的数据上都无法盈利,那么在实盘市场条件下期望盈利毫无意义。
交易中的回测同时解决多个实际问题。它允许你在投入真金白银之前验证一个假设。帮助调整策略参数——移动平均线长度、指标阈值、止损宽度。提供客观的风险画面:不是”我认为回撤会很小”,而是测试期间最大资本下降的具体数字。
回测的类型
手动回测
交易者打开历史图表,回溯时间,按照自己的规则手动确定进出场点。每笔交易结果记录在电子表格中。
这种方法人人可用——既不需要编程也不需要专业软件。但非常耗时,数据量有限(实际上只能处理50-100笔交易),并且容易受到认知偏差的影响,下文将详细讨论。
自动化回测
将策略参数输入专业平台,平台自动根据历史数据运行并生成报告。测试数百笔交易只需几分钟,而非几天。
例如在Skyrexio中,流程如下:命名策略、选择基础资产、指定交易所手续费和测试期间,然后启动模拟。

几分钟后,平台会提供详细报告,包含数十项指标、权益曲线图和逐笔交易统计。
算法回测
策略用编程语言描述——Python、R或Pine Script(TradingView)。代码自动执行所有计算。这种方法提供最大灵活性,但需要开发技能,对大多数交易者来说通常过于复杂。
分析结果中的哪些指标
获得回测报告只是开始。关键是知道如何正确解读它。我们以EMA+SuperTrend策略在BTC/USDT(现货、两年、166笔交易)的真实测试为例来分析关键指标。

净收益与基准比较
策略收益率为+144.67%。然而这个数字本身说明不了什么。背景很重要:同期BTC的买入持有策略显示-22.46%。167个百分点的差距表明,在此期间主动管理大幅超越了被动持有。

注意”手续费:90.99 USDT”这一行。这些是已计入最终结果的实际成本。如果不计算它们,收益率会明显更高——而且具有误导性的乐观。
利润因子
总利润与总亏损的比率。在我们的例子中:总利润1,008.02 USDT,总亏损326.15 USDT。利润因子 = 3.09——每亏损一美元,策略赚取三美元。
参考标准:高于1.5表明策略可行,高于2.0——表示良好。在交易笔数较少时高于5.0是警示信号(可能存在过度拟合)。
胜率与平均交易比率
策略胜率为46.99%。不到一半的交易是盈利的。直觉上这似乎很糟糕。但让我们深入分析。

平均盈利交易:+4.55%。平均亏损交易:-1.56%。比率接近3比1。策略赢得较少,但每次盈利是每次亏损的三倍。数学站在策略一边——在这个比率下,即使40%的胜率也能提供正期望值。
另一个值得注意的细节:盈利交易平均持有62.87小时,亏损交易在21.47小时内平仓。策略本身就能让利润奔跑并截断亏损——无需交易者的情绪干预。
比率:夏普、索提诺、卡尔马

夏普比率(0.65)评估经总波动率调整后的收益。索提诺比率(2.04)仅考虑下行波动率,对交易者更有参考意义:高于2.0被认为是强劲的。卡尔马比率(5.38)将年化收益除以最大回撤——越高,策略利用可承受风险的效率越高。
交易详情

逐笔交易统计允许你单独分析每笔交易:进场点、出场点、是否加仓、触发的止损或止盈、手续费金额。这种详细程度在手动测试中无法实现。
图表上的交易可视化

回测交易可以叠加在图表上——这使你能够直观评估策略逻辑与市场走势的匹配程度,并快速发现算法表现不佳的区间。
扭曲回测结果的7个错误
既然我们已经分析了指标并理解了如何解读报告,接下来让我们看看什么会使所有这些分析变得毫无意义——那些将回测从有用工具变成虚假信心来源的错误。
1. 不计算手续费和滑点的回测
每次进出场都有成本。大多数交易所的现货手续费在每笔交易0.05%到0.1%之间。乍一看微不足道。
但在我们的例子中,两年内166笔交易的手续费为90.99 USDT——以约400 USDT的初始资金计算,这是相当可观的比例。加上滑点:另外45.25 USDT。总计约136 USDT的实际成本,已计入结果。
不计算这些成本的回测会将最终收益夸大数十个百分点。一个不含手续费显示+25%的策略,在扣除后很容易变成亏损——尤其是在交易次数较多时。
2. 参数过度拟合
你调整策略,得到中等结果。调一个参数——更好。再调一个——更好。一小时调整后,屏幕显示利润因子7.0和胜率82%。
实际上,你教会了算法完美回放过去的一段特定数据。它记住了图表上的每个异常。在新数据上,这一切毫无用处。
过度拟合的迹象:交易笔数少时利润因子高于5.0;在少于200笔交易的样本上夏普比率高于4.0;参数微小变化(±10-20%)就会摧毁结果。
在我们的测试中,166笔交易的利润因子3.09是一个现实的、而非过度拟合的结果。
3. 测试期过短
加密市场是周期性的:牛市之后是熊市,然后是盘整。仅在一个阶段测试的策略对其他阶段毫无用处。
最短测试期为一年半到两年。EMA+SuperTrend测试涵盖2024年3月至2026年3月,包括BTC历史新高、深度回调和数月的横盘走势。所有这些阶段在权益曲线上都清晰可见。
在牛市最后三个月测试不是在检验策略,而是在检验在上涨市场中买入的能力。任何算法都能做到。
4. 前瞻偏差
在手动回测中,交易者浏览历史图表并标记入场点。形式上只看过去的数据。但大脑已经看到了图表的右侧,无意识地过滤掉不利信号。
同一策略的手动测试几乎总是比自动测试高出20-30个百分点。这不是作弊——这是一种无法通过意志力控制的认知偏差。
自动化回测完全消除了这个问题:算法按顺序处理K线,无法访问未来价格。
5. 幸存者偏差
如果你在当前的加密资产前50名上测试策略,你是在赢家身上测试。两年前在前50名但此后归零或下跌95%的币种不在你的测试中。
这系统性地夸大了结果。为减少偏差,将测试集中在具有长历史和稳定流动性的资产上——BTC、ETH。
6. 关注收益而非回撤
两种策略:A收益+100%回撤-45%,B收益+60%回撤-8%。数学上A更好。实际上几乎必然失败:交易者看到资本减半会干预,在最糟糕的时点锁定亏损。
实际回撤通常是回测的1.5-2倍。如果测试显示-8%,准备好面对-12-16%。如果显示-30%,准备好面对-45-60%。
我们的测试记录了-8.09%的回撤和连续8笔亏损交易。提前知道这些,你就不会在第五笔亏损交易时恐慌。
7. 没有前向测试
回测检验:”策略在过去有效吗?”前向测试检验:”策略在未经拟合的数据上有效吗?”
将可用时段分为两部分。在第一部分开发策略。在第二部分不做更改地验证。如果结果相当,策略具有真正的优势。如果急剧恶化,你看到的是过度拟合。
如何正确进行回测:检查清单
每一点都源于实践中犯过的具体错误。
测试期间——至少一年,必须包含不同的市场阶段。
最少交易笔数——至少100笔。更少的话统计数据不可靠。
成本核算——手续费和滑点必须始终计入,没有例外。
稳健性检查——参数±20%不应摧毁结果。
前向测试——必须在开发过程中未使用的数据上进行验证。
回撤优先——评估从回撤开始,而非收益率。乘以1.5-2倍,诚实评估你的承受能力。
本文所有截图和数据均来自Skyrexio。在该平台上,你可以在可视化构建器中搭建策略而无需编写代码,使用真实手续费和滑点运行回测,然后在前10大加密交易所启动同一策略的自动交易。从创意到实盘交易的完整闭环——在一个工具中完成。
总结
回测不是盈利的证明。它是筛选掉无效策略的过滤器。一个可靠的过滤器——如果它是无误地执行的。
在用真金白银启动策略之前,问六个问题:测试是否涵盖至少两年?交易笔数是否超过100?手续费是否已计入?利润因子是否在合理范围内(1.5-4.0)?参数是否对变化具有稳健性?前向测试是否通过?
六个”是”——有理由谨慎地以最小仓位启动。少于六个——需要完善策略。
