
金融科技【免费下载链接】czsc缠中说禅技术分析工具缠论股票期货Quant量化交易项目地址https://gitcode.com/gh_mirrors/cz/czsc点击查看免费下载本篇技术指南聚焦 czsc 项目 Rust 版信号库中的byi_symmetry_zs_V221107对称中枢识别信号从参数模板、四步判定逻辑、信号列表示例出发结合 byi.rs 的实际实现、zs.rs 的中枢构造与 signal.rs 的 7 段信号格式深入讲解对称中枢的数学判定变异系数阈值、笔切片语义与方向映射规则。读者读完可独立复现该信号的计算过程并能在自己的策略因子中直接引用或改造这一缠论结构信号。信号概览白伊系 K 线结构信号byi_symmetry_zs_V221107是 czsc 缠论技术分析工具中一个**K 线级kline 类别**信号用于识别最近若干笔是否构成对称中枢。它归属于byi.rs白伊系信号族与byi_bi_end_V230106、byi_bi_end_V230107、byi_second_bs_V230324、byi_fx_num_V230628并列存放。从 dump_signal_catalog.py 的信号分类表看byi.rs属于K 线基础分组主题为「白伊」系对称中枢、笔的结束判定因此该信号是基于缠论笔结构BI的形态识别因子而非单纯依赖 MACD 等量价指标。参数模板{freq}_D{di}B_对称中枢模板由三部分组成直接对应信号字符串的k1_k2_k3三段段含义取值示例{freq}K 线级别60分钟、30分钟、日线等D{di}B从倒数第di笔开始取数D1B默认对称中枢信号主题标签固定字面量在 byi.rs 源码中k1、k2、k3的构造完全与模板对应let k1 c.freq.to_string(); let k2 format!(D{}B, di); let k3 对称中枢;信号逻辑四步判定依据 byi.rs 中的函数byi_symmetry_zs_v221107该信号的计算流程严格按以下四步执行取倒数di笔截止最近 10 笔调用get_sub_elements(c.bi_list, di, 10)截取笔序列窗口依次检查最近7/5/3笔是否构成对称中枢按[7, 5, 3]的顺序从大到小取窗口末尾的i笔调用is_symmetry_zs判定命中则输出是 {i}笔否则否 任意命中即记录命中的笔数i优先输出 7 笔未命中 v3 固定为任意方向位按最后一笔反向映射若窗口内最后一笔方向为向下Direction::Down方向位输出向上反之输出向下。源码核心循环如下节选自 byi.rslet mut ok false; let mut v3 任意.to_string(); for i in [7usize, 5, 3] { ok is_symmetry_zs(bis[bis.len() - i..], 0.3); if ok { v3 format!({}笔, i); break; } } let v1 if ok { 是 } else { 否 }; let v2 if bis[bis.len() - 1].direction Direction::Down { 向上 } else { 向下 }; make_kline_signal_v3(k1, k2, k3, v1, v2, v3)注意两点边界行为若截取的笔数量不足 7 笔bis.len() 7直接输出其他信号见 byi.rs不进入对称判定命中判定是从大到小取窗口末尾即优先用最近 7 笔判定若 7 笔不对称再退到最近 5 笔最后退到最近 3 笔。这与 Python 版byi_symmetry_zs_V221107的 7/5/3 笔判定序完全一致文档对齐说明。信号列表示例文档给出的两个典型信号字符串为Signal(60分钟_D1B_对称中枢_是_向上_7笔_0) Signal(60分钟_D1B_对称中枢_否_向下_任意_0)拆解第一个信号的 7 段结构段值说明k160分钟周期k2D1B倒数第 1 笔起算k3对称中枢信号主题v1是命中对称中枢v2向上最后一笔向下 → 反向映射为向上v37笔最近 7 笔构成对称中枢score0默认分数参数说明di从倒数第di笔开始取数窗口默认1。在实现中通过params.usize(di, 1)读取byi.rs。参数通过 ParamView 统一读取ParamView::usize支持 JSON 数字与数字字符串两种形式缺省时回退到默认值 1。di的作用是跳过最近di-1笔让信号关注倒数第 di 笔之前的结构便于在笔尚未结束时延迟确认。对称中枢的源码级数学判定文档对对称中枢只给出了名称未展开判定细节。实际判定逻辑封装在 byi.rs 的is_symmetry_zs函数中共分四道关卡fn is_symmetry_zs(bis: [BI], th: f64) - bool { if bis.len().is_multiple_of(2) { return false; } let zs ZS::new(bis.to_vec()); if zs.zd zs.zg { return false; } let max_low bis.iter().map(|x| x.get_low()).fold(f64::NEG_INFINITY, f64::max); let min_high bis.iter().map(|x| x.get_high()).fold(f64::INFINITY, f64::min); if max_low min_high { return false; } let zns: Vecf64 bis.iter().map(|x| x.get_power_price()).collect(); let m mean(zns); let s std_pop(zns); m.is_finite() s.is_finite() m ! 0.0 s / m th }关卡 1奇数笔要求。中枢必须由奇数笔构成上-下-上或下-上-下偶数笔直接判否。这也是为什么判定窗口取 7/5/3 而非 6/4/2。关卡 2中枢区间有效性。调用ZS::new构造中枢对象取前 3 笔高低点计算中枢上沿zg与下沿zd见 zs.rslet zg bis.iter().take(3).map(|x| x.get_high()).fold(f64::INFINITY, f64::min); let zd bis.iter().take(3).map(|x| x.get_low()).fold(f64::NEG_INFINITY, f64::max);若zd zg下沿高于上沿中枢区间不成立直接判否。关卡 3笔高低点存在公共重叠区。取所有笔的最低高点min_high与最高低点max_low若max_low min_high说明各笔高低点没有公共交集区间判否。关卡 4价差力度变异系数阈值。取每笔的价差力度get_power_price()即|结束分型值 - 开始分型值|保留两位小数见 bi.rs计算其均值m与总体标准差s要求变异系数s / m th且m、s均为有限值、m ! 0。调用时th 0.3byi.rs即各笔价差力度的离散程度不超过均值的 30%这正是对称二字的量化定义笔与笔之间的力度价差幅度高度接近。从源码结构看该信号把对称中枢落地为奇数笔 有效中枢区间 公共重叠 力度低离散四个可编程条件与传统的价格几何对称如最高最低点关于中轴镜像不同它度量的是笔力度的一致性。笔窗口切片get_sub_elements 语义信号第一步的取数依赖get_sub_elements其语义对齐 Python 版sig.rsdi 1时返回最后 n 个元素di 1时返回[-n-di1 : -di1]切片数量不足时返回可用区间可能为空。因此get_sub_elements(c.bi_list, 1, 10)返回最近 10 笔若di 2则返回跳过最后一笔后的最近 10 笔。该工具函数由 sig.rs 中的单元测试覆盖验证包括di1/di2、数量不足与越界、n0对齐 Python 切片等场景。信号输出格式7 段标准结构与构造器所有 K 线信号最终都通过统一的 7 段字符串表达k1_k2_k3_v1_v2_v3_score解析规则见 signal.rs以_切分为 7 个部分score 必须是 0~100 的整数否则解析失败。本信号使用make_kline_signal_v3sig.rs底层走make_signal7拼接字符串并经Signal::from_str严格校验sig.rsscore 固定为 0。未命中且笔数不足时的其他信号则由make_kline_signal_v1生成v2/v3 均为任意。Signal 对象还提供key()过滤掉任意段后的 k1_k2_k3与is_match()值匹配支持任意通配见 signal.rs等方法方便策略层直接按信号字符串做事件匹配。信号注册机制从 #[signal] 宏到运行时注册表byi_symmetry_zs_V221107在源码中以#[signal(...)]属性宏标注byi.rs#[signal( category kline, name byi_symmetry_zs_V221107, template {freq}_D{di}B_对称中枢V221107, opcode ByiSymmetryZsV221107, param_kind ByiSymmetryZsV221107 )]宏展开由 czsc-signal-macros 完成校验category必须是kline或trader、name 必须与函数名版本后缀一致byi_symmetry_zs_v221107↔byi_symmetry_zs_V221107、kline 信号函数签名必须为(CZSC, Params, mut TaCache)并生成SignalDescriptor常量通过inventory::submit!自动收集。运行时registry.rs 通过inventory::iter遍历所有SignalDescriptor按category kline过滤后注册进SIGNAL_REGISTRYLazyLockHashMapstatic str, SignalMeta。registry.rs的测试test_tas_registry_contains_migrated_signals明确断言byi_symmetry_zs_V221107已在 K 线信号注册表中registry.rs。注册表还提供只读查询接口list_all_signals(include_kline, include_trader)registry.rs并校验信号名与 opcode 全局唯一。实战使用方式1. 作为 K 线信号直接调用该信号是标准 K 线级函数签名fn(CZSC, ParamView, mut TaCache) - VecSignal输入为缠论分析器CZSC对象其bi_list存放笔序列、freq存放周期见 mod.rs输出为信号向量。可在策略引擎中按信号字符串60分钟_D1B_对称中枢_是_向上_7笔_0或是_*形式做事件触发。2. 参数配置di默认1传2及以上可延迟到笔确认后判定阈值0.3目前在源码中是硬编码常量byi.rs模板中未暴露为参数如需更严/更松的对称要求从源码结构看需要调整该常量。3. 信号目录与速查byi.rs是czsc-signalscrate 中 17 个信号源文件之一K 线基础组可运行 dump_signal_catalog.py 重新生成信号模块速查表uv run --no-sync python scripts/dump_signal_catalog.py输出按 K 线基础 / 缠论结构 / 自定义指标 / Trader 四组统计每个.rs文件的#[signal]数量与主题。与其他 byi 系信号的协同byi.rs内的 5 个信号共同构成白伊笔结构辅助体系可组合使用byi_symmetry_zs_V221107对称中枢结构确认本文byi_bi_end_V230106/byi_bi_end_V230107笔结束辅助判定停顿分型 / 验证分型byi_second_bs_V230324二类买卖点辅助MACD 回抽零轴byi_fx_num_V230628笔内分型数量约束。在策略中可用对称中枢命中 笔结束看多 二类买点做多因子叠加以缠论结构信号过滤量价指标的噪声各信号输出均遵循统一的 7 段格式可直接用Signal::is_match做组合匹配。总结byi_symmetry_zs_V221107是一个轻量但定义明确的缠论结构信号通过最近 7/5/3 笔的递减窗口、奇数笔约束、中枢区间有效性、公共重叠与价差力度变异系数阈值 0.3四重关卡把对称中枢量化为可编程判定并通过#[signal]宏 inventory 自动注册进运行时注册表。理解其判定细节与信号格式是将其正确接入 czsc 策略体系的第一步。赞分享金融科技【免费下载链接】czsc缠中说禅技术分析工具缠论股票期货Quant量化交易项目地址https://gitcode.com/gh_mirrors/cz/czsc点击查看免费下载相关推荐缠论一买一卖实战指南背驰识别、czsc 信号函数与缠论信号引擎落地缠论一买一卖实战指南背驰识别、czsc 信号函数与缠论信号引擎落地 导读 本文基于本仓库缠论chanlunSkill 包中的 一买一卖信号文档 http金融科技示例工程Skia Canvas2D 文本扩展设计解读fillGlyphs 与 Font 字形查询 API 剖析Skia Canvas2D 文本扩展设计解读fillGlyphs 与 Font 字形查询 API 剖析 导读 本文深入解析 Skia 仓库中 Canvas2D金融科技Notepad-- 快速上手整目录查找、文件对比、多标签编辑一次搞定Notepad 快速上手整目录查找、文件对比、多标签编辑一次搞定 Notepad 是一款轻量级跨平台文本编辑器Windows、Linux、macOS 三端都桌面应用上一篇抖音下载器技术深度解析从单视频到批量管理的完整解决方案下一篇抖音下载工具的技术架构与异步任务调度实现创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考