缠论个股分析(chanlun-analysis)
输入一个股票名称或代码,产出一份单文件、零外部依赖的缠论买卖点 HTML 报告。
何时用
- "用缠论分析一下腾讯 / 600519 / AAPL"
- "帮我画中枢、找买卖点"
- "这只股票现在有没有三买/三卖"
- "做个带中枢和买卖点标注的K线图"
前置条件:行情连接器
数据来自 WorkBuddy 行情连接器(westock CLI)。先确认可用,不可用则安装:
export PATH="$HOME/.local/bin:$PATH"
westock --help >/dev/null 2>&1 && echo OK || \
bash <westock-data技能目录>/scripts/setup.sh -y # 官方源 + SHA256 校验,装到 ~/.local/bin
找不到 westock-data 技能目录时,用 search_and_install_skills 找 westock-data 并按其说明安装。
一条命令
python3 <本技能目录>/scripts/run_analysis.py 腾讯控股
python3 <本技能目录>/scripts/run_analysis.py 600519 --out ~/Desktop/moutai.html
python3 <本技能目录>/scripts/run_analysis.py hk00700 --periods day,week,m30
python3 <本技能目录>/scripts/run_analysis.py hk00700 --no-fetch # 复用已有数据,只重算重绘
跑完后用 present_files 展示 HTML。整条链路 4~5 次连接器请求,默认间隔 25 秒,全程约 2 分钟——这是连接器频控(约每分钟 2~3 次)决定的,不要试图并发提速。
参数
| 参数 | 默认 | 说明 |
|---|---|---|
| query(位置参数) | 必填 | 名称或代码:腾讯控股/hk00700/HK.00700/00700.HK/600519/600519.SH/AAPL |
| --periods | day,m30,m60 | 逗号分隔:day,week,month,m5,m15,m30,m60,m120 |
| --out | <代码>-chanlun.html | 输出 HTML 路径 |
| --workdir | ./.chanlun/<标的> | 中间数据目录(原始K线、笔、中枢) |
| --interval | 25 | 连接器请求最小间隔秒 |
| --no-fetch | 关 | 跳过取数,复用 workdir 已有数据 |
产出内容(HTML 报告)
- 结论卡:偏多/偏空/震荡 + 两因子得分(位置均分、信号净分),判定规则全部写在页面上;
- 级别信号矩阵:每个级别的最近中枢 [ZD, ZG]、现价位置、最近信号、有效性校验;
- 关键价位卡:各级别中枢上下沿、区间高低点、8% 固定止损位;
- 逐级别结构图:K线 + 笔(橙线)+ 中枢(蓝框)+ 买卖点(红▲绿▼,失效灰色),悬停十字光标显示 OHLC/量比/当日信号全文;
- 逐级别结构研判:每级别一段文字,全部由中枢与信号数据生成;
- 反证条件:什么价格出现时本判断作废——这是防过度自信的关键一节,不要删;
- 信号明细表:每级别最近 8 条信号与依据原文。
中间产物在 --workdir:<级别>.csv(连接器原始K线)→ -chuli.csv(包含处理+分型+笔)→ -xianduan.csv(+线段)→ -zhongshu.json(中枢+走势类型)。换数据源时只要 still 输出 <级别>.csv(表头 date,open,high,low,close,volume),下游全部不用改。
数据源的三个硬约束(必读)
- 分钟 K 只有最近约一周:连接器的 m30/m60 单次最多约 66/36 根,更早窗口返回"数据为空",无法回溯拼接。因此 30分钟/1小时级别的结构天然偏短,经常连笔端点都不足 3 个——脚本会自动降级为"仅笔级结构"并在报告里如实标注,不要为了好看而删掉这些标注。
- 频控很紧且会静默截断:超限返回"请求过于频繁",且可能不给报错只把条数截短(曾把 36 根截成 6 根)。取数层已内置「间隔 + 退避重试 + 条数体检」,若仍看到"仅 N 根"的告警,属数据源上限,不是 bug。
- 复权:A股自动前复权(qfq);港股/美股/指数连接器强制不复权,报告中无需处理。
级别选择建议
- 默认
day,m30,m60:与主流水线口径一致,日线是主力(约 1264 根 ≈ 5 年),分钟级是近一周的结构快照; - 想要两个都有充足历史的级别:
--periods day,week(周线同样可取 1300 根); - 级别展示顺序按大级别→小级别:月线 → 周线 → 日线 → 1小时 → 30分钟 → 15分钟 → 5分钟。
口径(勿改,详见 references/chan-rules.md)
- 包含关系处理 → 分型 → 笔(成笔最少 5 根 K 线,相邻分型至少隔 1 根)→ 线段(特征序列+缺口分两种情况)→ 中枢(三笔重叠,ZG=min 高点、ZD=max 低点,延伸由笔末端是否越界判定);
- 背驰用 MACD 面积比较;三类买卖点里**「准三买/准三卖」只是观测信号**,脚本用后续 K 线自动证伪(收盘跌回 ZG → 买点失效;收盘涨回 ZD → 卖点失效),证伪后再越界标"证伪后再破位";
- 信号有效性校验结果直接决定信号在图表和判定里的权重,严禁人工跳过校验直接采信观测信号。
常见坑
- [ ] 并发调用连接器 → 触发静默截断,拿到残缺K线还不报错;
- [ ] 把"仅 N 根"告警当 bug 修 → 那是连接器分钟级上限,如实呈现;
- [ ] 报告里写死个股名字/日期/价位 → 模板已全部参数化,正文叙述由数据生成,改代码时不要往模板里塞硬编码;
- [ ] 忘记
present_files→ 用户看不到产物; - [ ] 把观测信号(准三买/准三卖)当确认信号解读 → 页面里已标"待确认/已失效",转述时要带上状态。
文件清单
| 文件 | 作用 |
|---|---|
| scripts/run_analysis.py | 主入口:取数 → 结构 → 分析 → 渲染 |
| scripts/fetch_kline.py | 连接器适配层(唯一与数据源耦合的地方) |
| scripts/chan_bi.py | 包含处理 + 分型 + 笔 |
| scripts/chan_xianduan.py | 线段(特征序列) |
| scripts/chan_zhongshu.py | 中枢 + 走势类型分类 |
| scripts/chan_analysis.py | MACD 背驰 + 三类买卖点 |
| scripts/chan_utils.py | CSV/日期/JSON 工具 |
| scripts/render_report.py | 单文件 HTML 渲染(SVG 服务端渲染 + 交互) |
| references/chan-rules.md | 缠论口径与判定规则细节 |
| references/data-source.md | 连接器用法、字段映射、限制与坑 |
微信扫一扫