如何负责任地进行WMA回测?
什么是WMA回测
WMA代表加权移动平均(Weighted Moving Average)。移动平均是一种基于近期观测值构建的平滑时间序列;“加权”意味着较新(或特定)的观测值根据所选的加权方案,比旧的观测值具有更大的权重。
回测是将一种历史方法应用于过去数据,以衡量其在历史上表现如何的过程。对于WMA而言,这通常意味着在历史价格序列上计算WMA,然后评估选定的标准(例如,WMA改变方向的频率、它跟踪价格的紧密程度,或基于其值构建的交易规则在过去的表现)。
负责任的回测不仅关乎产生收益。它更关注明确定义测试内容、使用现实的输入,并避免使结果看起来比实际更好的分析错误。
机制:输入、假设与可重复性
要负责任地回测WMA,首先应从机制入手,并将其记录下来,以便他人能够复现相同的结果。
- 定义所使用的价格序列(例如,收盘价对收盘价、中间价或其他一致的定义)。
- 固定WMA设置:窗口长度、加权规则,以及如何处理缺失值和WMA未定义的初始周期。
- 明确时间安排,以避免隐藏的信息泄露。实践中,你必须决定在时间 t 的WMA值是否仅使用截至 t 的可用数据计算,以及你测试的任何决策是否能在时间 t 执行,或只能在 t+1 执行。
- 说明所有计算假设(例如,是否进行四舍五入、插值或使用精确算术)。
由于市场和数据源各不相同,负责任的回测应将稳定机制(WMA公式和评估方法)与可变条件(市场行为、成本和执行细节)区分开来。
你也可以将WMA作为独立的平滑器进行回测,通过测试跟踪误差或滞后性,而不将其转化为交易“信号”。这有助于在将其与任何决策规则结合之前理解其行为。
证据:建模成本层并使用偏差控制进行测试
回测常常失败,因为它们忽略了或简化了成本层,并且无意中拟合了噪声。
包含成本和执行假设
即使不推荐交易,你的评估也应反映交易摩擦。你应该作为假设建模的常见成本组成部分包括:
- 点差和佣金(如果在你的环境中适用)。
- 滑点(信号时间与执行时间之间的价格变动)。
你还必须明确说明你的执行假设,例如:你在下一根K线的价格执行,或在包含滑点的建模成交价上执行。
如果不包含成本,回测可能会系统性地高估表现。
控制前瞻性和过拟合
常见的三种失败模式包括:
- 前瞻性偏差:使用在决策时点尚未知晓的数据。
- 过拟合:在看到结果后选择窗口长度或阈值。
- 非平稳性:结果仅适用于一种市场状态。
为减少这些问题,应使用偏差控制方法,例如:
- 前向滚动(滚动)评估:使用较早时期选择任何参数,然后在后续未见时期进行评估。
- 样本外测试:保留一部分历史数据专门用于最终评估。
- 多种市场状态:在不同时间段(例如,波动期与平静期)重复相同评估,而不是依赖单一连续周期。
局限性与风险
历史回测不能保证未来行为。即使机制严谨,基于WMA的结果仍可能因以下原因而变化:
- 市场条件演变,使历史关系无法转移。
- 数据质量参差不齐(缺失K线、公司行为、不同价格定义)。
- 执行现实与关于成交时机、滑点和流动性的假设存在差异。
WMA的一个重大局限是平滑性在响应速度和噪声抑制之间进行权衡。较长的窗口可减少短期波动,但滞后性更大;较短的窗口反应更快,但可能跟随噪声。这种权衡在某一时期可能表现良好,而在另一时期可能恶化。
另一种失败模式是将回测变成一个“是/否”信号测试,而未理解平滑器的底层行为。如果你无法解释为何评估标准会随不同输入而变化,那么回测可能衡量的是非预期的内容。
验证与实用的下一步
负责任的验证方法是能够独立回答以下问题: