如何负责任地回测斐波那契支点?
什么是斐波那契支点,以及你究竟在回测什么?
斐波那契支点是一组从参考区间(例如前一周期的最高价、最低价和收盘价)计算得出,并通过斐波那契比率映射到特定价格水平的指标。负责任的回测始于区分两个概念:
- 稳定的机制:将输入价格转换为支点水平的公式。
- 可变的上下文:市场如何表现、适用的交易成本,以及交易(如果你进行模拟)如何执行。
要负责任地进行回测,你必须明确你要测试的内容。常见的选择包括测试价格是否对这些水平产生反应(例如触及或反弹行为),或测试一个决策规则(例如基于这些水平的入场/出场)。即使你避免给出交易建议,任何“决策规则”本质上仍是一种策略,因此你的评估必须与你所模拟的确切规则相匹配。
机制:定义输入、假设和回测数据集
负责任的回测始于以清晰的语言写下所有输入和假设。
- 参考价格:明确哪些数据点定义了参考区间(例如前一周期的高/低/收),以及这些数据来自哪个交易时段边界。
- 时间对齐:确保每个计算出的支点水平在决策时刻是已知的。这可以避免前瞻偏差,即未来信息意外地泄露到早期计算中。
- 频率:定义支点是按日、按周还是其他周期计算,以及你针对哪种K线周期(或tick聚合)进行评估。
- 滑点和点差(成本):如果你模拟交易执行,就需要一个成本模型。否则,结果可能仅反映理想化的成交情况。
- 事件规则:明确如何检测“触及”。例如,如果价格在一根K线内穿过某个水平,是否视为触及?检测方法会影响结果。
在此阶段,成本和“事件检测”是你要测试的机制的一部分。应将它们视为可审计和可修改的假设。
证据:使用偏差控制和样本外检查
历史模式并不能保证未来结果,因此你的评估应侧重于稳健性。
关键控制措施包括:
- 前瞻偏差检查:仅使用决策时刻前可用的数据重新计算支点,并验证你的流程是否强制执行了时间顺序。
- 参数敏感性:如果你允许选择包含哪些比率,或如何处理多次触及,需测试表现是否依赖于特定的精细调参配置。
- 样本外验证:将数据集划分为训练集(用于设定假设或选择规则)和测试集(用于评估)。在训练集上选定参数后,锁定参数并仅在测试集上评估。
- 市场机制覆盖:验证结果在不同波动性和趋势环境下的表现。仅在一种机制下有效的策略更容易过拟合。
保持可信度的一个实用方法是记录生成结果所用的每一个假设:支点计算方法、交易时段边界、事件规则、成本模型和选择标准。
局限性和风险:至少应预期一种可能的失败模式
负责任的回测还要求说明哪些因素可能导致结论失效。主要的失败模式包括:
- 数据和对齐错误:时区、交易时段截断或K线构建中的微小错误可能导致计算出的支点水平偏移,从而产生误导性的“触及”。
- 隐藏成本和执行不匹配:点差、滑点和部分成交可能显著改变实际结果,与纸面水平产生差异。
- 对历史数据过拟合:如果你反复调整输入以优化历史表现,可能会构建出一个仅能解释过去数据但在其他情况下失败的规则。
- 市场机制变化:当波动性、流动性或参与者行为改变时,价格与支点水平之间的关系可能发生变化。
即使计算本身是正确的,这些局限性也可能使回测结论变得不稳定。
验证和下一个应提出的问题
为了独立验证结论,你应该能够不依赖他人结果而回答以下检查问题:
- 你能从指定的参考价格和交易时段边界重现支点水平吗?
- 你的测试是否避免了前瞻偏差(每个计算值必须在决策时刻已知)?
- 你的评估是否包含透明的成本模型和真实的事件检测?
- 结果在样本外周期是否一致,并且在多种市场机制下是否持续有效?
如果你能完成这些步骤,你就是在测试该方法的行为,而不是无意中验证自己的假设。