从笔到中枢:chan.py形态学分析全攻略
chan.py是一个开放式的缠论python实现框架,支持形态学/动力学买卖点分析计算,多级别K线联立,区间套策略,可视化绘图,多种数据接入,策略开发,交易系统对接。本文将为您详细介绍如何使用chan.py进行从笔到中枢的形态学分析。## 缠论形态学基础:从笔开始缠论分析的第一步是识别"笔"。在chan.py中,笔是K线图上的基本构成单元,由一系列连续的K线组成,具有明确的上涨或下跌方向。
从笔到中枢:chan.py形态学分析全攻略
chan.py是一个开放式的缠论python实现框架,支持形态学/动力学买卖点分析计算,多级别K线联立,区间套策略,可视化绘图,多种数据接入,策略开发,交易系统对接。本文将为您详细介绍如何使用chan.py进行从笔到中枢的形态学分析。
缠论形态学基础:从笔开始
缠论分析的第一步是识别"笔"。在chan.py中,笔是K线图上的基本构成单元,由一系列连续的K线组成,具有明确的上涨或下跌方向。框架通过bi_list管理所有笔,每个笔由CBi类表示,包含方向、起止K线、是否确定等关键属性。
笔的核心特征
- 方向属性:通过
dir成员表示,分为上升笔和下降笔 - 确定状态:
is_sure标记笔是否已经确定(不会再被后续K线改变) - K线组成:
klc_lst存储该笔包含的所有合并K线 - 线段归属:
parent_seg指示笔所属的线段
# 笔的关键属性示例
class CBi:
idx: int # 笔序号
dir: BI_DIR # 方向(上升/下降)
is_sure: bool # 是否确定
klc_lst: List[CKLine] # 组成笔的合并K线
parent_seg: CSeg # 所属线段
笔的计算配置
在CChanConfig中可以调整笔的计算参数,主要包括:
bi_strict:是否使用严格笔(默认为True)bi_fx_check:检查笔顶底分形是否成立的方法bi_end_is_peak:笔的尾部是否是整笔中最低/最高(默认为True)
这些参数可以通过修改配置文件ChanConfig.py进行调整,以适应不同的分析需求。
线段构建:笔的有序组合
线段是由一系列方向交替的笔组成的更大级别走势单元。chan.py通过CSegListComm类管理线段,每个线段由CSeg类表示,包含起始笔、终止笔、方向、内部中枢列表等属性。
线段的特征序列分析
框架默认采用特征序列方法划分线段,主要原理是:
- 上升线段中的下降笔作为特征序列
- 下降线段中的上升笔作为特征序列
- 对特征序列进行合并后寻找顶底分型
# 线段的关键属性示例
class CSeg:
start_bi: CBi # 起始笔
end_bi: CBi # 终止笔
is_sure: bool # 是否确定
dir: BI_DIR # 方向
zs_lst: List[CZS] # 线段内中枢列表
bi_list: List[CBi] # 线段内笔列表
虚线段的处理
线段确定具有滞后性,框架会生成"虚线段"(is_sure=False)来表示当前推断的线段,在画图时以虚线显示。虚线段可能出现在线段的开头和结尾,随着新K线的加入可能会发生变化。
缠论趋势线分析图,展示了线段与趋势线的关系,绿色虚线和红色实线分别代表不同级别的趋势线
中枢识别:走势的核心结构
中枢是缠论分析的核心概念,代表市场的平衡区域。chan.py通过CZSList类管理中枢,每个中枢由CZS类表示,包含起止K线、内部笔列表、进/出中枢笔等关键信息。
中枢的构成要素
- 笔列表:
bi_lst存储中枢内的所有笔 - 边界定义:
low和high确定中枢的高低区间 - 进出笔:
bi_in(进中枢笔)和bi_out(出中枢笔) - 子中枢:
sub_zs_lst存储可能的子中枢
# 中枢的关键属性示例
class CZS:
begin_bi/end_bi: CBi # 中枢内部的第一笔/最后一笔
bi_in: CBi # 进中枢的笔(在中枢外面)
bi_out: CBi # 出中枢的笔(在中枢外面)
low/high: float # 中枢的高低点
bi_lst: List[CBi] # 中枢内笔列表
中枢的算法配置
中枢计算可以通过zs_algo参数配置不同的算法,主要影响中枢是否允许跨段合并。此外,min_zs_cnt参数控制1类买卖点至少要经历的中枢数量(默认为1)。
中枢区间套分析图,展示了日线和30分钟线两个级别的中枢结构与走势关系
买卖点识别:形态学信号捕捉
chan.py能够自动识别三类买卖点,通过CBSPointList类管理,每个买卖点由CBS_Point类表示,包含所属笔、所在K线、类型等信息。
买卖点的类型与特征
- 1类买卖点:趋势末端的背驰点,与中枢离开笔和进入笔的MACD对比相关
- 2类买卖点:中枢形成后的回抽点,受
max_bs2_rate参数控制(默认为0.618) - 3类买卖点:中枢破坏后的回抽点,与中枢高低点突破相关
缠论买卖点识别示意图,图中实线表示确定的买卖点(bsp),虚线表示潜在的买卖点(cbsp)
背驰判断参数
divergence_rate参数控制1类买卖点的背驰比例(默认为0.9),表示离开中枢的笔的MACD指标相对于进入中枢的笔的比例阈值。
实战应用:快速上手指南
基本使用流程
- 安装依赖:确保Python版本≥3.11,安装requirements.txt中的依赖
- 获取代码:
git clone https://gitcode.com/gh_mirrors/ch/chan.py - 运行示例:
python3 main.py体验基础功能 - 配置调整:修改ChanConfig.py调整分析参数
- 策略开发:参考Debug/strategy_demo.py实现自定义策略
关键配置项
在CChanConfig中重点关注以下配置:
bi_strict:是否使用严格笔zs_algo:中枢算法选择divergence_rate:背驰比例阈值min_zs_cnt:最小中枢数量
可视化分析
框架提供强大的可视化功能,可通过plot_config控制显示内容,包括K线、笔、线段、中枢、买卖点、MACD等指标。默认使用matplotlib绘图,也可通过PlotMeta类对接其他绘图引擎。
总结与进阶
chan.py为缠论形态学分析提供了完整的计算框架,从笔到线段再到中枢,层层递进地解析市场走势。通过调整配置参数,用户可以适应不同的分析需求和交易风格。
进阶学习建议:
- 研究quick_guide.md了解更多高级功能
- 探索多级别联立分析,利用区间套策略提高精度
- 结合动力学指标(MACD、RSI等)提升分析深度
- 参考机器学习分支,探索AI辅助决策的可能性
无论是缠论新手还是有经验的交易者,chan.py都能为您提供强大的技术分析支持,帮助您更客观、高效地理解市场结构。
更多推荐

所有评论(0)