返回 Skill 列表
extension
分类: 数据与分析无需 API Key

多标的价格对比及回撤分析

可视化对比各关注标的的价格变动趋势,并进一步分析各标的价格变化及回撤。覆盖 A股/港股/美股,支持原始值与归一值一键切换、回撤区间自动标注(阈值默认 5%,可自定义)、周期涨跌幅拖选测算。Use when 用户需要分析价格变化趋势、分析回撤,或对比多个标的的历史收盘价走势与区间表现时。

person作者: user_6a41fe13hubcommunity

financialprice

可视化对比各关注标的的价格变动趋势,并进一步分析各标的价格变化及回撤。 覆盖 A股 / 港股 / 美股,支持原始值/归一值切换、回撤区间标注(阈值默认 5%,可自定义)、周期涨跌幅拖选测算。 当前版本:1.1.0

这是什么

当你想对比多个标的的历史价格走势,或分析单个标的的回撤与区间表现时,这个 skill 会:

  1. 从配置数据源(MCP 优先:westock-mcp / tdx-connector;akshare / yfinance 兜底)取历史收盘价;
  2. 生成一份规范 CSV(所有标的合并、含非交易日行、标注货币单位);
  3. 生成一个交互式 Plotly 看板(HTML),包含:
    • 汇总对比图:默认显示归一值(首日=100),可切换为原始值;右侧提示框不重叠;区间涨跌幅模式默认关闭。
    • 单标的回撤图:价格线叠加红色阴影回撤区间,支持「价格 / 回撤(水下)」视图切换;下方列示回撤起止、持续天数、最大回撤、峰顶值、谷底值。
    • 周期涨跌幅拖选:开启后拖选任意图表,右侧提示框显示起止日期与区间涨跌幅。

适合谁

  • 需要横向对比几只股票/指数/ETF 价格形态的投资者或分析师;
  • 想快速定位某标的「历史上回撤超过 5% 都发生在什么时候」的人。

不适合谁 / 边界

  • 本 skill 只做历史价格可视化与测算,不构成投资建议
  • 不含实时行情、不含基本面/财报分析;回撤阈值默认 5%,可用 --threshold 自定义。

触发方式

  • 关键词:分析价格变化趋势、分析回撤、价格走势对比、回撤分析、价格变动可视化、标的涨幅对比
  • 或自然语言描述「对比这几只股票的价格走势 / 看看这只基金的历史回撤」。

发布元数据(SkillHub)

发布到 SkillHub 社区源时,SKILL.md frontmatter 包含以下市场元数据:

  • slugfinancialprice
  • displayName多标的价格对比及回撤分析
  • summary:可视化对比 A股/港股/美股多标的的价格走势与回撤,支持原始值/归一值一键切换、自定义回撤阈值、周期涨跌幅拖选测算。
  • tags:金融 / 股票 / 可视化 / 回撤分析

文件结构

financialprice/
├── SKILL.md                 # 路由 + 工作流 + 数据源强约束
├── README.md                # 本文件(当前版本 1.1.0)
├── CHANGELOG.md             # 版本变更记录
├── DESIGN.md                # 架构与决策
├── assets/
│   └── dashboard_template.html  # 看板 HTML 模板(build_dashboard.py 注入数据)
├── data/
│   └── sources.yaml         # 数据源配置与禁止项
├── references/
│   ├── data-sources.md      # 市场/代码/货币映射 + raw_prices.json schema
│   └── chart-spec.md        # 看板交互实现细则(维护参考)
├── scripts/
│   ├── markets.py           # 市场/货币/代码识别单一数据源(fetch_data.py 复用)
│   ├── fetch_data.py        # 兜底取数(akshare / yfinance)→ raw_prices.json
│   └── build_dashboard.py   # raw_prices.json → CSV + HTML 看板
└── tests/
    └── test.py              # 自动测试(纯标准库)

快速开始

数据获取分两条路径,优先走 MCP:

  • 主路径(推荐):由 Agent 在对话中直接调用 MCP(westock-mcpdata_kline / tdx-connectortdx_kline)取日级收盘价,按 references/data-sources.md 的 schema 组装成 raw_prices.json无需运行 fetch_data.py
  • 兜底路径:仅当 MCP 不可用或部分标的缺失时,才用 fetch_data.py(akshare / yfinance)补齐。
# 1) 兜底取数(仅 MCP 不可用时;主路径由 Agent 走 MCP 生成 raw_prices.json)
python scripts/fetch_data.py --symbols 600519.SH,00700.HK,AAPL \
       --start 2026-01-01 --end 2026-07-18 -o raw_prices.json

# 2) 生成交付物(--threshold 可选,默认 0.05 即回撤 >5% 标注)
python scripts/build_dashboard.py raw_prices.json ./output --threshold 0.05

# 3) 打开 ./output/price_dashboard.html 看板,./output/prices_source.csv 为源数据

看板通过 CDN 加载 Plotly.js(已加 SRI 校验),首次打开需联网;数据本身已内嵌在 HTML 中。 离线方案:数据已内嵌,若需完全离线渲染,可将 plotly-2.35.2.min.js 下载到本地, 把 assets/dashboard_template.html 中的 CDN <script src> 改为本地相对路径(同时移除 integrity)。

输出文件约定

| 文件 | 说明 | |------|------| | prices_source.csv | 所有标的合并的规范源数据。表头:标的名称,标的代码,市场,货币单位,交易日期,当日收盘价,是否交易日;非交易日保留行并标注,收盘价前向填充,两位小数 | | price_dashboard.html | 交互式 Plotly 看板(v1.1.0 布局:汇总图 + 单标的回撤图双板块;原始/归一切换;各图表独立区间模式;回撤阴影阈值随 --threshold 动态;无 PE 标注/无红涨绿跌切换;Plotly.js 带 SRI 校验) | | raw_prices.json | 中间数据(Agent / fetch_data.py 产出) |

数据来源约束

🔒 严禁使用 WebSearch / 网络搜索获取价格;所有数据仅来自 data/sources.yaml 声明的 MCP 与 akshare / yfinance。价格精确到小数点后两位。

详见 references/data-sources.md