什么是Swing Highs Lows的规则?
直接答案:以可验证形式呈现的规则
Swing highs 和 swing lows 是价格图表上的点,用于描述局部转向行为:swing high 是一个局部峰值,而 swing low 是一个局部谷值。识别它们的“规则”主要涉及两个方面:(1) “局部”的定义;(2) 所使用的数据类型(价格类型和排序方式)。
一套可验证的规则集必须能让你在同一张图表上回答以下问题:“这根K线是否在我定义的时间窗口内是最高点?” 以及 “它是否与前后K线足够分离,从而可被视为一个swing?” 如果你的规则无法由其他人一致应用,那么结果就会不一致。
机制或定义:输入项与核心swing规则
1) 选择价格序列
在定位swing之前,需先确定“价格”在你的方法中代表什么。常见选择包括使用K线的高/低价(用于识别swing极值),或使用收盘价(以获得更平滑的信号)。你的规则应明确说明所使用的具体序列,例如:
- Swing highs 使用 K线最高价。
- Swing lows 使用 K线最低价。
2) 定义“局部”含义(swing窗口)
“局部”意味着“在一个邻域内占主导地位”。使其可验证的一种实用方法是定义左右两侧的K线数量窗口。
示例规则(一种广泛使用的逻辑模式):
- 若某索引为 i 的K线,其最高价高于左侧固定数量K线和右侧固定数量K线的最高价,则该K线为一个swing high。
- 若某索引为 i 的K线,其最低价低于左侧固定数量K线和右侧固定数量K线的最低价,则该K线为一个swing low。
该左右邻域中的K线数量是一个参数。它并非通用;改变该参数将改变识别出的swing点。
3) 要求分离(避免计入微小波动)
为减少过度计数,可添加分离规则,例如:
- 在识别出一个swing high后,下一个swing low必须至少在 N 根K线之后才出现,反之亦然。
这一点在震荡行情中尤为重要,因为许多K线可能满足严格的“局部最大值”测试条件。
4) 处理平局(相等的高点/低点)
市场可能出现相等的高点或相等的低点。你的规则应明确平局处理方式。选项包括:
- “严格大于/严格小于”(因此平局不计为swing);
- “大于或等于”并附加平局处理机制(如取最早或最晚的K线);
- 将相等的极值视为一个区域,并从中选取一个代表性K线。
若无明确的平局处理规则,两位观察者可能合理地得出不同结论。
5) 确定swing何时被确认
任何使用两侧K线的规则都意味着该点仅在右侧邻域出现后才被确认。如果你试图实时标记swing,则必然存在固有的延迟。
因此,一个完整的规则集应明确说明:
- “只有在候选K线之后 k 根K线出现后,swing才被确认”,其中 k 是你的右侧窗口大小。
证据或示例:一致地应用规则
假设有一组按时间顺序排列的简化K线数据,并使用以下定义:
- Swing high:索引为 i 的K线最高价严格高于左侧 L 根K线和右侧 R 根K线的最高价。
- Swing low:索引为 i 的K线最低价严格低于左侧 L 根K线和右侧 R 根K线的最低价。
现在考虑一个可视化检查流程:
- 选取一个候选K线 i。
- 向左数 L 根K线,验证该候选K线的最高价是否高于这些K线的每一个最高价。
- 向右数 R 根K线,验证该候选K线的最高价是否高于这些K线的每一个最高价。
- 若所有比较均通过,则将其标记为swing high;否则舍弃。
对于swing lows,重复上述步骤,使用最低价并进行严格的“低于”比较。
由于该方法基于明确的比较,只要另一个人使用相同的参数(L, R)和相同的价格序列(最高/最低价或收盘价等),就能复现相同的标记。这正是“规则”可验证性的关键要求。
局限性与风险:什么可能导致规则失效
1) 参数敏感性
左右窗口大小及任何分离规则会显著影响swing图谱。在实践中:
- 较小的窗口会识别出更多swing点,可能追逐噪音。
- 较大的窗口会识别出更少的swing点,可能错过较小的转折。
这是将局部极值法应用于噪声价格数据时固有的局限性。
2) 趋势压缩与虚假转折点
在强劲趋势中,即使整体走势未变,短暂的停顿仍可能形成局部高点/低点。此时你的swing点反映的是微观结构,而非有意义的市场状态转变。规则虽正确识别了局部转向行为,但其解释可能与你的假设不符。
3) 相等的高点/低点与模糊性
相等的极值会带来模糊性。如果你的方法未明确定义如何处理平局,则重新标注时swing点可能偏移一根K线。
4) 确认延迟
如果你的规则需要右侧K线来确认swing,则无法在候选K线形成时立即知道其是否为swing high/low。任何在确认前“预测”swing的尝试都将与可验证的规则定义不一致。
5) 市场与执行的变异性
尽管swing的识别是基于图表定义的,但图表本身可能因数据源、交易品种设置和图表构建方式(例如K线聚合方式)而不同。因此,历史swing标记可能无法在不同提供商或时间框架之间完全一致地转移。此外,交易成本和执行条件独立于图表逻辑;即使swing识别一致,这些因素仍可能改变实际交易结果。
验证或下一步问题:如何检查你的规则集是否有效
为独立验证你的swing规则集,可进行一致性测试:
- 使用相同的参数和价格序列,对同一历史图表进行两次标注。
- 比较你在swing点上的标注一致性。
如果一致性较低,说明你的规则可能需要进一步澄清(如窗口定义、平局处理、分离规则、价格序列定义等)。下一步的合理做法是选择一个具体的定义(例如,“在最高/低价上使用L=R的严格局部极值”),然后测试仅改变一个参数时swing点如何变化。