@liaomenghao/dsh-stock-quote
股票行情插件,三部分:
- 「股票行情」页面:侧边栏入口 + 主区面板,维护自选列表(添加、删除、手动/自动刷新),A 股、港股、美股同屏。
- 个股详情:点列表里的名称进入,日 K 线(蜡烛图 + 成交量 + MA5/MA20,60/120/240 日可切换)。
- AI 分析:详情页写下分析要求,用当前 profile 的默认模型生成结论。
- Agent 工具:
stock_quote与stock_search,会话里直接问「茅台现在多少」。
安装
npx @deepseek-ai/dsh plugin --profile <profile> add @liaomenghao/dsh-stock-quote
装完重启 Harness,侧边栏出现「股票行情」入口。
要求:DSH ≥ 0.2.0、Node.js ≥ 20。插件零运行时依赖,行情与 K 线都走公开接口,不需要 API key。
页面
侧边栏「股票行情」进入。自选列表存在浏览器 localStorage(键 dsh-stock-quote.watchlist),默认 sh000001、600519、00700.HK、AAPL。
- 顶部输入框接受代码或名称:回车添加首个搜索结果,或点选下拉里的候选;像
sz002594这样的完整代码可直接回车。 - 每 30 秒自动刷新一次,可关闭;右上角「刷新」立即取一次。
- 表格展示名称/代码、现价、涨跌、涨跌幅、成交量、换手率、行情时间。涨红跌绿。
个股详情
点表格里的名称进入:
- 分时(今日):默认视图。今日逐分钟价格线、均价线、昨收虚线基线、成交量柱,涨红跌绿;左上角标注该数据所属交易日。
- 日 K 线:蜡烛图(涨红跌绿)、上下影线、MA5 / MA20 折线、成交量柱、右侧价格刻度、最新价虚线。数据为前复权日线,周期可切 60 / 120 / 240 日。
- AI 分析:输入框写下要求(有「趋势走向 / 支撑压力 / 风险点」三个快捷填充),点「开始分析」。请求发给插件 Host 半,由它把当前报价 + 最近 60 个交易日日线拼成上下文,调用 profile 默认模型生成回答;结果下方标注模型名与本次 token 用量。
模型的选择跟随当前默认模型(agentDefaultModel.currentSelection()),不写死在插件里。分析请求只带行情与日 K,不联网检索新闻,system prompt 明确要求不得编造基本面与公告。输出被长度上限截断时会追加一行说明。
分析固定使用最近 60 个交易日,与页面上选的 60/120/240 日图表周期无关——图表周期只影响画多少根蜡烛。
额度与缓存
每次分析是一次真实的模型请求,按输入 + 输出 token 计费(实测一次约 2,200 输入 / 300–1,400 输出)。
同一只股票 + 完全相同的要求,在 10 分钟内重复点「开始分析」会直接复用上次结果,不再请求模型;页面会注明「本次未消耗额度」。改一个字就是新问题,会重新计费。缓存只存在页面内存里,刷新即清空。
工具
| 工具 | 参数 | 返回 |
|---|---|---|
stock_quote |
symbols:代码数组,单次最多 20 个 |
现价、涨跌额、涨跌幅、昨收、开盘、最高、最低、成交量、成交额、换手率、市盈率、总市值,以及该笔行情的交易所时间戳 |
stock_search |
keyword:名称 / 代码 / 拼音首字母;limit:1–20,默认 8 |
候选列表,每项带 symbol,可直接传给 stock_quote |
支持的代码写法:600519、sh600519、600519.SH、430047(北交所)、00700、0700.HK、AAPL、BRK.B、usBRK.B。只给公司名时先用 stock_search。
数据来源
- 实时行情:腾讯
qt.gtimg.cn,GBK 编码,单次请求可批量取多只。 - 日 K 线:东方财富
push2his.eastmoney.com,前复权日线;美股按 105/106/107 市场段探测后缓存。 - 代码搜索:东方财富 suggest 接口。
插件不写缓存、不落盘(美股市场段除外,仅进程内缓存),每次调用都实时请求上游。
内部路由
页面通过同源接口取数,与工具共用同一套解析,避免页面和工具各说一套:
| 路由 | 用途 |
|---|---|
GET /stock-quote/quotes?symbols=a,b |
批量报价 |
GET /stock-quote/search?q=... |
代码搜索 |
GET /stock-quote/kline?symbol=...&days=120 |
日 K + 当前报价 |
GET /stock-quote/intraday?symbol=... |
今日分时序列(含昨收)+ 当前报价 |
POST /stock-quote/analyze |
{symbol, requirement} → 模型分析文本 |
分析路由用 handler 路由注册:资源路由只接受 GET/HEAD,POST 需要用 handler 自己读请求体。
注意
- 行情时间戳是交易所当地时间(A 股
Asia/Shanghai、港股Asia/Hong_Kong、美股America/New_York)。非交易时段返回的是最近一个交易时段的快照,判断「是否实时」要看这个时间戳,而不是页面上的「更新于」。 - 分时图在非交易日展示的是上一个交易日的完整走势,左上角标注的日期会告诉你数据属于哪一天。
- A 股成交量的上游单位是「手」、成交额是「万元」,插件已换算为股和元;港股与美股上游本身就是股与当地货币。
- 只有一个实时行情上游。上游不可达时,工具会把失败原因放进结果的
unresolved,页面会显示错误条,都不会返回旧值或猜测值。 - 若界面顶部的皮肤装饰层盖住了页面标题,那是所启用皮肤(如 maid-atelier)在非会话页的固定装饰,宿主的「任务看板」同样如此;页头已按该装饰的高度留白。
- AI 分析消耗模型额度,按次调用;10 分钟内同一问题的重复点击会命中页面内缓存。
配置
cordis.patch.yml 里该行的 config 支持:
| 键 | 默认 | 含义 |
|---|---|---|
timeoutMs |
8000 |
单次上游行情/K 线请求超时,范围 1000–20000 毫秒 |
文件
| 文件 | 作用 |
|---|---|
index.js |
Host 半:两个工具、四个面板路由、分析请求组装 |
quote.js |
代码归一化、行情/K 线/搜索解析、格式化 |
client.js |
Client 半:侧边栏图标、自选面板、详情页与 K 线图 |
cordis.patch.yml |
bundle patch,插入 stock-quote 行 |
No comments yet. Be the first to write one.