如何测试突破定义?
测试“突破定义”时应关注什么
“突破”通常被描述为价格突破某个已定义的边界(例如近期高点/低点或区间极限)。而“突破定义”则是指具体的规则,它明确告诉你:(1) 边界是什么,(2) 何时算作突破发生,(3) 随后你要衡量的事件结果是什么。
要测试一个突破定义,你需要一个可量化的假设。不要问“突破是否有效”,而应测试你的定义是否在明确假设下,相比基准条件,能产生一致且显著不同的行为表现。
一个实用的假设格式如下:
- 如果价格在规则X(你的定义)下突破了某个边界,那么在固定时间范围内,所测得的结果Y的分布将与基准情况(例如随机时间点或非突破情形)下的分布有显著差异。
这种方法能保持机制稳定,并减少评估过程对主观叙述的依赖。
突破定义的机制与组成部分
在讨论影响之前,需先以可操作的方式定义概念。一个突破定义通常至少包含以下四个要素:
- 边界构建(边界是什么?)
你需要明确以下可变组件的取值:
- 回溯窗口长度(你用多远的历史数据来计算近期范围/高点/低点)。
- 边界是基于收盘价、K线内极值,还是混合计算。
- 是否在计算边界时排除当前评估K线(以避免数据泄露)。
- 突破触发条件(何时算作突破?)
你必须明确:
- 突破规则(严格大于/小于边界,还是大于等于)。
- 价格类型(最高价/最低价 vs 收盘价)。
- 是否允许在突破前多次触及边界才计为有效突破。
- 测量时间范围(之后会发生什么?)
你必须选择一个固定的时间范围以减少歧义:
- 下一根K线、N根K线后,或直到达到止损/止盈事件。
- 如果使用事件驱动退出,必须明确定义事件逻辑(例如首次触及某水平)。
- 结果度量指标(如何衡量成功?)
避免使用“好交易”这类模糊结果。应转换为明确的指标,例如:
- 在测量期内的最大有利波动(MFE)和最大不利波动(MAE)。
- 价格是否从突破点达到某一阈值。
- 基于假设的入场和出场价格计算的实现收益代理值。
关键点:将上述每一项选择都视为假设的一部分。如果你更改了边界、触发条件、时间范围或度量指标,你就不再是在测试同一个“突破定义”。
实证与示例测试设计(无需实时数据)
你可以使用历史价格序列测试突破定义,但方法必须控制时间依赖性。
步骤1:建立代表“无特殊突破”的基准
建立基准至关重要,因为许多市场走势与你的规则无关。常见的基准方法(概念性,非规定性)包括:
- 评估非突破时段:在没有突破发生时应用相同的测量时间范围。
- 使用打乱或随机化的触发时间概念:将你的突破条件结果与具有相同波动率环境的随机时段结果进行比较。
目标不是“证明”突破总能预测方向,而是估计规则X是否改变了结果Y的概率分布。
步骤2:按时间划分数据为训练、验证和测试集
市场行为随时间变化。稳健的方法应使用不同时段:
- 开发阶段(训练/验证):优化阈值和参数值。
- 最终测试:仅评估一次,不再进行调整。
不要在同一时间段内同时进行评估和调优。否则,测试结果将只是对该特定时期的过拟合度量。
步骤3:明确并包含成本计算
即使你不使用实时数据,也必须说明交易成本和执行假设,因为突破测试对微小优势非常敏感。
至少应在结果代理值中包含成本模型,例如:
- 点差:假设买入和卖出执行价格之间的差额。
- 滑点:突破触发时间与假设成交价之间的额外偏差。
- 滚动/融资成本在某些司法管辖区和工具中可能显著;若无法支持,保持模型简单并说明此局限性。
假设规则:任何示例计算都必须明确说明所使用的成本假设。否则,两个人运行“相同”测试可能得到不可比的结果。
步骤4:评估分布差异,而不仅仅是一个数值
单一汇总值(如平均结果)可能掩盖重要结构。应计算多个视角:
- 事件频率(在你的定义下突破发生的频率)。
- 结果分布形态:尾部很重要,因为突破可能产生罕见的大行情或频繁的小幅失败。
- 条件结果:若能一致定义市场状态,则分别计算不同状态下的平均结果。
步骤5:进行参数敏感性和稳健性检查
一个好的测试应包含一些变化,如果定义有意义,这些变化不应导致结论剧烈改变。
例如,一次只改变一个要素:
- 回溯窗口长度的小范围变化。
- 阈值严格性(突破 vs 收盘确认)。
- 时间范围(短期 vs 稍长)。
如果结果在微小变化后方向反转或崩溃,则“突破定义”可能过于脆弱。
预期的主要局限性和失败模式
突破规则常因以下原因失败,你应明确检查这些情况:
-
假突破与边界噪音
价格可能短暂突破某一水平后迅速回撤。你的触发定义(最高价/最低价 vs 收盘价,严格 vs 非严格)会显著影响有多少此类情况被计为突破。 -
市场状态变化
在某一时期拟合的定义,可能在波动率、趋势性或市场微观结构变化后表现不佳。基于时间的划分有助于衡量这一局限。 -
边界构建中的数据泄露
如果你的边界使用了未来信息(即使是无意的),可能导致结果人为偏强。因此必须明确是否在边界计算中排除当前评估K线。 -
执行建模不匹配
若你的回测假设在精确触发价成交,但实际执行会因延迟、点差扩大或订单处理而延迟成交,则测得的结果可能被高估。 -
反复调优导致的过拟合
当你测试多种变体时,最终选择的版本可能因偶然性显得良好。独立的最终测试期可降低但不能完全消除此风险。
这些失败无法完全消除,但可通过上述检查使其可见。
验证与下一个应提出的问题
要独立验证关于“突破定义”的事实,你应该能够根据书面规则复现测量过程:
- 边界定义必须明确回溯窗口长度和价格类型。