用缠论AI打造A股智能分析系统,可行吗?

摘要:01 为什么做这个东西 2010 年前后,"缠中说禅"博客在网络上流传的时候,很多人把它当成玄学。但真正研究过的人会发现,缠论是一套逻辑极其严密的技术分析体系——它有明确的数学结构(分型→
01 为什么做这个东西 2010 年前后,"缠中说禅"博客在网络上流传的时候,很多人把它当成玄学。但真正研究过的人会发现,缠论是一套逻辑极其严密的技术分析体系——它有明确的数学结构(分型→笔→线段→中枢),有清晰的趋势定义(上涨/下跌/盘整),有量化的买卖点(一买、二买、三买,一卖、二卖、三卖)。 问题在于,缠论太难人工执行了。 一笔的判断需要看几十根 K 线,一个中枢的确认可能要跟踪上百根 K 线。更别说还要叠加 MACD 背驰判断、多级别共振分析……手工做下来,分析一支股票要两三个小时,普通人根本用不来。 所以我想:能不能用代码把缠论完全程序化? ChanStock 就是这个想法的产物——一个基于缠论的智能股票分析系统,核心算法完全自主实现,叠加 AI 大模型辅助判断,目标是让缠论分析从"专家专属"变成"人人可用"。 02 缠论核心:程序化识别分型、笔、线段、中枢 缠论最底层的结构单元是分型——顶分型和底分型。 顶分型:相邻三根 K 线,中间那根高点最高、低点也最高,形态像"∧" 底分型:相邻三根 K 线,中间那根低点最低、高点也最低,形态像"∨" 系统以严格的三笔窗口扫描 K 线序列,识别出所有顶底分型。 包含关系是缠论里最容易被忽视的细节:两根相邻 K 线如果存在"你在我里面"的包含关系,需要先合并再判断分型。合并方向由两根线的相对位置决定——如果前一根完全在后一根下方(prev.high ≤ cur.low),说明向上走势,取高高(合并高低点取高);反之则取低低。 顶分型 + 中继分型 + 底分型 + … + 底分型 = 一笔(向上) 顶分型 + 中继分型 + 顶分型 + … + 顶分型 = 一笔(向下) 每一笔代表一个次级别的涨跌走势。系统默认要求至少 5 根 K 线才能构成一笔,过滤掉噪音杂波。 笔的组合升级为线段(≥3 笔重叠构成)。重叠的意思是:若干笔的价格区间有交集——这意味着多空双方在这里反复拉锯,形成了一个"战场",也就是中枢。 中枢是连续 3 个同级别线段重叠的价格区域,是缠论所有买卖点的核心参照系。中枢一旦形成,上沿是最强阻力,下沿是最强支撑,所有买卖点都围绕它展开。 03 买卖点:量化判定的六个关键信号 这是整个系统最有价值的部分——把缠论中模糊的"一买""二买"变成可量化的信号。 买点体系: 信号 触发条件 一买 下跌趋势背驰:连续两个向下段,后一段力度 < 前一段力度×0.8,且价格创阶段新低 二买 一买后回调的低点,回调低点不跌破一买点(止损设在一买点下方3%以内) 三买 某中枢被向上笔确认突破后,回踩低点不跌入该中枢上沿 卖点体系逻辑完全对称: 信号 触发条件 一卖 上涨趋势背驰:连续两个向上段,后一段力度 < 前一段力度×0.8,且价格创阶段新高 二卖 一卖后反弹的高点,反弹高点不超过一卖点(止损设在一卖点上方3%以内) 三卖 某中枢被向下笔确认跌破后,反弹高点不突破该中枢下沿 关于"三买"和"三卖"的一个常见误解:不是任何向上/下笔"碰"到中枢就算三买,而是必须等确认突破(该笔终点在枢终点之后),回踩/回抽不破才成立。 每一笔信号附带置信度评分:基础值来自信号自身质量,背驰加持 +15%,多中枢衰减 ×0.85,趋势共振 +10%。 04 AI 加持:从"看图"到"读懂市场" 缠论分析本身是纯规则的、机械的。但真实市场远比规则复杂——盘整多久算突破?力度衰竭多少算背驰?这些都是经验判断。 我们给系统叠加了两层 AI: 第一层:背驰检测 通过 MACD 面积比较来判断力度是否衰竭。比较相邻同向段:若价格创新低但 MACD 绿柱面积没有创新低(反而缩小),就是底背驰;若价格创新高但 MACD 红柱面积没有跟上,就是顶背驰。背驰是缠论里最重要的预警信号。 第二层:LLM 自然语言分析 接入 DeepSeek 和 Gemini 大模型,根据缠论结构、市场趋势、买卖点信号,输出自然语言的投资建议,包括:方向判断(买入/观望/卖出)、置信度、止损位、止盈位、建议持仓周期,以及一段"市场语言"描述当前走势。 示例输出: "当前处于下跌趋势末段,价格已创阶段新低但 MACD 绿柱面积明显萎缩, 底背驰概率约 75%。日线出现一买信号,置信度 82%。 建议关注 12.30 元附近入场,止损 11.93 元(-3%), 止盈目标 12.92 元(+5%),建议持仓 1-4 周。" 多级别共振:同时分析日线和 30 分钟线,当两个周期趋势方向一致时,信号置信度大幅提升。 05 系统架构:Vue 3 前端 + FastAPI 后端 前端用 Vue 3 + TypeScript,主图基于 ECharts 渲染 K 线,副图叠加成交量、MACD、RSI、SKDJ。缠论的笔、线段、中枢以叠加层(overlay)的形式渲染在 K 线图上,颜色语义清晰(红涨绿跌、紫轴中性)。 缠论元素可以按类型开关——只看中枢不看笔,或只看买卖点不看均线,实时切换无需重新加载数据。 后端用 FastAPI 做 REST API 层,缠论引擎完全自主实现(Pandas + NumPy 计算),数据源来自 AKShare(东方财富 + 新浪财经)。 整体架构: 浏览器(Vue 3 + ECharts) ↓ axios /api FastAPI 后端 ├── 缠论引擎(分型→笔→线段→中枢→信号) ├── 策略引擎(置信度 + 止损止盈) ├── AI 层(DeepSeek / Gemini LLM) └── AKShare(东方财富 / 新浪 / 腾讯数据) 06 界面预览:三个核心页面 首页 顶部搜索框支持代码和名称模糊匹配。主体是两个数据区:左侧热门股票排行(实时涨跌幅),右侧当日热门板块网格(点击可展开成分股)。 个股分析页(核心页面) 三栏布局: 左栏:股票基本信息 + 级别切换(日/周/月/1分/5分/15分/30分/60分)+ 走势判断 badge + 买卖点列表 中栏:K 线主图 + 副图(MACD/RSI/SKDJ 可开关)+ 缠论叠加层 右栏:AI 策略卡片(方向/置信度/风险评级/止损止盈)+ 背驰信息 + 模型切换 自选股页 添加/删除股票,表格展示实时行情,点击行跳转个股分析页,数据持久化存储在本地 JSON 文件中。 07 实操指南:10 分钟跑起来 第一步:克隆项目 git clone <repo-url> cd stock-chanlun 第二步:安装后端 cd backend python -m venv .venv .venv\Scripts\activate # Windows # source .venv/bin/activate # macOS/Linux pip install -r requirements.txt 第三步:启动服务 # 推荐方式(自动处理网络代理兼容问题) python run_server.py # 访问后端:http://localhost:8000 # API 文档:http://localhost:8000/docs 第四步:启动前端 cd frontend npm install npm run dev # 访问:http://localhost:5173 可选:配置 AI Key 在 backend/.env 中添加 API Key,可以开启 LLM 自然语言分析功能(DeepSeek 或 Gemini 均可,二选一)。不配置则纯规则模式运行,缠论分析和买卖点判定完全正常工作。 08 技术亮点:踩过的那些坑 做这个项目过程中,有几个技术细节值得单独说说。 K 线列名标准化 AKShare 返回的 K 线 DataFrame 列名有时是英文(open/close/high/low),有时是中文(开盘价/收盘价),不同接口还不一样。缠论引擎先做一次列名标准化,保证后续计算逻辑完全统一。 包含关系处理的 O(n) 优化 经典的包含关系处理需要多轮迭代,代码写不好容易 O(n²)。我们的实现用单次遍历 + 状态机,复杂度降到 O(n),处理 5000 根 K 线也不在话下。关键是用两根 K 线的相对位置(而非单根自身阴阳)来决定合并方向。 分型检测窗口 有些实现取前后各 3~5 根 K 线来判断分型,容易把中间无关的 K 线干扰进来。正确做法是只用前后各 1 根——共 3 根,严格对应缠论"顶底分型"的原始定义。 三买/三卖的"确认突破" 最容易出错的地方:不是任何向上笔"碰"到中枢上沿就算三买,而是要等该笔确认突破——即这根笔的终点发生在中枢终点之后,然后回踩不破才算成立。系统通过比对笔的起止时间来严格判断。 Windows 代理环境下的 SSL 超时问题 在开启了系统代理(***/Shadowrocket 等)的 Windows 机器上,请求 eastmoney 的 push2 接口会 SSL 握手超时。解决方式是在 requests 库的最底层(HTTPAdapter.send)统一拦截,对 eastmoney 等金融域名强制禁用代理 + skip SSL 校验。 09 适合谁用,怎么用 缠论学习者:用系统来验证自己的判断。画了一堆笔和线段,不确定对不对?跑一遍系统,对比结果,哪里判断不一致就学哪里。 技术分析爱好者:MA、MACD、RSI 看多了,想找一套更有结构性的分析框架。缠论提供了从分型到中枢的完整体系,系统把所有元素可视化,看盘效率大幅提升。 量化研究者:系统提供 REST API,可以拉取缠论结构数据(买卖点、笔、线段、中枢坐标)做二次策略开发,接口文档在 /docs 里。 10 免责声明 本系统仅供技术研究与学习使用,不构成任何投资建议。 缠论是一种技术分析方法,不是预测工具。程序化识别存在误判可能,市场走势受多种因素影响,任何单一技术指标或理论都不能保证盈利。 股票投资有风险,入市需谨慎。 附:快速索引 项目地址:[GitHub 链接] 在线演示:[演示地址] API 文档:后端运行后访问 /docs 缠论入门推荐阅读:《教你炒股票》系列(缠中说禅新浪博客) 如果你觉得这个项目有意思,欢迎点个 Star,也欢迎提 Issue 和 PR 一起完善。缠论是一个开放的技术体系,期待更多人参与进来,把这套分析方法真正地用起来。