DSH Trading Terminal — 股票/期货交易终端插件
一个运行在 DSH Web(DeepSeek Harness)里的动态 Cordis 插件 覆盖 A 股行情 + 国内期货,支持 AI 基本面/技术面分析。
主面板
✨ 功能特性
| 模块 | 说明 |
|---|
| 📌 自选股 | 多分组 / 搜索添加 / 迷你分时折线 / 买卖目标价触发徽章 |
| 📊 涨跌幅榜 | 涨幅/跌幅榜(沪深 A 股 80 名,换手/成交额/市盈) |
| 🚫 涨停跌停池 | 涨停池/跌停池(封单额/封板时间/连板数/板块) |
| 🔥 热搜榜 | 东方财富人气榜 30 名(排名变化箭头) |
| 🧩 板块排行 | 行业/概念 × 实时 / 5m / 1h / 4h / 1日 周期涨跌(领涨股 + 涨跌家数) |
| 📈 个股详情 | 18 项信息 + 五档盘口 + 分时/5/15/30/60分/日/周/月 K 线(Lightweight Charts,CDN 失败自动降级 SVG)+ MA5/10/20/60 |
| 🛢️ 实时期货 | 31 个国内主力连续合约(黑色/化工/有色/贵金属/农产品/原油):现价、涨跌幅、今开、最高、最低、持仓、成交量;点击合约查看 K 线(日/60分/15分/5分 + MA) |
| 🤖 AI 分析 | 个股详情一键「🤖 分析」→ 基本面 + 技术面 结构化报告(完整 Markdown 渲染:表格/代码块/引用/多级标题) |
| 🎨 三套主题 | 深色终端 / 清爽浅色 / 欢歌多彩(面板⇄设置卡片实时双向同步) |
| ⚡ 自动激活 | 刷新页面后自动激活,无需手动点 Run |
🏗️ 架构
双形态发布:动态 Cordis 插件(助手 cordis_define 一键装)与 DSH 标准 npm 插件包(dsh.bundle.patch + dsh.client 声明,可被插件市场收录)。两种形态共用同一份数据层与 UI 源码:
| 文件 | 作用 |
|---|
src/stkt-host.js | Host 数据层:网络走 shell 服务 + curl;15 个数据 RPC(quotes/stock/kline/rank/limit/hot/sectors/sectorMembers/search/indices/futures/futureKline/meta/aiChat);并发池 + TTL 缓存 + 多源回退;另注入「自动激活」引导脚本 |
src/stkt-client-real.js | Client UI:styles.insert 注入皮肤,React 组件;数据走 fetch('/api/stkt/…');LWC 懒加载 + SVG 降级;localStorage 持久化 |
lib/index.js | 标准包 host half:把 stkt-host.js 的 harness.handle 注册桥接为 /api/stkt/* HTTP 路由(含 clientCode) |
lib/client.js | 标准包 browser half:__ModuleLoader__ 标准模块,拉取 UI 源码求值,注册 shell.overlay / sidebar.footer.action / settings.plugin.item 三槽位 |
src/stkt-loader-host.js / stkt-loader-client.js | 动态插件形态的 define 内联加载器(经 fs / clientCode 拉源码) |
cordis.patch.yml | 标准包 bundle patch(插件行 id: trading-terminal) |
数据源:腾讯行情(股票报价/指数/K线)、新浪(涨跌幅榜、期货行情与K线)、东方财富(涨停池、热搜、板块)。
📦 安装方法
本仓库同时是 GitHub 源码仓库与 npm 插件包(dsh-trading-terminal),可被 DSH 插件市场收录。
前提
- 一台运行 DSH Web(DeepSeek Harness,Web GUI
http://127.0.0.1:55808 或你的部署地址)的主机
- 会话文件沙箱模式允许工作区写入(插件源码放在工作区内)
- 首次安装时需在页面批准一次插件运行(之后自动激活,无需再点)
方式 A:npm 安装(标准插件包,推荐)
标准包结构(package.json 的 dsh.bundle.patch + dsh.client 声明),与 DSH 官方/社区插件同一格式:
# 在 DSH 主机的 web profile node_modules 中安装(示例,具体见下方 dsh plugin 命令)
dsh plugin --profile <name> add npm:dsh-trading-terminal
# 或手动方式:把包链接进 profile 的 node_modules 并在 ~/.dsh/cordis.patch.yml 追加:
# - insert:
# - id: trading-terminal
# name: 'dsh-trading-terminal'
安装后重启/刷新 DSH Web:插件自动加载(Host 数据层 + /api/stkt/* 路由 + 浏览器 UI 三槽位注册 + 页面自动激活)。
方式 B:克隆到工作区,交给助手一键安装
-
把仓库克隆到 DSH 的工作区根目录:
cd <你的DSH工作区>
git clone https://github.com/Hermit503/dsh-trading-terminal.git
-
在 DSH Web 打开一个新会话,告诉助手:
把工作区里的 dsh-trading-terminal 安装为动态 Cordis 插件
助手会读取 src/stkt-loader-host.js 与 src/stkt-loader-client.js,用 cordis_define 定义插件,然后 cordis_run 激活。
-
页面出现批准提示时点允许(首次仅一次),插件即挂载。
-
刷新页面:自动激活,侧边栏出现「⛁ 交易终端」入口,右上角出现可拖拽药丸。
💡 loader 会自动按「工作区根/dsh-trading-terminal/src/stkt-host.js」查找宿主代码;若你把仓库放在别处,把 src/stkt-loader-host.js 顶部 candidates 数组改成实际路径即可。
方式 C:直接把源码放工作区根目录
若不想保留仓库目录名,把 src/ 下四个文件直接放到工作区根:
cp dsh-trading-terminal/src/*.js <你的DSH工作区>/
然后按方式 B 第 2 步让助手安装(loader 同样兼容该位置)。
发布到 npm(维护者)
npm login
npm publish
包名 dsh-trading-terminal(也可发布为 @<scope>/dsh-trading-terminal),发布后 DSH 用户可 npm i dsh-trading-terminal + dsh plugin add 安装。
🚀 使用说明
- 侧边栏入口:点「⛁ 交易终端」展开/收起面板(宽栏显示文字、窄栏显示图标);右键弹出管理菜单(打开/收起面板 + 插件管理说明)。该位置替换了官方「Cordis plugins」按钮格(同 id 覆盖),管理入口改由「设置 → 插件」卡片 + 助手完成。
- 右上角药丸:可拖拽吸附左右边缘;面板可拖动/拉伸。
- Tab 导航:自选 / 涨跌幅 / 涨跌停 / 热搜 / 板块 / 期货。
- 顶部价格条:指数 / 期货 双页轮播(9 秒自动翻转,可手动切换)。
- 个股详情:点击任意股票行进入;「📋 分析指令」复制分析文本到新会话;「🤖 分析」调用你配置的 AI。
- 期货 K 线:期货 Tab → 点击任意合约行 → 日K/60分/15分/5分 + MA 均线。
- 主题切换:面板顶栏 ☀️/🌈/🌙 循环切换,或在 设置 → 插件 → 卡片三选一。
🤖 AI 分析配置
设置 → 插件 → Trading Terminal 卡片:
| 项 | 说明 |
|---|
| Base URL | OpenAI 兼容接口地址。填根或 /v1 均可(如 https://api.deepseek.com/v1),自动拼接 /chat/completions |
| API Key | 你的密钥 |
| 模型名 | 默认 deepseek-chat |
- 配置保存在浏览器 localStorage,Key 不落盘、不经服务器持久化
- 「测试连接」按钮即时验证;请求由 Host 端 curl 代理转发(UA 伪装浏览器,规避 Cloudflare 类拦截)
- 支持任意 OpenAI 兼容服务:DeepSeek / OpenAI / 本地 Ollama(
http://localhost:11434/v1)等
🎨 主题
深色终端(荧光绿 CRT)/ 清爽浅色 / 欢歌多彩(彩虹渐变标题)。选择持久化,面板与设置卡片双向实时同步。
⚙️ 自动激活机制(刷新免手动 Run)
DSH 平台默认要求每次页面刷新后手动运行客户端插件。本插件通过 Host webServer.tapIndex 注入一段引导脚本(stkt-autoboot):
- 页面加载后检测插件是否已激活
- 未激活 → 自动打开 Cordis 抽屉 → 定位本插件 → 点击「运行」(中英文界面兼容)
- 激活后自动关闭抽屉(多重兜底,不留遮罩)
- 已有授权 → 免批准立即生效
诊断:脚本执行日志写入 window.__stktBootLog(F12 → Console 查看),排查问题时可提供给开发者。
❓ 常见问题
Q:AI 测试连接报 HTTP 403 error code: 1010?
A:这是 Cloudflare 对非浏览器请求的拦截。改用服务商官方直连地址(如 https://api.deepseek.com/v1);若你的端点自带 Cloudflare 硬拦截,换一个 OpenAI 兼容直连端点。
Q:报 HTTP 404 并返回网页 HTML?
A:旧版本未自动拼接路径。升级后 Base URL 填根或 /v1 均可,插件自动拼 /chat/completions;若仍 404 说明域名/路径本身不对。
Q:侧边栏「设置」按钮偶发消失?
A:这是自动激活时 Cordis 抽屉未及时关闭、遮罩盖住了侧边栏的旧问题;新版已加入三重关闭兜底(激活后抽屉必关)。如仍出现,查看 window.__stktBootLog。
Q:如何卸载 / 恢复官方 Cordis 按钮?
A:在插件管理(设置 → 插件,或让助手 cordis_undefine)移除插件即可;侧边栏官方按钮随插件卸载自动恢复。
Q:数据会实时刷新吗?
A:行情 1015s 轮询,K 线 2030s 轮询;所有请求带服务端 TTL 缓存与多主机回退。
⚠️ 免责声明
- 行情数据来自腾讯 / 新浪 / 东方财富公开接口,仅用于学习与个人研究,不构成任何投资建议
- 接口可能变更或限流,插件会尽力回退但无法保证 100% 可用
- AI 分析由你配置的第三方模型生成,模型可能出错,请勿据此决策
📄 License
MIT