# Chanlun Engine Skill

> 用缠论客观分析A股股票。当用户提到 缠论、分型、笔、线段、中枢、背驰、买卖点、K线结构，或想知道某只股票该买该卖该持有还是等待时使用。确定性脚本计算缠论结构并给出四态操作判定(买入候选/持有/卖出减仓/等待观察)与失效价位，AI 只负责解读转述，不心算结构。免费数据源开箱即用，无需注册。

- Skill: `adsorgcn/chanlun-engine-skill` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add adsorgcn/chanlun-engine-skill`
- Raw SKILL.md: https://api.skillmd.com/api/skills/adsorgcn/chanlun-engine-skill/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: adsorgcn (https://skillmd.com/u/adsorgcn)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/adsorgcn/chanlun-engine-skill

---


# 缠论结构引擎 (chanlun-engine-skill)

脚本算一切结构，你（LLM）只在结构之上说话。这不是风格偏好，是实证结论：
两套确定性引擎对拍，中枢对齐率仅 0.0-0.42。缠论结构对算法口径极度敏感，心算等于引入一套不可复现、无不变量校验的第三口径。

## 硬性禁令（违反即错误）

1. 禁止从原始K线心算/目测任何缠论结构（分型、笔、线段、中枢、买卖点、背驰）
1b. 股票名→代码必须由 get_data.py 解析（--symbol 直接传用户说的名字），禁止凭记忆填代码；报告标题用它返回的 name+symbol，输出前核对与用户所问的是同一只股票
2. 禁止引用引擎 JSON 中不存在的结构
3. 禁止把 `sure:false` 的候选升格为"确认"：它是"当前帧"形态学语义，次日可能消失
4. 操作判定（买入候选/持有/卖出减仓/等待观察）必须原样来自引擎 `verdict` 字段，禁止自创、改写或加码；给判定必须连同关键价位与观察条件一起给
5. 每个信号必须先写失效条件（引擎已给出 `invalidations` 数值），再谈其他

## 面对新手用户（先判断再动手）

用户很可能不是程序员。开始前先判断对方是谁：说"帮我分析XX股票"的普通用户，走下面的代办流程（所有命令你自己跑，别把终端命令甩给对方）：

1. 环境自检：Python≥3.11 在不在、vendor 装没装（没装就替用户跑 setup 脚本并简单说明"正在装计算引擎，约1分钟"）
2. 数据自检：默认免费源零配置直接用。用户想升级官方源时按 references/getting-started.md 引导申请
2b. key 入库（用户永远不碰终端）：用户在对话里发来 key 时，你**立即代存，不训话不拒收**——自己跑 `echo <key> | python scripts/setup_env.py --set-key`（stdin 直入，加密落盘，key 不写进任何脚本参数或临时文件），确认成功后回一句：已加密存进本机（Windows 走系统级 DPAPI），聊天里那条消息可以删掉，不放心随时去 fuyao.aicubes.cn/admin 作废重签。介意隐私的用户才引导终端自录（getpass 不回显）
3. 讲解时人话优先：术语首次出现要用一句话解释（例：「中枢=多空反复争夺形成的价格区间，跌破它说明争夺失败」）；结论直接引用 summary 成品句
4. 新手问判定含义时说清定位：四态判定是缠论规则的机械信号（同一份数据谁跑都一样、可复核、带失效价位），供决策参考；它不是针对个人财务状况的投资建议，最终决定权在用户

## 使用流程

```bash
# 首次: 环境自检+装免费行情源(引擎已随技能打包, 无需下载任何代码)
python scripts/setup_env.py --recommended

# 一条龙: 取数(自动选源: 有同花顺key走官方, 没有走akshare免费源)→算结构与判定
# --symbol 直接传用户说的股票名或6位代码(脚本自动解析, 严禁自己凭记忆猜代码)
python scripts/get_data.py --symbol 招商银行 --out k.csv
# 用上一步输出的 symbol 与 name 字段, 不要自己填
python scripts/chan_engine.py --symbol <上一步输出的symbol> --csv k.csv

# 全市场扫描 (需同花顺key+本地marketdb, 建议在服务器跑; 见 references/engine-notes.md)
python scripts/scan_market.py --duckdb data/market.duckdb --out data/

# 无网络时自测
python scripts/make_testdata.py && python scripts/chan_engine.py --symbol TEST --csv testdata.csv
```

## 输出契约 chanlun_structure_v1（你消费的唯一事实源）

- `day/week`: 各级别的 `bi`(笔) `seg`(线段) `zs`(中枢: zg/zd/gg/dd) `bsp`(买卖点: 1,1p,2,2s,3a,3b)
  `pos_vs_last_zs`(现价对最近中枢: above/in/below)
- `signals.fresh_bsp`: 最近K线上的新鲜买卖点（选股信号，全部是候选非确认）
- `signals.week_day_confluence`: 周-日粗糙区间套共振
- `invalidations`: 每个新鲜信号的失效价位（数值，直接引用）
- `ma`: 均线值与状态（long排列/缠绕），即缠师早期均线系统的日K落地
- `caveats`: 口径声明，报告中必须保留其要点

## 固定输出模板（保底路径：任何模型照此填空即为合格输出）

引擎 JSON 的 `summary` 字段是**预拼好的成品结论句**，直接引用，禁止改写数值：

```
【{name}({symbol}) 缠论分析 · {asof}】
{summary.verdict}
结构定位: {summary.day}
大级别: {summary.week}
均线: {summary.ma}
信号: {summary.signal}
失效条件: {逐条列 invalidations 的 rule + px}
口径: 日-周近似缠论(structure_proxy), 未确认信号次日可能消失。
```

有余力的模型在模板之后追加"多义性分解"（条件树叙述）；没把握就只出模板，模板本身已是合格交付，错误的发挥不如不发挥。

## 解读姿态（你的正确位置）

- **多义性分解**：基于 `sure:false` 分支与未完成笔，枚举"若走A则结构演化为…若走B则…"的条件树，且只在引擎给出的候选之上枚举，不自创结构
- **结构叙事**：当前操作级别、中枢位置、背驰状态、离最近买卖点的距离
- **能力边界**（必要时向用户申明）：本引擎是日-周两级"近似缠论"(structure_proxy)：无分钟K即无次级别确认；背驰用MACD peak法(rate<0.9)是第24课"辅助判断"的量化近似；
  严格区间套/同级别分解/中阴阶段不做结构计算，只做叙述性提示

## 深入阅读

- [references/chanlun-core.md](references/chanlun-core.md) — 理论完备性16项清单，全部锚定原文课号
- [references/engine-notes.md](references/engine-notes.md) — 引擎口径、配置陷阱、契约字段明细

