Vibe-Trading 缠论技能实战:二买二卖(第二类买卖点)的信号定义、czsc 实现与信号引擎集成 Vibe-Trading 缠论技能实战二买二卖第二类买卖点的信号定义、czsc 实现与信号引擎集成【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading本文聚焦 Vibe-Trading 缠论形态识别技能chanlun中的第二类买卖点——二买/二卖。读完后你将理解二买回调不破一买低点、二卖反弹不破一卖高点的完整判定条件掌握 czsc 库cxt_second_bs_V230320信号函数的接入方式并能结合仓库内的示例信号引擎把二买二卖信号融入K线 → 分型 → 笔 → 中枢 → 买卖点的自动化识别链路。在缠论买卖点体系中的定位chanlun 技能位于 agent/src/skills/chanlun/SKILL.md是一套基于缠中说禅理论的价格形态识别方案核心链路为原始K线 → 去包含处理 → 分型识别 → 笔检测 → 中枢构建 → 买卖点判定适用于任何有 OHLCV 数据的市场A股、加密货币、期货等。缠论的买卖点体系分为三类二买二卖是其中的确认层买卖点含义详细文档一买/一卖趋势结束后的第一个反转信号背驰点一买一卖二买/二卖一买/一卖后回调不破底/顶的确认信号二买二卖三买/三卖中枢上移/下移后回调不进入前中枢的信号三买三卖一买/一卖捕捉的是趋势反转的拐点背驰点二买/二卖则是一买/一卖之后的回调确认信号安全性高于一买一卖——它不赌第一下而是等价格用一次回调证明结构。这正是缠论交易框架中宁可错过、不可做错的工程化落地。二买Second Buy定义一买出现后价格反弹再回调回调不破一买低点时的买入点。● / \ ● / \ / \ / / \ / / \ / ● ★一买 ★二买 ← 回调不破一买低点信号条件四条须同时满足已出现一买信号反弹后回调回调低点 一买低点不创新低出现底分型确认。条件 4 的底分型是整条判定链的最后一道闸门。按 分型 的文档定义底分型Mark.D由连续三根去包含后的 K 线构成判定条件为k1.high k2.high k3.high且k1.low k2.low k3.low表示下跌力量衰竭、可能转涨。也就是说二买不是回调到某价位就触发而是必须等结构上出现一个完整的底分型避免在下跌中继的反弹里抢跑。而不创新低的基准——一买低点——本身是一买信号给出的结构位置其产生依赖至少两个向下中枢加最后一段背驰下跌详见 一买一卖。二买把这两个结构要素一买位置 底分型组合成一个可程序化判定的入场点。二卖Second Sell定义一卖出现后价格回调再反弹反弹不破一卖高点时的卖出点。★一卖 ★二卖 ← 反弹不破一卖高点 \ /\ \ / \ \ / \ \ / \ ● ●二卖与二买完全镜像先有一卖信号其后价格反弹再回落、再次反弹时只要反弹高点低于一卖高点并出现顶分型确认顶分型条件k1.high k2.high k3.high且k1.low k2.low k3.low见 分型即构成二卖信号。czsc 信号函数cxt_second_bs_V230320chanlun 技能将缠论判定委托给 czsc 库完成。czsc 内置了 43 个缠论信号函数见 SKILL.md 的函数清单其中二买二卖对应czsc.signals.cxt模块中的cxt_second_bs_V230320即均线辅助二买二卖。按 二买二卖 文档给出的标准写法from czsc.signals.cxt import cxt_second_bs_V230320 def get_signals(c): s {} # 均线辅助识别二买二卖 s.update(cxt_second_bs_V230320(c, di1, ma_typeSMA, timeperiod20)) return s三个关键参数参数示例取值含义di1倒数第 N 笔di1表示针对倒数第 1 笔做判定该约定在 一买一卖 文档中同样标注ma_typeSMA辅助均线的类型二买二卖是均线辅助类信号均线用于刻画回调/反弹的力度与方向timeperiod20均线周期这个get_signals(c)函数会被注册进 CZSC 分析器每次 K 线更新时自动执行并把结果合并进信号字典——这正是 chanlun 技能的统一接入模式一买一卖、三买三卖、三笔/五笔形态全部通过同一机制挂接。信号引擎集成从参考文档到可运行代码仓库提供了完整的参考实现 example_signal_engine.py。理解它对二买二卖的工程接入有三段源码值得展开1. DataFrame → RawBar 转换_df_to_bars把任意含open/high/low/close/volume列、index 为 datetime 的 OHLCV DataFrame 转换为 czsc 要求的RawBar列表按时间正序。这对应 SKILL.md 中定义的数据格式字段类型说明symbolstr标的代码idint序号从 0 开始dtdatetime时间freqFreq频率Freq.F1/F5/F15/F30/F60/D/W/Mopen/close/high/lowfloat开/收/高/低价volfloat成交量amountfloat成交额2. 信号函数注册与中枢检测_get_signals展示了信号注册模式def _get_signals(c: CZSC) - dict: s {} s.update(cxt_first_buy_V221126(c, di1)) s.update(cxt_first_sell_V221126(c, di1)) s.update(cxt_bi_base_V230228(c, di1)) s.update(cxt_three_bi_V230618(c, di1)) s.update(cxt_five_bi_V230619(c, di1)) return s从源码结构看示例引擎当前注册了一买、一卖、笔基础、三笔、五笔形态五组函数二买二卖按 二买二卖 文档的写法只需在此追加一行s.update(cxt_second_bs_V230320(c, di1, ma_typeSMA, timeperiod20))即可纳入同一识别链路——这正是该参考文档存在的意义它规定了 czsc 函数、参数与get_signals契约。与之配合的_check_zhongshu会在笔列表尾部回看最多约 7 笔用ZS(bis...)构造中枢并检查is_valid即zg zd公式定义见 中枢为笔基础信号 中枢位置的组合判定提供结构支撑。3. 增量分析与逐 K 线回扫SignalEngine.generate采用前 30 根 K 线冷启动 逐根c.update(bar)增量推进的策略c CZSC(bars[:30], get_signals_get_signals) for bar in bars[30:]: c.update(bar) sig self._evaluate_signals(c) if sig ! 0: signal.iloc[bar.id] sig这一写法有两个工程要点其一czsc 支持增量更新CZSC状态去包含 K 线、分型、已完成的笔bi_list、未完成笔中的 K 线bars_ubi、信号字典signals随每根新 K 线滚动适合实时行情下的逐 bar 分析其二信号按 bar 的序号写回 Series输出约定为1做多、-1做空、0观望与 SKILL.md 的信号约定一致可以直接被上层策略/回测消费。_evaluate_signals则演示了信号到交易方向的优先级映射先查一买key 含BUY1且值含一买→做多、一卖SELL1/一卖→做空再查三笔向上/向下盘背、五笔类一买/类一卖最后用笔基础信号配合中枢位置收盘价跌破中枢下沿zs.zd且出现向下_转折→做多反之做空。若按参考文档注册了cxt_second_bs_V230320二买二卖信号同样会以信号字典条目key 含函数版本、value 含二买/二卖语义出现在c.signals中可按同样方式提取。该文件的__main__块L190-L225还给出了完整端到端示例从 OKX 行情 API 拉取 BTC-USDT 日线 300 根转成 DataFrame 后跑SignalEngine打印做多/做空信号数量与最近信号日期。运行前按 SKILL.md 安装依赖即可pip install czsc requests pandasSKILL.md 注明实现基于 czsc v0.9.68纯 Python、可选 Rust 加速后端。快速上手CZSC 分析器与二买二卖的最小验证如果你只想单独验证二买二卖判定而不跑完整引擎最小用法如下取自 SKILL.md 快速上手节信号函数换成二买二卖from czsc import CZSC, RawBar, Freq from datetime import datetime from czsc.signals.cxt import cxt_second_bs_V230320 # 准备 RawBar 列表需按时间正序排列 bars [ RawBar(symbolBTC-USDT, id0, dtdatetime(2026, 1, 1), freqFreq.D, open70000, close71000, high72000, low69000, vol1000, amount71000000), # ... 更多K线 ] # 创建分析器自动检测分型/笔/中枢并注册二买二卖信号 c CZSC(bars, get_signalslambda c: cxt_second_bs_V230320( c, di1, ma_typeSMA, timeperiod20)) # 访问结果 print(c.bi_list) # 已完成的笔 print(c.bars_ubi) # 未完成笔中的K线 print(c.signals) # 当前信号字典分析器就绪后c.bi_list中每笔的端点分型可用来人工复核二买条件取一买所在底分型位置检查其后回调笔的低点bi.low是否高于该底分型值且回调末端是否形成新的 Mark.D 分型bi.fx_b.mark。笔 文档给出的关键属性direction、high、low、length、power_price、slope等都可直接用于这类复核脚本。实战要点与风控设计继承 二买二卖 文档的实战要点并说明其在结构上的含义二买比一买更安全一买是抄底趋势背驰后可能继续跌二买是确认反转——它要求价格先走出反弹、再回调、且回调不创新低等于让市场再证明一次底部结构二买的止损位明确设在一买低点下方。从结构上讲若价格跌穿一买低点回调不破底的前提被破坏二买失效止损逻辑与信号失效条件天然一致无需额外拍脑袋定止损幅度二卖同理止盈/离场位设在一卖高点上方反弹突破该高点则二卖结构失效。放到完整买卖点体系中看三者可形成互补的仓位节奏一买承担底仓拐点博弈胜率依赖背驰判定二买承担确认仓结构确认后再介入三买突破中枢上沿后回调不进中枢判定条件见 三买三卖承担顺势加仓——三买止损设在中枢 ZG 下方与二买止损设在一买低点下方一样都是把止损锚定在结构位上。中枢边界ZG/ZD的计算zg min(前三笔high)、zd max(前三笔low)、有效性zg zd在 中枢 文档中有完整公式与示例。适用前提、限制与文档完整性保障几点使用前提与限制均以当前仓库实际内容为准依赖版本czsc v0.9.68信号函数命名带版本号如cxt_second_bs_V230320升级 czsc 时需确认函数名与参数签名未变频率与数据量引擎以Freq参数化支持分钟到月线F1~M示例引擎要求至少 30 根 K 线冷启动数据不足时直接输出全 0 信号实际使用二买二卖需要足够的历史笔结构至少出现一买/一卖及其后的回调笔信号函数组合二买二卖是均线辅助类信号timeperiod20为参考文档给出的默认值换标的、换周期时均线参数需要重新审视本文不对其效果作任何保证。在工程治理上chanlun 技能的参考文档并非裸文件test_skill_reference_links.py 对全部自带技能做回归测试要求 SKILL.md 中每一条references/链接同时能被浏览器按文档相对路径解析和 Agent 的read_file工具按 skills 根解析命中且内容非空该测试的注释还点名 chanlun 技能正是这类文档链接的覆盖对象之一。因此 二买二卖 与 一买一卖、三买三卖、分型、笔、中枢 组成的文档树是被测试锁定的有效资产。在 Agent 侧多智能体技术分析面板预设 technical_analysis_panel.yaml 将chanlun列入技术分析小组的加载技能与 elliott-wave 并列也就是说二买二卖这类结构信号会作为 Agent 技术分析工具链的一部分被调用而非孤立的离线脚本。小结二买二卖是缠论买卖点体系中确认层的标准化实现二买要求一买已现 反弹后回调不创新低 底分型确认二卖为其镜像。Vibe-Trading 的 chanlun 技能把这套判定沉淀为三层资产——概念参考文档买卖点定义与判定条件、czsc 信号函数cxt_second_bs_V230320di1, ma_typeSMA, timeperiod20、以及可直接运行的SignalEngine参考实现RawBar 转换、信号注册、增量更新、1/-1/0 输出约定。掌握这条链路后你可以按同样模式把一买一卖、三买三卖、三笔/五笔形态组合成适合自己的多信号判定策略并通过 czsc 的增量更新能力将其用于逐 K 线的实时分析。【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考