用途:对已确认的 ZigZag 摆动序列按结构与市场状态进行分类,服务于算法交易中的形态标注与状态判断。触发词为 zigzag、swing classification。
主要能力:
- 两枢轴形态(L₀→H₁→L₂,UP-DOWN):基础分为 EL(等高、回测)、HL(更高低点、回调)、LL(更低低点、下破)三类;HL 与 LL 各用 Freedman-Diaconis 分箱细分为 4 个子类(HL-FD1~FD4、LL-FD1~FD4),并给出对应市场状态与概率区间。
- 三枢轴形态(L₀→H₁→L₂→H₃,UP-DOWN-UP):按 L₂ 相对 L₀(HL/EL/LL)与 H₃ 相对 H₁(HH/EH/LH)两个独立维度组合出 9 个互斥且穷尽的变体,并给出市场状态命名(如延续冲量、双顶测试、三角收敛、V 反转等)。
- 27 路扩展:增加 H₃ 相对 L₀(Above/Equal/Below)第三维度,得到 3×3×3=27 个子变体,部分组合因约束不可能成立。
- 可选子分类标记:+C(H₁→L₂ 间有收盘低于 L₀)、+S(L₂ 单根 K 线形成尖峰)、+X(仅影线破 L₀ 无收盘),可附加到任意变体。
- ε 容差带:ε = min(ε_max, max(ε_min, √[(a·S)² + (b·ATR₁₄)²])),其中 S 为滚动中位买卖价差,a=2.0,b=0.05(M5-M30)或 0.07(H1-D1);EURUSD 默认 ε_min=max(3 ticks, 1×S),ε_max=min(5 pips, 0.20×swing)。无价差数据时可退化为 ATR-only 或固定带宽。
- Freedman-Diaconis 分箱:h = 2 × IQR(X) × n^(-1/3),K = clip(⌈(max−min)/h⌉, 3, 6),用于 HL/LL 子类划分;样本少于 400 时回退到分位数分箱,建议按月或按季重算分箱边界。
使用方式:该技能以 SKILL.md 形式提供分类框架与参考文件(notation-definitions、two-pivot-variants、three-pivot-variants、epsilon-tolerance-detail、binning-methodology、data-pipeline、eurusd-validation-scenarios)。实现层面可对接 qta Rust crate(crates/qta/)的 ZigZag 状态机,其 ZigZagConfig::new(reversal_depth, epsilon_multiplier, bar_threshold_dbps) 与 ZigZagState::process_bar(&bar) 输出 completed_segment,含 base_class(EL/HL/LL)与 z 分数;本技能在其输出上扩展 FD 分箱、三枢轴分析与市场状态标注。
适用场景:已确认两枢轴或三枢轴摆动的分类、查询特定形态的市场状态含义、证明形态分类的穷尽性、在 Rust qta crate 或 Python 流水线中实现形态标注、理解定义“相等”的 ε 容差带、应用 FD 分箱确定子分类深度。
限制:资料未提供具体安装命令、收费方式、平台支持范围与实测效果数据;形态概率区间与交易含义为资料中给出的参考值,实际使用需结合自身数据验证。该技能为自演化技能,仅在问题真实可复现时更新文件。