为什么回测定义在外汇交易中如此重要?
回测定义:它是什么
回测是通过应用你在实盘交易中会使用的相同决策规则,利用历史市场数据来评估一种交易方法的过程。“回测定义”之所以重要,是因为它设定了该过程中关键部分的准确定义,例如:
- 使用哪些数据(价格序列、时间戳,以及如何处理缺失数据)。
- 模拟哪些内容(入场、出场、仓位规模和订单时机)。
- 做出哪些假设(执行模型、滑点、手续费,以及是否使用买价/卖价或中间价)。
在外汇交易中,这些选择并非微不足道的细节。外汇交易涉及买价/卖价差价、连续报价和跨货币计价惯例,因此你定义回测的方式可能决定结果反映的是一个合理的流程,还是一个过于乐观的重构。
定义如何影响你可信赖的决策
一个精确的回测定义决定了你能合理支持哪些类型的结论。
首先,它影响你的测试是否时间一致。如果你的定义暗示在时间 t 计算的信号仍能使用之后才知晓的信息,测试结果可能变得不切实际地准确。这可能通过数据泄露(使用未来K线、修订后的汇率或时间戳错位)发生。
其次,它影响测试是否执行一致。假设完美成交、忽略价差和交易成本的定义会夸大表现。在外汇中,忽略成本或使用错误的价格基准(例如,将中间价当作可执行的买价或卖价)会改变预期收益和风险指标。
第三,它影响你对“结果”的理解。如果定义未明确每次计算背后的假设(包括复利方式、舍入方式,以及是否再平衡),即使两个人使用相同的基本思路,也可能得出不兼容的结果。
假设如何改变结果的现实示例
设想两个使用相同历史货币价格、对同一套规则进行的回测。
- 回测A 将执行定义为“以决策K线的收盘价成交,无手续费、无滑点”。
- 回测B 将执行定义为“在下一个可用时间点入场,使用买价/卖价,并扣除固定点差和手续费模型”。
即使规则逻辑完全相同,由于定义改变了实际的入场/出场价格和成本负担,结果也可能不同。这意味着回测定义是一个解释的边界:你不仅在测试一种策略构想,更是在测试一个具体且明确模拟的过程。
实质性局限与常见失败模式
历史回测的局限性源于其定义和市场行为本身。
一个主要局限是历史关系不能保证未来结果。市场会适应:流动性可能变化,波动率状态会转移,微观结构效应可能与历史时期不同。
第二个局限是过度拟合。如果你的定义隐含允许反复调整直到测试结果看起来良好,那么测试可能衡量的是对过去的适应,而非稳定的行为。仅靠“更多数据”无法解决此问题;它取决于你如何分离校准与评估阶段。
第三个局限是模型失配。执行、成交和成本常被简化。如果你的定义使用了不切实际的平滑执行模型,当真实订单面临不均衡的流动性或不同的成交时机时,回测可能失败。
如何在不假设确定性的情况下进行有效验证
为了独立验证,请关注评审者可根据你的描述复现的部分。
首先检查定义是否明确:
- 精确的时间:决策何时计算,订单何时假设成交。
- 价格基准:使用哪些价格,以及如何处理买价/卖价和价差。
- 成本与摩擦:手续费、价差和滑点假设。
- 数据完整性:是否存在时间错位或数据泄露。
然后检查稳健性:在不同时间段和不同波动条件下比较表现。如果结果仅在狭窄的历史窗口内出现,则表明该定义可能捕捉的是噪声,而非持久的行为。
下一个应提出的问题
如果你想将回测结果用于教育而非预测,请问:“在回测定义中的哪些假设,最有可能在实盘外汇交易中失效?”