dsh-xueqiu · 雪球 mini 行情面板
DeepSeek Harness 上的雪球行情面板:免登录查看 A股/港股/美股实时行情、K线、分时、热榜、搜索、7×24 快讯与热议用户。面板嵌入输入框上方不遮挡对话,常驻行情区域显示四大指数与自选股涨跌,交易时段智能刷新。
中文 | English
功能 · 截图 · 安装 · 使用 · 稳定性 · 质量与测试 · FAQ · 更新日志
🆚 与同类行情插件
| 能力 | dsh-xueqiu | 股票皮肤类插件 |
|---|
| 面板形态 | 嵌入输入框上方,不遮挡对话 | 全局换肤/状态栏 |
| K线/分时 | KLineChart 引擎蜡烛图/分时面积图+均线+十字光标,7 档周期 | 部分有 |
| 热榜/快讯/KOL | 全有 | 多数无 |
| 数据源 | 雪球(社区数据:帖子/热议用户独有) | 腾讯/Yahoo 等 |
| 请求防护 | 闸门+看门狗+缓存+自愈+隐藏暂停 | 一般仅缓存 |
| 常驻行情区域 | 四大指数+12 自选两列平铺,⤡ 调宽 | 多为纯状态栏 |
| 主题 | 跟随 DSH 明暗 | 需整体换肤 |
✨ 功能
| 功能 | 说明 |
|---|
| 📊 实时行情 | 大盘指数(上证/深证/创业板/科创50)+ 自选股列表,涨红跌绿,表头点击排序 |
| 🕯️ K线图 | 基于 KLineChart v10 引擎(canvas 渲染,内置主题适配):蜡烛图 + 独立成交量窗格 + MA 均线 + 十字光标 legend,5分/15分/30分/60分/日K/周K/月K 7 档切换;滚轮缩放 + 拖拽平移,右拖触底自动加载更早历史(500 根/次,已实测连续加载至 3400+ 根) |
| ⏱️ 分时图 | 面积价格线(涨跌色)+ 均价线 + 昨收基准虚线,十字光标 tooltip 查任意分钟 价/均价/涨跌 |
| 🔥 热榜 | 雪球热门榜,A股/美股/港股/全球 切换 |
| 🔍 搜索 | 搜股票(一键加自选/看详情)、搜帖子 |
| 📰 快讯 | 7×24 实时快讯,重要新闻高亮 |
| 👥 热议用户 | 个股热门 KOL(粉丝数/认证标识) |
| 💼 自选股 | 本地持久化,增删随点随改;可选登录后直接使用雪球云端自选股 |
| 👤 可选登录 | 粘贴浏览器 Cookie 即可登录(借鉴 xueqiu-cli 手动模式):登录后自动拉取云端自选股,加/删自选尽力同步到云端;Cookie 仅存本机 ~/.dsh 工作区文件,不上传任何第三方 |
| 🧲 嵌入式面板 | 完整面板停靠在输入框上方(官方 conversation.input.dock 槽位),随页面布局流动,不遮挡对话记录 |
| 🏷️ 行情区域 | 常驻悬浮区域:头部一行 logo/盘中状态,四大指数两列(上证/深证/创业/科创50)+ 自选前 12 只两列平铺;点击开合面板,拖动调整位置(记忆),右下角 ⤡ 手柄调宽度 120–480px(双击复位 320),宽度/位置持久化 |
| 📏 面板高度可调 | 拖动面板底边调整高度(160px–85% 视口,双击复位),高度持久化记忆 |
| ⌨️ Esc 收起 | Esc 先关个股详情,再收起面板;点行情区域或底部指数条重新展开 |
| 🛡️ 请求防护 | 并发 2 + 100ms 最小间隔对齐网页端行为;30s 看门狗强制释放悬挂请求防管线冻结;Cookie 失效/风控自动重播种重试;限频指数退避;页面隐藏自动暂停全部轮询(回前台立即恢复) |
| 🗂️ 渐进详情 | 个股详情报价+K线先上屏,分时/财务/KOL 到达后增量合并,不用等齐 |
| ⏱️ 智能刷新 | 盘中 20s 刷新行情,收盘自动放慢,降低被风控概率 |
| 🕐 交易时段 | 面板头常驻显示 A 股/港股/美股 盘中·午休·盘前·休市(本地时区推算,不含节假日),行情区域显示精确 A 股时段 |
| 🌗 主题自适应 | 跟随 DSH 明暗主题 |
| 🤖 Agent 工具 | 对话内直接问行情:xueqiu_quote(实时行情)、xueqiu_kline(K线)、xueqiu_search(搜股票)、xueqiu_hot(热榜)、xueqiu_news(7×24 快讯)、xueqiu_kol(个股热议大V)——模型直接调用,无需翻网页 |
| 🃏 工具调用卡片 | xueqiu_quote 渲染为红涨绿跌行情表、xueqiu_kline 为迷你蜡烛图、xueqiu_hot 为热榜排名列表、xueqiu_news 为快讯时间线(重要快讯高亮),对话流内直接看结果 |
所有数据来自雪球公开接口(访问首页获取匿名 cookie + 浏览器 UA/Referer),无需登录。
📸 截图
嵌入式主面板:停靠在输入框上方,指数卡 + 自选股行情 + 四个功能页签:
主面板
个股详情:16 项行情数据 + K线蜡烛图(成交量柱 / MA5-10-20 均线 / 十字光标)+ 财务指标 + 热议用户:
个股详情
迷你行情区域:四大指数 + 自选 12 只两列平铺,⤡ 手柄调宽度,点击开合面板,可拖动:
Agent 工具调用卡片(对话内直接问行情,结果渲染为专属卡片而非 JSON):
xueqiu_hot 热榜 | xueqiu_news 快讯时间线 |
|---|
| hot | news |
📦 安装
方式一:标准 bundle 插件(推荐)
# npm 包
dsh plugin --profile web add dsh-xueqiu
# 或 GitHub 源(git 安装会直接从源码构建)
dsh plugin --profile web add github:wanderer-yk/dsh-xueqiu
# 或本地目录
dsh plugin --profile web add ./dsh-xueqiu
添加后重启一次 dsh web(插件行发现按启动缓存),之后刷新页面即可看到面板。
方式二:动态插件(已实测)
本仓库 dynamic/ 目录提供已实测可用的动态 Cordis 插件源码(host.js + client.js)。在任意 DSH 会话中让 Agent 加载即可:
请读取本仓库 dynamic/host.js 与 dynamic/client.js 两个文件,
用 cordis_define(kind: new)定义插件:
code.host 填入 host.js 的内容,code.client 填入 client.js 的内容,
然后 cordis_run 启动它。
🎛️ 使用
- 面板停靠在输入框上方:与对话同列流动,不遮挡任何消息;
收起 — 或 Esc 收起。
- 右下角行情区域常驻显示四大指数 + 自选前 12 只(两列平铺);点击开合面板,拖动调整位置(记忆位置),⤡ 手柄横向调宽(120–480px,双击复位)。
- 输入框下方的指数条点击也可展开面板。
- 点击自选股、指数卡或热榜行 → 个股详情:16 项行情数据 + K线/分时切换(悬停图表看十字光标详情)+ 财务指标(ROE/毛利率/净利同比等)+ 热议用户。
- 面板高度:拖动面板底边的手柄上下调整(160px ~ 85% 视口高度),双击手柄复位;高度会被记忆。
- 登录雪球(可选):点面板右上「👤 登录」,按提示从浏览器复制 Cookie 整行粘贴即可。登录后自选股切换为你的雪球云端自选股(云端为准,10 分钟自动同步);「同步云端自选」可随时手动拉取;加/删自选双端同步(
portfolio/stock/add.json / cancel.json)。Cookie 只保存在本机,退出登录即清除。
- 刷新频率:盘中行情 20s、内容 60s;收盘后自动降为 60s / 3min。
🔧 稳定性设计
数据层内置多层防护,长时间挂机也不会卡死:
- 请求闸门:并发上限 2、请求间最小间隔 100ms,模拟网页端节奏,降低风控概率。
- 30s 看门狗:单个请求悬挂超 30s 即强制释放调度槽并报错,不会冻结后续所有请求。
- TTL 缓存 + in-flight 去重:相同 URL 短时间窗内直接命中缓存,并发重复请求共享同一 Promise。
- Cookie 自愈:匿名 cookie 失效(错误码 400016)或被风控返回空响应时,自动重新访问雪球首页播种新 cookie 再重试。
- 限频退避:遇到"请求频繁"按 2s→4s 指数退避后重试。
- 渐进渲染:详情页报价 + K线先行上屏,分时/财务/KOL 异步到达后增量合并。
🧪 质量与测试
平台要求:macOS / Linux / Windows。macOS/Linux 走 POSIX shell curl;Windows 走 DSH 的 PowerShell 层显式调用 curl.exe(Win10+ 自带),引号语义天然兼容,已在 GitHub Actions windows-latest 上真连雪球全量验证(含匿名 Cookie 播种链路)。
三套互补的自动化测试,每次发版前全部通过(最近一次实测 2026-08-20,macOS + dsh web 3080 端口):
| 套件 | 覆盖 | 实测结果 |
|---|
scripts/static-smoke.sh | 静态安装 7 道门禁(tarball 解包 → cordis 组合 → bundle 注册 → RPC 起活) | ✅ 7/7 |
scripts/feature-matrix.py | 20 个 RPC 动作 × 正常/边界/非法/降级 × 未登录/已登录/Cookie过期 三环境 | ✅ 54–56 项断言全过 / 每环境 |
scripts/browser-interact.sh | 真实鼠标交互:徽章拖动/⤡调宽/双击复位/面板开合/四个页签数据/越界恢复钳制 | ✅ 全过 |
热缓存性能实测(数据已在 TTL 窗口内,即用户连续操作时的体验):
kline 日K 120 根 1–12 ms
quote 3 只行情批量 1 ms
quoteDetail 个股详情 1 ms
search 搜索"茅台" 2 ms
finance 财务指标 2 ms
首次冷请求(需访问雪球取数)典型耗时 100–700ms,全部经请求闸门(并发 2)排队。复现方式:装好插件后 python3 scripts/feature-matrix.py --base http://127.0.0.1:3080 --mode logged。
📁 目录结构
dsh-xueqiu/
├── src/
│ ├── index.js # Host 插件(curl 数据层 + connection RPC)
│ └── client/index.js # Client 插件(嵌入式面板 + 常驻行情区域 UI)
├── dynamic/
│ ├── host.js # 动态插件版 Host(已实测)
│ └── client.js # 动态插件版 Client(已实测)
├── package.json # bundle 声明(dsh.bundle / dsh.client)
└── cordis.patch.yml # bundle 层插入
❓ FAQ
Q: 安装后面板不出现?
按安装说明重启一次 dsh web(插件行按启动缓存发现),再硬刷新页面(Ctrl/Cmd+Shift+R)。仍无面板时看右下角有无行情区域——区域在则点它展开。
Q: 行情数据突然全空/报错?
雪球匿名 cookie 偶发被风控(错误码 400016 或空响应)。插件会自动重播种 cookie 并重试;连续失败时等 1–2 分钟再点「刷新」,或收起面板降低请求频率。
Q: K线周期里分时下为什么没有周期按钮?
分时模式只展示当日分钟线,K线模式才有 7 档周期,属设计行为。
Q: 交易时段提示节假日准吗?
不准。时段按每周一至周五的固定钟点本地推算,不含法定节假日调休,仅供参考。
Q: 自选股和面板设置存在哪?
宿主本地文件 ~/.xueqiu-watchlist.json 与 ~/.xueqiu-ui-state.json(含区域宽度/位置),与浏览器 localStorage 无关,换浏览器不丢。
Q: 会不会影响 DSH 本体?
插件 UI 全部挂在官方槽位(conversation.input.dock / shell.overlay / conversation.composer.dock),卸载即完全消失,不改 DSH 源码。
⚠️ 免责声明
- 本项目非雪球官方产品,与雪球网/雪球公司无关;"雪球"为雪球公司商标,此处仅作数据来源描述。
- 数据来自雪球公开 Web 接口,仅供学习与研究,不构成任何投资建议;请勿高频请求,遵守目标网站条款。
- 接口可能随时变更导致功能失效,欢迎提 Issue / PR。
📋 更新日志
- 1.22.15(2026-09-03)
- 变更:元数据脱敏补丁。更新日志措辞去除旧账号字样;npm 维护者信息刷新。功能零变更。
- 1.22.14(2026-09-03)
- 变更:仓库迁移至
wanderer-yk。GitHub 账号更名后全量同步:README / README.en / package.json / LICENSE 中的仓库链接、徽章、图片外链、安装命令全部更新为 wanderer-yk/dsh-xueqiu;git 全部历史提交与标签署名经 git filter-repo 重写为 noreply 身份,历史文件内容同步清洗。
- 修复:
static-smoke.sh 查找 dsh 二进制时硬编码机器特定绝对路径,改为 $HOME 展开(可移植性 + 去隐私泄露)。
- 功能零变更;发布本版主要目的为刷新 npm 侧 homepage / 仓库地址 / readme 元数据。
- 1.22.13(2026-08-26)
- 修复:A 股成交量显示虚高 100 倍 + 港/美单位错。雪球
volume 字段全市场均为股(实证 amount/volume ≈ price,quote/kline/minute 三接口、A/港/美/ETF/指数一致),而 fmtVol 一律按"手"格式化:茅台 145 万股显示成"145.05万手"(实为 1.45 万手)。现按市场感知:A 股(SH/SZ/BJ 前缀,含 ETF/指数/北交所)÷100 换算成手,港/美维持股。qa/vol-units.mjs 26 例(从 client 源码提取 fmtVol 独立求值 + host 周期白名单)。
- 修复:自选"死条目"凭空消失。批量行情会整只丢弃无效/退市代码——添加 SH999999 提示成功,但列表里永远看不到,无任何反馈。现在补占位行(现价/涨跌全
--,名称回退显示代码,仍可删除/查详情),价格闪烁逻辑对 null 现价免疫。
- 修复:kline 垃圾周期静默空数据。上游对未知
period(如模型手滑传 1h)返回 200+0 根;host 侧加白名单兜底为 day。
- 修复:CI 午休/午后时段必红(v1.22.11 修复的延伸)。live 分时点数下限按"9:30 至今分钟数"线性外推,但 A 股午休(11:30-13:00)分时停在 ~121 点、午后累计从 13:00 重算——11:44 触发的 CI 实际 121 点 vs 下限 132 必红。改为两段交易时段感知(早盘线性 / 午休恒 118 / 午后 121+线性封顶 238 / 盘外 200),全天 1440 分钟边界模拟通过。
- 工具描述补充
volume 单位为股(A股 1手=100股),防模型侧误读换算。
- 1.22.12(2026-08-26)
- 修复:状态文件跟启动目录漂移。自选/登录/界面状态原先落在 dsh web 的启动目录(cwd=工作区根)——换目录启动就"换一套状态"。现在优先写
$DSH_HOME/dsh-xueqiu/(稳定目录,writeText 自动建目录);沙箱策略拒绝工作区外绝对路径写入时探测失败,透明回退旧工作区行为(零回归);读取时稳定文件缺失则回读旧工作区文件,存量数据无缝迁移(首次保存落到稳定目录,旧文件不删)。qa/state-paths.mjs 11 例覆盖四种模式(稳定/迁移/回退/首启)。注意:host 侧改动需重启 dsh web 生效,迁移发生在重启后首次写入。
- 修复:K线交互提示文案方向写反(v1.22.0 起)。"左拖加载更早"实为右拖——klinecharts 源码
scroll(拖拽位移) 内容跟手:右拖=左缘涌出更早历史+触底自动加载;左拖是回最新方向、右边留白。用户指出后核对引擎源码确认,client 6 处 + README 3 处已正。
- 新增:K线/分时拖拽光标反馈(用户建议)。悬停小手
grab、按住抓手 grabbing、松手复位(松手点在图外时 window mouseup 兜底);监听统一在 klcSetup 随 dispose 清理。
- 修复:
::1 裸 IPv6 回环白名单死代码。端口剥离正则 /:\d+$/ 会把裸 ::1 末尾 :1 误剥,改 /^(.*[^:]):\d+$/;fence.mjs 原 xfail 用例转正(两形态均 200)。
📄 License
MIT