——连接顶底分型的基本走势单元)
Vibe-Trading 缠论技术指南笔BI——连接顶底分型的基本走势单元【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading本文以 Vibe-Trading 仓库内置的缠论chanlun形态识别技能为背景系统讲解缠论最基础的走势单元——笔BI它的定义、四条构成条件、上升笔与下降笔的判定逻辑、关键属性与 czsc 数据结构并结合仓库中的 示例信号引擎 与 SKILL.md 展示笔在完整信号链路中的消费方式。读完本文你将掌握原始K线 → 去包含 → 分型 → 笔 → 中枢 → 买卖点整条链路中笔这一环的判定规则与编程用法并能在自己的策略中基于笔属性方向、长度、力度、斜率构造可运行的缠论信号。笔在缠论体系中的位置缠论是一套完全基于价格结构的技术分析方法其核心处理链路在仓库的 SKILL.md 中被明确归纳为原始K线 → 去包含处理 → 分型识别 → 笔检测 → 中枢构建 → 买卖点判定在这条链路中分型FX是最基础的识别单元由连续三根去包含后的 K 线构成顶分型/底分型详见 分型.md而笔BI是紧接其后的走势单元由相邻的顶分型和底分型连接而成是分型到中枢之间的桥梁对下笔把离散的分型串成一段有方向的走势是缠论中可辨识的最小波动单元对上至少 3 笔构成价格重叠区域即可构建中枢ZS进而判定趋势与买卖点详见 中枢.md 与 一买一卖.md。该技能适用于任何有 OHLCV 数据的市场A 股、加密货币、期货等底层基于 czsc 库v0.9.68纯 Python 实现、可选 Rust 加速后端并支持增量更新适合实时分析。仓库通过 test_skill_reference_links.py 保障references/目录下的概念文档链接包括本文对应的 笔.md对浏览器与read_file工具均可解析因此这些概念文档本身就是可被 Agent 检索引用的技术资料。笔的构成条件笔.md 给出笔的完整定义笔是缠论的基本走势单元连接相邻的顶分型和底分型。构成一笔必须同时满足以下四条方向上升笔底→顶或下降笔顶→底。笔必须有明确的单一方向不允许横盘顶底交替相邻两笔的端点分型必须交替出现顶-底-顶-底…。这意味着在合法的笔序列中每一笔的起点分型与终点分型必然一高一低、类型相异不会出现连续两个顶分型或两个底分型直接相连无包含两个分型之间不能存在价格区间包含。也就是说一笔内部经过包含处理后的相邻 K 线必须保持方向一致地推进不能出现一根 K 线的高低点完全覆盖另一根 K 线的情况包含关系的合并规则详见 分型.md上升方向取较大的高点和较大的低点下降方向取较小的高点和较小的低点最小长度去包含后的 K 线数不少于阈值默认7 根。这一条件用于过滤过短的波动确保笔代表足够成形的走势段而非噪声级别的微小波动。其中最小长度 7 根是缠论笔定义的核心过滤参数它直接影响笔的数量与中枢、买卖点的生成频率阈值越大笔越粗信号越少越稳定阈值越小笔越细信号越多但噪声也越多。czsc 中该阈值可通过分析器参数配置实际应用时应结合标的的波动特征与 K 线周期权衡默认值 7 是适合大多数品种日线及以下周期的经验值。上升笔与下降笔上升笔底 → 顶●顶分型 / / / / ●底分型上升笔的判定条件为fx_a.mark Mark.D起点是底分型fx_b.mark Mark.G终点是顶分型且fx_b.fx fx_a.fx终点分型值高于起点分型值其中Mark.D表示底分型、Mark.G表示顶分型fx为分型值顶分型取 high底分型取 low见 分型.md 中的 FX 数据结构。价格从底分型的低点一路抬高到顶分型的高点构成一段向上的走势。下降笔顶 → 底●顶分型 \ \ \ \ ●底分型下降笔的判定条件为fx_a.mark Mark.G起点是顶分型fx_b.mark Mark.D终点是底分型且fx_b.fx fx_a.fx终点分型值低于起点分型值上升笔与下降笔的端点分型类型与高低关系完全镜像这正对应顶底交替约束一笔的终点分型同时就是下一笔的起点分型。笔的关键属性笔不仅是一段走势的抽象czsc 的BI对象还携带一组可直接用于量化策略的派生属性属性说明directionDirection.Up上升/ Direction.Down下降high笔的最高价low笔的最低价length笔包含的去包含 K 线数power_price笔的价格力度高低差slope笔的斜率angle笔的角度这些属性为基于笔的二次加工提供了丰富素材direction是最基础的方向标签用于遍历时快速区分上涨段与下跌段high/low构成笔的价格区间也是后续中枢上沿zg/下沿zd计算的基础——中枢的 zg 取构成笔前 3 笔 high 的最小值zd 取 low 的最大值见 中枢.mdlength对应构成条件中的最小长度反映该笔持续的时间/根数可与power_price组合衡量单位长度内走出的幅度power_price高低差是笔的绝对力度是背驰判断的重要候选度量之一一买/一卖中最后一段下跌/上涨力度小于前一段的力度即可用power_price或 MACD 面积衡量见 一买一卖.mdslope/angle描述笔的陡峭程度陡峭笔通常代表快速推进的强趋势段平缓笔则可能处于震荡酝酿阶段。czsc 的 BI 数据结构笔.md 中给出了 czsc 的BI数据类定义dataclass class BI: symbol: str fx_a: FX # 起点分型 fx_b: FX # 终点分型 fxs: List[FX] # 经过的所有分型 direction: Direction # Up / Down bars: List[NewBar] # 笔内的去包含K线各字段含义symbol标的代码如BTC-USDTfx_a/fx_b笔的起点与终点分型FX对象含mark、fx、high、low、elements等字段是上述上升/下降笔判定的直接操作对象fxs笔经过的所有分型列表用于研究笔内部的细节结构direction笔方向Up/Downbars笔内的去包含 K 线NewBar列表length属性即len(bars)。从源码结构看BI同时保留了端点分型与内部去包含 K 线两类信息既满足方向判定与属性计算的即时需求也为后续中枢构建、形态分类三笔/五笔/七笔/九笔/十一笔形态等高级信号保留了原始素材。使用示例遍历笔列表笔.md 给出的最简用法如下from czsc import CZSC c CZSC(bars) for bi in c.bi_list[-5:]: d ↑ if bi.direction.value Up else ↓ print(f{d} {bi.fx_a.dt:%m-%d} - {bi.fx_b.dt:%m-%d} fH{bi.high:.0f} L{bi.low:.0f} len{bi.length})要点说明CZSC(bars)一次完成去包含、分型识别与笔检测c.bi_list存放已完成的笔c.bars_ubi存放未完成笔中的 K 线这两者由 SKILL.md 的快速上手示例给出输入bars为按时间正序排列的RawBar列表字段含 symbol/id/dt/freq/open/close/high/low/vol/amountfreq 支持Freq.F1/F5/F15/F30/F60/D/W/M示例中bi.fx_a.dt为起点分型时间取中间 K 线时间bi.fx_b.dt为终点分型时间bi_list[-5:]取最近 5 笔适合只关心最新走势的场景。源码级消费SignalEngine 如何利用笔仓库中的 example_signal_engine.py 给出了笔在完整信号引擎中的真实消费方式可视为 笔.md 内容的工程落地。其核心链路为K线 → 分型 → 笔 → 中枢 → 买卖点。数据准备与增量更新c CZSC(bars[:30], get_signals_get_signals) for bar in bars[30:]: c.update(bar) sig self._evaluate_signals(c)先用前 30 根 K 线初始化分析器保证有足够 K 线形成有效笔之后逐根调用c.update(bar)增量更新——这正是 SKILL.md 所述支持增量更新适合实时分析的实现方式每个新 K 线到达时只做增量重算而非全量重建每次更新后调用_evaluate_signals评估当前信号状态1做多-1做空0观望。基于笔与中枢的信号规则_evaluate_signals中与笔直接相关的信号判定包括一买/一卖依据cxt_first_buy_V221126/cxt_first_sell_V221126信号值含一买返回做多、含一卖返回做空底层依赖趋势末端的笔背驰与分型确认理论见 一买一卖.md三笔/五笔形态cxt_three_bi_V230618输出的向上盘背/向下盘背、cxt_five_bi_V230619输出的类一买/类一卖分别映射为做多/做空笔基础信号 中枢位置辅助当len(c.bi_list) 3时用最近三笔构建ZS(bisbi_list[i:i3])并检查is_valid若笔信号为向下_转折且最新收盘价 zs.zd中枢下沿返回做多若为向上_转折且最新收盘价 zs.zg中枢上沿返回做空。def _check_zhongshu(bi_list: list) - Optional[ZS]: if len(bi_list) 3: return None for i in range(len(bi_list) - 3, max(len(bi_list) - 10, -1), -1): zs ZS(bisbi_list[i:i 3]) if zs.is_valid: return zs return None这段代码体现了笔 → 中枢的直接调用关系中枢的输入就是笔列表ZG/ZD由构成笔的高低点算出zg min(bis[:3]各笔的high)、zd max(bis[:3]各笔的low)见 中枢.md。由此价格在中枢下沿附近做多、上沿附近做空这一 SKILL.md 中的信号约定在源码层面被实现为对最新收盘价与zs.zd/zs.zg的比较。完整运行示例该文件的__main__部分给出了一个可直接运行的示例通过 OKX API 拉取 BTC-USDT 日线300 根转换为 OHLCV DataFrame 后交给SignalEngine(freqFreq.D)生成信号并统计做多/做空信号数量与最近触发时间。这展示了缠论技能如何接入真实行情数据源并将笔/中枢分析结果落成可回测、可执行的交易信号。与其他核心概念的关联与进一步阅读笔是缠论概念链中承上启下的一环与本仓库内置的其余概念文档构成完整知识体系分型 → 笔笔由顶/底分型连接而成分型的去包含规则上升取大、下降取小是笔无包含条件的实现前提参见 分型.md笔 → 中枢至少 3 笔构成价格重叠区域即中枢中枢上移/下移/扩展决定趋势状态参见 中枢.md笔 → 买卖点一买/一卖建立在趋势末段笔的背驰基础上二买/二卖/三买/三卖分别是一买确认后的回调与中枢突破后的回调确认参见 买卖点/一买一卖.md、买卖点/二买二卖.md 与 买卖点/三买三卖.md笔 → 形态分类czsc 提供三笔、五笔、七笔、九笔、十一笔共 5 档形态分类信号函数直接以bi_list为输入用于盘整/趋势结构的模式化识别整体能力该技能支持多周期分析与形态分类信号函数共 43 个详见 SKILL.md。实践要点小结阈值意识笔的最小长度默认 7 根去包含 K 线笔的粗细直接决定中枢与买卖点的数量实盘前应根据标的波动与周期调整先保证数据质量bars必须按时间正序、包含完整 OHLCV 字段否则分型与笔会失真区分完成笔与未完成笔c.bi_list只含已完成的笔最新一笔尚在形成中时c.bars_ubi信号判定应结合增量更新逐步确认善用派生属性power_price、slope、angle等属性可直接参与背驰、加速等自定义过滤逻辑不必只依赖信号函数增量更新降低成本实时场景下优先使用c.update(bar)而非每次全量重建这正是仓库示例引擎的默认做法。【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考