如何负责任地回测麦金利动态指标
定义麦金利动态指标和确切的回测目标
麦金利动态(Mcginley Dynamic)是一种移动平均风格的方法,生成一条旨在适应趋势速度变化的动态线。在你开始回测之前,必须明确定义以下两点:
- 输入序列(例如,你使用的哪个价格字段:中间价、买价、卖价或收盘价)。
- 回测目标。回测不仅仅是“计算指标”,还必须明确你要评估的决策或度量,例如特定关系的预测质量或某条规则的表现。
如果你的目标是评估指标质量而非交易表现,请选择一个可衡量的目标,例如该线在参考序列之上/之下的频率,或计算出的斜率是否与后续走势一致。无论你选择何种目标,都应在开始前明确说明,以避免在看到结果后改变评估标准。
机制:选择可复现的数据、重采样和规则
负责任的回测始于可复现的机制。
数据粒度与对齐
- 使用一个统一的时间框架(例如,小时K线),并说明指标是从K线收盘价计算,还是从K线内时间点的近似值计算。
- 如果你使用K线结束时的价格,请确保信号(或度量)的时间戳正确,避免无意中使用未来信息。
参数假设 麦金利动态通常涉及一个控制响应速度的参数(通常在描述中表示为常数)。即使你保持指标公式不变,也必须说明:
- 所选的参数值。
- 这些值是否在所有测试周期中保持一致。
成本模型 忽略摩擦的回测可能产生误导性结果。至少应包括:
- 作为每次进出成本的点差/滑点代理。
- 注明成本是否在你操作的K线中应用。
持仓与执行规则 如果你测试交易规则,需定义:
- 订单何时被视为成交(在收盘时、下一个开盘时,或你文档中说明的某种近似方式)。
- 如何处理单个时间框架内的多个信号。
证据与示例方法:比较样本内与样本外
由于历史关系不能保证未来结果,严谨的方法应将模型选择与评估分开。
实用结构
- 样本内(训练)期:选择参数值和评估规则。
- 样本外(测试)期:应用这些固定选择,不再进一步调整。
- 使用前向滚动(walk-forward)计划在多个时间段重复此过程。
这可以减少因过拟合而产生良好结果的可能性。如果你在看到测试表现后重新调整参数,测试的意义将被削弱。
偏差控制
- 无前瞻:确保用于决策的每个值在当时都已可用。
- 固定规则集:在观察结果后不更改目标。
- 一致的数据处理:在所有周期中以相同方式处理缺失数据。
压力测试 在结果可能脆弱的情况下进行额外检查:
- 市场状态转换(慢趋势 vs. 快趋势环境)。
- 突然的点差扩大和成本假设。
- 不同的流动性周期(如果你的数据集能区分它们)。
预期的局限性与失败模式
即使有严谨的控制,回测仍可能以可预见的方式失败。
交易成本敏感性 许多基于指标的策略其优势可能小于实际交易成本。点差/滑点假设的微小变化可能导致结论反转。
数据质量与构建问题 回测对价格序列的构建方式(中间价 vs. 可交易报价)可能敏感。缺失K线或时间戳错位可能产生虚假模式。
对历史的过拟合 如果你尝试大量参数值和选择标准,可能会“发现”一个适合过去但无法泛化的模式。
非平稳性 市场动态随时间变化。一个在某种市场状态下表现良好的指标,在另一种状态下可能表现不同,尤其是当市场波动性或趋势结构发生变化时。
验证与后续步骤
为验证你的回测是否负责任,请检查你是否能独立解释和复现它:
- 你能说明数据选择、指标机制、参数值和执行时机。
- 你能证明结果来自样本外评估,而不仅仅是样本内调优。
- 你能列出至少一种该方法可能失效的情景(例如:更高成本、不同价格输入或市场状态变化)。