学习如何对交易策略进行回测归结为一个原则。你将规则写下来,按照书写的方式在历史数据上重放,记录每一次模拟交易,然后用惩罚运气的指标来评估结果。其他任何东西都不能算作回测。滚动图表并记住好的入场点只是记忆练习,而不是测试。
这些步骤简单易列,却容易出错。大多数 flawed backtests 在数据质量、样本大小或从未来泄露回来的信息上失败。 规则。
本指南逐步讲解如何全面回测交易策略。内容包括手动和自动测试、所需历史数据的长度、值得关注的绩效指标、前瞻偏差,及在任何真实资本投入之前的样本外验证。
快速问答:如何回测交易策略
六个步骤涵盖了整个过程,跳过其中任何一步都会使结果失效。
- 将策略写成明确的入场、出场、仓位和过滤条件规则。
- 收集市场和实际交易时间框架的干净历史数据。
- 逐条重放规则,而不知后续发生的事情。
- 记录每一次模拟交易,包括你宁愿忘记的亏损交易。
- 用风险调整的表现指标来评分结果,而不仅仅是总回报。
- 在策略从未见过的数据上重新测试,才可以冒任何实盘风险。
第三步是大多数测试失败的地方,第六步是大多数人提前停止的地方。
回测能证明什么,不能证明什么
回测回答了一个狭窄的问题。它告诉你一个固定规则集在特定历史片段中的表现。这确实很有用,因为它过滤掉了那些完全无效的想法。
它并不告诉你接下来会发生什么。监管机构出于原因反复强调这个警告, 过去的表现并不代表未来的结果 这一点对于你自己的模拟记录适用,力度十足。
回测也无法模拟你的行为。历史曲线从不犹豫,从不扩大止损,也从不在连续三次亏损后跳过交易。但你会。被测试规则与实际交易规则之间的差距是失望的最大来源。
手动回测与自动回测
| 因素 | 手动回放 | 自动测试 |
|---|---|---|
| 设置时间 | 几分钟即可开始。 | 需要数小时或数天来构建。 |
| 样本数量达到 | 几十笔交易。 | 数千笔交易。 |
| 偏见风险 | 高,因为你看到了图表。 | 低,如果代码是诚实的。 |
| 最佳用途 | 理解一个交易 setup 的感觉。 | 衡量是否存在优势。 |
| 主要弱点 | 样本小且带有美好幻想。 | 默默的错误使结果看起来更好。 |
手动回放有一个实际的优势。它迫使你逐条坐下来面对实时图表的模糊性,这教会你哪些规则不够明确。自动化测试是达到足够样本量以区分技能与噪声的唯一方法。
大多数交易者都需要两者。先手动回放一百条数据以磨练规则,然后再通过自动化来衡量它们。
回测过程,逐步进行
这是回测交易策略的实用核心。按顺序逐步进行,并抵制在第五步之前查看结果的冲动。
第一步:将想法转化为陌生人可以遵循的规则
每个条件都需要一个数字。"在强回调时入场"是无法测试的。"在价格恢复高于20期均线并连续两次收盘走低后入场"是可以测试的。包括退出、止损、 仓位大小 和避免交易的过滤条件。
在再次查看图表之前先写下规则。在观察数据时写下的规则已经受到污染。
第二步:收集与交易方式相匹配的数据
使用与您打算进行实时交易相同的时间框架、相同的工具和相同的交易时段。检查是否有缺口、不良的数据和缺失的交易日。假期交易和提早收盘会扭曲日内均值,已发布的交易场所日历,如 纽约证券交易所的时间和日历 会告诉您哪些日子缩短了交易时间。
第三步:在不偷看数据的情况下回放规则
每个决策必须仅使用当时可用的信息。如果规则引用了每日收盘值,你在中午不能据此做出决策。这一约束就是测试与故事之间的全部差异。
第四步:记录每笔模拟交易
记录进场时间、出场时间、方向、大小、以风险单位计算的结果,以及交易结束的原因。没有交易日志的回测无法在后期审计,未经审计的结果在第一次出现亏损期间就会被放弃。
第五步:扣除现实成本
在每次往返交易中模拟点差、佣金和滑点损失。频繁交易带来巨额费用,SEC明确指出,费用和损失对活跃交易者影响很大(日间交易:您的资金面临风险). 仅在零成本下可行的策略是不可行的。
步骤6:评估结果并在其他地方重新测试
计算下面描述的指标。然后在一个你故意排除的时间段或工具上应用相同的规则。两者之间的一致性是你能够获得的最接近证据的东西。
样本大小、时间范围及样本外测试
任何询问如何正确回测交易策略的人都会面临两个结构性问题。多久的历史足够,如何保持其中一部分的真实性?回答这两个问题,其他过程就是账务处理。
多久的历史足够
样本大小是一个隐形杀手。三十笔交易几乎不能告诉你任何事情,因为如此长时间的好运是很普通的。一个每周进行一次交易的规则需要几年的历史才能产生一个可辩护的交易数量。
两个问题决定了时间范围。样本中包含多少笔交易,以及覆盖了多少种不同的市场条件?覆盖仅平静上升市场的测试只测量了一种制度,并称其为世界。
目标是几个几百笔交易,如果频率允许。如果不允许,就要简单明了地说明,并将结果视为暂时的。同时确认历史中至少包含一个剧烈的回撤期,因为这才是评判策略的地方。
前瞻偏差和其他隐性错误
前瞻偏差
这是指利用在决策时并不可得的信息。它通过使用实时的收盘价、通过对完整序列重新计算的指标以及通过事后修订的数据悄然渗入。结果看起来很出色,但无法重复。
解决办法是程序性的。对每个输入进行时间戳,并询问每条规则是否在当时就能知道。
生存偏差
仅测试目前仍存在的工具会将失败者从样本中剔除。从当前指数中筛选的篮子默默排除了每一个退出的公司。测得的回报因与策略无关的理由而上升。
过度拟合和曲线拟合
调整参数直到股权曲线看起来美丽是适应噪音,而非市场。一个有九个可调整设置的规则可以完美描述任何历史。优先选择少量参数,优先选择在较广泛的值邻域中有效的设置,而不是一个神奇的数字。
评估结果的绩效指标
总回报是页面上信息量最少的数字。风险调整指标告诉你策略是否可交易。
值得阅读的指标
- 每笔交易的预期值, 以风险单位表示,显示了规则的平均结果。
- 最大回撤, 最深的峰值到谷底的跌幅,决定了你能承受的损失大小。
- 胜率与收益比, 因为单独看这两个数字都没有意义。
- 最长的亏损连败, 预测了你会放弃计划的时刻。
- 交易次数, 因为其他每项指标的可靠性仅与其背后的样本有关。
一起阅读它们
高胜率与低收益比的策略在糟糕一天会把所有收益吐回。深层回撤与强劲总回报可能只是伪装的杠杆。借来的资金在两个方向上都放大风险,而美国证券交易委员会对 保证金交易 的解释涵盖了提前结束杠杆实验的强制平仓机制。
保留未触及的数据
在开始之前划分数据。先在一部分数据上进行开发,然后在一部分你从未检查过的数据上进行测试。反复在保留数据上测试会毁掉其价值,因为它成为开发集的一部分。
前向验证扩展了这一理念。你在一个窗口上进行优化,在随后的窗口上进行测试,然后滚动两个窗口并重复。输出是一系列超出样本结果的数据,而不是一个单一的 flattering 数字。
预期性能下降。实时和前向结果通常比开发样本更差,而在测试中刚刚达到标准的策略将在真实环境中低于这一标准。提前建立边际。
工作示例:阅读一次回测报告
一名交易者在一个流动的期货市场上测试突破规则,历时八年。报告显示412笔交易,41%的胜率,平均盈利2.1风险单位,平均亏损1.0单位。
期望值是 0.41 乘以 2.1,减去 0.59 乘以 1.0。这个结果等于 0.861 减去 0.59,或者加上每笔交易 0.271 个单位。在 412 笔交易中,粗略计算总数约为 112 个单位。
现在应用纪律。每次往返交易的成本为 0.06 个单位,扣除约 25 个单位,剩下 87 个单位。样本中的最大回撤为 19 个单位,最长的连败次数达到 14 笔交易。
这个回撤数字是真正的发现。在每笔交易的风险为 1% 的情况下,19 个单位的跌幅代表 账户下降 19%。交易者必须提前决定是否在亏损期的第七个月继续下单。如果答案是否定的,无论期望值如何,这个策略对他们来说都是无法交易的。 每笔交易的风险, 19 个单位的跌幅为账户下降 19%。交易者必须提前决定是否在亏损期的第七个月继续下单。如果答案是否定的,无论期望值如何,这个策略对他们来说都是无法交易的。
拆分样本验证了其他结果。前六年每笔交易产生 0.29 个单位,最后两年的保留样本产生 0.18 个单位。虽然较低,但符号相同,这正是你希望得到的结果。
决策框架:这个回测是否准备好投入真实资金?
每个你可以用交易日志支持的陈述得一分。
- 规则在测试开始前已书面固定。
- 样本中包含至少几百笔交易。
- 历史覆盖了一个趋势期和一个波动期。
- 每笔交易的成本和滑点都进行了建模。
- 结果在从一开始就保留的数据上有效。
- 最大回撤是你可以忍受而不改变仓位的。
五到六分。 在模拟中小规模转向前测。
三到四分。 想法有潜力,但证据薄弱。解决最薄弱的环节并重新测试。
零到两分。 这只是一个假设,而不是策略。尚未投入资金。
在交易经过回测的策略之前需要知道的事项
干净的回测改变了你所知道的,而不是市场将要做的事。在投入资金之前,先通过 证券交易委员会建议的几个问题进行思考,特别是关于风险承受能力和你能够承受损失的资金的问题。
然后进行前瞻性测试。在实时价格下运行规则,可以揭示历史重播隐藏的实际问题。订单可能会错过,点差可能会扩大,您计划的交易不一定就是您实际获得的交易。
模拟交易是二者之间明智的桥梁。模拟交易环境让你能够在实时中进行交易,而无需冒着损失储蓄的风险,因此该策略在你的账户之前就与实时数据相遇。它不会重现真实金钱的情感负担,你应该对此期待这种差异。Pivex 正是为这一步而设计:一个有结构的评估,明确的、已公开的规则和条款。
在参与之前,请查看 Pivex 当前的项目规则,并决定模拟专有交易评估是否符合您的经验和风险限度。参与并不保证获得奖励、收入或任何特定的交易结果。