ChanSignal - 缠论买卖点分析
Overview
本技能基于缠论(缠中说禅趋势理论)对 A 股股票进行买卖点识别分析。通过 pytdx 获取通达信 K 线数据,依次执行 K 线包含处理、分型识别、笔划分、中枢识别、MACD 背驰检测,最终判定一二三类买卖点信号,并给出交易参考建议。
Prerequisites
运行分析前需确保 Python 环境已安装以下依赖:
pip install pytdx pandas numpy
若环境中尚未安装,先执行安装命令再运行分析脚本。
Core Workflow
Step 1: 运行分析脚本
执行 scripts/chan_signal.py,传入股票代码和可选的周期参数:
python scripts/chan_signal.py <股票代码> [--period <周期>] [--count <K线数>] [--recent <近期窗口>]
参数说明:
股票代码:6位数字代码,如000001(平安银行)、600519(贵州茅台)--period:周期,9=日线(默认)、7=周线、6=60分钟、5=30分钟--count:K线条数,默认500--recent:只返回最近N根K线内的信号,0=全部(默认0)
示例:
# 日线分析贵州茅台
python scripts/chan_signal.py 600519
# 60分钟线分析平安银行,只看最近5根K线的信号
python scripts/chan_signal.py 000001 --period 6 --recent 5
脚本输出 JSON 格式的分析结果。使用 json.loads() 解析输出获取结构化数据。
Step 2: 解读分析结果
JSON 输出包含以下关键字段:
{
"code": "600519",
"period": "日线",
"latest_date": "2026-07-04",
"latest_close": 1685.50,
"change_pct": 1.23,
"kline_count": 500,
"structure": {
"fractal_count": 48,
"bi_count": 23,
"zhongshu_count": 5,
"current_trend": "向上",
"price_vs_zs": "在中枢上方(中枢上沿:1650.00 下沿:1580.00)",
"last_bi": {
"direction": "向上",
"start_date": "2026-06-20",
"end_date": "2026-07-04",
"start_price": 1620.00,
"end_price": 1685.50,
"strength": 65.50
},
"recent_zhongshu": [...]
},
"signals": [
{
"name": "一买",
"type": "buy",
"level": 1,
"date": "2026-06-15",
"price": 1580.00,
"confidence": 0.8,
"description": "一买:下跌背驰底分型(MACD底背驰确认)"
}
],
"buy_signal_count": 1,
"sell_signal_count": 0,
"latest_signal": {...}
}
Step 3: 生成交易建议
根据分析结果,按以下规则生成面向用户的交易参考建议:
买卖点信号含义
| 信号 | 类型 | 含义 | 操作建议 |
|---|---|---|---|
| 一买 | 买入 | 下跌趋势末端+底背驰,趋势反转点 | 左侧建仓点,风险较高但潜在收益最大 |
| 二买 | 买入 | 一买后回调不破前低,确认反转 | 较安全的右侧建仓点,回调买入 |
| 三买 | 买入 | 突破中枢后回踩不进入中枢 | 趋势确认后的追涨买点 |
| 一卖 | 卖出 | 上涨趋势末端+顶背驰,趋势反转点 | 左侧减仓点 |
| 二卖 | 卖出 | 一卖后反弹不过前高,确认反转 | 较安全的右侧减仓点 |
| 三卖 | 卖出 | 跌破中枢后反弹不进入中枢 | 趋势确认后的止损点 |
建议生成规则
-
有买入信号时:
- 按信号级别(一买>二买>三买)和置信度排序
- 置信度≥0.8的信号标记为"强烈建议关注"
- 结合当前趋势:若当前趋势仍向下但出现一买,提示"趋势可能反转,可轻仓试探"
- 若出现二买或三买且趋势已向上,提示"趋势确认,可考虑加仓"
-
有卖出信号时:
- 同理按级别和置信度排序
- 一卖+顶背驰=强烈减仓信号
- 三卖=趋势走弱,建议止损
-
无信号时:
- 根据当前趋势和中枢位置给出方向性判断
- 价格在中枢内部:建议观望等待突破
- 价格在中枢上方且趋势向上:多头趋势,持股待涨
- 价格在中枢下方且趋势向下:空头趋势,不宜介入
-
多周期建议(可选):
- 可对同一股票运行多个周期(日线+60分钟)进行交叉验证
- 日线和短线周期信号一致时,信号更可靠
-
风险提示(必须包含):
- 每次建议末尾必须附加:"⚠️ 以上分析基于缠论技术指标,仅供参考,不构成投资建议。股市有风险,投资需谨慎。"
Step 4: 多周期交叉验证(可选)
当用户需要更全面的分析时,可对同一股票运行多个周期:
python scripts/chan_signal.py 600519 --period 9 # 日线
python scripts/chan_signal.py 600519 --period 6 # 60分钟
python scripts/chan_signal.py 600519 --period 7 # 周线
将多个周期的结果综合分析:
- 大周期(周线/日线)定方向,小周期(60分钟/30分钟)找买卖点
- 多周期共振信号更可靠
Output Presentation
向用户展示分析结果时,建议使用以下格式:
- 股票概要:代码、最新价、涨跌幅、分析周期
- 缠论结构:当前趋势、价格与中枢关系、最近一笔的方向和强度
- 买卖点信号:按时间倒序列出所有信号,标注级别和置信度
- 交易建议:根据信号综合判断,给出操作方向和注意事项
- 风险提示:固定的免责声明
可使用 show_widget 工具生成可视化图表辅助说明,如中枢区间图、买卖点标注图等。
Script Reference
核心脚本位于 scripts/chan_signal.py,自包含全部缠论引擎逻辑,无需额外模块依赖(除 pytdx/pandas/numpy 外)。
脚本也可作为 Python 模块导入使用:
import sys
sys.path.insert(0, "scripts")
from chan_signal import analyze
result = analyze("600519", category=9, count=500, recent_bars=5)
Limitations
- 数据源为通达信公开行情服务器,非交易时段可能返回最新收盘数据
- 缠论参数(最小笔长度=4、中枢容忍度=1%)为默认值,极端行情下可能需要调整
- 线段划分采用简化算法(连续同向笔合并),未实现严格特征序列处理
- 买卖点判定依赖 MACD 背驰检测,震荡行情中可能产生较多假信号
评论
加载中…