如何负责任地回测费舍尔变换?
直接回答
负责任的费舍尔变换回测始于将稳定的指标机制与可变条件(如市场状态、数据质量和执行)区分开来。然后明确定义数据和计算规则,包含实际成本和合理的执行假设,控制常见偏差(尤其是前瞻偏差和过拟合),并在样本外验证策略。历史表现可能具有参考价值,但不能代表未来结果。
机制与定义
费舍尔变换是一种应用于有界输入序列的数学变换,将输入的变化映射到新的尺度上。在回测中,“负责任”主要体现在如何构建输入序列以及如何在时间上一致地计算该变换。
需提前明确定义输入。例如,若从基于价格区间的振荡器开始,应精确说明在每个时间步如何计算该振荡器(包括滚动窗口长度)、使用哪些源价格(如仅收盘价 vs. 基于高低价的输入),以及在初始阶段窗口不完整时的处理方式。接下来,逐步记录费舍尔变换的计算过程:中间值、任何限幅/平滑选择,以及如何处理缺失数据。
每项计算的假设必须明确。若对中间值进行归一化、限幅或平滑,需写下确切规则。若在任何环节使用离散化(四舍五入),也应予以描述。缺少这些细节时,即使两个回测都声称使用“费舍尔变换”,结果也可能大相径庭。
证据或示例:回测中应控制的因素
负责任的回测需将明确定义的方法论与一致的评估协议进行对比。
首先关注数据完整性和时间对齐。一个常见问题是无意的前瞻偏差:使用决策时刻无法获得的信息来计算指标。为避免此问题,需确保在时间 t 评估的信号仅使用在 t 或更早时间存在的输入。同时决定如何对齐指标值与执行。若指标在收盘时计算,需明确交易决策是在收盘时(使用该收盘价)还是在下一个开盘时执行。
其次,包含成本和执行假设。即使不指定具体经纪商,也可将成本建模为每笔交易的摩擦(佣金、点差、滑点)。关键是使假设在整个样本中保持一致,并测试敏感性:在不同合理成本水平下运行回测,观察结论是否依然成立。
偏差控制对自适应或参数化指标尤为重要。若使用与评估相同的数据显示调参(如回溯周期长度或变换设置),则存在过拟合风险。应使用前向滚动或样本外分割:在一个时间段上调参,在未用于决策的独立时间段上评估。考虑多次分割(多个时间段)以降低结果仅由某一有利窗口驱动的可能性。
局限性与风险
历史关系不能确立未来结果。即使编码严谨,回测仍可能因以下原因失败:
- 过拟合:在一个周期优化的参数选择可能无法迁移。
- 非平稳性:市场行为随状态变化;相同的输入-输出映射可能表现不同。
- 数据与微观结构不匹配:实际执行与回测的理想化假设存在差异。
- 实现模糊性:指标计算规则、四舍五入或预热处理的微小差异可能导致结果变化。
一个显著局限是,回测常将复杂的执行过程简化为理想假设。若结论依赖对成本或时序高度敏感的精细绩效指标,其稳健性可能较低。
验证或下一步问题
要独立、负责任地验证费舍尔变换回测,可遵循以下检查清单:(1)公布确切的输入定义和计算步骤;(2)验证时间对齐以防止前瞻偏差;(3)包含实际成本建模并测试敏感性;(4)使用样本外或前向滚动测试进行验证;(5)用不同参数值或非重叠替代周期对方法进行压力测试。
若想进一步深入,一个有用的问题是:在你的实现中,费舍尔变换使用的具体输入序列是什么?改变该输入(或其窗口规则)会如何影响结果?