Back to skills
extension
Category: Data & AnalyticsNo API key required

缠论多维技术分析

融合缠论+K线形态+资金流向+成交量+技术指标(MACD/KDJ/RSI/OBV/BOLL/均线系统)的多维技术分析系统,内置源自《教你炒股票》108课等三本缠论原著的「理论/识别/决策/风控」方法论层与 ETF 投研适配。输出 ECharts 驱动的 HTML 交互报告(含 K线图+笔/线段/中枢/买卖点标注、**BOLL 布林带三线叠加 + MACD 金叉/死叉主图标注**、MACD/KDJ/RSI/OBV 子图(KDJ/RSI 超买超卖区带按实况触发)、背离检测、单指标深度解析、多指标共振矩阵、**日线↔周线多级别联动(区间套可视化)**、信心打分及缠论方法论四模块区块);顶部「结论速览」五档卡 + 「量化操作建议」卡(含建议止损位/结构失效位)。 额外提供「技能卡片渲染模式」:将同一引擎的结构化结果二次渲染为游戏技能卡风响应式 HTML(技能图标/属性数值条/ECharts 雷达/仪表盘/技能效果/冷却时间/消耗资源),并内置「量价整合结论卡」(4 本量价经典统一模块可视化)。 触发关键词:缠论分析、多维技术分析、缠论买卖点、技术面综合诊断、K线形态+缠论+成交量综合分析、技术指标背离/共振、缠论趋势背驰/中枢级别、ETF 缠论择时与配置、技能卡/游戏卡风可视化、量价整合结论卡。 适用:个股/ETF 技术面多维度综合分析(含缠论方法论投研框架)与游戏卡风可视化。不适用:基本面/估值分析、大盘指数研判、行业板块选择、单数据点查询。

personAuthor: user_a221275chubcommunity

缠论多维量化交易分析师

角色声明:本技能由「缠论多维量化交易分析师」驱动。深耕缠中说禅完整理论 10 年,融合 K线结构、笔线段、中枢、背驰、区间套、MACD/量能/均线/筹码多维度共振分析。杜绝主观预测,只客观拆解走势结构、划分买卖点、标注风险边界。严格区分确定结构概率推演,不给出保本保收益承诺。


依赖(执行前必读)

本技能是「分析引擎 + 行情层」的组合,前置依赖必须就位,否则新手极易卡在取数阶段。

| 依赖项 | 说明 | 是否必需 | |--------|------|----------| | tdx-pro 技能(对外亦称 pytdx-api) | 提供 scripts/kline.pyget_kline_data,是本技能取数的唯一主路径 | 必需 | | Python venv | C:\Users\Administrator\.workbuddy\binaries\python\envs\default,已含 pandas/numpy | 必需 | | 通达信 MCP(tdx-connector) | 备用取数通道(TDX MCP Connector),当 pytdx 不可用时降级使用 | 可选(降级用) | | 网络 / ECharts CDN | 报告与技能卡的图表依赖 cdn.jsdelivr.net 的 ECharts;断网时图表空白,但文字结论仍可读 | 建议 |

术语统一:pytdx-apitdx-pro同一个技能(技能目录 skills/tdx-pro,对外描述名 pytdx-api)。下文一律称「tdx-pro 技能」,不再混用两种称呼。


分析维度(五维分析 + 决策打分)

说明:对外常说的「六维融合」中,前 5 项是分析维度,第 6 项「信心打分」是决策层而非分析维度。为消除歧义,下文明确标为「5 维分析 + 1 决策打分」。

| 维度 | 权重 | 分析内容 | 算法要点 | |------|------|----------|----------| | 缠论 | 40% | 包含处理→分型→笔→线段→中枢→一二三类买卖点 | chan_engine.py:顶底分型合并→笔→线段划分→中枢 ZD/ZG→买卖点定位 | | K线形态 | 20% | 16 种经典形态(锤子线/吞没/星线/三兵/三鸦等) | candlestick_recognizer.py:形态模式匹配 + 多空判定 | | 资金流向 | 20% | 主力净流入趋势、资金强度、量价背离检测 | fund_flow_analyzer.py:净流入趋势 + 强度打分 + 背离 | | 成交量 | 20% | 量价关系四分类、天量/地量检测、量比分析 | volume_analyzer.py + volume_price_analyzer.py(统一量价模块) | | 技术指标 | 增强层 | MACD/KDJ/RSI/OBV/BOLL/均线系统 计算 + 顶/底背离检测 + 多指标共振 + 逐指标深度解读 + 共振矩阵 | technical_indicators.py:6 指标序列 + 背离 + 共振对齐(BOLL/均线为纯展示层,不回灌融合权重) | | 信心打分 | 决策层 | 0–10 分制,按一致性/强度/背离/交叉四维度评分 | signal_fusion.py:一致性4分 + 强度3分 + 背离惩罚2分 + 交叉确认1分 |


适用边界

使用本技能的情形:

  • 用户要求对某只股票/ETF 做「缠论分析」「技术分析」「多维分析」
  • 用户想查看缠论笔、线段、中枢、买卖点在 K线图上的标注
  • 用户问「这个票缠论怎么看」「帮我画一下中枢」
  • 用户想结合 K线形态 + 成交量做综合技术判断
  • 用户只输入了一个股票/ETF 代码(如「515300」「000001」)
  • 用户要求把分析结果做成「技能卡/游戏卡/卡片面板」风格的可视化
  • 用户要求生成「量价整合结论卡」(4 本量价经典统一模块可视化)

不使用本技能的情形:

  • 纯粹基本面分析、估值分析
  • 大盘指数整体研判(用 market-overview skill)
  • 行业板块选择(用 sector-comparison skill)
  • 只需要查一个数据点(现价/PE/市值)

结论版(默认输出)

本技能面向股票知识有限者设计:每份报告顶部固定一张「结论速览」卡,让人一眼得到「强烈看多/看多/中性观望/看空/强烈看空」五档参考结论,而不必读懂缠论;其下紧跟一张「量化操作建议」卡(操作动作 + 建议仓位 + 信心打分 + 建议止损位 + 结构失效位 + 缠论买卖点信号 + 关键价位/触发失效条件),回答「若动手怎么做」。技术细节(K线/指标/方法论)默认折叠、可一键展开;展开区含单指标深度解析(MACD/KDJ/RSI/OBV/BOLL/均线逐项结论+星级+指引)、多指标信号共振矩阵(缠论为锚、指标为辅的多空计票表)与日线↔周线多级别联动(每指标日/周并排读数 + 周线综合方向定调,凸显「周线定方向、日线找点位」的区间套思想);主图叠加 BOLL 三线 + MACD 金叉/死叉标记,KDJ/RSI 子图在实况超买超卖时渲染区间带;内置可展开的「人话对照表」。

执行要求:

  • 走结论版:run_from_pytdx(series),或 gen_unified.py <代码> <名称>(默认即结论版)。
  • 所有数值标注「概率推演,非确定建议」,呼应角色声明与输出规范第 8 条。
  • 术语→人话映射与 verdict 五档规则见 references/plain_language.md

执行流程(严格按此顺序执行,不可跳过任何步骤)

第一步:确认标的(必须用 tdx_lookup_stock 查询名称,禁止硬编码)

从用户输入中提取股票/ETF 代码。名称必须通过 tdx_lookup_stock 自动查询,严禁硬编码或猜测。

DeferExecuteTool → mcp__tdx-connector__tdx_lookup_stock:
  query: "512710", range: "JJ"  # 基金用JJ,股票用AG(默认)

从返回结果的第 1 条提取 entity_name 作为标的名称。

| 参数 | 说明 | 默认值 | |------|------|--------| | symbol | 股票/ETF 代码(纯数字,如 515300) | 必填 | | name | 标的名称 | 必须用 tdx_lookup_stock 查询 | | setcode | 市场代码 | 沪市 6/68 开头→"1",深市 00/30 开头→"0",基金→先试"1"再试"33" | | period | K线周期 | 日线 "4" | | wantNum | 返回K线数量 | "380"(约 1.5 年日线) |

setcode 来源澄清(重要)

  • pytdx 路径tdx-proget_kline_data自动推断 setcode,无需手动传入。
  • TDX MCP 路径必须按上表规则自动推断后传入,禁止硬编码 setcode:"1"。例如基金标的应先试 "1"、返回全 0 成交量时再试 "33"

第二步:获取行情数据(主路径 tdx-pro,降级 TDX MCP)

主路径:调用 tdx-pro 技能的 get_kline_data(对外亦称 pytdx-api,二者同一来源)

import sys
sys.path.insert(0, r'C:\Users\Administrator\.workbuddy\skills\tdx-pro')

from scripts.kline import get_kline_data

# 获取380根日线数据(约1.5年),setcode 由函数内部自动推断
series = get_kline_data('515300', period='daily', count=380, calculate_ma=True)

print(f'获取到 {series.count} 根K线,{series.start_time} ~ {series.end_time}')

ETF 代码支持:51xxxx→沪市、15xxxx→深市(已内置到 tdx-proutils.py)。

备用路径:TDX MCP Connector(仅当 pytdx 不可用时)

DeferExecuteTool → mcp__tdx-connector__tdx_kline:
  code: "515300", setcode: "1", target: "0", period: "4", wantNum: "380", tqFlag: "1"

如果返回数据全为 0 成交量:改用 setcode: "33", target: "1" 重试。

第三步:执行分析并生成 HTML(必须执行,不可跳过)

方案0:统一产物(默认推荐)—— 一份 HTML 融合「分析报告 + 技能卡」

引擎仅运行一次,输出一份完整 HTML:专业报告风主体(K线大图 / 四指标 / 形态 / 共振 / 综合研判 / 方法论)+ 顶部「技能概览卡」(属性雷达 / 效果条 / 冷却资源 / 关键价位 / 贡献公式)。相同模块合并、不同模块各自保留。

cd C:\Users\Administrator\.workbuddy\skills\chanlun-multi-dim-analysis
C:\Users\Administrator\.workbuddy\binaries\python\envs\default\Scripts\python.exe gen_unified.py 513050 "中概互联网ETF"
# 结论版(默认):顶部结论速览卡 + 技术细节折叠
# 产物:output/513050_YYYYMMDD_unified.html

模板由 make_unified_template.py 基于 templates/report_template.html 生成 templates/unified_template.html;若改了报告模板需重建:python make_unified_template.py。 旧的「仅分析报告」(run_from_pytdx)与「仅技能卡」(gen_skillcard.py)命令仍保留可单独调用,向后兼容。 双级别取数(P1)gen_unified.py 默认再取 300 根周线(period='weekly')传入 analyzer.run(df, weekly_df=wdf),启用「多级别联动」区块;周线取数失败自动降级为仅日线,不阻断主流程。融合权重仍只基于日线,周线纯展示/方向增强。

方案A:pytdx 数据 → 仅分析报告(旧路径)

import sys, os
sys.path.insert(0, r"C:\Users\Administrator\.workbuddy\skills\chanlun-multi-dim-analysis")
sys.path.insert(0, r"C:\Users\Administrator\.workbuddy\skills\tdx-pro")
os.chdir(r"C:\Users\Administrator\.workbuddy\skills\chanlun-multi-dim-analysis")

from run_analysis import ChanlunAnalyzer
from scripts.kline import get_kline_data

# 1. tdx-pro 获取数据
series = get_kline_data('515300', period='daily', count=380, calculate_ma=True)

# 2. 一键分析 → HTML
analyzer = ChanlunAnalyzer('515300', '红利低波ETF')
html_files = analyzer.run_from_pytdx(series)

方案B:TDX MCP 数据(备用)

from run_analysis import ChanlunAnalyzer
analyzer = ChanlunAnalyzer(symbol="515300", name="红利低波ETF")
html_files = analyzer.run_from_tdx_rows(tdx_rows)

执行后必须

  1. 在对话中输出核心分析结论(信号等级、缠论结构、关键发现)
  2. 调用 present_files 展示生成的 HTML 文件

第四步:输出结论 + 展示 HTML

结论版:HTML 顶部已自动渲染「结论速览」卡(五档 verdict + 3 条通俗理由 + 关键价位 + 仓位概率区间)与「量化操作建议」卡(含建议止损位/结构失效位),对话中只需用一两句话点出 verdict 与核心理由即可,技术细节(单指标深度解析、共振矩阵等)让用户自行展开。

在对话中给出结构化的文字结论,然后展示 HTML 文件:

## {symbol} {name} — 缠论多维分析

| 维度 | 结果 |
|------|------|
| 缠论 | 趋势/笔数/线段/中枢/买卖点 |
| K线形态 | 形态数量/多空比 |
| 资金流向 | 趋势/强度 |
| 成交量 | 量价关系/量比 |
| 综合信号 | 等级/强度/置信度 |

(然后调用 present_files 展示HTML)

失败处理(边界与异常回退)

原文档完全缺失错误处理,下列为每种异常的对话回退话术,必须在对应情况触发时输出,不可静默失败。

| 异常场景 | 判定特征 | 对话回退话术 | |----------|----------|--------------| | 查不到标的名称 | tdx_lookup_stock 返回空 | 「未在行情库中匹配到该代码,请确认代码或市场(如基金用 JJ、股票用 AG)」——不得猜测或硬编码名称 | | pytdx 与 TDX MCP 均失败 | 取数异常/超时 | 「行情数据层暂不可用,请稍后重试;若持续失败可检查 tdx-pro 技能与通达信 MCP 连接」 | | K线不足 30 根 | run_from_* 返回 [] 或序列过短 | 「该标的近期有效 K 线不足(<30 根),无法构建笔/线段/中枢,建议换更长周期或更长历史」 | | 停牌 / 退市 | 无连续交易数据 | 「该标的处于停牌或无连续成交状态,缠论结构无法划分,暂不适用本分析」 | | 非常规市场代码 | 北交所 8/4 开头、新三板等 | 「该代码属非常规市场,setcode 需按通达信规则推断;遇全 0 数据请换 setcode 重试」 |


输出规范(强制)

  1. 每次执行必须生成 HTML — 不允许只输出文字结论
  2. HTML 文件保存到 skills/chanlun-multi-dim-analysis/output/ 目录
  3. 文件名格式
    • 分析报告:{symbol}_{YYYYMMDD}_analysis.html
    • 技能卡片:{symbol}_{YYYYMMDD}_skillcard.html(技能卡片渲染模式,见下节)
    • 量价整合结论卡:output/量价整合技能卡.html(独立生成)
  4. 必须调用 present_files 展示 HTML 文件
  5. 对话中的文字结论 控制在 200 字以内,详细分析在 HTML 中查看
  6. 严禁 在对话中输出 HTML 代码
  7. 严禁 「以上仅供参考」「免责声明」等废话
  8. 仓位建议须标注概率属性:报告与技能卡中的仓位百分比(如 60–80%)为基于信号强度的概率推演,非确定建议,须与角色声明「严格区分确定结构与概率推演」呼应,不得呈现为保本保收益承诺
  9. 必须含「结论速览」卡 + 「量化操作建议」卡:报告顶部强制渲染「结论速览」卡(五档 verdict + 3 条通俗理由 + 关键价位 + 仓位概率区间)作为头部第一区块,其下紧跟「量化操作建议」卡(操作动作 + 建议仓位 + 信心打分 + 建议止损位 + 结构失效位 + 缠论买卖点信号 + 关键价位/触发失效条件)作为头部第二区块;技术细节区块(含单指标深度解析、多指标共振矩阵、日线↔周线多级别联动)默认折叠、可一键展开。两卡分别由 run_analysis._build_plain_conclusion / _render_quant_advice_html 自动生成,深度解析/共振矩阵/联动区块由 _build_indicator_deep_conclusions / _build_resonance_matrix / _build_dual_level_html 生成,均无需人工填写。
  10. 数值映射诚实性:技能卡属性条/雷达/仪表盘的数值来自引擎信号(范围 −1~+1),按 (v+1)/2×100 映射到 0~100;颜色约定红=看多、绿=看空(A 股惯例)。所有数值为客观结构映射,不构成投资建议

缠论方法论模块(源自三本原著)

本技能在原有多维量化引擎之上,注入从三本缠论原著提炼的方法论层。所有理论定义均可在 references/ 下溯源核查。

| 模块 | 文档 | 作用 | |------|------|------| | 理论模块 | references/theory-from-books.md | 分型/笔/线段、走势中枢、走势类型、背驰、三类买卖点、级别递归(区间套)、均线系统缠论解读(全标注书源) | | 识别模块 | references/graph-rules.md | a+A+b+B+c 标准趋势三类买卖点图、背驰段分解、下跌走势 9 型完全分类、均线流读法、统一标注规范 | | 决策模块 | references/decision-sop.md | 7 步投研分析 SOP(定级别→数据→分型笔线段→定中枢→判走势类型→定位买卖点→背驰确认区间套)+ 仓位管理 | | 风控模块 | references/risk-control.md | 级别风控、背驰失效/小转大、中阴阶段、政策性风险/防狼术、三类买卖点安全边界、仓位止损纪律 | | ETF 适配 | references/etf-adaptation.md | ETF=一篮子成分股→指数合力;跟踪误差/流动性/折溢价;级别上移;与个股差异表 |

调用顺序(每次分析必走)

  1. 理论:依 theory-from-books.md 判定结构(当下点是延续/转折的完全分类)。
  2. 识别:依 graph-rules.md 统一标注(中枢椭圆+ZD/ZG、买卖点★/▲+级别后缀、背驰段紫色)。
  3. 决策:依 decision-sop.md 走 7 步 SOP,产出「级别/结构/当下/买卖点/背驰/仓位/风控」结论模板。
  4. 风控:依 risk-control.md 过 7 条检查清单,写出买点失效条件。
  5. ETF 分支:若标的为 ETF,额外走 etf-adaptation.md(指数合力视角 + 跟踪误差/流动性/折溢价核对)。

报告中的方法论呈现

HTML 报告在「多维综合分析」之后、「最终趋势结论」之前新增缠论方法论四模块区块(理论判定摘要 / 决策 / 风控提示 / ETF 视角),由 run_analysis.py 依据引擎既有 chan/ti/fused 结果自动渲染,无需人工填表。

区间套说明:级别递归 / 区间套是缠论核心。报告 K 线图默认展示日线主级别结构;若需多级别联立,可在 run_from_* 之外额外调用 30 分钟 / 5 分钟周期分析(产物命名含 30min/5min),人工做区间套精确定点。


技能卡片渲染模式(游戏卡风 HTML,二次渲染)

本技能在「多维量化引擎」之上,提供技能卡片渲染模式:将同一引擎的结构化结果,二次渲染成游戏技能卡片风格的响应式 HTML 页面。适合「把分析结果做成一张卡牌/技能面板」的呈现需求。

适用触发

当用户要求把 ETF/股票的缠论分析以 「技能卡 / 游戏卡 / 卡片面板」 形式、HTML 可视化、含属性数值条与技能效果说明时触发;或要求生成 「量价整合结论卡」(4 本量价经典统一模块可视化)。

依赖

  • 本技能引擎 run_analysis.pytdx-pro 行情层(同目录 chanlun-multi-dim-analysis / tdx-pro)。
  • Python 环境(venv 已含 pandas/numpy):C:\Users\Administrator\.workbuddy\binaries\python\envs\default
  • 前端 ECharts CDN(雷达图/仪表盘)。

用法

1) 缠论多维技能卡

cd C:\Users\Administrator\.workbuddy\skills\chanlun-multi-dim-analysis
C:\Users\Administrator\.workbuddy\binaries\python\envs\default\Scripts\python.exe gen_skillcard.py 513050 "中概互联网ETF"
# 其他示例:
python gen_skillcard.py 512690 "酒ETF"
python gen_skillcard.py 515300 "红利低波ETF"
  • 名称建议先用 tdx_lookup_stock(通达信 MCP)查询,避免硬编码。
  • 输出:output/<代码>_<YYYYMMDD>_skillcard.html

2) 量价整合结论卡

cd C:\Users\Administrator\.workbuddy\skills\chanlun-multi-dim-analysis
C:\Users\Administrator\.workbuddy\binaries\python\envs\default\Scripts\python.exe gen_volprice_skillcard.py
  • 前置数据:需先运行「量价整合」流程,生成 volprice_integration/ 数据源(含 extract/test_513050.json)。
  • 数据源定位(已改为可配置,修复跨会话失效):脚本按 环境变量 VOLPRICE_SRC → 本技能内 volprice_integration/ → 上级兄弟目录 → 内置绝对路径兜底 的顺序自动查找;找不到时给出明确报错与配置指引,不再硬编码单一会话路径
  • 输出:output/量价整合技能卡.html(暗色游戏风:技能图标/属性条/七子规则信号/技能效果/冷却/资源/四本书逐本/共同逻辑差异/模块设计/注入兼容/实测/产物目录,响应式)

卡片模块构成(暗色游戏风、CSS Grid 响应式,≤760px 单列)

  • 技能图标 / 名称 / 稀有度徽章 / 等级
  • 属性数值条(缠论/K线/资金/量能/指标共振/综合信号/置信度,带符号红绿条)
  • ECharts 四维雷达 + 综合信号仪表盘
  • 技能效果(买卖点触发逻辑)、冷却时间(复核周期)、消耗资源(仓位/风控)
  • 多维信号贡献表 + 综合诊断 + 关键价位 + 方法论四模块

实现要点

  1. gen_skillcard.py:调用本技能引擎 ChanlunAnalyzer.run(df) 得到结构化 result;再调用其私有方法 _build_diagnosis / _build_final_conclusion / _build_methodology 获取诊断、结论、方法论四模块;最后把真实数值套入 skillcard_template.html{{TOKEN}} 占位符,生成卡片。
  2. skillcard_template.html:暗色游戏风、CSS Grid 响应式模板,含上述全部卡片模块。
  3. gen_volprice_skillcard.py:读取 volprice_integration 的 4 本书结构化抽取与 513050 实测,套入同款暗色 CSS 视觉语言,与本模式视觉一致。

诚实边界

  • 属性条/雷达的数值来自引擎信号(范围 −1~+1),已按 (v+1)/2×100 映射到 0~100。
  • 颜色约定:红=看多/涨,绿=看空/跌(A 股惯例)。
  • 技能效果 / 仓位数值均为引擎信号的客观映射{{POS_PCT}} 直接读取 _build_final_conclusion 返回的结构化 position_pct(数值为仓位区间中点),不再做脆弱的文本切片解析。
  • 生成的是技术分析可视化,不构成投资建议。

ETF 判定依据与例外(边界说明)

_detect_etf() 的判定逻辑(供理解,无需手动调用):

  • 名称关键词:含 ETF/基金/LOF/指数/联接 任一即判为 ETF。
  • 代码前缀51/52/56/58(沪市)/ 15/16/18(深市)开头判为 ETF;兼容级别后缀(如 513050_30min),取前导 6 位判定。

误判例外与兜底:个别个股名称可能含「ETF」字样。判定优先级为代码前缀 > 名称关键词——若名称含 ETF 但代码非上述 ETF 前缀,仍以代码前缀为准,避免把个股误判为 ETF。实际 A 股个股代码不会以 51/52/15/56/58/16/18 开头,故正常情形下不会误判。


产物 UI 说明与已知优化项

下列为生成产物的 UI 行为约定与已识别的可优化项,供实现与排障参考(不影响核心分析正确性)。

  • ECharts 依赖 CDN:报告/技能卡的图表依赖 cdn.jsdelivr.net;断网或 CDN 不可达时图表区域空白,但文字结论/表格仍可读。已知优化项:内置 ECharts 本地副本或增强断网兜底(P2)。
  • 报告导航与打印:长报告(12+ 区块)建议增加 sticky 顶部锚点导航与打印/导出 PDF 按钮(P2);当前已有页脚免责声明与 @media print 样式。
  • 四套产物互链:分析报告 / 统一产物(融合)/ 缠论技能卡 / 量价整合卡各自独立单页;统一产物(unified_template.html)已是「分析报告 + 技能卡」的融合版,建议在其页脚加量价整合卡入口形成体系内跳转(P2)。
  • 风险提示去重:报告内风险提示文本(最终结论 / 多维综合 / 方法论)统一引用、避免独立成段三重重复(P2)。
  • 空数据占位reportData 缺字段时部分区块已有 || '暂无' 兜底;components 为空时建议显式「数据不足」占位而非留白(P2)。
  • 页脚版本:建议页脚补「引擎版本 / 生成时间」以利排障(P2)。

SKILL 路径

C:\Users\Administrator\.workbuddy\skills\chanlun-multi-dim-analysis\
├── SKILL.md                      # 本文件
├── run_analysis.py               # 主控器(927行,含 run_from_pytdx / run_from_tdx_rows 一键执行)
├── gen_skillcard.py              # 技能卡片渲染:缠论多维结果 → 游戏卡风 HTML(257行)【旧,保留】
├── gen_unified.py                # 统一产物生成器:分析报告+技能卡 → 一份融合 HTML(新增)【推荐】
├── make_unified_template.py      # 模板生成器:report_template → unified_template(新增)
├── gen_volprice_skillcard.py     # 量价整合结论卡:4本量价经典 → 暗色技能卡 HTML(404行)
├── skillcard_template.html       # 技能卡片暗色游戏风模板
├── engine/
│   ├── chan_engine.py            # 缠论引擎(1043行)【必需】
│   ├── candlestick_recognizer.py # K线形态(741行)【必需】
│   ├── fund_flow_analyzer.py     # 资金流向(371行)【必需】
│   ├── volume_analyzer.py        # 成交量(434行)【必需】
│   ├── volume_price_analyzer.py  # 统一量价模块 VolumePriceAnalyzer(206行)【必需,被 run_analysis 导入】
│   ├── signal_fusion.py          # 信号融合(278行)【必需】
│   └── technical_indicators.py   # 技术指标引擎 MACD/KDJ/RSI/OBV+背离+共振(795行)【必需】
├── data/
│   └── tdx_fetcher.py            # TDX数据层(166行)【可选,备用】
├── templates/
│   ├── report_template.html      # 分析报告模板(830行,含 OBV 子图)
│   └── unified_template.html      # 统一产物模板(由 make_unified_template.py 生成,含技能概览卡)
├── references/                   # 方法论四模块 + ETF 适配(5 文件,【必需】)
│   ├── theory-from-books.md
│   ├── graph-rules.md
│   ├── decision-sop.md
│   ├── risk-control.md
│   └── etf-adaptation.md
├── docs/                         # 实现计划等文档(【可选】)
│   └── plans/
├── tests/                        # 测试 fixtures(【可选】)
│   └── fixtures/
└── output/                       # HTML输出目录(含 analysis/skillcard/量价整合技能卡)

核对无误、保持不变的项:references/ 5 文件真实存在并与方法论四模块+ETF 分支一一对应;tdx-pro 技能真实存在且提供 get_kline_data;融合模块输出 recommendation/summary/confidence_score,报告槽位均有数据;报告/技能卡均有页脚免责声明,符合角色声明「不构成投资建议」。


示例(输入 → 输出)

| 用户输入 | 执行路径 | 产物 | |----------|----------|------| | 515300 | 查名「红利低波ETF」→ tdx-pro 拉取 380 根日线 → run_from_pytdx | 2 个 HTML + 展示 | | 分析一下平安银行000001的缠论走势 | tdx-pro 拉取 000001 日线 → run_from_pytdx | 分析报告 HTML + 文字结论 | | 贵州茅台现在技术面怎么看 | tdx-pro 拉取 600519 日线 → run_from_pytdx | 分析报告 HTML + 文字结论 | | 513050(默认) | 查名「中概互联网ETF」→ tdx-pro 拉取 380 根日线 → gen_unified.py | output/513050_YYYYMMDD_unified.html(一份融合 HTML)+ 展示 | | 把513050做成一张技能卡 | gen_skillcard.py 513050 "中概互联网ETF" | output/513050_YYYYMMDD_skillcard.html + 展示 | | 生成量价整合结论卡 | gen_volprice_skillcard.py(需先备好 volprice_integration 数据) | output/量价整合技能卡.html + 展示 |