dsh-trading:为 DeepSeek Harness 搭建交易研究工作台

前言

在 DSH 里做行情分析,常见做法是:让模型直接调某个数据 API,或在对话里贴截图。前者把数据源焊死在插件里,换券商或换本地 CSV 就要改工具链;后者则让模型看不到你正在盯的实时 K 线,只能反复问「截个图」。

dsh-trading 把问题拆成三层:类型化的 ctx.marketData 接缝、确定性的指标计算、以及可交互的图表卡片与持久图列。它不 fork DSH 核心,而是以 bundle 叠在官方 webheadless profile 上。下面介绍它是什么、能做什么、怎么装、怎么用。

这是什么

dsh-tradingmaddogfinance 维护,在 SkillHub 插件目录 归类为「联网工具」。GitHub 仓库约 17 stars,许可证 MIT。

一句话定位:面向 DeepSeek Harness(dsh)的交易研究工作台插件——数据接缝、确定性指标、交互式 K 线卡。README 标明当前为 early scaffold;dsh 本身处于开发者预览,两侧都可能出现破坏性变更。

项目刻意不设下单或执行接缝;@dsh-trading/risk-guardtools/pre-execute 门拒绝执行类工具名,属于纵深防御,不能替代「无执行能力」这一结构边界。

核心功能

八个包、单向依赖

仓库拆成八个 npm 包,依赖方向固定:

  • @dsh-trading/market-data:定义 ctx.marketData 接缝,K 线/标的类型接口
  • @dsh-trading/provider-csv:参考实现,读本地 data/<symbol>/<timeframe>.csv
  • @dsh-trading/provider-futu:可选,经本地 Futu OpenD 拉港股、美股、A 股及 24/7 加密货币(如 CC.BTCUSDT
  • @dsh-trading/tool-market:面向模型的只读工具(list_symbolsget_ohlcvmarket_snapshotannotate_chartrender_chart)及指标库
  • @dsh-trading/verdict:回测审计、lint_strategy_code 等评估 harness;结论可为 NOT PROVEN
  • @dsh-trading/risk-guard:独立包,拒绝执行类工具名
  • @dsh-trading/client-chart:Web 图表卡片、持久图列、loopback 通道;宿主侧 get_chart_view 与每轮上下文注入
  • @dsh-trading/client-frame:可选,chart-first 外壳布局(侧栏 | 图列 | 对话 | 详情)

bundle/trading 通过 cordis.patch.yml 默认接入六行:market-datamarket-data-providertool-marketverdictrisk-guardclient-chartclient-frameprovider-futu 需自行在 profile 里启用。

模型侧工具

market_snapshot 一次返回多周期指标体制(RSI、慢速随机、ADX/DI、MACD、MFI、ATR、SMA/EMA、布林带等)及粗粒度状态标签。get_ohlcv 在需要结构细节时提供原始 K 线。指标按教科书定义、Wilder 平滑等处与常见平台对齐,会话日志重放可复现相同数值。

annotate_chart 在图上标注价位、区间、路径,要求 provenance,价格须在真实 K 线窗口内校验。render_chart 用于导出图像文件。

Web 图列与图表卡片

启用 @dsh-trading/client-frame 后,dsh web 变为图列优先:左侧持久实时图列,右侧对话。你可直接输入标的、切换周期,经 loopback 拉数,不经过模型。图列默认跟随对话中的标的;手动改标的或周期会 pin 图列,此后模型的标注以 Show 药丸提供,避免覆盖你正在看的图。get_chart_view 与每轮一行上下文把当前图列状态回传给模型,无需截图。

未装 client-frame 时,market_snapshot / get_ohlcv 结果在对话流中渲染为交互式 K 线卡:成交量、SMA20/50/200、周期标签,以及从模型读到的逐 bar 序列绘制的指标窗(非浏览器重算)。

自带数据(CSV)

CSV 布局如下,bar 开盘时间为 ISO-8601 UTC、升序:

data/
  AAPL/
    1d.csv        # header: time,open,high,low,close,volume
  BTC-USDT/
    1h.csv

provider-csv 约百行,可复制为接 ClickHouse、券商 API 或 CCXT 的模板;上游工具不变。

安装与启用

环境要求:Node.js >= 20。官方 bundle 从 npm 拉取六行插件(client-frameprovider-futu 为可选):

dsh plugin --profile trading add @dsh-trading/bundle

在 profile 的 dsh.profile.bundles 中,在 @deepseek-ai/dsh-base 之后加入 @deepseek-ai/dsh-web-app@deepseek-ai/dsh-headless 以选择界面。配置模型密钥(环境变量 DEEPSEEK_API_KEY,或 dsh web 的 Models 页),在含 ./data 目录下运行。

可选:启用 chart-first 外壳,在 profile patch 中禁用默认 ui-layout 并插入 frame:

- id: ui-layout
  disabled: true

- insert:
    - id: trading-frame
      name: '@dsh-trading/client-frame'

可选:接 Futu OpenD 实时数据。在 OpenD.xml / OpenD.ini 启用 websocket 监听(与 api_port 不同端口,websocket_key_md5 对 JS 客户端必填):

websocket_port = 33333
websocket_key_md5 = <md5 of your key>

安装与 OpenD 版本线匹配的 SDK,并在 cordis.patch.yml 中改 provider 行:

npm i futu-api@10.9   # 须与本地 OpenD 版本线一致
- id: market-data-provider
  name: '@dsh-trading/provider-futu'
  config:
    host: 127.0.0.1
    port: 33333       # websocket 端口,非 api_port (11111)
    symbols:
      - CC.BTCUSDT
      - HK.00700
      - US.MU

安装 Market Analyst 预设:

DSH="${DSH_HOME:-$HOME/.dsh}"
mkdir -p "$DSH/.agent-presets" && cp -r presets/analyst "$DSH/.agent-presets/"

在会话 preset 菜单选 Market Analyst

本地开发 checkout 时,先构建再 add 本地路径;bundle patch 引用的每个包都须与 bundle 并列链接,否则启动解析失败。详见 README「Try it with dsh」一节。

典型用法

examples 目录、且 ./data 已有 CSV 时,可用 headless 做一次趋势描述:

cd examples && dsh --profile trading "pull DEMO-EQ daily candles with sma20/sma50 and describe the trend"

随时检查合成后的 profile:

dsh --profile trading --dump-config

README 提供 90 秒与 80 秒演示视频(真实 Futu OpenD 会话的 Playwright 录制,非 mockup):

适用场景与注意

适合:在 DSH 里做只读行情研究、多周期体制梳理、图上标注与对话联动的开发者;需要 BYO 数据源、又不想改上游工具的人。

注意:

  1. 研究专用,非投资建议;无下单能力。
  2. 插件以当前 dsh 进程权限运行;安装前请阅读源码与 MIT 许可证,自行评估数据源与网络访问。
  3. dshdsh-trading 均可能 breaking change;Futu futu-api 版本须与 OpenD 手动对齐。
  4. SkillHub 为独立社区目录,与 DeepSeek / 幻方无官方从属关系。

若你已在用 DSH 做智能体开发,又需要可替换数据源、确定性指标与可读图的闭环,dsh-trading 提供了一条不 patch 核心的叠装路径。

  • 目录页:https://www.skillhub.cn/plugins/maddogfinance/dsh-trading
  • GitHub:https://github.com/maddogfinance/dsh-trading
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜