news 2026/9/11 21:17:29

谐波形态 XABCD 结构识别与 PRZ 交易实战:Vibe-Trading 谐波信号引擎深度解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
谐波形态 XABCD 结构识别与 PRZ 交易实战:Vibe-Trading 谐波信号引擎深度解析

谐波形态 XABCD 结构识别与 PRZ 交易实战:Vibe-Trading 谐波信号引擎深度解析

【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading

本文是 Vibe-Trading(个人交易 Agent)中harmonic 技能的技术指南,围绕谐波形态的 XABCD 五点结构展开:从 Gartley、Bat、Butterfly、Crab 四大经典形态的 Fibonacci 比率定义,到 PRZ(潜在反转区)的入场、止损与止盈规则,再到仓库中SignalEngine信号引擎的双后端实现与实战调用方式。读完本文,你将掌握谐波形态的完整识别标准、比率容差工程化方法,以及如何在 Vibe-Trading 中将形态信号接入你的交易工作流。

XABCD 形态识别原理:五个点定义一段可交易的走势

谐波形态(Harmonic Patterns)属于 Fibonacci 几何学派,其核心思想是:价格走势并非随机,而是在特定位置存在可预测的拐点。这种可预测性来自价格在关键区间的回撤(Retracement)与扩展(Extension)比率——这些比率由 Fibonacci 数列演化而来(0.382、0.5、0.618、0.786、0.886、1.27、1.618、2.618、3.618 等)。

任何谐波形态都由5 个关键点构成,按时间顺序依次为:

X → A → B → C → D

其中每两段走势之间存在精确的 Fibonacci 比率关系:

线段含义比率计算
XA第一段主要趋势后续回撤与扩展的基准
AB对 XA 的回撤(B 点回撤)AB / XA
BC对 AB 的回撤BC / AB
CD对 BC 的扩展CD / BC
AD最终价格延伸(D 点回撤)AD / XA

D 点是整个形态的落点:当价格运行到 D 点时,形态宣告完成,此处是潜在的反转区域。D 点的位置由前四段走势共同约束,因而比单一的回撤位或扩展位具有更高的确定性。

需要特别说明的是:原文档 XABCD形态.md 给出的是各形态的理论标准比率(如 AB = 0.618 × XA),而实际工程实现中,这些比率都是以范围 + 容差的形式落地,我们会在后文结合源码展开。

四大经典谐波形态详解

谐波形态家族中,应用最广、信号质量最受认可的四大形态分别是 Gartley、Bat、Butterfly、Crab。它们共享 XABCD 五点骨架,差异在于B 点回撤深度D 点延伸程度不同,由此形成各自独特的几何轮廓。

Gartley 形态(222 形态)

Gartley 形态因其发表于 1932 年的第 222 页而得名,是最古老、最经典的谐波形态。其关键比率:

  • AB =0.618× XA(B 点回撤约 61.8%)
  • BC = 0.382–0.886 × AB
  • CD = 1.27–1.618 × BC
  • D = 0.786 × XA(关键)——D 点由 XA 的 78.6% 回撤位精确定位

方向判定规则:

  • 看涨 Gartley:X 为低点、A 为高点,价格经 B、C 两段整理后回落至 D 点(位于 XA 中段下方),D 点在底部完成反转;
  • 看跌 Gartley:X 为高点、A 为低点,价格反弹至 D 点(位于 XA 中段上方),D 点在顶部完成反转。

Gartley 形态的 D 点不超出 X 点范围,属于收敛型形态,适合在 D 点确认反转信号后入场。

Bat 蝙蝠形态

Bat 形态由 Carney 发现并推广,与 Gartley 的核心区别在于B 点回撤更浅

  • AB = 0.382–0.5 × XA(B 点仅回撤 38.2%–50%,浅回撤)
  • BC = 0.382–0.886 × AB
  • CD = 1.618–2.618 × BC(CD 段延伸明显)
  • D = 0.886 × XA(关键)——D 点深达 XA 的 88.6% 回撤

由于 B 点回撤浅而 D 点回撤深,Bat 形态整体呈现"浅 B 深 D"的拉伸结构。0.886 是极其接近 1.0 的深回撤位,意味着 D 点往往出现在趋势的极深处,反转概率与止损空间需要结合 PRZ 区域综合评估。

Butterfly 蝴蝶形态

Butterfly 是唯一 D 点超出 X 点的形态

  • AB =0.786× XA(B 点深回撤至 78.6%)
  • BC = 0.382–0.886 × AB
  • CD = 1.618–2.618 × BC
  • D = 1.27 × XA(超出 X 点)——D 点延伸至 XA 的 127%,彻底穿越 X 点的价格极值

形态的命名源于其展开后的轮廓酷似蝴蝶。由于 D 点突破 X 点,它属于扩展型形态,价格在 D 点创出新高/新低后反转,属于典型的风险区反转交易。

Crab 螃蟹形态

Crab 螃蟹形态是最极端的谐波形态,具有最远的 D 点延伸:

  • AB = 0.382–0.618 × XA
  • BC = 0.382–0.886 × AB
  • CD =2.24–3.618× BC(CD 段暴力延伸)
  • D = 1.618 × XA(关键,最远延伸)——D 点为 XA 的 161.8% 扩展位

Crab 形态要求 CD 段走出 2.24 至 3.618 倍的极端延伸,D 点位于 1.618 扩展位,是谐波家族中价格波动最剧烈、形态最难成立的形态;一旦完整成立并反转,往往对应一轮强劲的趋势逆转行情。

四大形态速查表

综合 SKILL.md 中的形态总览与 XABCD 参考文档,四种形态的对照关系如下:

形态B 点回撤(AB/XA)D 点回撤(AD/XA)D 点相对 X 点特性
Gartley0.6180.786未超出经典收敛形态
Bat0.382–0.50.886未超出浅 B 深 D
Butterfly0.7861.27超出深 B 深 D
Crab0.382–0.6181.618大幅超出最远延伸、最极端

比率容差工程化:源码中的形态定义

理论比率是"教科书标准",但真实行情极少走出精确到小数点后三位的完美比率。Vibe-Trading 的谐波信号引擎将每个比率定义为区间 + 容差(tol),落在区间内的结构即视为该形态的候选。见 example_signal_engine.py 中的PATTERNS字典:

形态B 回撤区间D 回撤区间BC/ABCD/BC
Gartley0.55–0.680.72–0.840.382–0.8861.27–1.618
Bat0.33–0.550.82–0.940.382–0.8861.618–2.618
Butterfly0.72–0.841.20–1.380.382–0.8861.618–2.618
Crab0.33–0.681.52–1.720.382–0.8862.24–3.618

对比可见:

  • Gartley 的 B 点区间 0.55–0.68 以 0.618 为中心;
  • Bat 的 B 点区间 0.33–0.55 对应 0.382–0.5 的浅回撤,D 点区间 0.82–0.94 对应 0.886;
  • Butterfly 的 B 点区间 0.72–0.84 对应 0.786,D 点区间 1.20–1.38 以 1.27 为中心,明确超出 1.0(超出 X 点);
  • Crab 的 D 点区间 1.52–1.72 以 1.618 为中心,是唯一 D 回撤区间整体高于 1.5 的形态。

实际判定时,_classify_pattern函数先计算b_retrace = AB/XAd_retrace = AD/XAbc_ratio = BC/ABcd_ratio = CD/BC四个比率,再依次与各形态的区间匹配;主校验条件是B 回撤与 D 回撤两个核心比率,命中即判为该形态。比率匹配的容差tol默认值为 0.12(SignalEngine.__init__),可通过构造参数调整——容差越大,检出率越高,但误报也随之增加。

从形态到信号:PRZ(潜在反转区)交易规则

形态识别完成只是第一步,真正的交易发生在PRZ(Potential Reversal Zone,潜在反转区)。PRZ 的定义见 PRZ交易.md 与 SKILL.md:

  • PRZ 是多个 Fibonacci 水平汇聚的价格区域——D 点完成时所在的价格区带;
  • 它是多个 Fibonacci 投影(如 0.786/0.886/1.27/1.618 回撤与扩展位)的交汇点;
  • 多个独立比率同时指向同一价格区域,意味着这里具有高概率反转属性

入场规则

  • 在 PRZ 区域等待价格反应(出现反转 K 线形态,如吞没、锤子、十字星等确认信号)后再入场;
  • 不要在 D 点未确认前提前入场——形态未完成前入场,D 点可能继续延伸(尤其在 Butterfly 与 Crab 这类扩展型形态中)。

止损规则

  • 看涨形态:止损设在 D 点下方;
  • 看跌形态:止损设在 D 点上方;
  • 止损距离通常为PRZ 区域宽度的 1–1.5 倍,为价格在区域内正常波动预留缓冲。

止盈规则(三段式目标)

  • 第一目标:AD 腿的 0.382 回撤位;
  • 第二目标:AD 腿的 0.618 回撤位;
  • 第三目标:A 点(完整回撤至形态起点)。

这样的止盈结构让单笔交易形成"先保本、后趋势"的递进式获利了结。

注意事项

  • 谐波形态完成不代表必然反转——D 点是高概率区域而非确定性保证;
  • 需要配合量能和 K 线形态确认,信号引擎只给出形态结构结论,最终入场需结合确认信号;
  • 高级时间框架的形态更可靠,日线以上级别的 XABCD 结构通常优于分钟级。

工程实现:双后端信号检测架构

Vibe-Trading 的 harmonic 技能在工程上采用了"优先第三方库、失败自动回退"的双后端设计,完整实现位于 example_signal_engine.py。

后端一:pyharmonics 库(优先)

SignalEngine._check_pyharmonics()在初始化时尝试导入pyharmonics.technicals.OHLCTechnicals,导入成功则标记use_pyharmonics = True_detect_patterns_pyharmonics通过OHLCTechnicals(df, is_stock=is_stock)拟合形态,从tech.bullish/tech.bearish矩阵中提取各形态的 D 点索引与价格。

pyharmonics 是可选依赖:需要显式安装扩展包pip install "vibe-trading-ai[harmonic]"才会生效(见 SKILL.md 与 requirements.txt 中的注释)。仓库的打包配置在 pyproject.toml 中定义了harmonic可选依赖组(pyharmonics>=1.5.0),测试 test_packaging_dependencies.py 也专门验证了"pyharmonics 不是核心安装依赖、仅作为可选 extra 提供"——这一设计保证了未安装该库的用户基线安装不受影响。

后端二:内置检测器(回退)

当 pyharmonics 不可用(未安装或调用抛异常)时,引擎回退到自研检测器,流程为:

  1. 摆动点检测_find_swings使用滚动窗口法(半窗口swing_window,默认 10,实际窗口为 2×10+1=21 根 K 线)识别摆动高/低点;
  2. 摆动点合并_merge_swings按时间排序并压缩连续同类型点(高点取更高、低点取更低),形成交替的高/低点序列;
  3. 五点组合枚举:滑动窗口每次取 5 个连续摆动点作为 X-A-B-C-D 候选,并校验 5 点必须高低交替
  4. 比率分类_classify_pattern按上文 PATTERNS 区间规则判定形态名称;
  5. 方向判定:X 点为摆动低点则形态为 bullish(看涨),X 点为摆动高点则为 bearish(看跌)。

信号生成与信号约定

SignalEngine.generate(data_map)接收{标的代码: OHLCV DataFrame}映射,对每个标的逐一点位写入信号,最终返回{标的代码: 信号 Series}。信号约定与 SKILL.md 一致:

  • 1= 做多(long)
  • -1= 做空(short)
  • 0= 观望(stand aside)

看涨形态在 D 点时刻置1,看跌形态置-1。同时引擎内置了数据量下限保护:当 K 线数量少于swing_window * 4时直接返回全 0 信号,避免短样本上产生无意义的结构识别。

实战使用:完整调用示例

example_signal_engine.py自带主入口,可直接对 OKX 主流币种运行演示。运行逻辑为:

  1. 通过_fetch_okx拉取BTC-USDTETH-USDTSOL-USDT的 1D K 线(各 300 根,来自 OKX 公开行情接口,OHLCV 数据经过类型转换并设置 datetime 索引);
  2. 实例化SignalEngine(is_stock=False)并打印当前实际使用的检测后端(pyharmonics 或内置检测器);
  3. 调用engine.generate(data_map)生成全标的全周期信号序列;
  4. 输出各标的的做多/做空信号数量与最近信号日期,并打印最近 5 个形态的形态名(方向)D 点时间详情。

核心调用仅需三行:

from harmonic.example_signal_engine import SignalEngine # 或直接引用技能目录 engine = SignalEngine(is_stock=False) signals = engine.generate(data_map) # signals["BTC-USDT"].value_counts() -> 1 / -1 / 0 分布

SignalEngine的三个构造参数:

参数默认值说明
is_stockFalse标的是否为股票(影响 pyharmonics 的is_stock分析参数)
swing_window10摆动点检测半窗口(仅内置检测器使用)
tol0.12Fibonacci 比率匹配容差(仅内置检测器使用)

generate的输入 DataFrame 要求包含open/high/low/close列,索引为 datetime;对加密标的传入is_stock=False,对股票标的传入is_stock=True

在 Agent 与 Swarm 中的集成

harmonic 技能在 Vibe-Trading 中不止于独立脚本,还以 Agent 技能(Skill)的形式接入多 Agent 协作。仓库的 Swarm 预设 technical_analysis_panel.yaml 中配置了harmonic_analyst分析师 Agent:

  • 角色定位:资深谐波形态分析师,专门识别 Butterfly、Crab、Gartley、Shark、Bat、Three Drives 等形态,用 Fibonacci 定位 PRZ 入场/离场点并评估风险回报比;
  • 工作方式:对指定标的与时间框架扫描谐波形态,评估 PRZ 的可交易性(tradeability),使用load_skill("harmonic")加载技能;
  • 输出契约:与其他经典 TA(K 线、Ichimoku、波浪、SMC)Agent 并行分析后,由信号聚合器对共识与共振进行评分,谐波信号作为汇总评分的一部分参与权重调节。

这一编排意味着:谐波形态技能可以独立跑回测,也可以在 Agent 盘中分析中被实时调用,与其他技术分析流派共同形成多因子共识。此外,agent/SKILL.md 将"谐波形态"列入技术分析能力矩阵,说明该技能是 Vibe-Trading 内置的策略能力之一。

局限性与使用建议

结合参考文档与源码,使用谐波信号引擎时有几点需要明确:

  1. 形态识别是必要条件而非充分条件:引擎输出的只是"结构上满足 Fibonacci 比率约束"的候选,反转是否成立还需量能、K 线确认与更高时间框架验证;
  2. 比率容差需要调优tol=0.12是默认值,不同市场(加密、股票、外汇)的噪声水平不同,可通过回测调整容差与swing_window平衡检出率与误报率;
  3. 数据长度限制:检测器依赖足够的摆动点,数据量过少时引擎自动放弃检测(返回全 0),建议至少保留数百根 K 线;
  4. D 点未确认前不交易:尤其对 Butterfly、Crab 等 D 点超出 X 点的扩展型形态,D 点区域可能进一步延伸,严格等待确认信号可显著降低提前入场的风险。

掌握 XABCD 的比率结构、理解 PRZ 的交易规则、并能熟练驱动SignalEngine生成信号,你便可以在 Vibe-Trading 中把谐波形态从"看图说话"升级为可回测、可自动化、可被 Agent 调度执行的量化策略组件。

【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 21:10:25

STM32F103实时闭环自动泊车系统设计与实现

简介:本资源为2022年全国大学生电子设计竞赛B题‘自动泊车系统’的完整工程实现,面向电子信息、自动化、计算机及数学类专业本科生,适用于竞赛备赛、嵌入式课程设计与STM32综合项目实践。压缩包含111个文件,主体为49个C语言源码&a…

作者头像 李华
网站建设 2026/9/11 21:09:59

展厅设计中的第三空间:提升参观体验的创新策略

1. 展厅设计的现状与困境当代展厅设计正面临着一个有趣的悖论:物理空间越来越精致,但参观体验却越来越同质化。走进任何一座城市的展览馆,你大概率会看到类似的布局——入口处的企业形象墙、中央的产品展示区、尾部的互动体验装置&#xff0c…

作者头像 李华
网站建设 2026/9/11 21:09:25

会议电视、普通电视、会议平板:会议室大屏选型避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 21:09:22

RP2040看门狗底层机制解析:时钟、寄存器与调试实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华